J.
BLOG
글 목록소개구독
태그

#Android.

글

/ 총 11편
2026.08.18
읽기 9분

이미 만료된 Task.sleep은 throw하지 않는다: 버전당 1회 리뷰 요청 지키기 ↗

기술

AppStore.requestReview(in:)는 실패를 알려주지 않는데 게이트는 버전당 1회입니다. 같은 설계를 iOS와 Android에 옮겼더니 Swift Concurrency와 Kotlin의 취소 의미론 차이로 iOS에만 결함이 남았습니다.

iOSSwiftStoreKitConcurrencyAndroid
2026.08.06
읽기 9분

픽셀보다 계약: UIKit·Jetpack Compose 스도쿠 보드 접근성 ↗

기술

하나의 9×9 커스텀 보드를 VoiceOver와 TalkBack이 탐색할 수 있는 81개 셀로 바꾸고, 위치·값·선택·오류·입력 동작을 두 플랫폼에 매핑하는 기준을 정리합니다.

AccessibilityUIKitJetpack ComposeiOSAndroid
2026.08.06
읽기 8분

iOS·Android·Web 광고 노출: loaded·rendered·impression 구분법 ↗

기술

광고 SDK의 load·impression·paid callback과 Web 가시성 신호를 분리해, 자동 수집과 수동 로깅이 중복되지 않는 이벤트 계약을 정리합니다.

iOSAndroidWebAdvertisingAnalytics
2026.08.06
읽기 9분

Game Center·Play Games 리더보드: 날짜 경계·제출 신뢰성 ↗

기술

퍼즐 날짜, 점수 제출 시각, 플랫폼 표시 구간을 분리하고 best-effort 보류와 durable outbox 사이에서 리더보드 전달 보장을 선택하는 방법을 정리합니다.

iOSAndroidGameKitGoogle Play GamesTesting
2026.08.06
읽기 12분

같은 날, 같은 퍼즐: generatorVersion이 있는 PuzzleIdentity 설계 ↗

기술

같은 seed를 재현하는 것과 같은 퍼즐을 영구히 식별하는 것은 다르다. DailySudoku의 날짜·시간대·난이도·생성기 흐름을 바탕으로 generatorVersion, 마이그레이션, 롤백 계약을 정리합니다.

RustTestingiOSAndroidWebAssembly
2026.08.06
읽기 8분

위치 권한 없이 광고를 지역화하기: GeoIP와 Provider Chain 설계 ↗

기술

OS 위치 권한 없이 동의 상태와 GeoIP 힌트로 광고 Provider Chain을 구성하고, 실패를 안전하게 흡수하는 방법을 정리합니다.

iOSAndroidAdvertisingPrivacyGeoIP
2026.08.06
읽기 10분

일회성 광고 제거 IAP: StoreKit 2·Play Billing에서 구매와 권한 분리하기 ↗

기술

결제 완료 콜백을 영구 권한으로 착각하지 않고, 앱 시작·다른 기기·pending·환불 뒤에도 광고 제거 상태를 다시 맞추는 StoreKit 2와 Play Billing 계약을 정리합니다.

iOSAndroidStoreKitGoogle Play BillingIn-App Purchase
2026.07.05
읽기 6분

Rust 공통 모듈을 크로스플랫폼에서 공유하기 - 5편. Android 네이티브 라이브러리 패키징 ↗

기술

Rust 공통 모듈을 Android 앱에 넣을 때 ABI별 .so, Gradle task, UniFFI adapter, 16 KB page size 검증을 release artifact 기준으로 정리합니다.

RustAndroidKotlinGradleNDK
2026.06.30
읽기 6분

Rust 공통 모듈을 크로스플랫폼에서 공유하기 - 3편. UniFFI로 iOS와 Android 연결하기 ↗

기술

Rust 공통 모듈을 iOS와 Android에서 함께 쓰기 위해 UniFFI 바인딩을 설계하고, generated binding을 adapter 뒤에 숨기는 구조와 모바일 런타임 고려사항을 정리합니다.

RustiOSAndroidUniFFIFFI
2026.06.26
읽기 6분

Rust 공통 모듈을 크로스플랫폼에서 공유하기 - 2편. FFI 경계와 API 설계 ↗

기술

Rust 공통 모듈을 크로스플랫폼에서 안전하고 효율적으로 호출하기 위해 FFI 경계를 잡고 API를 설계하는 구체적인 실무 전략을 정리합니다.

RustiOSAndroidWebAssemblyFFI
2026.06.24
읽기 6분

Rust 공통 모듈을 크로스플랫폼에서 공유하기 - 1편. 어디까지 Rust로 묶을 것인가 ↗

기술

iOS·Android·Web에서 Rust 공통 모듈을 공유할 때 도메인 엔진의 경계를 어떻게 잡을지 정리한다. 무엇을 sudoku-core에 넣고 무엇을 플랫폼에 남길지, UniFFI·WASM 바인딩 계층과 앱 adapter 구조까지 다룬다.

RustiOSAndroidWebAssembly
전체 글 보기
© 2026 진재명 · blog.jaemyeong.com
iOS 소프트웨어 엔지니어 · 부산