|
6 | 6 |
|
7 | 7 | Is a quicker way to start with Expo + Firebase (using JS SDK) projects. It includes: |
8 | 8 |
|
9 | | -- based on Expo SDK `46` |
| 9 | +- based on Expo SDK `50` |
10 | 10 | - navigation using `react-navigation` 6.x.x |
11 | 11 | - Firebase JS SDK v9 |
12 | 12 | - Firebase as the backend for email auth |
13 | 13 | - custom and reusable components |
14 | 14 | - custom hook to toggle password field visibility on a TextInput |
15 | 15 | - handles server errors using Formik |
16 | 16 | - Login, Signup & Password Reset form built using Formik & yup |
17 | | -- show/hide Password Field's visibility 👁 |
| 17 | +- show/hide the Password Field's visibility 👁 |
18 | 18 | - uses a custom Provider using Context API & Firebase's `onAuthStateChanged` handler to check the user's auth state with |
19 | | -- handles Forgot Password Reset using Firebase email method |
| 19 | +- handles Forgot Password Reset using the Firebase email method |
20 | 20 | - uses [Expo Vector Icons](https://icons.expo.fyi/) |
21 | 21 | - uses [KeyboardAwareScrollView](https://github.com/APSL/react-native-keyboard-aware-scroll-view) package to handle keyboard appearance and automatically scrolls to focused TextInput |
22 | 22 | - uses `dotenv` and `expo-constants` packages to manage environment variables (so that they are not exposed on public repositories) |
@@ -44,10 +44,25 @@ MESSAGING_SENDER_ID=XXXX |
44 | 44 | APP_ID=XXXX |
45 | 45 | ``` |
46 | 46 |
|
47 | | -4. Start the project: |
| 47 | +## Run project |
48 | 48 |
|
49 | | -- `yarn ios` -- open on iOS |
50 | | -- `yarn android` -- open on Android |
| 49 | +To start the development server and run your project: |
| 50 | + |
| 51 | +``` |
| 52 | +npx expo start |
| 53 | +``` |
| 54 | + |
| 55 | +Alternate to using Expo Go, if you are building more than a hobby project or a prototype, make sure you [create a development build](https://docs.expo.dev/develop/development-builds/introduction/). You can either [locally compile your project](https://docs.expo.dev/guides/local-app-development/#local-builds-with-expo-dev-client) or [use EAS](https://docs.expo.dev/develop/development-builds/create-a-build/). |
| 56 | + |
| 57 | +To locally compile your app, run: |
| 58 | + |
| 59 | +``` |
| 60 | +# Build native Android project |
| 61 | +npx expo run:android |
| 62 | +
|
| 63 | +# Build native iOS project |
| 64 | +npx expo run:ios |
| 65 | +``` |
51 | 66 |
|
52 | 67 | ## File Structure |
53 | 68 |
|
@@ -93,17 +108,17 @@ Main screens: |
93 | 108 | - Forgot password |
94 | 109 | - Home (Bare Minimum) with a logout button |
95 | 110 |
|
96 | | - |
| 111 | +<img src="./screenshots/img1.png" height="420" alt="Login screen with validation> |
97 | 112 |
|
98 | | - |
| 113 | +<img src="./screenshots/img2.png" height="420" alt="Successful sign up attempt"> |
99 | 114 |
|
100 | | - |
| 115 | +<img src="./screenshots/img3.png" height="420" alt="Forgot password screen"> |
101 | 116 |
|
102 | | - |
| 117 | +<img src="./screenshots/img3.png" height="420" alt="Validation on Signup screens"> |
103 | 118 |
|
104 | 119 | ## Development builds and React Native Firebase library |
105 | 120 |
|
106 | | -This project uses Firebase JS SDK which doesn't support all services (such as Crashlytics, Dynamic Links, and Analytics). However, you can use `react-native-firebase` library in an Expo project by [creating a development build](https://docs.expo.dev/develop/development-builds/introduction/). |
| 121 | +This project uses Firebase JS SDK which doesn't support all services (such as Crashlytics, Dynamic Links, and Analytics). However, you can use the `react-native-firebase` library in an Expo project by [creating a development build](https://docs.expo.dev/develop/development-builds/introduction/). |
107 | 122 |
|
108 | 123 | Both of these libraries can satisfy different project requirements. To learn about the differences between using Firebase JS SDK and React Native Firebase library when building your app with Expo, see the following sections from Expo's official documentation: |
109 | 124 |
|
|
0 commit comments