| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 클린 코드
- combine
- UITextView
- map
- 리팩토링
- claude code
- collectionview
- uitableview
- Xcode
- swiftUI
- SWIFT
- Protocol
- tableView
- swift documentation
- ios
- Human interface guide
- rxswift
- 클로드코드
- 애니메이션
- RxCocoa
- 스위프트
- Clean Code
- UICollectionView
- MVVM
- 리펙토링
- HIG
- Refactoring
- uiscrollview
- Observable
- clean architecture
- Today
- Total
목록최적화하기 (6)
김종권의 iOS 앱 개발 알아가기
SwiftUI Instruments 에 중요한 것SwiftUI Instruments를 보면 빨간선과 주황선이 보이는데, 이 정보들은 중요한 것임(아래 사진 관련 내용: https://ios-development.tistory.com/1815)빨간색 선 기준기준: View의 body 계산 시간이 1.0ms를 초과할 때 표시의미: 매우 심각한 성능 저하 상태영향: 120Hz 디스플레이(ProMotion) 환경에서 프레임당 가용 시간은 약 8.3ms인데, 뷰 하나 그리는 데 1ms를 넘겨버리면 실제 렌더링 루틴 전체가 꼬이며 눈에 띄는 Hitch(버벅임)가 발생주황색 선 기준기준: View의 body 계산 시간이 0.5ms를 초과할 때 표시의미: 성능 저하 주의 단계영향: 당장 화면이 멈추지는 않더라도, 이런..
xcactivitylogXcode가 빌드/테스트/아카이브할 때 생성되는 빌드 로그의 원본 파일(= Xcode UI에서 보는 Build Log 화면(⌘ + 9)의 실제 데이터 파일)바이너리 파일은 아래 경로에 위치~/Library/Developer/Xcode/DerivedData//Logs/Build/얻어내는 법Xcode > Build > 오른쪽마우스 > Show in Finder 클릭Show in Finder 클릭 시 Logs/Launch에 들어가게됨여기서 Logs/Launch가 아닌, Logs/Build 경로에 가야하므로 Logs경로로 이동한 다음 Build 폴더로 이동마침내 UUID.xcactivitylog 파일 획득이 가능들어있는 정보들전체 빌드 타임라인각 빌드 단계별 duration컴파일러가 어떤..
.trace 파일Instruments를 통해 나오는 .trace 파일은 자주쓰는 xctrace export 옵션--listtrace 파일 내부에 어떤 데이터들이 들어있는지 전체 목록을 보여줌 (schema 이름들을 확인이 가능)xctrace export --input test1.trace --list예)time-samplesignpostprocessthread-statesystem-callsmemorycall-tree --tocTrace Table of Contents(Toc)를 XML로 바로 출력xctrace export --input test1.trace --toc 이걸 보면 전체 구조를 한눈에 확인 가능 --xpath특정 부분만 필터링하기 위한 고급 옵션ex) signpost 데이터만 추출: --x..
XCMetrics 오픈소스오픈소스github: https://github.com/spotify/XCMetrics스포티파이가 만든 오픈소스이며, 성능에 관해 실시간으로 모니터링 할 수 있는 시스템xcactivitylog 형식으로 저장된 Xcode 및 xcodebuild 로그를 파싱할 수 있는 도구인 XCLogParser를 기반으로 구축Spotify iOS 앱에서 약 100만 개의 빌드와 100억 개 이상의 단계를 수집했고, 이를 통해 프로젝트 구조 및 아키텍처와 관련하여 중요하고 정보에 기반한 결정을 내릴 수 있음이점xcactivitylog 파일에서 데이터를 추출하여 빌드 시간, 경고, 오류 및 기타 메타데이터를 원하는 방식으로 볼 수 있음정렬, 검색이 가능하여, 어떤 부분이 빌드 시간이 오래걸리고 언제부..
행이란?사용자가 앱을 쓸 때 지연된다고 느껴지는 것예) 사용자가 버튼을 누른 경우, 조금 있다가 반응한다는 느낌을 주는 것애플에서 제공하는 가이드)의미Instant즉각적인반응이 바로 느껴질 정도로 빠름 (~100ms 이내)Circumstantial상황에 따라 달라지는, 약간 느리지만 용인됨약간의 지연(~250ms)은 사용자가 느끼지만 불편하지 않음Microhang미세한 멈춤눈에 띄는 짧은 멈춤 (~500ms 미만)Hang완전한 멈춤(먹통)반응이 끊기거나 멈춘 듯한 상태 (~500ms 이상)즉, 즉각적이려면 100ms 이내로 동작하게끔해야함또 행의 기준은 500ms 이상 걸리는 동작을 의미함행 파악하는 방법위에서 알아본대로 500ms 이상 걸리는 작업을 행이라고 정의이 행은 Instruments의 Time..
Time Profiler Xcode > Cmd + I로 Instrument 실행 > Time Profiler 선택창이 뜨면 Record 버튼을 눌러서 앱을 실행중지 버튼을 눌러서 분석 중지그래프를 보면 삐쭉 튀어나와있는 부분에 커서를 대면 시간이 얼마나 걸렸는지 알 수 있음그 부분을 왼쪽마우스로 클릭하고 아래 로그를 보면 어떤 부분에서 시간이 걸렸는지 확인이 가능더 구체적으로 확인 방법위에 까지 알아본 방법은 대충 어떤 함수가 많이 걸리는지 알려주는데 더욱 구체적인 back trace를 보고싶은 경우는 아래처럼 처리가 필요Samples를 클릭Profile 클릭하단 로그를 보면 아래처럼 누적값으로 Weight가 표시되는데 가장 큰 weight가 증가한 start부분을 펼치기option + 왼쪽마우스 클릭하..