Skip to content

Latest commit

 

History

History
120 lines (83 loc) · 2.92 KB

README.md

File metadata and controls

120 lines (83 loc) · 2.92 KB

Expo + Firebase Auth + UI Kitten Starter Kit

This is a boilerplate for starting an Expo project with Login/Register flows ready

Features

Screenshots

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