Mytopia is a companion app for Dr. Sophie Oldenstein and Manuel Kressin's dystopian sci-fi theatre series, √My, performed in June and July 2023 at Theater Altenburg-Gera.
The app was designed and developed by Armin Luschin and published by Nils Corte
Mytopia is available for free on the App Store and Google Play Store.
The app's purpose is to immerse the audience deeper into the Mytopia world and storyline by enabling interactive, gamified experiences.
-
This repo contains the source code for the iOS and Android apps written in TypeScript using React Native and Expo.
-
The project uses Firebase to authenticate users, store user data, and manage and deliver push notifications. The source code for this project's Firebase Cloud Functions is available here.
-
The project uses Contentful as a CMS where all content and images are stored and served.
-
The project uses Github Actions and EAS Build Services to provide a continuous deployment pipeline that generates native iOS and Android builds and automatically submits them to their appropriate store.
-
Clone the repo
-
Run
npm install
-
Set up Contentful with the schema you can infer from here.
-
Create a .env file at the root of the project and provide the following environment variables:
CONTENTFUL_MANAGEMENT_API_ACCESS_TOKEN CONTENTFUL_SPACE_ID CONTENTFUL_ENVIRONMENT CONTENTFUL_API_KEY
-
Setup a Firebase project, then create and download your configuration files and move them into the firebase-config folder.
-
Update the redacted info in app.json with your details.
-
Now you can create your first build with EAS or locally by running
npx expo prebuild
You only need to do this when you create a new native version, please refer to the Expo docs.
Builds iOS app locally (requires a Mac):
npx expo run:ios
Builds Andriod app locally:
npx expo run:android
Please note: In production, we us Github Actions and the EAS CLI to automatically build and submit new releases. In this repo, because they contain sensitive information like credentials,
- eas.json has been removed. Create your own and configure according to EAS docs..
- googleServiceAccountKey.json has been removed. Create your own according to this doc.
- The P8 Auth Key has been removed. Create your own according to this doc.
- The Firebase configuration files inside firebase-config have been removed.
For the same reason, the ios and android folders, containing the native project files, have been removed.
I appreciate your feedback. Although I do not plan to maintain this repo, feel free to create an issue to ask questions or email me: [email protected]
The code in this repo is licensed as Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0), which means you are free to:
- Share — copy and redistribute the material in any medium or format
- Adapt — remix, transform, and build upon the material
Under the following terms:
- Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
- NonCommercial — You may not use the material for commercial purposes.
- ShareAlike — If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original.