일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- rxswift
- ios
- 클린 코드
- 리펙터링
- MVVM
- HIG
- clean architecture
- 리팩토링
- swiftUI
- Protocol
- UICollectionView
- Clean Code
- uiscrollview
- uitableview
- map
- collectionview
- UITextView
- Human interface guide
- 리펙토링
- tableView
- combine
- Observable
- 애니메이션
- swift documentation
- RxCocoa
- Refactoring
- ribs
- SWIFT
- Xcode
- 스위프트
- Today
- Total
목록swiftUI (116)
김종권의 iOS 앱 개발 알아가기
1. Pagination 방법 (페이지네이션, Combine) - 기초 2. Pagination 방법 (페이지네이션, Combine) - 메인 스레드 최적화, 이미지 캐싱 이미지를 불러올때 고려할 것 url을 가지고 이미지를 불러올 때, main thread에서 이미지를 가져오면 앱이 버벅이는 현상이 존재 심지어 AsyncImage를 통해서 async하게 이미지를 불러와도 앱이 버벅이는 현상이 존재 background thread에서 url을 통해 이미지를 불러오도록 구현 Image Caching 적용을 통해 조금 더 빠른 로딩이 되도록 구현 이미지 캐싱이 없다면 매번 url을 네트워킹을 통해서 이미지를 획득하므로 캐싱이 필수 구현 아이디어 url을 통해 이미지를 불러오는 코드는 background th..
1. 위젯 Widget 사용 방법 - WidgetKit, WidgetFamily 2. 위젯 Widget 사용 방법 - API 데이터 로드와 위젯UI 업데이트 3. 위젯 Widget 사용 방법 - 위젯 딥링크 구현 방법 (widgetURL, scenePhase, sheet) 4. 위젯 Widget 사용 방법 - 위젯 이미지 로드 방법 5. 위젯 Widget 사용 방법 - Provisioning Profile 등록 (WidgetExtension) Provisioning Profile 등록 과정 Xcode에서 WidgetExtension 번들 아이디 확인 Apple Developer에서 ID 생성 + 버튼 클릭 App IDs 클릭 > 생성 Provisioning Profile 2개 생성 iOS App Deve..
1. 위젯 Widget 사용 방법 - WidgetKit, WidgetFamily 2. 위젯 Widget 사용 방법 - API 데이터 로드와 위젯UI 업데이트 3. 위젯 Widget 사용 방법 - 위젯 딥링크 구현 방법 (widgetURL) 4. 위젯 Widget 사용 방법 - 위젯 이미지 로드 방법 5. 위젯 Widget 사용 방법 - Provisioning Profile 등록 (WidgetExtension) 위젯에 사진 로드 방법 이미지가 아닌 데이터는 상관 없지만, 위젯에서는 이미지를 async하게 로딩하는것을 지원하지 않으므로 sync하게 수행해야함을 주의 이미지 캐시를 사용하여, 딥링크 처리하는 쪽에서도 쉽게 처리되도록 구현 구현 예제 프로젝트 생성 -> 1번 포스팅 글에서 알아본 대로 Widge..
1. 위젯 Widget 사용 방법 - WidgetKit, WidgetFamily 2. 위젯 Widget 사용 방법 - API 데이터 로드와 위젯UI 업데이트 3. 위젯 Widget 사용 방법 - 위젯 딥링크 구현 방법 (widgetURL, scenePhase, sheet) 4. 위젯 Widget 사용 방법 - 위젯 이미지 로드 방법 5. 위젯 Widget 사용 방법 - Provisioning Profile 등록 (WidgetExtension) Widget 준비 2번 포스팅 글에서 구현한 위젯 코드 준비 import WidgetKit import SwiftUI import Intents struct Provider: IntentTimelineProvider { func placeholder(in conte..
1. 위젯 Widget 사용 방법 - WidgetKit, WidgetFamily 2. 위젯 Widget 사용 방법 - API 데이터 로드와 위젯UI 업데이트 3. 위젯 Widget 사용 방법 - 위젯 딥링크 구현 방법 (widgetURL) 4. 위젯 Widget 사용 방법 - 위젯 이미지 로드 방법 5. 위젯 Widget 사용 방법 - Provisioning Profile 등록 (WidgetExtension) Widget에 표출할 API 준비 텍스트를 불러오는 API url https://meowfacts.herokuapp.com/?count=1 response { "data":[ "The way you treat kittens in the early stages of it's life will rend..
1. 위젯 Widget 사용 방법 - WidgetKit, WidgetFamily 2. 위젯 Widget 사용 방법 - API 데이터 로드와 위젯UI 업데이트 3. 위젯 Widget 사용 방법 - 위젯 딥링크 구현 방법 (widgetURL) 4. 위젯 Widget 사용 방법 - 위젯 이미지 로드 방법 5. 위젯 Widget 사용 방법 - Provisioning Profile 등록 (WidgetExtension) Widget 사용 방법 Minimum Deployment Target: iOS 14+ Apple에서는 매우 편리하게 Widget을 사용할 수 있도록 구현 Xcode -> File -> Target Widget Extension > Next > 이름 입력 후 Finish cf) Include Conf..
Swipe Down To Dismiss 구현 아이디어 .gesture()와 DragGesture를 사용하여 drag 제스쳐 구현 (gesture와 DragGesture 개념을 모른다면, 이전 포스팅 글 참고) gesture 안에서 y축이 얼마나 변했는지와, y축 velocity 값을 가지고 dismiss할것인지 결정 dismiss할때는 NavigationLink의 인수 중 Binding 프로퍼티인 isActive값을 false로 변경 구현 편리를 위해 CGSize extension으로 - operator 구현 extension CGPoint { static func - (lhs: Self, rhs: Self) -> Self { CGPoint(x: lhs.x - rhs.x, y: lhs.y - rhs.y)..
DragGesture drag 관련 액션 이벤트를 생성할때 사용 View 프로토콜을 따르고 있는 모든 곳에 .gesture()를 추가할 수 있는데, 이 gesture안에 들어가는 인스턴스가 DragGesture DragGesture()인스턴스에 onChanged, onEnded를 사용하여 드래그 이벤트 처리 var body: some View { Button("SomeButton") { print("tap button") } .gesture( DragGesture() .onChanged { gesture in } .onEnded { gesture in } ) } 뷰 드래그 구현 방법 프로퍼티 정의 draggedOffset: 드래그한 만큼 뷰가 움직이도록 binding에 사용될 프로퍼티 accumlated..