690 Final Project Arman Husic
This is the final iteration of my Group Chat Application. The first iteration of the app had only a single view. and anonymous users. The final version of the application has Google sign in and authentication with firebase as well as the ability to make groups to organize conversations beyond a single chat view. For this project I followed Youtube tutorials by Gary Tokman and Wilson Balderama as well as the Firebase documentation on Real-time database settings, and Google Sign In and Authentication.
Below is the original plan for the features of the project, followed by the actual features that were implemented.
Original Plan of Features:
- Google Sign In / Sign Out /
- Firebase Authentication
- Multiple Users
- Ability to create Chat Rooms for Organization
- Private Messages / Passwords for Rooms
- Notifications for messages
Final Product Features:
- Google Sign In / Sign Out /
- Firebase Authentication
- Multiple Users
- Ability to create Chat Rooms for Organization
Future Releases Features:
- Notifications
- Passwords for Rooms
Time To Implement Features:
- Adding Firebase to the application was the first hurdle,
This implementation did not take very long I would say 3-4 hours.
- Creating a single chat view and having it update messages live also took about 2-3 hours.
- Google Sign In took me about about a couple days to perfect, because I ran into issues that
allowed the user to bypass the log in and still access the application. Then followed by an issue
where the user was only prompted to log in once and the app never renewed the access tokens.
- Adding multiple users to the application was not very difficult with Firebase/Google Auth.
- Ability to create chat rooms
This was the longest feature to implement because it caused issues in the Main Storyboard of my application
to the extent of not being able to run the application anymore, therefore I had to restart my app when
trying to implement this feature. The ammount of time this took was 4-5 days, working about a solid hour and a half
per day to get back to the point where I'd left off.
This feature was also the best learning experience I had during the development process because it allowed me to do
some repitition with the process which made it easier and faster.
- Overall this was one of my favorite assignments to work on because of the ability to my idea and make it into a working product that I can share with my friends and family.
Code Reviewer: Jack Li (Shi Yi Li)