[ ์ฒ์ Coordinator๋ฅผ ์ ์ํ์ ๋ถ์ ๊ธ ] https://khanlou.com/2015/01/the-coordinator/ Khanlou | The Coordinator January 20, 2015 The Coordinator One of the biggest problems with the big view controllers is that they entangle your flow logic, view logic, and business logic. When a table cell is selected, that delegate method typically looks like this: - (void)tableVi khanlou.com https://khanlou.com/2015/10/..

[CleanSwift] ํด๋ฆฐ์ค์ํํธ(Clean Swift)์ ๋ํด ์์๋ณด์ ์์ ์ด์ด์ง๋๋ค. Clean Swift HandBook ์์๋ CleanStore๋ผ๋ ์์ ๋ฅผ ๋ง๋ค๊ธฐ ์ ์ ํ ํ๋ฆฟ์ ๋ํด ์ญ ์ค๋ช ์ ํด์ค๋๋ค. ์ ๋ฆฌํ์ฌ ๊ธฐ๋กํ ๊ธ์ ๋๋ค โ๏ธ [1] Xcode Template ์ค์น ์ฐ์ Xcode Template์ ์ค์นํด์ค๋๋ค. ์ฌ๊ธฐ ๋ค์ด๊ฐ์ ์ด ํผ์ ์ ๋ ฅํ๋ฉด ๋ฉ์ผ๋ก ํ ํ๋ฆฟ์ ๋ณด๋ด์ค๋๋ค. ๋ค์ด๋ฐ์ผ๋๊น ์ด๋ฐ ํด๋๊ฐ ๋์ค๋๋ฐ README.md ๋ฅผ ๊ฐ๋ณด๋ฉด ์ด ๋ช ๋ น์ด๋ก template์ install / uninstall ํ ์ ์๋ค๊ณ ํ๋ค์ ๋ค์ด๋ฐ์ ํด๋๋ก ์ด๋ํ์ฌ install ๋ช ๋ น์ด๋ฅผ ์คํ์์ผ์ฃผ๋ฉด ํ ํ๋ฆฟ ์ค์น ์๋ฃ! CleanSwift์์ ์ ๊ณตํ๋ ํ ํ๋ฆฟ ๊ด๋ จ ์์ ๋ ์ฐธ๊ณ ํ๋ฉด ์ข์ต๋๋ค. [2] ํ๋ก..

๊ณฐํ๊น๋์ Inversion ์ธ์ (let us go summer 2020 => 2:18:19 ์ฏค ๋์์! ๐) ์ ๋ณด๋ค๊ฐ Dependency Container๋ฅผ ๊ณต๋ถํด๋ณด๊ณ ์ํฉ๋๋ค. Dependency Injection์ ๊ฐ๋ & SOLID์ D์ธ ์์กด๊ด๊ณ ์ญ์ ์์น(DIP)์ ์ด๋ป๊ฒ ๋ฐ๋ฅด๊ฒ ํด์ค ์ ์์์ง๋ ์์ ์ธ์ ๋๋ ์ด ๊ธ ์ ์ฐธ๊ณ ํด์ฃผ์ธ์ ์ด ํฌ์คํ ์ Dependency Container ๋๋ Dependecny Inject Container ๋๋ IOC Container (Inversion Of Control Container) ์ ๋ํด์๋ง ์ดํด๋ณด๊ฒ ์ต๋๋ค. [1] Dependency Container๋ ๋ฌด์์ธ๊ฐ?! ์์กด์ฑ ์ฃผ์ ์ ํด์ค๋๋ ๋ฐ์์ ์ธ์คํด์ค๋ฅผ ๋ง๋ค์ด์ ์ฃผ์ ํด์ค๋๋ค. (์ฐธ๊ณ : ์์กด์ฑ..

repositoryํจํด์ด๋ Interfaces > Repositories์ ์๋ ํ์ผ๋ค์ ๋ชจ๋ ํ๋กํ ์ฝ์ด๊ณ Data > Repositories ์ ์๋ ํ์ผ๋ค์ Domain > Interfaces > Repositories์ ํ๋กํ ์ฝ๋ค์ ์ฑํํ ํด๋์ค๋ค์ ๋๋ค. ์๋ ๊ทธ๋ฆผ์ฒ๋ผ Repository๋ Domain Layer์ Data Layer ์ค๊ฐ์ฏค์ ์์ด์ ์ ๋ ๊ฒ ํ๋ก์ ํธ๊ฐ ๊ตฌ์ฑ๋์๋ค๊ณ ์๊ฐํ์๋ฉด ๋ฉ๋๋ค-!! ๊ทธ๋ฆฌ๊ณ ๊ฐ๊ฐ์ Layer๋ค์ ๊ทธ๋ฃนํํ ๊ฒ์ ์์ธํ ์ดํด๋ณผ๊ฒ์! 1. Domain Layer - ํด๋ฆฐ์ํคํ ์ณ ์์์ Entities๊ณผ Use Cases๋ฅผ ๋ฌถ์ด์ Domain Layer๋ผ๊ณ ํฉ๋๋ค. - ์ด ๋ ์ด์ด๋ ๋ค๋ฅธ ๋ ์ด์ด๋ค์๊ฒ ์ด๋ ํ ์ํฅ๋ ๋ฐ์ง ์์ต๋๋ค. - ๋ค๋ฅธ ํ๋ก์ ํธ์ ์ํ์ฌ์ ์ฌ์ฌ์ฉ ๋ ์..

[1] Repository ํจํด์ด๋ ๋ฐ์ดํฐ ์ถ์ฒ(๋ก์ปฌ DB์ธ์ง API์๋ต์ธ์ง ๋ฑ)์ ๊ด๊ณ ์์ด ๋์ผ ์ธํฐํ์ด์ค๋ก ๋ฐ์ดํฐ์ ์ ์ํ ์ ์๋๋ก ๋ง๋๋ ๊ฒ์ Repository ํจํด์ด๋ผ๊ณ ํฉ๋๋ค. - viewModel ๋ฐ์ Repository๋ผ๋ layer๋ฅผ ํ๋ ๋ ๋์ด์ viewModel์ ์ค์ง ๋น์ฆ๋์ค๋ก์ง๋ง ์ง์คํ๊ฒ ํฉ๋๋ค. (๋ฐ์ดํฐ๋ฅผ ๋ก์ปฌ๊ณผ ์๋ฒ ์ค ์ด๋์ ๊ฐ์ ธ์ฌ์ง, ๋ ์ด๋ป๊ฒ ๊ฐ๊ณตํ ์ง๋ Repostitory๊ฐ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.) - viewModel๋ค๊ฐ Repository๋ฅผ ๊ณต์ ํด์ ๋ฐ์ดํฐ ์ผ๊ด์ฑ์ ์ ์งํ ์ ์์ต๋๋ค. [2] ์์ ์ฝ๋ ์์ ์ฝ๋๋ฅผ ๋ณด๋ฉด Repository๋ ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ dataTransferService์ ์ฝ์ด๋ฐ์ดํฐ(๋ก์ปฌ)์์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ moviesQueriesP..

Clean Swift ์ํคํ ์ณ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค. Clean Swift HandBook ์ ๋ด์ฉ์ ๊ฐ๋จ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํฉ๋๋ค. [1] Clean Swift๊ฐ ๋์ค๊ฒ ๋ ๋ฐฐ๊ฒฝ ๋๋ MVC ํจํด์ ๋ฌธ์ ์ ์ ์ธ์ํ๊ณ (๋ฐฉ๋ํ ๋ทฐ์ปจํธ๋กค๋ฌ) MVVM๋ VIPER๋ฅผ ์ฌ์ฉํ๋ ค๊ณ ํ์ ๊ฒ์ด๋ค. ํ์ง๋ง ์ฐ๋ฆฌ๊ฐ ๋ดค์ ๋ ์ด ์ํคํ ์ณ๋ค๋ ๋ถ์กฑํ๋ค(??) 1. MVVM ๋จ์ํ massiveness๊ฐ viewController์์ viewModel๋ก ์ด๋ํ๋ค. ๋๋ massive view controllers ๋์ massive view models๋ฅผ ์ป๊ฒ ๋๋ ๊ฒ์ด๋ค. MVVM๋ RxSwift์ ํจ๊ป ์ฐ๋ฉด์ ์ธ๊ธฐ๊ฐ ๋์๋ค. ํ์ง๋ง ๋๋ถ๋ถ ๋๋ reactiveness๊ฐ ํ์ํ์ง ์๋ค. (์ค์๊ฐ ์ฑํ ์ ๋ง๋ค์ง ์๋ ์ด์.) =>..

์์ด๋์ ์์กด์ฑ ๊ทธ๋ํ, ์ฐ๋ฒ(RIBs)์์๋ ์์กด์ฑ ํธ๋ฆฌ ๋ผ๋ ์ฉ์ด๋ฅผ ์ฃผ๋ก ์ฐ์๋๋ฐ ๊ฐ์ ์ฉ์ด์ธ ๊ฒ ๊ฐ์ต๋๋ค. ์์กด์ฑ ํธ๋ฆฌ๋ ์ด๋ ๊ฒ ์์กด ๊ด๊ณ์ด์ง๋ง ํฉ์ด์ ธ์๋ ์ฑ ๋ด์ ์ํ๋ค ํน์ ํด๋์ค๋ค์ ์ด๋ ๊ฒ ์์ ํธ๋ฆฌํํ๋ก ๋ง๋ค์ด์ฃผ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ์ด๋ ๊ฒ ๋ชจ๋ ํด๋์ค๊ฐ ์์กด์ฑ ํธ๋ฆฌ์ ์ํ๊ฒ ๋๋ฉด Unit Test๋ ํธํ๊ณ (Stub์ ์ฃผ์ ํด์ฃผ๊ธฐ ํธํ๋๊น) Layering๋ ํ์คํ๊ฒ ๋์ด์ ๊ฐ ํด๋์ค๋ ์์ ์ด ์์์ผํ ๋ฐ์ดํฐ๋ค๋ง ๋ฑ ์๊ฒ ๋๋ ์๋ฆ๋ค์ด ๊ทธ๋ฆผ์ด ํผ์ณ์ง๋๋ค. iOS์์ ์ด๋ฐ ์์กด์ฑ ๊ทธ๋ํ๋ฅผ ๋ง๋ค์ด์ฃผ๋ ๋ฐฉ๋ฒ(๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ)๋ฅผ ์ ๋ฆฌํด๋ณด๊ณ ์ ํฉ๋๋ค. [1] RIBs ์ฒ์ฌ ์ฐ๋ฒ๊ฐ ๋ง๋ RIBs....!! (๊ฐ์ ) ํ๋กํ ์ฝ ์งํฅ RIBs์ ๋์ ํด์ ์ปดํ์ผ ์๋ฌ๋ฅผ ์ญ์ญ ํด๊ฒฐํ๋ฉด์ ์ฝ๋ฉํด๊ฐ๋ฉด ์๋ฆ๋ค์ด RIB ..
Dependency Injection์ ๊ฐ๋ ๊ณผ ์ฅ์ ๋ฟ๋ง์๋๋ผ SOLID์ D์ธ ์์กด๊ด๊ณ ์ญ์ ์์น(DIP)์ ์ด๋ป๊ฒ ๋ฐ๋ฅด๊ฒ ํด์ค ์ ์์์ง ์ค๋ช ํด์ฃผ๋ ์์ฃผ ์ข์ ๊ธ ์ ๋๋ค :-) https://medium.com/@jang.wangsu/di-dependency-injection-์ด๋-1b12fdefec4f [DI] Dependency Injection ์ด๋? ๋ํ๋์ ์ธ์ ์ , ์์กด์ฑ ์ฃผ์ ์ ๋ํด ๊ฐ๋จํ๊ฒ ์์ฑํด ๋ด ๋๋ค. medium.com ๊ทธ๋ผ DI๋ฅผ ํด์ฃผ๋ ์ธ๊ฐ์ง ๋ฐฉ๋ฒ์ ์ ๋ฆฌํด๋ณด๊ฒ ์ต๋๋ค. [1] Constructor Injection (์์ฑ์ ์ฃผ์ ) [2] Property Injection [3] Method Injection
[1] ReactorKit https://eunjin3786.tistory.com/100 [ReactorKit] ReactorKit ์์ ๋ฐ๋ผํ๊ธฐ ReactorKit์ผ๋ก ๋จ๋ฐฉํฅ ๋ฐ์ํ ์ฑ ๋ง๋ค๊ธฐ(์ ์์ด) ์ ๋ผ์ด๋ธ ์ฝ๋ฉ ์์ ๋ฅผ ๋ฐ๋ผํด๋ณธ ๊ฒ์ ์ ๋ฆฌ -- !! ์ฐ์ ReactorKit์ ๋ํ ๊ฐ๋ ์ ๋ฏธ๋์ ๊ณผ ์ฌ๋ผ์ด๋ ์ ์ ์ค๋ช ๋์ด์์ต๋๋ค. ๊ฐ๋จํ ํ๋ก์ฐ๋ง ๋ณด์๋ฉด 1. View.. eunjin3786.tistory.com [2] RIBs https://github.com/eunjin3786/SimpleMemo-RIBs eunjin3786/SimpleMemo-RIBs SimpleMemo๋ฅผ RIBs๋ก ๋ฐ๊ฟ๋ณด์ :-). Contribute to eunjin3786/SimpleMemo-RIBs developmen..

ReactorKit์ผ๋ก ๋จ๋ฐฉํฅ ๋ฐ์ํ ์ฑ ๋ง๋ค๊ธฐ(์ ์์ด) ์ ๋ผ์ด๋ธ ์ฝ๋ฉ ์์ ๋ฅผ ๋ฐ๋ผํด๋ณธ ๊ฒ์ ์ ๋ฆฌ -- !! ์ฐ์ ReactorKit์ ๋ํ ๊ฐ๋ ์ ๋ฏธ๋์ ๊ณผ ์ฌ๋ผ์ด๋ ์ ์ ์ค๋ช ๋์ด์์ต๋๋ค. ๊ฐ๋จํ ํ๋ก์ฐ๋ง ๋ณด์๋ฉด 1. View๋ Action(์ฌ์ฉ์ ์ ๋ ฅ ๋ฑ)์ Reactor์๊ฒ ์ ๋ฌํ๋ค 2. Reactor๋ ์ ๋ฌ๋ฐ์ Action์ ๋ฐ๋ผ ๋น์ฆ๋์ค ๋ก์ง์ ์ํํ๋ค. 3. ๊ทธ ํ Reactor๋ ์ํ๋ฅผ ๋ณ๊ฒฝํ์ฌ View์๊ฒ ์ ๋ฌํ๋ค Reactor๋ฅผ ์ข ๋ ์์ธํ ๋ค์ฌ๋ค๋ณด๋ฉด ์ด๋ฐ ๊ทธ๋ฆผ์ ๋๋ค Reactor๋ Action์ด ๋ค์ด์ค๋ฉด ๋ ๋จ๊ณ์ ๊ฑฐ์ณ์ State๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค 1. mutate() ํจ์ - Action ์คํธ๋ฆผ์ Mutation ์คํธ๋ฆผ์ผ๋ก ๋ณํํ๋ ์ญํ - ์ด๊ณณ์์ ๋คํธ์ํน์ด๋ ..
- Total
- 867,868
- Today
- 438
- Yesterday
- 1,696
- Flutter ๋ก๋ฉ
- Django Firebase Cloud Messaging
- drf custom error
- flutter deep link
- cocoapod
- SerializerMethodField
- flutter dynamic link
- DRF APIException
- ์ฅ๊ณ Custom Management Command
- Dart Factory
- Flutter Spacer
- ribs
- ํ๋ฌํฐ ์ผ๋ฟ
- Python Type Hint
- Flutter Text Gradient
- ํ๋ฌํฐ ์ฑ๊ธํค
- Watch App for iOS App vs Watch App
- Flutter Clipboard
- github actions
- ipad multitasking
- Django FCM
- Flutter getter setter
- PencilKit
- flutter build mode
- ์ฅ๊ณ URL querystring
- ๊ตฌ๊ธ Geocoding API
- METAL
- flutter ์ฑ ์ถ์
- Sketch ๋๋ผ
- Django Heroku Scheduler