본문 바로가기

Swift 개발 이야기28

예제로 살펴보는 MVI Design Pattern with RxSwift 안녕하세요 여러분? 저번 시간에는 MVVM 디자인 패턴을 살펴보았는데요. 이번에는 약간 생소한 MVI 라는 패턴을 들고 찾아왔습니다. MVI 는 Model - View - Intent 로 구성되어 있는 단방향(Uni-Directional) 아키텍쳐 중 하나인데요. MVVM 의 경우 VM 이 Model 과 View 의 사이에서 양방향으로 통신하기 때문에 자칫 잘못하다간 VM 이 비대해지는 부작용이 발생할 수가 있습니다. 이러한 부작용을 해결하기 위해서 MVI 의 경우는 뒤를 돌아보지 않는 단방향 상남자의 아키텍쳐라고 볼 수 있겠습니다. View 에서 액션을 입력 받으면 Intent 에서 모델의 상태를 변환시키고, 그 변환된 상태의 모델을 뷰에 전달하여 유저에게 보여준다고 보시면 되겠습니다. 그런데 이렇게 .. 2020. 4. 8.
예제로 살펴보는 MVVM Design Pattern with RxSwift 안녕하세요 오늘은 아키텍쳐에 대해 좀 살펴보려고 합니다. iOS 개발자 분들이라면 기본적으로 MVC 패턴에 익숙하실텐데요 Massive View Con... 아,,닙니다. Model-View-Controller 패턴입니다 ;; 뷰컨트롤러에 여러가지 로직들이 들어가게 되어 뷰컨트롤러가 굉장히 무거워지게 되는 패턴이기 때문에 요즘 개발자분들은 많이 사용을 안하시려고 하는 것 같습니다. 그래서 요즘 핫하게 떠오르고 있는 대안이 바로 MVVM 인데요. Model-View-ViewModel 로 구성되어 있는 아키텍쳐입니다. MVVM 에서는 View 는 절대 Model 을 알 수 없고, ViewModel 이 Model 과 통신을 해서 View 에 해당 사항을 전달해주고,(Presentation Logic) 전달받은.. 2020. 4. 7.
iOS13 이상에서 스토리보드 없이 시작하기! 저는 스토리보드를 별로 좋아하지 않아서 신규프로젝트를 할때 무조건 스토리보드를 날리고 시작하는데요. 이전에는 AppDelegate 부분에서만 작업을 해주면 되었지만 SceneDelegate 가 나오면서 추가적으로 처리를 해줘야하는 부분이 생겼습니다. 일단 기존처럼 시원하게 Main.storyboard 파일을 지워버립시다. 그리고 Info.plist 부분에서 Application Scene Manifest -> Scene Configuration -> Application Session Role 에서 Storyboard name 을 삭제해줍시다. 이번엔 AppDelegate.swift 부분으로 가볼까요? 예전과는 달리 window 가 없습니다만, 걱정하실 거 없습니다. 추가해주시면 됩니다. iOS 13 이.. 2020. 4. 3.
Insertion Sort Swift 오늘은 Insertion Sort 를 Swift 로 간단하게 구현해보도록 하겠습니다. 시간복잡도는 O(n^2) 으로 최적화된 정렬은 아닙니다만, 가장 간단하게 구현할 수 있는 정렬 중 하나라고 할 수 있겠습니다. func insertionSort(_ arr: [Int]) -> [Int] { // O(n^2) var a = arr for i in 1.. 0 && a[j] [Int] { // O(n^2) var a = arr for var i in 1.. 0 && a[i] < a[.. 2020. 3. 24.