CTO brief · V2 client

Ship both platforms. Don’t ship two products.

Nov 2026 is iPhone-first, Android close behind. V2 already rewrites most retail UI, so pick a path that makes equal quality cheap.

iPhone first

Nov 2026 App Store

Android +1 to 2 mo

Near-equal quality

Egypt ~90% Android

Volume sits there

Ledger stays shared

Workers / D1 truth

Approach 1

Dual native

SwiftUI + Kotlin Compose

Hire Android · keep iOS polish

  • Max platform feel
  • PassKit / Keychain native
  • No Dart bet
  • Two UI codebases
  • Equal quality needs Android hire
  • Lag hard for tiny team

Approach 2

Flutter rewrite

Rec

One Dart client · both stores

Small team · V2 UI rewrite anyway

  • Near-equal quality by default
  • Android lag = QA, not rewrite
  • One feature train
  • Retire most SwiftUI UI
  • Need Flutter discipline
  • Payments still need plugins

Approach 3

KMP + native UIs

Shared Kotlin · SwiftUI + Compose

Larger eng · long-term fintech core

  • Native feel both sides
  • Share models & math
  • Strong post-card
  • Still two UIs
  • Slowest to Android
  • Overkill pre-raise

01 · Now

Ledger + Flutter shell

02 · Pre-Nov

Vaults · transfer · pickup

03 · Nov ’26

iOS + flagship store

04 · Dec to Jan

Android same build

Do not rewrite

workers/api · D1 ledger · supply-web / ops · Card / PassKit until 2027

AgDR-0061 · Confidential · CTO decision