일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- Protocol
- uiscrollview
- HIG
- clean architecture
- uitableview
- 리펙터링
- combine
- UITextView
- RxCocoa
- Clean Code
- 스위프트
- collectionview
- map
- ribs
- 애니메이션
- UICollectionView
- rxswift
- 리펙토링
- Human interface guide
- 클린 코드
- Xcode
- Observable
- swift documentation
- MVVM
- Refactoring
- 리팩토링
- SWIFT
- swiftUI
- tableView
- ios
- Today
- Total
목록MVC (5)
김종권의 iOS 앱 개발 알아가기
MVC with Coordinator 핵심 MVC는 Coordinator의 존재를 모르며, 어느 화면으로 이동하는지 모르는 상태 ViewController에서 routeToLogin과 같이 호출하면 안되도, finishLoad()와 같이 호출 Coordinator를 자유롭게 갈아 끼울수 있는 모듈화 구조 DI는 Coordinator에서 실행 MVC 2개 준비 FirstViewController SecondViewController 코드 Coordinator 적용 Coordinator 추가 import UIKit protocol FirstControllerDelegate: AnyObject { func run() func onAction() } final class Coordinator: FirstCont..
MVC 구성 View는 Controller와 상호작용 하지만, Controller의 인터페이스를 알지 못하며 직접 호출하지 않는 구조 MVC끼리의 통신 MVC 애플의 지향: 최소한의 구성 요소만 포함 old MVC의 한계: Massive ViewController, DI 프로그래밍 x, 프로토콜 지향 프로그래밍 x 한계 극복 Delegate, DataSource를 Model에 두고, ViewController 비즈니스 로직을 간소화 Coordinator가 포함된 MVC패턴 MVC의 원칙 Model: 앱의 데이터 네트워크 코드: 네트워크 통신은 되도록 단일 클래스 사용 지속성 코드: DB, Core Data 코드 파싱: codable Manager 클래스 (=Wrapper class) DataSource,..
uber가 RIBs를 만든 이유 - 모듈화 MVC를 사용할 때 새로운 기능이 늘어나며 앱의 복잡성 증가 모듈이 증가할수록, 테스트 하기 점점 어려워지는 현상 4년동안 MVC패턴 사용 -> 관리하기가 힘든 scale (하나의 ViewController파일에 300줄 -> 3000줄) massive view controllers (비즈니스 로직, 데이터 변경, 데이터 검증, 네트워크 로직, 라우팅 로직) 테스트가 어려운 구조 (if-else문으로 테스트) VIPER 아키텍처 View Interactor: 비즈니스 로직포함, API나 DB로 Data르 받아서 Entity(모델) 생성 Presenter: View에서 유저 앣견을 받고, Interactor에 data를 요창하여 VIew에 그려주는것을 다시요청 E..
1. MVC 1) 개념 MVC는 Model, View, Controller 세 가지 중점 -> Controller에 많은 부하가 가게되어 해결할 방법 모색(MVP와 MVVM) ※주의할 점 : apple의 설명은 view와 controller는 밀접하게 붙어있는 개념 (view controller 하나로 취급) 2) MVC구현 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 import UIKit struct Person { // Model let firstName: String let lastName: String } class GreetingViewController : UIViewController { // V..
1. MVC - Model : 데이터 형태를 모아 놓은 것 또는 데이터들의 모임 1 2 3 4 5 6 7 8 import UIKit class MovieVO { var name: String! var rating: Double! var opendate: String! } - View : 사용자 입장에서 보여지는 부분 (스토리보드) - Control : Model과 View간의 관계를 연결, 관리 (controller) UIViewController에 뷰와 Model을 관리하는 역할이 정의되어 있으므로, 모든 ViewController는 이것을 상속받아서 사용 2. 기타 파일 1) AppDelegate.swift : 생명 주기 관리를 하는 파일(싱글톤, AppDelegate구현 한 클래스) 2) Launc..