ios 131

[ReactorKit] ReactorKit 공부하기 #6 transform

ReactorKit 공부하기 #6 transform 리액터킷에서 다른 리액터와 합성을 통해 이벤트를 전달받는 transform을 공부해보고자 함.  결과물 UI  ReacotrKit Global StatesReactorKit의 경우에는 앱 상태에 대한 global state를 정의하지 않음.Global State를 정의하기 위해 어떠한 방법이든 자유롭게 사용 가능Global State를 사용하기 위해 BehaviorSubject, PublishSubject 심지어는 Reactor 자체를 사용할 수 있음.ReactorKit은 앱에서 특정 기능을 위해 Global State를 강제하지 않음장점: 이에 따라 구현의 자율성 증가단점: 개발자의 숙련도에 따라 난해해질 수 있음.Action -> Mutation -..

[iOS] UICollectionView CompositionalLayout

UICollectionView CompositionalLayout 공식문서를 열었는데 샘플코드가 14.0 이상으로 나옴. - 글 제일 하단에 참고 부분에 있음 취업 준비하면서 13.0을 기준으로 공부하고 있어서 Xcode를 통해 열어보니까 다행히도 13.0 이상에서도 사용이 가능했음 이전에는 DataSource만 SnapShot을 사용하고 레이아웃은 FlowLayout을 사용했었는데, 이 부분마저도 공부해보려고 함. ✅ SnapShot + FlowLayout 포스팅 2022.09.04 - [iOS] - [iOS] UICollectionView에 대해서 알아보기 7편 (UICollectionViewDiffableDataSource) [iOS] UICollectionView에 대해서 알아보기 7편 (UICo..

[ReactorKit] ReactorKit 공부하기 #5 RxTodo 따라잡기 (3)

ReactorKit 공부하기 #5 RxTodo 따라잡기 (3)목표: Service 도입을 위해 RxTodo 코드 분석하기 RxTodo Service쪽 코드 분석ServiceProvider.swiftServiceProvider는 ServiceProviderType을 상속받아서 provider의 self로 주어 구현하는 ServiceProvider를 채택할 클래스에서 구현protocol ServiceProviderType: class { var userDefaultsService: UserDefaultsServiceType { get } var alertService: AlertServiceType { get } var taskService: TaskServiceType { get }}final cla..

[ReactorKit] ReactorKit 공부하기 #4 RxTodo 따라잡기 (2)

[ReactorKit] ReactorKit 공부하기 #4 RxTodo 따라잡기 (2) 코드를 하나씩 따라쳐보면서 구현해 볼 예정  구현 코드어려웠던 점Action의 경우에는 정의하기가 그리 어렵지 않았으나, Mutation을 어떻게 줘야할 지 생각을 많이했었음.//// TaskListViewController.swift// AppleCollectionView//// Created by Hamlit Jason on 2022/09/07.//import UIKitimport ReactorKitfinal class TaskListViewController: UIViewController, View { var disposeBag = DisposeBag() let reactor: TaskListVi..

[ReactorKit] ReactorKit 공부하기 #3 RxTodo 따라잡기 (1)

ReactorKit 공부하기 #3 RxTodo 따라잡기 (1) 리액터 킷을 공부하는데 RxTodo를 보면서 따라해보자우선 ReactorKit의 Create기능을 스스로 구현해보기결과물 영상     리액터 간단 정리직접 따라하고 쳐보면서 사용법이 이해가 되기 시작함. ViewController에서 map을 통해 원하는 Action으로 변경해서 reactor에 전달reactor에서는 mutate함수를 통해서 이전 상태를 받아서 다음 상태를 반환reduce는 해당 로직 처리그리고 변경된 값은 viewController에서 map을 통해 reactor.state를 가져다가 사용 ViewController 코드 구현base에 존재하는 Reactor 제대로 연결해야 함. //// TaskListViewContr..

Realm 간단하게 구조 적용하기

Realm 간단하게 구조 적용하기 Relam을 도입했는데, 구현과 인터페이스를 분리해 재사용을 높이고자 함.Realm 간단하게 적용해 볼 예정 예제 영상   시도한 것Realm을 사용하는데 update 메소드를 조금 변경해봄셀 내에 많은 데이터들이 있는데, 셀에서 일부 데이터만 수정하는 경우 업데이트를 시도근데 어떤 값을 설정할지 지정해주면 하나의 메서드로 처리해 응집도 및 재사용성을 높일 수 있음 추후에 Note와 관련하여 Service를 만드는 방향으로 수정합니다.  Realm 설계 구조 변경애플에서는 DataModel이라고 해서 각 모델 단위(?)로 관리하는 것처럼 보임.개인적으로는 애플 예제 형태로 운영되면 너무 많은 레이어들이 모델에 의존하게 되는 형태라 결합도가 너무 높아질 것 같다는 생..

[Realm] Realm migration (Swift)

Realm migration (Swift) 해당 포스팅은 2번에 걸쳐 업데이트 될 예정입니다. 1. isBookmarked 필드를 추가하는 v2 마이그레이션 (✅ 2022.09.05 21:49 작성완료) 2. v2데이터를 사용하다가 또 다시 v3로 마이그레이션 (🟡 Not yet) 다들 알다시피 Realm의 경우에는 앱 설치 후 모델을 변경하면 migration이 필요함. 이 작업을 예전에 UserDefault로 Kuring 프로젝트에서 다른 개발자님이 하 셨었는데, 나도 도전 🔥 모델을 변경하고 앱을 딱 실행하면? 마이그레이션 하라는 문구가 나타남 일단 기존 모델로 저장된 값들을 Realm-Studio(Realm browser도 된다는데, 나 잘 안되어서 일단 이거 씀) 확인해보면 위 사진처럼 4개의 ..

[iOS] 내가 보려고 기록하는 Realm 구조 설계하기 및 @escaping

내가 보려고 기록하는 Realm 구조 설계하기 및 @escaping 해당 포스팅은 제 기본 지식에 자주하는 실수를 기록하기 위해 작성했습니다. @escaping과 @nonescaping가 정말 궁금하다면 다른글을 찾아봐주세요. 자 이번에 Realm을 사용하는데 @escaping을 사용하기로 함. 설계를 UML로 하는데, 간단하게 UML을 사용해서 Static이나 Property Wrapper는 어떻게 표현해야하는지 고민이 되었다. Realm을 UML로 표현해보았다. (참고)를 보면 static의 경우에는 밑줄로 표현한다고해서 우선 이렇게 작성해 보았다. Realm을 학습을 하고있어서 어떻게 설계해야하는지 잘 모르지만, 해당 모델에서 처리하고자 했다. 셀에서 지워진 정보가 CollectionView에 반영..

[iOS] UICollectionView에 대해서 알아보기 5편 (북마크 구현 및 모델 관리)

UICollectionView에 대해서 알아보기 5편 (북마크 구현 및 모델 관리) 이번에는 bookmark 기능을 구현해 볼 예정이다. 이전에도 북마크를 구현했었고, 모델을 잘 만들어서 관리하고 있었다. 그러니까 기록용의 의미가 더 큼! UI 우선 모델을 변경했다. 서버에서 내려오는 데이터는 id, name, avatar, job, age뿐이지만, isBookmark를 추가해서 북마크 여부를 나타내는 프로퍼티를 만들었다. Equtable을 채택해서 멤버의 구조체의 5가지 정보가 다 같으면 같은 객체로 판단하게 했다. 여기 MemberAPI가 Member에 해당하는 조합을 일정하게 주는게 아니라, id, name, avatar, job, age를 랜덤하게 조합해서 주는것 같았다. id는 고유값이 아니라 ..