IOS

11
P_001 · SWIFT

Coordinator 패턴에서 부모 없는 외부 진입이 만드는 delegate nil 함정

푸시나 딥링크로 상세 화면을 직접 열 때 부모 Coordinator가 없어 delegate nil로 종료 흐름이 멈춘 문제와 fallback 처리 기록.

MAY 22, 2026 · 5 MIN
#ios#swift#coordinator
P_002 · SWIFT

실기기에서만 깨진 콜드스타트 푸시 race condition 디버깅 기록

시뮬레이터에서는 멀쩡했지만 실기기 콜드스타트 푸시에서만 상세 화면이 열리지 않던 문제를 네 단계로 추적한 기록.

MAY 22, 2026 · 7 MIN
#ios#swift#pushnotification
P_003 · SWIFT

UIKit 모달 여러 개가 동시에 present 될 때 큐로 줄 세운 기록

UIKit에서 여러 publisher가 동시에 modal present를 트리거할 때 생기는 충돌을 priority queue, RunLoop 디바운스, dismiss completion으로 직렬화한 사례.

MAY 21, 2026 · 8 MIN
#uikit#coordinator#modal
P_004 · SWIFT

Coordinator re-attach 때 생기는 deinit race window 막기

UIKit Coordinator를 재부착하는 순간 old coordinator deinit과 외부 push/deeplink 이벤트가 겹치며 생기는 race window를 막는 방법.

MAY 21, 2026 · 7 MIN
#ios#coordinator#uikit
P_005 · SWIFT

iOS 푸시 알림 중복 진입을 막는 2층 dedupe 패턴

같은 iOS 푸시가 notification tap, cold launch, pending route 경로로 중복 처리되는 문제를 fingerprint dedupe와 envelope id 소비 추적으로 막은 사례.

MAY 21, 2026 · 6 MIN
#ios#pushnotification#swift
P_006 · SWIFT

RxSwift 코드베이스에서 async/await로 점진 마이그레이션하는 방법

RxSwift 의존이 큰 iOS 프로젝트에서 신규 코드부터 Swift Concurrency로 옮기는 단계별 전략. Repository async 미러, UseCase 공존, 호출자 화면 단위 전환까지.

MAY 21, 2026 · 7 MIN
#swift#rxswift#asyncawait
P_007 · SWIFT

iOS Coordinator에서 푸시 진입을 단일 라우터로 정리한 기록

UIKit MVVM Coordinator 앱에서 list ViewModel이 푸시를 직접 구독하던 구조를 AppNavigationRouter와 async/await 기반 단일 진입점으로 정리한 사례.

MAY 21, 2026 · 7 MIN
#ios#swift#coordinator
P_008 · SWIFT

Firebase RemoteConfig 빼고 GitHub Actions + 정적 JSON으로 갈아탄 후기

단순 broadcast 용도로만 쓰던 Firebase RemoteConfig를 GitHub Actions + 정적 서버 JSON 구조로 갈아탔다. 트레이드오프, 새 구조, 마이그레이션 시 캐시 stale 이슈까지.

MAY 15, 2026 · 5 MIN
#firebase#remoteconfig#github actions