This iOS messaging app allows users to create accounts and send messages to another signed-up user. I use Google’s Firebase to support this registration and login process; when a user is taken to the register or login screens and puts in their information, authentication is performed by Firebase, and if it is successful, a segue is performed to take them to the chat screen which implements a tableview to show custom made message bubbles made in a xib file. When the chat screen is loaded, previously sent messages are read from the Firebase Firestore database and displayed using the UITableViewDataSource delegate methods. Also, each time a message is sent, it is added to the database, and the delegate methods are recalled to display the newly sent message. The screens are embedded in a navigation controller so that users can access a navigation bar with back and log-out buttons.
The most difficult part of this project was deciding which package manager to use to install the Firebase packages. I found swift package manager the easiest to use as it worked seamlessly with Xcode. Another difficult portion was reading documentation to understand how to store and read messages from the Firebase Firestore database. Understanding the datatype of what was retrieved from the database to display it on the user interface was quite difficult but very important.