iOS
Swift and SwiftUI, including the App Store process, capabilities, and the privacy manifests current releases require.
Native mobile
Swift and Kotlin applications for when each platform should feel like it belongs there.
Native work is two codebases on purpose. SwiftUI on iOS and Jetpack Compose on Android let the product use the system’s type, navigation, and accessibility instead of approximating them. We take this path when platform APIs are the feature, or when a shared UI toolkit would sand off the thing customers came for.
The backend stays shared. A TypeScript or Rust service is usually the system of record, and the apps are clients with a strict contract. We do not fork business rules into both mobile trees unless the device has to enforce them offline.
Native apps
Swift and SwiftUI, including the App Store process, capabilities, and the privacy manifests current releases require.
Kotlin and Jetpack Compose, with attention to the back stack, permissions, and the range of screens people actually own.
System patterns for navigation, type, and accessibility, adjusted where the brand needs a specific moment.
Widgets, extensions, background work, cameras, and sensors — the APIs a cross-platform layer would thin out.
Signing, TestFlight or internal tracks, and a versioning scheme both stores can live with.
A typed client against the service the web product already uses, so the three surfaces do not invent three payloads.
Delivery
Fit
Neighbors
These are the switches we recommend in scoping, not a disclaimer.
One TypeScript team needs both stores, and the UI does not depend on being fully native.
You want one rendering engine and pixel-level control across devices.
The device in question is a desktop, not a phone.
Continue
Native apps is a starting point. Bring the constraint that matters more.
Tell us what you are building, what already exists, and which surface matters first. We will reply with a point of view.