This is a boilerplate for starting an Expo project with Login/Register flows ready
- Expo with JavaScript
- UI Kitten as UI library
- Firebase integration (No Analytics yet)
- React Navigation stack and bottom tab examples
- Localization (i18n) ready
.env
Environment override- Easy form development by Formik and Yup
- Linter and formatter by eslint-config-airbnb and Prettier
- Testing support with
jest-expo
and React Native Testing Library - GitHub CI workflow
Run the following command to generate a new Expo repo using this template:
expo init -t expo-fire-kitten
Feel free to update or remove top entires in your package.json
as well :)
Set up a Firebase project in Firebase Console and put the configurations in the root .env
file like this:
FIREBASE_APP_ID="app-id"
FIREBASE_API_KEY="api-key"
FIREBASE_AUTH_DOMAIN="project-id.firebaseapp.com"
FIREBASE_DATABASE_URL="https://project-id.firebaseio.com"
FIREBASE_PROJECT_ID="project-id"
FIREBASE_STORAGE_BUCKET="project-id.appspot.com"
FIREBASE_MESSAGING_SENDER_ID="sender-id"
Add Email/Password Sign-in provider in Firebase Authentication.
We are using Yarn as our package manager.
Starting development in web:
yarn web
Starting development in iOS Simulator (xcode is required)
yarn ios
Easily use an Eva icon in your component:
import { EvaIcon } from '../utils';
<Button accessoryLeft={EvaIcon('person-outline')}>...
Use translations (i18n):
import { t } from '../utils';
<Text>{t('login.title')}</Text>
Read object under path
of Firebase Realtime Database:
import { read } from '../utils';
read(path).then(obj => console.log(obj));
Full tests with coverage (threshold 50%):
yarn test
Active development of tests, watch files for changes
yarn test:dev
When a screen/component is updated, the test snapshots will throw an error, this updates them:
yarn updateSnapshots
Package | Description |
---|---|
@ui-kitten and @eva-design |
UI Library |
i18n-js and expo-localization |
Localization support |
react-native-dotenv |
For environment variables override |
firebase |
Authentication |
Yup and Formik |
Form and data validator |
eslint , prettier , jest |
EP |