expo-fire-kitten
v1.1.2
Published
Expo boilerplate with Login/Register ready (Firebase + UI Kitten)
Downloads
10
Maintainers
Readme
Expo + Firebase Auth + UI Kitten Starter Kit
This is a boilerplate for starting an Expo project with Login/Register flows ready
Features
- 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
Screenshots
Usage
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 :)
Requirement
Firebase Setup
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.
Development
Getting Started
We are using Yarn as our package manager.
Starting development in web:
yarn web
Starting development in iOS Simulator (xcode is required)
yarn ios
Useful Helpers
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));
Testing
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
Dependencies
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