LetSwift 2023에서 발표한 객체-함수형 아키텍처 만들기 자료 공유합니다. 객체지향과 함수형 프로그래밍을 조합하여, MVVM 기반으로 아키텍처를 설계해보았습니다. 선언적 프로그래밍을 통한 런타임의 안정성과 가독성, 객체지향을 통한 책임 분배와 설계에 대한 관점에서 보면 좋을 것 같습니다.
감사합니다.
아키텍처 코드 : https://lnkd.in/ghRVR_SS
적용 데모 : https://lnkd.in/gGfPqT85
38. Make your own architecture
직접 만들어보기
ViewModel
ViewController
View
Data / Network
39. Make your own architecture
직접 만들어보기
ViewModel
ViewController
Data / Network
View / Interactor
UI 표시 및 상호 작용
40. Make your own architecture
직접 만들어보기
ViewModel
ViewController
View bind 및 lifecycle
View / Interactor
UI 표시 및 상호 작용
Data / Network
41. Make your own architecture
직접 만들어보기
ViewModel
Data
fl
ow 가시화 및 관리
ViewController
View bind 및 lifecycle
View / Interactor
UI 표시 및 상호 작용
Data / Network
42. Make your own architecture
직접 만들어보기
ViewModel
Data
fl
ow 가시화 및 관리
ViewController
View bind 및 lifecycle
View / Interactor
UI 표시 및 상호 작용
Data / Network
비동기적인 데이터 처리
43. Make your own architecture
직접 만들어보기
ViewModel
Data
fl
ow 가시화 및 관리
ViewController
View bind 및 lifecycle
View / Interactor
UI 표시 및 상호 작용
Data / Network
비동기적인 데이터 처리
48. Make your own architecture
직접 만들어보기
ViewModel
Data
fl
ow 가시화 및 관리
ViewController
View bind 및 lifecycle
View / Interactor
UI 표시 및 상호 작용
Data / Network
비동기적인 데이터 처리
49. Make your own architecture
직접 만들어보기
ViewModel
Data
fl
ow 가시화 및 관리
ViewController
View bind 및 lifecycle
View / Interactor
UI 표시 및 상호 작용
Data / Network
비동기적인 데이터 처리
50. Make your own architecture
직접 만들어보기
ViewModel
Data
fl
ow 가시화 및 관리
ViewController
View bind 및 lifecycle
View / Interactor
UI 표시 및 상호 작용
Data / Network
비동기적인 데이터 처리
52. Make your own architecture
직접 만들어보기
ViewModel
Data
fl
ow 가시화 및 관리
ViewController
View bind 및 lifecycle
View / Interactor
UI 표시 및 상호 작용
Data / Network
비동기적인 데이터 처리
53. Make your own architecture
직접 만들어보기
ViewModel
Data
fl
ow 가시화 및 관리
ViewController
View bind 및 lifecycle
View / Interactor
UI 표시 및 상호 작용
Data / Network
비동기적인 데이터 처리
54. Make your own architecture
직접 만들어보기
ViewModel
Data
fl
ow 가시화 및 관리
ViewController
View bind 및 lifecycle
View / Interactor
UI 표시 및 상호 작용
Data / Network
비동기적인 데이터 처리
55. Make your own architecture
직접 만들어보기
ViewModel
Data
fl
ow 가시화 및 관리
ViewController
View bind 및 lifecycle
View / Interactor
UI 표시 및 상호 작용
Data / Network
비동기적인 데이터 처리
58. Make your own architecture
직접 만들어보기
ViewModel
Data
fl
ow 가시화 및 관리
ViewController
View bind 및 lifecycle
View / Interactor
UI 표시 및 상호 작용
Data / Network
비동기적인 데이터 처리
59. Make your own architecture
직접 만들어보기
ViewModel
Data
fl
ow 가시화 및 관리
ViewController
View bind 및 lifecycle
View / Interactor
UI 표시 및 상호 작용
Data / Network
비동기적인 데이터 처리
61. Make your own architecture
직접 만들어보기
ViewModel
Data
fl
ow 가시화 및 관리
ViewController
View bind 및 lifecycle
View / Interactor
UI 표시 및 상호 작용
Data / Network
비동기적인 데이터 처리
62. Make your own architecture
직접 만들어보기
ViewModel
Data
fl
ow 가시화 및 관리
ViewController
View bind 및 lifecycle
View / Interactor
UI 표시 및 상호 작용
Data / Network
비동기적인 데이터 처리
84. • Object Oriented Programming
• Design pattern
• Protocol Oriented Programming
• Pure function
• High-order function - First class
function
• Functor / Monad
• Result / Optional - Either
• Combine
• Async task - GCD / Actor
85. • Object Oriented Programming
• Design pattern
• Protocol Oriented Programming
• Pure function
• High-order function - First class
function
• Functor / Monad
• Result / Optional - Either
• Combine
• Async task - GCD / Actor
86. • Object Oriented Programming
• Design pattern
• Protocol Oriented Programming
• Pure function
• High-order function - First class
function
• Functor / Monad
• Result / Optional - Either
• Combine
• Async task - GCD / Actor
87. • Object Oriented Programming
• Design pattern
• Protocol Oriented Programming
• Pure function
• High-order function - First class
function
• Functor / Monad
• Result / Optional - Either
• Combine
• Async task - GCD / Actor
88. • Object Oriented Programming
• Design pattern
• Protocol Oriented Programming
• Pure function
• High-order function - First class
function
• Functor / Monad
• Result / Optional - Either
• Combine
• Async task - GCD / Actor