UIKit18 싱글톤 앨범 이미지 서비스 만들기 with Rx or Combine #1. PHPickerViewController 다루기 PHPickerViewController를 이용해서 여러 앨범 내부 이미지의 이미지 고유 ID를 가져오기 기본 구조 import Foundation import Photos import PhotosUI import Combine import UIKit final class PhotoService{ static let shared = PhotoService() var passthroughIdentifiers = PassthroughSubject() // RxSwift 사용 시... // var passthroughIdentifiers:PublishSubject = .init() private weak var viewController: UIViewCo.. 2023. 11. 28. UIButton State 애니메이션용 모듈 만들고 적용하기 UIButton.Configuration을 기반으로 만든 모듈이다. iOS 15 이상 적용 가능하다는 의미 Meet the UIKit button system - WWDC21 - Videos - Apple Developer Every app uses Buttons. With iOS 15, you can adopt updated styles to create gorgeous buttons that fit effortlessly into your interface... developer.apple.com UIButton.Configuration 참고용 WWDC 영상 기존에 버튼 애니메이션을 구성하는 코드 final class CustomButton:UIButton{ // 크기 변화만 발생하는 코드 init(.. 2023. 11. 25. CustomDiffableDataSource와 MVVM으로 Cell 데이터 관리하기 #0 #0 - 기존 코드의 문제점과 이를 해결할 구조를 설계하는 과정 문제점 해결을 위한 전체 구상도 ViewModel 내부에서 데이터 베이스의 연동 작업과 네트워크 서비스 등 다양한 서비스 작업을 구현한다. 옵저버를 이용하여 값의 변화를 방출해 DiffableDataSource에서 필요한 작업, 뷰 컨트롤러 내부 다양한 뷰 컴포넌트에서 필요한 작업을 분리할 수 있다. DiffableDataSource 실제 프로젝트 적용시 문제점 ⛔ 요약: 엄청난 양의 작업들을 뷰 컨트롤러에서 처리해야함으로 뷰 컨트롤러의 코드 양이 늘어나고 로직 구성이 엄청나게 복잡했다. 1. Realm 데이터베이스용 모델 데이터와 DiffableDataSource용 모델 데이터를 따로 관리해야한다. ⇒ 관리용 코드를 작성해야한다. Diff.. 2023. 11. 18. 다양한 셀을 그리는 DiffableDataSource 데이터 구성하기 #2 AnyModelStore의 필요성접근 문제 → 데이터 Collection 아이템 접근을 first로 한다. (순회 발생)var musicRegistration: UICollectionView.CellRegistration{ UICollectionView.CellRegistration { cell, indexPath, itemIdentifier in guard itemIdentifier.itemType == .music, let data:MusicItem = self.musicItems.first(where: {$0.id == itemIdentifier.id}) else {return} } }업데이트 문제 → 데이터 Collection .. 2023. 11. 10. 이전 1 2 3 4 5 다음