iOS 32

MVVM(5) - Coordinator

이번글은 Coordinator Pattern에 대한 마지막 글입니다. 앞선 글들에서 Coordinator Pattern으로 화면을 전환하는 법 그리고 Child Coordinator를 삭제하는 법에 대해서 알아보았습니다. 이번에는 Child Coordinator를 삭제하는 법에서 조금 더 수정된 형태를 소개해드려 볼까 합니다. 4. childCoordinator를 삭제 하는 법 (2) navigation pop 혹은 dismiss 이벤트를 캐치하기 위해서 UINavigationControllerDelegate와 UIViewControllerTransitionDelegate를 사용하는 것 까지 해봤는데 여기서 2%쯤 부족하다고 생각되는 부분이 있습니다. 바로 다음과 같은 상황입니다. 다음과 같이 하나의 C..

iOS 2023.01.05

MVVM(4) - Coordinator

2. 뷰 전환은 어디에서 하는가 전글에서 다루는 Coordinator의 연장선입니다. 전글에서는 View와 Coordinator가 소통,화면 전환하는 법 그리고 Coordinator의 기본적이 구성에 대하여 글을 썻습니다. 그리고 말씀 드리는 와중에 Coordinator패턴에서는 객체를 잃지 않으려고 childCoordinator를 사용한다고 말했습니다. 이번에는 화면을 닫으면서 혹은 뒤로가면서 Coordinator가 이를 어떻게 감지하고 childCoordinator에서 삭제하는 지에 대하여 글을 써보겠습니다. 3. childCoordinator를 삭제 하는 법 우선 Coordinator를 쓰지 않을때는 어떻게 할까요? 그냥 self.navigationController?.popViewControlle..

iOS 2022.12.27

MVVM(3) - Coordinator

2. 뷰 전환은 어디에서 하는가 전글에 이어서 이번에도 뷰 전환은 어디에서 이루어지는가에 대해 알아보겠습니다. 전글에서는 뷰 전화를 View에서 하는 법과 ViewModel에서 하는 법을 알아보았고 이번 글에서는 제 3의 책임자를 두어 화면 전환을 이루는 패턴 Coordinator 패턴에 대해서 알아보겠습니다. 1. Cooridnator의 기본 우선 coordinator의 기본 뼈대 부터 간단하게 보겠습니다. Coordinator 패턴은 Soroush Khanlou라는 개발자로부터 탄생한 개념입니다. Khanlou의 글 중에서 이런말이 나옵니다. Don’t forget, the view controller base class is prefixed with UI. It’s view object, and h..

iOS 2022.12.23

MVVM (2)

2. 뷰 전환은 어디에서 하는가 mvvm에 관한 두번째 글은 뷰 전환은 어디에서 하는 것인가에 대한 글입니다. 화면 전환에도 몇 가지 방법들과 개념이 제시되었고 크게 보면 다음과 같은 3가지 개념이 주를 이루고 있다. 화면 전환은 화면에 관한것이니 view에서 핸들링 하는게 맞다. 혹은 view는 자기 화면에 대한 것만 들고 있어야 하니 viewModel에 있어야 한다. 혹은 viewModel, view둘다 화면전환에 있어서 책임을 가지고 있는 것이 옳지 않아 제 3의 책임자를 두어야 한다. 이중에 어떤게 맞고 어떤게 틀리다라는 것은 없습니다. 자신의 프로젝트 상황에 맞춰서 개념을 선택하고 개발하면 됩니다. 1. 첫번째 방법: view에서 화면전화 첫번째는 view에서 뷰전환을 하는 방법입니다. 보통 U..

iOS 2022.12.19

MVVM (1) - 바인딩 방법들

이번에는 MVVM에 관하여 글을 한번 쓰겠습니다. MVVM이 무엇인지에 대하여는 워낙 많은 블로그에 소개되어 있어 생략하고 MVVM에 대한 저의 주관적인 관점을 중점적으로 설명 해드리겠습니다. 1. 바인딩 방법들 첫째는 바인딩 방법들에 관한 것 입니다. MVVM이라고 하면 제 생각엔 ViewModel이 가장 중요한 컴포넌트인 것 같습니다. ViewModel과 View를 바인딩 함에 있어 크게 3가지 정도의 분파가 있는 것 같습니다. 1. 첫번째 방법: Protocol 및 콜백 이용한 바인딩 방법 제 3의 라이브러리에 의지하지 않고 View와 ViewModel을 바인딩하는 방법입니다. 대충 요런식입니다. 필자는 이게 MVVM이다 라고 처음 봤을때 그럼 내가 해오던 MVP와 뭐가 다른건지 굉장한 혼돈이 왔었..

iOS 2022.12.09

KeyChain vs UserDefaults(2)

KeyChain 이번에는 저번 UserDefaults에 이어서 KeyChain에 대해서 알아보겠습니다. UserDefaults는 저번 시간에 .plist 파일에 key-value의 형태로 저장된다고 했습니다. 그리고 보안성도 좋지는 않다고 설명드렸습니다. 그럼 KeyChain은 어떤지 한번 알아보겠습니다. 1. 구성도 - KeyChain Service API 애플의 공식적인 문서를 보면 KeyChain에 대하여 다음과 같이 정의하고 있습니다. The keychain services API helps you solve this problem by giving your app a mechanism to store small bits of user data in an encrypted database call..

iOS 2022.11.22

KeyChain vs UserDefaults(1)

UserDefaults 이번에는 UserDefaults 와 KeyChain에 대해서 알아보겠습니다. 저는 개인적으로 처음 swift를 입문할때 유투브 하울님의 코딩 강의에서 swift,ios 1도 모르는 상태로 무작정 메모장 만들기를 따라했었어요. 이때 하울님이 데이터를 저장할때 UserDefault를 쓰는 거 보고 아 그냥 데이터 저장할 때 쓰는 거구나 생각하고 이게 persistant data인지도 몰랐습니다 ㅋㅋ. 그리고 이 글을 쓰게 된 경위가 창피하지만 여태까지 KeyChain을 안쓰고 모르고 있었습니다. 그래서 이참에 2 가지 다 소개하는 시간을 가지려고 합니다. 그래서 UserDefaults가 무엇이냐? 간단하게 말해서 앱 '안'에 있는 비휘발성 데이터 저장소라고 생각하시면 됩니다. 서버에 ..

iOS 2022.11.17

some 과 any 그리고 Any?(2)

책 읽는게 재밌어서 책만 읽고 개발쪽은 약간 도외시 했었네요. 경제, 금융 이야기가 왜케 재밌는지... 각설하고 some에 이어서 any에 대해서도 알아보겠습니다. any any는 swift 5.6에서 처음으로 등장한 신택스 입니다. some을 알기 전에 Opaque Type을 알아야 했듯이 any를 알기 전에는 Existential Type을 먼저 알아야 합니다. Existential Type 직역 하면 실존? 타입 정도가 되겠죠? Existential Type이라는 용어도 이번에 any라는 용어를 도입하면서 처음으로 생긴 단어입니다. 그래서 새로운 거냐구요? 그건 또 아닙니다. 우리가 익히 써왔던 문법에 명칭을 새로 만들어줬다고 생각하면 됩니다. 그럼 Existential Type이 뭘까요? Prot..

iOS 2022.10.26

some 과 any 그리고 Any?(1)

우연히 블로그를 돌아다니며 코드 읽기를 하던중 any라는 키워드를 보게 되었습니다. swift 4.x 대 부터 개발을 시작하면서 Any는 보더라도 any는 처음 보더라구요 그래서 노트 해둔 뒤 늦게나마 글을 쓰게 되었습니다. some은 SwiftUi가 나온 시점에서 Any는 뭐 유서 깊으니까 그러려니 했습니다. 하지만 any라는 이건 뭘까요? 그럼 우선 some, Any에 대해서 알아보겠습니다. some swiftUi를 한번이라도 보시고 사용해보셨으면 대충이나마 알거라 생각합니다. WWDC에 따르면 And the some keyword that we use here is a switch feature that lets swift infer out inter return type automatically ..

iOS 2022.10.12