/react-native-hello-talk

React native clone app for "Hello Talk" using firebase

Primary LanguageTypeScriptMIT LicenseMIT

React Native Hello Talk

Clone App for Hello Talk.

Want to see it in action? check out this youtube video.

Getting Started

This project is using boilterplate.

If you're trying to setup expo + typescript + jest, then you should check it out.

  1. This app uses firebase. Check this link.

  2. We need app.json. Make app.json file under root directory. You can use extra field like below to keep firebase secrets.

{
	"expo": {
		"name": "react-native-hello-talk",
		"description": "A very interesting project.",
		"privacy": "public",
		"sdkVersion": "31.0.0",
		"platforms": ["ios", "android"],
		"version": "1.0.0",
		"orientation": "default",
		"icon": "./assets/images/icon.png",
		"splash": {
			"image": "./assets/images/splash.png",
			"resizeMode": "contain",
			"backgroundColor": "#ffffff"
		},
		"updates": {
			"fallbackToCacheTimeout": 0
		},
		"assetBundlePatterns": ["**/*"],
		"ios": {
			"supportsTablet": true
		},
		"extra": {
			"firebaseConfig": {
				"apiKey": "apiKey",
				"authDomain": "authDomain",
				"projectId": "projectId",
				"storageBucket": "storageBucket",
				"messagingSenderId": "messagingSenderId",
				"databaseURL": "databaseURL"
			}
		}
	}
}
// how to use Constants in js file
// reference: https://docs.expo.io/versions/latest/sdk/constants
import { Constants } from 'expo'

Constants.extra.projectId === 'rn-hello-talk' // use extra field like this!

Features

  • Auth

    • login using googleOAuth

    • additional register flow

  • Chat

    • create new chat

    • list chats belonging to the user

    • send pictures

    • find people to talk to

    • add user online status

  • Profile

    • edit profile (description, etc)

    • logout

  • Etc

    • splash screen

    • push notification

    • test coverage >= 60%