지금까지 RxSwift를 이용한 MVVM구조를 공부하고 적용해본적이 몇 번 있는데, Input Output 처럼 템플릿을 어느정도 만들어 놓고 사용할 수는 있지만 제대로 된 템플릿이 있지는 않다보니 항상 개발하면서 바인딩 하나하나 고민하고 검색을 하며 개발을 했었다.사실 MVVM 구조를 많이 개발 안해본것이 가장 큰 문제겠지만, RxSwift 역시 익숙치 않아 항상 개발하며 많은 시간이 걸렸다...그러던 중 RxSwift를 어느정도 써보면서 템플릿화 된 ReactorKit도 해보는게 어떻냐는 추천을 받았었다.이름을 들어본 회사에서 기술스택에 포함되어 있는것을 봤어서 한 번 적용해보자! 라는 마음으로, iOS를 처음 시작했을때 패캠 강의를 다 보고 만들어 출시한 앱을 ReactorKit으로 구조를 변경해보..
이번에는 간단하게 변경한 UI 2가지를 정리하려고 한다.TableView 무한 스크롤의 경우 구현 한 적이 있었지만, 최신곡, 인기곡 등 그렇게 버거울 정도의 데이터가 한번에 들어오는게 아니여서 그냥 한번에 데이터를 불러와 보여줬었지만노래 검색의 경우 "사랑" 단어를 포함한 노래만 4만곡 이상을 넘어가는 것으로 기억한다. 이것 때문이라도 페이징으로 데이터를 불러와야 할 거 같아 수정했다.TextField+UIDatePicker는 최신곡 조회 기능에 날짜를 선택하기위해 사용했었는데, DatePicker에 연, 월 만 선택하는 걸 원했지만 당시에 왜 속성이 없지? 하면서 그냥 Date 전체를 선택할 수 있게 했던게 아쉬워서 수정하게 됐다.수정을 위해 좀 알아보던 중 datePickerMode에 yearAnd..
iOS 강의를 다 듣고 바로 만들어서 배포해 본 앱이 있는데,, 이번에 다시 보니 정말 배웠던거 그대로 다 넣느라고 이상한게 많아서 수정하면서 정리를 하기로 했다.앱의 기능 중 맘에 드는 곡을 북마크 하면 따로 애창곡 리스트로 볼 수 있는 기능이 있는데, 당시에 UserDefaults를 알게되고 아! 이게 iOS에서 DB처럼 쓰는거구나! 하면서 그냥 사용했다.그러다 옛날 블로그 포스팅으로도 있지만 CoreData 존재를 알고나서 보니 멍청한 짓을 한 거 같아서 이것부터 수정하기로 했다.일단 둘의 차이점을 먼저 알아보자면UserDefaults는 App Setting 정보 같은 간단한 정보를 저장하기에 적합하고CoreData는 복잡하고 큰 데이터를 저장하기 적합하다.CoreData를 데이터베이스 자체로 알고..
CoreData는 UserDefaults와 비슷하다 생각할 수 있지만, UserDefaults는 간단한 데이터 정도의 저장이 적합하고, CoreData는 UserData, 큰 데이터를 저장하기 용이하다.여기서 CloudKit까지 같이 사용해 준다면, GoodNote 어플처럼 따로 서버를 두지 않고 여러 기기의 앱 내에서 데이터를 동기화시킬 수 있다.key-value형식이나 파일, 또는 CoreData Model 형식과 비슷하게 저장할 수 있는데 GoodNote는 파일 형식으로 저장해서 사용하는 것 같다.SwiftData가 곧 나와 금방 잊혀질 것 같으니 미리 공부해 적용해 봤다.구현먼저 프로젝트 생성시에 Use CoreData, Host in CloudKit을 체크하여 생성한다.체크하면 Persisten..
Diffable Data Source?Diffable DataSource는 WWDC 19에 발표되었고, IOS 13 이상 부터 사용가능하다.TableView, CollectionView의 DataSource에서 개선된 것임으로 둘 다 적용이 가능하다.변경된 Data를 적용해야 할 때 그냥 reloadData를 써버리거나, performBatchUpdates로 애니메이션 까지 신경쓰며 갱신을 해 줬지만, Diffable DataSource를 사용하면 첫 설정에 UI에 대한 설정 말고는 데이터가 변할 때 마다 apply만 해 주면 알아서 애니메이션 까지 자연스럽게 적용할 수 있다.적용하기먼저 결과 화면먼저 스토리 보드를 사용해 collectionView를 추가했다.Diffable DataSource를 사용하..
1. 프로젝트에 Firebase 추가https://console.firebase.google.com/?hl=ko 로그인 - Google 계정이메일 또는 휴대전화accounts.google.comFirebase console에 들어가 프로젝트를 생성하고 설명을 따라가면 쉽게 프로젝트를 생성할 수 있다.GoogleService-Info.plist 를 프로젝트에 추가하고2. Authentication에 사용할 로그인 제공업체 선택새 제공업체 추가를 누르고 구글, 애플을 추가했다3. 프로젝트에 애플 로그인 설정먼저 프로젝트에 들어가 Target의 Signing&Capabillities 를 선택하면 Capaillity를 추가할 수 있는 버튼이 있다.버튼을 누르고 Sign In with Apple을 누르면 추가 ..