Daily Tarot: One Card Draw is a simple app I designed and built over the weekend in React Native as a personal exploration in releasing and distributing iOS apps with Expo. In short, Expo provides a great developer experience that makes launching apps really easy.
This project can serve as a reference for developers who are working with Expo & React Native for the first time, or even as a foundation for someone who might be creating their own card game for iPhone. You are free to use and build upon this code however you want ğŸ‘�
yarn install && yarn start
A QR code will appear in your terminal. Scan it using iOS Camera and your device will prompt you to open the app in Expo. Note: Install Expo on your device first.
Building starts a wizard-like build process command line flow that requires you to authenticate your Expo account as well as your Apple Developer account (which is $99/year) â€“Â so make sure you have those. Expo automates a lot of the tedious work to prepare your app for distribution, which is nice.
After completing the steps, you'll end up with an Expo project that people can share around, and an iOS build uploaded to App Store Connect. When you login to App Store Connect, notice the "Submit For Review" button in the top-right.
Before clicking that button, you can easily integrate TestFlight within App Store Connect if you want to invite users to a closed test to ensure everything works. When you're satisfied with the app and ready to launch to the masses, click the "Submit for Review" button and it's off to Apple for consideration on the App Store. Apple tends to be pretty strict in their review process about apps that aren't very unique or useful. With tarot being a rather saturated market, the app you actually submit might require more functionality than the one in this guide in order to get approved.
Now you know how to deploy your React Native app and distribute it on the App Store using Expo. Happy hacking and good luck!
More on React Native: React Native Getting Started
Code files are MIT. Some creative assets have restrictions (see src/assets/License.md).