일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Xcode
- 애니메이션
- 스위프트
- SWIFT
- uitableview
- rxswift
- clean architecture
- UICollectionView
- Clean Code
- 리펙터링
- 클린 코드
- UITextView
- swift documentation
- Refactoring
- tableView
- swiftUI
- ribs
- ios
- combine
- Human interface guide
- MVVM
- Observable
- 리팩토링
- collectionview
- 리펙토링
- Protocol
- uiscrollview
- map
- RxCocoa
- HIG
- Today
- Total
목록iOS 응용 (SwiftUI) (23)
김종권의 iOS 앱 개발 알아가기
1. Live Activity (ActivityKit, Dynamic Island, 잠금 화면) - 개념 2. Live Activity (ActivityKit, Dynamic Island, 잠금 화면) - UI 구현 방법 3. Live Activity (ActivityKit, Dynamic Island, 잠금 화면) - UIKit에서 다이나믹 아일랜드 적용 방법 Live Activity 개념 실시간 현황을 Dynamic Island나 잠금화면 또는 아이폰 화면에 보여주기 위해 나온 개념 Live Activity는 iPhone에서만 가능 Live Activity 특징 Live Activity 업데이트는 오로지 ActivityKit으로 접근해야 가능 최대 8시간 지속 가능 (8시간 경과 시 시스템에 의해 자..
List, Grid, FittedGrid 개념 List - 1줄로 된 스크롤 뷰 Grid - n줄로 된 스크롤 뷰이며, 각각의 크기가 Fixed로 정해진 값으로 표출 FittedGrid - 이미지와 같은 경우, width는 디바이스의 크기만큼 고정하면서 height값은 이미지의 비율만큼 유지하는 그리드 뷰 List Grid FittedGrid 구현 아이디어 모두 ScrollView, Stack, ForEach, NavigationLink로 구현 List에도 List라는 SwiftUI에서 제공해주는 컴포넌트가 있지만, 디폴트값으로 패딩이 적용되어 있고 disclosure indicator가 있는 경우가 존재하여 불필요 예제에 사용할 API 사용 API - 이미지 리스트를 불러오는 Flickr https:/..
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) 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)..