- App Lifecycle
- GCD와 동기와 비동기, 직렬과 동시
- Main.sync의 데드락 발생 원인
- MVVM Design Pattern Explained with Example 1
- MVVM Design Pattern Explained with Example 2
- Moya
- Designated init? Convenience init?
- TableView 안에 CollectionView가 있을 때 Cell의 reuse에 대한 오류 해결
- Apple Login
- PageViewController + CollectionView
- Compositional Layout
- Alamofire - RequestInterceptor
- Moya스러운 URLSession
- iOS in SOLID
- iOS의 Pagination
- URL Loading System
- URLSession 전체적인 흐름과 개념
- delegate의 weak var와 protocol AnyObject
- RealmSwift Migration
- iOS의 Push Notification 방식에 대해 설명
- UICollectionView reload 시 깜박거리는 애니메이션 제거하기
- UIProgressView의 Progress Rounded corners
- iOS에서 languageCode 값 얻기 (다국어)
- SkeletonView
- JSONSerialization와 JSONEncoder() 차이
- Continuations in Swift
- SnapKit Constraint update 활용하여 동적 높이 CollectionView 구현
- WKWebView Cache 제거
- iOS 유니버셜 링크(Universal Link) 백엔드에서 적용해야 할 설정 정리
- addingPercentEncoding + percentEncodedQueryItems
- Xcode15 SwiftUI Preview layout
- SwiftUI 객체 상태 감지 Property Wrappers 초간단 정리
- UIViewControllerRepresentable, UIViewRepresentable
- ForEach + Enum
- Toolbar에서 NavigationLink가 작동하지 않는 문제
- Hide navigation bar without losing swipe back gesture in SwiftUI
- Text의 Font Size를 Frame에 알맞게 조절하기 Like UIkit SizeToFit
- Multiline TextField
- Sticky bottom View in ScrollView
- Keyboard avoidance 막기
- withAnimation와 animation 차이 feat. TCA
- Optional @ViewBuilder closure
- iOS 15 이하 Text underline
- ZStack in HideAnimation 동작하지 않는 문제 (SwiftUI Custom Toast)
- TCA Binding 주의해야 할 점 (sending 메서드)
- TCA PresentationState 사용 시 Delegate Action
- SwiftUI에서 viewWillDisappear 사용하는 방법
- SwiftUI 특정 뷰에서 background → Foreground 진입 시점 확인하는 방법
- iOS 16 이하에서 TCA FullScreenCover 사용시 이슈
- .sheet 내부에서 UIViewControllerRepresentable or UIViewRepresentable 사용 시 sheet가 빈화면으로 먼저 노출되는 이슈
- ScrollView 스크롤 시 SafeArea Top 영역을 무시하지 않는 방법
- 일회용 함수 Closure
- What is @escaping in Swift Closures
- Singleton Pattern
- Type Casting
- contains와 firstIndex
- ARC (strong , weak, unowned, 순환 참조) 1
- ARC (strong , weak, unowned, 순환 참조) 2
- Swift In @propertyWrapper
- Static
- Struct Class
- Enums must not contain stored properties
- lazy var에 weak를 쓸 수 없는 이유
- OptimizationTips
- Array 요소에 안전하게 접근하기
- Dictionary default value 사용
- RxSwift로 회원가입 리펙토링
- withUnretained
- distinctUntilChanged()
- Rx에서 viewDidLoad 사용 시 주의
- ActionSheet Extension With Subject
- PublishRelay에서 asDriver() method를 사용하지 못하는 이유
- Reactive 프로그래밍이란 무엇인가요?
- [RxDataSource] Instance method 'items(dataSource:)' requires that 'CollectionViewSectionedDataSource' conform to 'RxCollectionViewDataSourceType’
- [RxSwift] let sink = FlatMap Sink(selector: self.selector, observer: observer, cancel: cancel) ← will crash
- NotificationCenter.default.rx.notification 사용 시 주의사항
- 사용자 스크롤 타이밍 감지 with Rx
- [RxSwift] rx.text의 controlPropertyWithDefaultEvents
- Firebase Crashlytics 설정시 Build Phases > Run script의 "Based on dependency analysis" Warning
- M시리즈 Mac에서 CocoaPods 설정
- CocoaPods Podfile에 버전 명시를 안한다면?
- Tuist에서 CocoaPods 사용하기
- Tuist Realm(ObjC 기반 라이브러리) 추가 시 Carthage로 해결했던 방법
- Tuist XCconfig 설정
- [Tuist] One of the two will be used. Which one is undefined
- [fastlane + CocoaPods] The iOS deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 11.0, but the range of supported deployment target versions is 12.0 to 17.0.99.
- Xcode15) Sandbox: bash deny(1) file-write-create 에러
- [Macro] external macro implementation type 'composablearchitecturemacros.observablestatemacro' could not be found for macro 'observablestate()’
- [fastlane] ComputeTargetDependencyGraph ARCHIVE FAILED 이슈
- XcodeCloud DESERIALIZATION FAILURE 이슈
- Core NFC 관련 아카이빙 실패 에러 (Invalid entitlement for core nfc framework. The sdk version '17.4' and min OS version '15.0' are not compatible for the entitlement 'com.apple.developer.nfc.readersession.formats' because 'NDEF is disallowed'.)
- Xcode16 CocoaPods 이슈 모음
- Missing required module 'Firebase' for Unit test