/make-it-so-android

Building an Android app with Jetpack Compose and Firebase

Primary LanguageKotlinApache License 2.0Apache-2.0

showcase.mp4

Make it So

This is a sample Android app that demonstrates how to use Firebase Authentication, Crashlytics, Cloud Firestore, Performance Monitoring and Remote Config with Jetpack Compose UI. Make it So is a simple to-do list application that allows the user to add and edit to-do items, add flags, priorities, due dates, and mark the tasks as completed.

To explain how each product above was used in the code, we've written a series of articles that delve into creating this app from scratch. Navigate to part 1 of this series to understand how this app is structured. There you will find the links to all articles in the series.

Setting up

In order for this app to work, you will need to create a Firebase project:

  • Clone this repository
  • Create a Firebase project in the Firebase Console
  • Follow these steps to register Make it So app in your Firebase project
  • Follow these steps to add the Firebase Android configuration file to Make it So
  • Create a Cloud Firestore database in your Firebase project
  • Enable Anonymous Authentication in your Firebase project
  • Enable Email/Password Authentication in your Firebase project
  • Run the app using Android Studio Flamingo+ on a device/emulator with API level 21 or above
  • Create your first to-do item in the app
  • In the Firebase console, navigate to the Firestore Indexes tab
  • Create a new composite index for the collection tasks with 2 fields: userId and createdAt (both Ascending)
  • Choose the "Collection" option in Query scopes (you won't be using collectionGroup in this app)

This index is necessary when fetching documents because this app uses where and orderBy operators in different fields: where uses the userId field and orderBy uses the createdAt field (see StorageServiceImpl). Learn more on the Firebase documentation about Index types.

Contact

Please navigate to the discussions page if you have any questions or want to suggest changes to the Make it So app.