내용 UICollectionViewDataSource 를 대체하여 DiffableDataSource 를 적용해보자 코드 중심적으로 정리하여 추후에 사용할 때 도움이 되어보자 👉 들어가기 전 관련 글은 다음에 정리해뒀습니다. iOS) Diffable Data Source 알아보기 iOS) DiffableDataSource 사용해서 collection view 를 업데이트해보자(개발자 문서) 👉 적용해보자 사용할 데이터 모델을 살펴보겠습니다. public struct ReceivedTag: Codable { let adjective: String let cardTagID: Int // ... enum CodingKeys: String, CodingKey { case adjective, icon, noun c..
개발자 문서를 참고하여 단계별로 알아보고 진행하여 보겠습니다. Updating Collection Views Using Diffable Data Sources | Apple Developer Documentation Overview 주로 UICollectionViewDataSource 를 채택하여 컬렉션 뷰를 채웁니다. 복잡한 데이터 추가, 삭제 및 이동 핸들링 과정을 피하기 위해서 UICollectionViewDiffalbeDataSource 객체를 사용할 수 있습니다. diffable data source 가 저장하는 section 과 item identifiers 는 변하지 않고 안정적인 identifiers 입니다. 이는 UICollectionViewDataSource 의 안정적이지 않은 indi..
내용 Moya 로 구축한 서버통신 환경에서 서버통신을 진행하고 RxSwift 를 사용해보자 👉 들어가기 전 우선, Moya 깃허브에서 제공하는 RxSwift 문서를 살펴보겠습니다. Moya 의 MoyaProvider 는 몇 가지 선택적인 RxSwift 구현을 제공합니다. request() 메소드를 호출하고 요청이 완료될 때 콜백 클로저를 제공하는 대신 Observable 을 사용합니다. 이는 success 와 error 를 방출하는 trait 의 한 종류인 Single 에 해당합니다. provider.rx.request(.zen).subscribe { event in switch event { case .success(let response): // do something with the data cas..
text field 를 통해 키보드를 사용하게 되면 어떻게 되는지 알아보겠습니다. 우선, 결과는 WWDC21 Customize and resize sheets in UIKit 에서 등장합니다. 키보드와 관련된 스크립트를 살펴보겠습니다. medium 높이의 sheet 는 automatic keyboard avoidance 를 지원해서 keyboard 를 계산해서 커지거나 축소된다고 합니다. 우리는 결과를 알지만, custom detent 의 높이에도 자연스럽게 적용되는지 확인해보겠습니다. 👉 확인해보자 두 가지를 살펴보겠습니다. 첫 번째는 UISheetPresentationController 의 detents 프로퍼티에 두 가지 detent 를 설정하겠습니다. 코드 let sheetVC = SheetVC(..
👉 내용 dimming view 의 alpha 값을 수정해보겠습니다. 결과적으로 alpha 값을 원하는대로 수정하지 못했고, 뷰 계층의 접근방법과 문제를 해결하기 위해 고민한 과정을 글로써 작성하였습니다. 👉 dimming view alpha 수정 우선, 개발자 문서에서는 alpha 에 대한 안내가 없기 때문에 view 에 접근해서 프로퍼티를 수정해보기 위해 view hierarchy 를 확인해보았습니다. view hierarchy 를 확인해보면 background alpha 기본값은 0.2 로 설정되어 있습니다. 이를 수정해보겠습니다. UIDimmingView 에 접근하기 위해서 UIWindowScene > UIWindow > UITransitionView > UIDimmingView 인 것을 알아야 ..
collection view 에서 선택된 셀에 대해서 알아보고자 할 때 indexPathsForSelectedItems 를 사용하였습니다. 개발자 문서를 살펴보겠습니다. indexPathsForSelectedItems | Apple Developer Documentation The index paths for the selected items. 선택한 항목이 없다면 nil 입니다. var indexPathsForSelectedItems: [IndexPath]? { get } // Optional([[0, 0], [0, 1]]) 와 같이 출력. 다음과 같은 기능을 구현하고자 하였습니다. cell 이 하나라도 선택될 때 cancelButton 은 등장하고, deleteButton 은 활성화 cell 이 모두..
Xcode 15(15A240d) 업데이트 이후 YPImagePicker 오픈소스 라이브러리에서 저장 프로퍼티가 @available 를 가지며 생기는 에러가 있었습니다. 이를 fork 해서 직접 저장 프로퍼티를 삭제해볼까 생각도 해보고 이번 Xcode 업데이트와도 관련있는거 같아서 기다려봤습니다. 그러던 중 2023.9.26 기준으로 업데이트 되었습니다! https://github.com/Yummypets/YPImagePicker/releases/tag/5.2.2 아래 커밋 기록에서 @available 를 가지는 저장 프로퍼티가 사라졌습니다. 해당 에러를 겪게 되면 pod update 를 통해서 YPImagePicker 버전을 5.2.2 로 업데이트하면 됩니다.(cocoaPods 1.13.0 기준) htt..
내용 UISheetPresentationController 을 사용해서 바텀시트 만들기 높이를 커스텀하여 내가 원하는 바텀시트의 높이를 설정해보자 바텀시트의 둥글기, grabber의 유무에 대해서 설정해보자 WWDC21 Customize and resize sheets in UIKit 에서 소개된 UISheetPresentationController을 활용한 바텀시트에 대해서 알아보겠습니다. 개발자 문서를 살펴보겠습니다. UISheetPresentationController | Apple Developer Documentation iOS 15와 iPadOS 15부터 적용가능합니다. UISheetPresentationController 를 사용하면 뷰컨트롤러를 sheet 로 표현할 수 있습니다. 다음과 같..
- SwiftUI
- CloneCoding
- projectsetting
- github
- WidgetKit
- Objective-C
- RxCocoa
- 2022 KAKAO TECH INTERNSHIP
- configurable widget
- rxswift
- MVVM
- WWDC
- watchOS
- Notification
- YPImagePicker
- WWDC22
- Algorithm
- IOS
- Swift
- APNS
- containerBackground
- Widget
- 서버통신
- Protocol
- OpenSourceLibrary
- async/await
- UserDefaults
- Firebase
- urlsession
- MOYA
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Total
- Today
- Yesterday