Gabble is a chat Application which allows users to send text messages, voice messages, and share images, documents, and other content. Given Below is the process flow of the app -
Bugs/Hurdles I ran into and how I fixed them -
Database design - It took me a lot of brainstorming to design the structure of how data will be organized in the Firebase Firestore database in the form of collection and documents.
Realtime Chat Implementation - Although chats were updating in the database they weren't in the activity. Every time activity needed to be refreshed in order to view the changes. But I found a solution to this problem which can be seen implemented in the project itself.
Handling large Bitmaps efficiently - I noticed that the app got slower and buggy when I loaded large-size bitmap images in the ImageView. So, I fixed this problem using the Glide Image processing library.
Adding offline support in the app - Earlier the app could only be run when there is an active internet connection. This issue was fixed by caching all the text data using android shared preferences and image data using the Glide library.
Discussion