Clean Architecture using SwiftUI

반응형

 

references: 

https://dev.to/paulallies/clean-architecture-in-the-flavour-of-swiftui-55-jo2

https://paulallies.medium.com/clean-architecture-in-the-flavour-of-swiftui-5-5-8430786a83

https://betterprogramming.pub/ios-clean-architecture-using-swiftui-combine-and-dependency-injection-for-dummies-2e44600f952b

https://gon125.github.io/posts/SwiftUI를-위한-클린-아키텍처/

https://github.com/nalexn/clean-architecture-swiftui

https://eunjin3786.tistory.com/207

https://iosexample.com/cleanarchitecture-for-swiftui-with-combine-concurrency/

https://github.com/kudoleh/iOS-Clean-Architecture-MVVM

https://eunjin3786.tistory.com/198

https://velog.io/@swiftist9891/UIView-UIViewController

 

 

 

 

 

 

 

여기서...

 

Core, Data, Domain, Interactor, Presentation

 

Core 부분에 들어갈 것들, 특히 Dependency Injection (IoC) (Dependency Inversion ? 은 뭐징)

https://github.com/uber/needle/blob/master/Documents/ko_KR/README.md

https://github.com/Swinject/Swinject

https://github.com/hmlongco/Factory

https://github.com/pointfreeco/swift-dependencies

https://github.com/square/Cleanse

여기서 needle 사용.

 

Presentation 은 단순히 Todo 로 나눈다기 보다 Component, Screen 으로 나누고 각 스크린 만듬.

 

그리고 화면 이동에 관한 네비게이션? 라우팅? 관련된 공통 관리가 어딘가 들어가야 하는데...

NavigationView > TabView 로 감싼 형태로 ContentView 에 단순하게 구성.

 

과거 uikit 스토리보드기반 플젝에서는 다음의 방식들을 사용하기도 했었던거 같은데... 플로우 쿠어디네이터 같은거도 사용한 거 같기도...

이런 imperative 한 방식을 보면 과거 코드는 아무래도 점점 복잡하게 관리가 힘들어져 갔을 듯 함.

다음과 같은 방식으로 화면전환
1. 뷰 컨트롤러의 뷰 위에 다른 뷰를 가져와 바꿔치기 하기
2. 뷰 컨트롤러에서 다른 뷰 컨트롤러를 호출하여 화면 전환하기
3. 내비게이션 컨트롤러를 사용하여 화면 전환하기
4. 화면 전환용 객체 세그웨이를 사용하여 화면 전환하기

다음과 같은 방식으로 데이터 전달
1. instance property
2. segue (prepare)
3. instance
4. delegate (delegation) pattern
5. closure
6. Notification

 

 

반응형

'MAC & iOS' 카테고리의 다른 글

ios Networking  (0) 2023.09.15
풀다운버튼, 팝업버튼 - ios / 옵션메뉴, 컨텍스트 메뉴, 팝업메뉴 - aos  (0) 2023.09.15
iOS 앱 소유권 이전  (1) 2023.07.20
OS  (0) 2023.07.20
앱 및 웹 기술의 UI 기술에 대하여  (0) 2023.01.25

댓글

Designed by JB FACTORY