G

Gabble

Chat Application.

The problem Gabble solves

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 -

  1. Login/Sign up(phone verification required).
  2. Create/ edit your own profile.
  3. Chat with other users using gabble.
  4. Post stories containing rich text for 24 hours.
  5. Archive not so important chats.
  6. Online status of the users can be seen.
  7. Typing status of the user is seen while he is typing some text.
  8. View other user's profile.
  9. Send Images/Contacts to other users.
  10. Scan other user's Gabble QR to directly chat with him.

Challenges I ran into

Bugs/Hurdles I ran into and how I fixed them -

  1. 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.

  2. 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.

  3. 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.

  4. 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