| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- UICollectionView
- HIG
- uitableview
- RxCocoa
- Observable
- UITextView
- 리팩토링
- tableView
- clean architecture
- uiscrollview
- rxswift
- 리펙토링
- collectionview
- ribs
- MVVM
- combine
- SWIFT
- swiftUI
- scrollview
- Human interface guide
- 클린 코드
- swift documentation
- 스위프트
- Clean Code
- Xcode
- map
- Refactoring
- Protocol
- 애니메이션
- ios
- Today
- Total
목록2025/12 (5)
김종권의 iOS 앱 개발 알아가기
cf) LazyVStack해서 구현 방법 포스팅 글은 이 링크의 포스팅 글 참고: https://ios-development.tistory.com/1760 StickyHeader 구현 아이디어StickyHeader를 순수 직접 구현하려면 많은 작업이 들겠지만, SwiftUI에서 List안에 Section(header:)를 이용하면, 스크롤 시 자동으로 위에 걸쳐지는 효과를 사용하면 구현하기가 매우 쉬움단, List의 속성에 .listStyle(.plain)을 해줘야 section으로 넣었던 UI들이 sticky header로 동작함구현List 선언struct ListStickyHeaderView: View { var body: some View { NavigationView { ..
SwiftUI Instruments 에 중요한 것SwiftUI Instruments를 보면 빨간선과 주황선이 보이는데, 이 정보들은 중요한 것임(아래 사진 관련 내용: https://ios-development.tistory.com/1815)빨간색 선 기준기준: View의 body 계산 시간이 1.0ms를 초과할 때 표시의미: 매우 심각한 성능 저하 상태영향: 120Hz 디스플레이(ProMotion) 환경에서 프레임당 가용 시간은 약 8.3ms인데, 뷰 하나 그리는 데 1ms를 넘겨버리면 실제 렌더링 루틴 전체가 꼬이며 눈에 띄는 Hitch(버벅임)가 발생주황색 선 기준기준: View의 body 계산 시간이 0.5ms를 초과할 때 표시의미: 성능 저하 주의 단계영향: 당장 화면이 멈추지는 않더라도, 이런..
탭했을 때 키보드 내리기다른 제스처도 동시에 동작하게끔 하기 위해 보통 아래처럼 simultaneousGesture를 사용하여 tapGesture 이벤트를 얻어서 isFocused = false로 처리struct ContentView: View { @State private var text: String = "" @FocusState private var isFocused: Bool var body: some View { ScrollView { VStack(spacing: 16) { TextField("텍스트를 입력하세요", text: $text) .textFieldStyle(.roundedBor..
전체빌드 개념단어 그대로 캐싱 없이, a부터 z까지 모든 파일을 빌드하는 것 cf) 빌드란?소스 코드들을 실행 가능한 형태로 메모리에 올리는 것증분빌드 개념증분 빌드(Incremental Build)는 “변화가 영향을 미치는 범위만 찾아서 필요한 파일만 재컴파일”하는 방식Xcode는 이를 위해 “의존성 그래프(Dependency Graph)”와 “인터페이스 파일(.swiftinterface / .dia)”을 사용증분빌드 원리빌드 시스템은 파일마다 해시(hash) 또는 timestamp를 기록해 두고 있다가 사용FileA.swift → 해시값 0xA2B3 FileB.swift → 해시값 0xC883Swift는 모든 .swift 파일 내부의 타입, 프로토콜, extension 등을 분석해 파일 간의 의존성 ..
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컴파일러가 어떤..