Skip to content

Introduction

It’s time for the final application of this course! This one is going to be an interesting one as we will be tackling a lot of new ideas and concepts. Once again, I am going to lower the level of guidance in this application build for concepts we have already covered, but since there will be so many new concepts, we will still be covering a lot of things in detail.

As always, in cases where you do feel a bit lost/stuck I would recommend following these steps:

  1. Reflect on the situation independently for a little bit
  2. Research using the documentation or just Googling
  3. Go back to the equivalent situation in the Quicklists/Giflist application or view the source code

About Chat

This application is going to be quite different from the previous applications. The others have been “standalone” sort of applications — they are the sorts of applications that can be used by a single user and used in isolation. This application will have its own backend that we will use to share among multiple users using the application.

To put it simply, we are building a realtime chat app. It will look and behave in the way that you would expect a modern sort of chat application to — just a very minified and simple version of that. Users will be able to log on and see realtime messages in a single group chat room.

We will be using Firebase for the backend, which will allow us to store our data remotely and provide live updates whenever new data is added to the database. Firebase will also help us facilitate authentication for our users, and it will allow us to automatically log users in when they return to the application if they have logged in previously.

To give you a more precise definition, the exact features of the application will be:

  • Users can create a new account using an email and password
  • Users can log in with their email and password
  • Users can leave messages that all other users can see and respond to (in real-time)
  • Users can log out of the application

Another interesting thing about this application is that it will involve us doing a bit of work outside of the application itself. We will need to do things like set up a Firebase account, configure emulators for a local development environment, set up security rules to ensure the data in our database is safe, and more.

Ready?

Now that you know what you’re in for, let’s get to building it!