Two ways to make a phone app
| Expo (React Native) | Native (Swift + Kotlin) | |
|---|---|---|
| What you get | One app that runs on both iPhone and Android | Two apps: one written for iPhone (Swift), one for Android (Kotlin) |
| Try it in Piye's Preview | Yes, in a phone frame | On simulators and your phone |
| Try it on your phone | Scan a code in Expo Go | Install it from your computer (Android by code, iPhone by cable once) |
| Where it's built for the stores | In Expo's cloud | On your Mac, with Xcode (iPhone) and Android's tools |
| What you need to publish | An Expo account, plus your Apple and Google accounts | Your Apple and Google accounts, and Xcode for iPhone |
| Updates after launch | Many changes reach phones in minutes, without a store review | Every change goes through a store release |
Piye's usual choice is Expo: one app, simpler to test and quicker to update. Choose native when you or your developer specifically want separate iPhone and Android apps.
You make this choice on the new project card, under Advanced settings (see New project options), or say it in your description.
Expo in more detail
- Building for the stores: Expo builds your app in its cloud and sends it to the stores. It usually takes 10 to 25 minutes, and you can keep working meanwhile.
- Your Expo account: you sign in to Expo once, in Piye. It's free to start.
- Instant updates: once your app is in the stores, changes to text, screens and fixes can go out to people's phones in minutes, without a store review. People get them the next time they open the app. New phone permissions or new native features still need a store release.
Native in more detail
- Building for the stores: both apps are built as releases and signed on your Mac, then sent to App Store Connect and Google Play. The iPhone build usually takes 10 to 20 minutes, the Android one 5 to 10.
- Xcode (from the Mac App Store), signed in with your Apple Developer account, makes your iPhone app's certificates itself. Piye never sees your Apple password.
- Updates: every change goes out as a store release, checked by Apple and Google.
Either way
Both kinds use the same server, sign-in, payments and data as your website, if you have one. Both go through the same store check in Piye before anything is sent. See The App Store and Google Play.