02 Aug

swift mvvm 예제

이 데모에서는 간단한 보기를 그림으로 변환하여 MVVM의 기본 예제를 제공합니다. 우리는 단지 몇 가지 영화 세부 사항을 보여주고 기본 MVVM 흐름을 이해하려고합니다. 예를 들어, 게임이 끝날 때(팀 중 하나가 15점에 도달하면) 자동으로 시간을 중지하지 않고 플레이어 보기를 숨깁니다. 언제나 처럼, MVVM 디자인 패턴에 대 한 다양 한 의견이 있다. 저는 실용주의자이지 독단주의자도 아니고 절대주의자도 아닙니다. “ViewModel Swift 파일로 UIKit을 가져오지 마십시오” 또는 “뷰 컨트롤러에서 뷰 모델로 클로저를 전달하지 마십시오”와 같은 문구를 들을 때 “상황이 발생할 때 상황을 평가한 다음 가장 간단하고 안전한 방법을 선택합니다.” 아래 두 훈계의 예를 볼 수 있습니다. 예를 들어 애완동물을 입양하는 앱의 일부로 `애완동물 보기`를 만듭니다. 코드 예제 다음에 다음 추가: 일부 옵션에는 꽤 큰 라이브러리인 RxSwift가 포함되어 있으며 익숙해지는 데 시간이 걸립니다. 뷰 및 모델 레이어는 하나 이상의 컨트롤러에 의해 함께 접착됩니다. iOS 응용 프로그램에서, 예를 들어, 그 접착제는 뷰 컨트롤러, UIViewController 클래스의 인스턴스 또는 그 하위 클래스이다. 예는 자바 (안드로이드에 대한)로 작성되며, 자바에 익숙한 경우 (이는 스위프트에 훨씬 더 가까운 다음 객관적- C는 자바입니다), 당신은 그들이 어떤 iOS 모듈 (UIKit 또는 또는)를 가져 오지 않도록 ViewModel 개체 내에서 코드를 추가리팩터링하는 방법에 대한 아이디어를 얻을 수 있습니다 코어 위치 예) #6 – UITableViewDelegate 및 UITableViewDataSource 프로토콜을 준수하는 데 필요한 모든 메서드가 여기에 있는 이유는 무엇입니까? 이는 우려의 분리를 위반합니다. 아래 MVVM 예제에서 볼 수 있듯이 우아한 솔루션이 있습니다.

이 자습서에서는 Samsara를 예로 사용하여 MVVM 패턴을 적용합니다. 목표는 MVVM을 사용하여 삼사라의 설정 보기를 리팩터링하는 것입니다. MVVM의 도움으로, 나는 마른 보기 컨트롤러와 여러 보기 모델로 끝납니다. ViewModel 프로젝트 그룹으로 이동하여 새 Swift 파일 Dynamic.swift를 만듭니다. 예를 들어 ViewModel을 데이터 계층으로 분리하려고 했습니다. 이러한 이유로 업데이트하려는 데이터에 관계없이 다시 사용할 수 있는 일반 dataSource를 만듭니다. 복잡성을 진압하는 데 사용할 수 있는 가장 큰 도구 중 하나는 분할하고 정복하는 것입니다. Swift 확장 언어 구문 구성을 사용할 때 아래에서 볼 수 있듯이, 문제 사고 방식의 분리를 사용하여 작성된 작고 논리적으로 구성된 코드 조각은 복잡성을 제어하는 전투의 절반 정도일 것입니다. 또한 IOS를 위해 만든 도구를 체크 아웃하여 MVVM 개발을 더 빠르게 만들어야합니다 github.com/egabor/mvcvm-swift-file. 그것은 RxSwift와 결합! 여기에는 문자열 및 ints와 같은 상위 수준 개체뿐만 아니라 다른 개체가 포함됩니다.

ViewModel을 사용하여 이 VC에 대해 실제로 원하는 정보를 추출할 수 있습니다. 예를 들어 이 VC는 Wind 정보, 좌표 및 이 CurrentWeather 개체의 이름만 표시하는 데만 관심이 있을 수 있습니다.