개발하면서 날아가는 기억을 붙잡기 위한 블로그
App Store 리젝 4번 먹고 배운 것들 — 인디 개발자 심사 통과 가이드
앱 4개를 연달아 출시하면서 4번 리젝을 먹었어요. 코드가 잘못된 경우도 있었고 메타데이터 설정 실수도 있었는데요. 한 번 정리해두면 다른 분들은 같은 실수를 안 할 수 있을 것 같아서 공유합니다. 1. IAP 상품을 등록했는데 바이너리에 없다 앱: Renio (구독 관리) 가이드라인: 2.1(b) - App Completeness App Store Connect에 구독 상품(Monthly, Yearly)을 등록해놓고, 앱 바이너리에는 StoreKit 구현이 안 되어 있었어요. 상품만 만들고 코드를 아직 안 넣은 채로 제출한 거죠. ...
SwiftUI @Observable에 클로저를 저장하면 EXC_BAD_ACCESS가 발생하는 이유
뭘 하려고 했냐면 iOS 음악 스트리밍 앱을 만들고 있었는데요. NavigationDestination으로 이동하는 상세 화면마다 ViewModel을 두고, API 호출 로직을 클로저로 주입하는 구조를 쓰고 있었어요. 대충 이런 식이었거든요: @Observable final class PlaylistDetailVM { var songs: [Song] = [] var isLoading = false // API 클라이언트의 메서드를 클로저로 주입 private let fetchSongs: (String) async throws -> [Song] private let addToPlaylist: (String, [String]) async throws -> Void init( fetchSongs: @escaping (String) async throws -> [Song], addToPlaylist: @escaping (String, [String]) async throws -> Void ) { self.fetchSongs = fetchSongs self.addToPlaylist = addToPlaylist } } NavigationDestination에서 @State로 VM을 생성하고요: ...
SwiftUI 이미지 깜빡임 버그 3개를 하나씩 벗겨낸 과정
문제 상황 음악 스트리밍 앱을 만들고 있었는데요. 앨범 아트워크가 계속 깜빡이는 거예요. 곡이 바뀔 때만이 아니라 같은 곡을 재생하고 있는데도 아트워크가 순간적으로 사라졌다 나타나고요. 특히 풀 플레이어의 blur 배경이 심했어요. “이미지 로딩이 느린가?” 싶어서 캐시를 넣었는데 여전히 깜빡이더라고요. 원인을 파고들었더니 버그가 3개 겹쳐 있었어요. 버그 1: NSCache 조회 순서가 반대 커스텀 CachedAsyncImage를 만들어서 NSCache에 이미지를 저장하고 있었는데요. 문제는 캐시 조회 순서였어요. ...
1인 개발자 뉴스 #39 - 2026년 4월 2주차
이번 주 1인 개발자를 위한 기술 뉴스 3선
1인 개발자 뉴스 #38 - 2026년 4월 1주차
이번 주 1인 개발자를 위한 기술 뉴스 4선
1인 개발자 뉴스 #37 - 2026년 3월 4주차
이번 주 1인 개발자를 위한 기술 뉴스 3선
1인 개발자 뉴스 #36 - 2026년 3월 4주차
이번 주 1인 개발자를 위한 기술 뉴스 3선
1인 개발자 뉴스 #34 - 2026년 3월 4주차
이번 주 1인 개발자를 위한 기술 뉴스 3선
1인 개발자 뉴스 #35 - 2026년 3월 4주차
이번 주 1인 개발자를 위한 기술 뉴스 4선
1인 개발자 뉴스 #33 - 2026년 3월 3주차
이번 주 1인 개발자를 위한 기술 뉴스 3선