- Storyboard, View
- Outlet, Action
- Outlet, Action 2
- 함수, 외부/내부 매개변수, 와일드카드 식별자, 매개변수 기본값
- 아웃렛 컬렉션
- ViewController 생명주기
- 화면전환
- UIView Tag
- Gesture
- AutoLayout
- 옵셔널 빌드업
- Alert
- Class, struct
- UserDefaults
- UIStoryboard Unwind Transition
- 함수의 반환값
- TableViewController 기본 동작 원리
- TableViewController(System Cell)
- ReloadData
- CustomView Cell
- TableView Method
- Kingfhiser
- UITableViewCell XIB
- UITableView automaticDimension
- Swift Extension / CellForRowAt 메서드 분리
- Class(reference) VS struct(value)
- Type Property, Instance Property
- Codebased 화면전환
- Swift Extension
- VC + TableView VS TableViewController
- 값 전달
- ViewController + CollectionView
- ReloadData vs ReloadRows
- sender.tag, data filter
- 메서드 분리, 로직 개선
- private
- Stored, Computed property
- Swift Function Types
- addSubView, frame
- Codebase UI(NSLayoutConstraints, SnapKit)
- Optional Binding
- Protocol
- CustomView (override init, required init)
- Codebase TableView
- Protocol as Types
- 이니셜라이저를 통한 커스텀뷰 활용
- 네트워크 통신(Alamofire / Decodable)
- lazy var
- HTTP Header, HTTP Status Code
- 네트워크 통신 시점에 따른 TableView 갱신
- SearchBarDelelgate
- Pagenation
- UITableView willDisplayCell
- BaseVC / BaseView / loadView
- .gitignore
- 일급객체와 클로저 (+클로저 표현식)
- Singleton Pattern, Network 로직 분리
- SceneDelegate UIWindow
- GCD (sync/async, serial/concurrent)
- 하나의 VC에서 여러 테이블/컬렉션뷰 활용
- 역 값전달
- Dispatch Group
- CollectionView Paging
- Enum, RawValue, Computed Property 활용
- UINavigation/TabBarAppearance - scrollEdge, standard
- Adaptive Layout Size Class
- ReusableView Protocol / UIButton Configuration
- Type Casting
- Custom Font
- ScrollView - Zoom, Horizontal, Vertical
- Asset Slicing
- Swift Optimization (final, private)
- Generic
- Error Handling
- DecodingStrategy
- MVVM vs MVC
- Property Observer - didSet
- Closure를 활용한 MVVM 로직 구성
- didSet/Closure/Generic
- Custom Observable
- MVVM + Custom Observable
- lazybind vs bind
- viewModel 간 값 전달
- MVVM + Input/Output Pattern
- Router Pattern
- Generic + Meta Type
- HTTP Status Code 대응
- 실패 JSON 대응
- RxSwift: Asynchronous/Observable Streams
- Observable vs Observer
- Subscribe vs Bind
- Operator
- DisposeBag
- Subject
- map, withLastestFrom, withUnretained
- 셀 구독 중첩 이슈 핸들링
- Subject vs Relay
- Subscribe vs Bind vs Drive
- Observable vs Subject vs Relay
- multicast vs unicast
- create()를 통해 Custom Observable 생성
- map vs flatMap
- RxSwift Error Handling: retry, catch, catchAndReturn
- RxSwift Error Handling: Result Type 활용 error stream 받지 않도록 구현
- Observable vs Single
- RxSwift를 활용한 Input/Output 타입 정의 및 고려한 부분(Thread)
- init을 활용한 viewModel간 값 전달
- RxDataSources
- Animations
- SceneDelegate UIWindow
- LLDB(BreakPoint, watchPoint)
- Local Notification
- Foreground 제어 및 UserInfo 활용
- I18N vs L10N / String Catalog
- Localization.strings(Storyboard, Codebase)
- InfoPlist.strings
- UIPageViewController
- Unfrozen/Frozen Enumeration
- discardableResult
- Privacy, Authorization
- CoreLocation
- UIImagePickerController