| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- map
- uiscrollview
- scrollview
- 리펙토링
- Clean Code
- uitableview
- RxCocoa
- combine
- swift documentation
- Refactoring
- Xcode
- collectionview
- UICollectionView
- ios
- 리팩토링
- tableView
- 스위프트
- Observable
- Protocol
- swiftUI
- 클린 코드
- rxswift
- SWIFT
- HIG
- UITextView
- ribs
- 애니메이션
- MVVM
- Human interface guide
- clean architecture
- Today
- Total
목록2025/09 (4)
김종권의 iOS 앱 개발 알아가기
인터페이스 제공 방법만약 링크 터치 이벤트를 처리하는 LinkDetectionText를 만들고 싶은 경우, LinkDetectionText 내부에서 해당 프로퍼티를 사용\.openURL의 정체: SwiftUI가 미리 정의한 EnvironmentKey@Environment(\.openURL) private var openURL아래처럼 openURL 프로퍼티를 선언한 후 이 프로퍼티를 마치 클로저처럼 실행시키면, 외부에서 사용이 가능struct LinkDetectingText: View { @Environment(\.openURL) private var openURL // AttributedString { ... }}외부에서는 openURL 키를 가지고 envionment 함수의 클..
View 업데이트 빈도수 파악하기View의 body부분에서 업데이트가 너무 많게되면 아래 사진처럼 데드라인을 넘게되는 경우가 존재-> hitch가 발생업데이트 수 프로파일링 방법View Body Updates 하위 트랙 선택빨간선 or 주황선 부분을 드래그하여 영역 선택 LandmarkListItemView에 Update Count가 30으로 찍혀있음View코드를 작성할 때 이 부분을 확인해보면 내가 의도된 업데이트 카운트로 구현했는지 알 수 있음만약, List와 Row가 있는 뷰를 구현할 때 Row에 state하나만 바꿨을때, List전체가 업데이트 되었는지 파악하는 용도로도 사용이 가능* 참고- https://developer.apple.com/videos/play/wwdc2025/306/
프레임 드랍(Hitch)이 일어나는 과정 (Render Loop)앱은 특정 싸이클마다 깨어나면서 이벤트를 처리아래처럼 싸이클마다 클릭 이벤트를 인식하고 UI를 업데이트이때 변경된 SwiftUI View의 body 프로퍼티를 실행함이 UI를 업데이트 하는 과정들은 각 주기 프레임 데드라인전에 완료되어야함즉 데드라인 전에 UI가 업데이트 되는 것렌더링 된 출력은 해당 데드라인 직후에 화면에 표출됨 (주의: 첫번째 프레임에서 내부적인 UI 관련 업데이트를 하고 화면에 보이는 것은 다음 프레임에서 수행)아래와 같은 프레임 드랍 케이스의 Render Loop는?UI 업데이트 부분이 프레임 데드라인 후에 실행되었음이미 두 번째 프레임에서는 첫번째 UI 업데이트를 썼으므로 다음 업데이트는 3번째 프레임에서 시작해야함..
SwiftUI 프로파일링Instrument > SwiftUI 선택하고 프로파일 수행먼저 SwiftUI 로 되어있는 꺽쇠를 클릭 > View Body Updates > 영역을 드래그하여 지정한 후 해당 영역 set Inspection Range And Zooms 클릭 > Time Profiler 클릭 이전 포스팅 글 참고: https://ios-development.tistory.com/1812Time Profiler는 정기적으로 샘플을 추출하여 현재 실행중인 함수에 대한 분석을 시도뒤에서 나올 예제는 body가 실행되는 동안 프로파일링WWDC 영상처럼 호출 스택이 여러가지가 표출됨이 중에서 살펴볼 것은 LandmarkListItemView이므로 command + F를 하여 검색왼쪽을 보면 각 call s..