Mentors
- Srujan Bharadwaj
- Aryaman M
Members
- Vaishali S
- Hamna Muslihuddeen
- Palgun
- Mallika Rao
Introduction
This project is an android chat application. The app has features such as DMs, group chat and sending media. We used java for development and git for version control. Learning the technologies will help in the long term. We also got to experience the workflow of a project and also got to develop native android apps from scratch
Theory
This chat app was built using native Android Studio which implements Java for back end development and XML for the user interface/user graphics. This chat app lets users login using an OTP, create new chats or group chats with users of this application who are in their contacts and send text or media messages.
Technology Used
- Android Studio
- GitHub / Git
- Firebase
- Glide Image Viewer
Authentication
We used the in built authenticate via phone number feature provided in firebase. It checks for re-captcha also at the time of authentication.
Getting User List
The app compares the list of users of the app taken from firebase to the current user’s contact list on their phone and displays only the list of people who are present in both the lists. The contacts are then stored in the database under an unique User-Id through which they can be accessed.
Starting New Chat
The user can start a new personal chat or a group chat with his contacts. All the chats are stored in a Firebase database under an unique chat-id. The chat-id will be linked to both the user-ids.
Sending Messages
All the messages of a certain chat are stored under the unique chat-id. The list of all the old messages to be displayed are obtained from the database.
Sending Media
The user can send single or multiple media items from their phone gallery. This app uses Glide Image Viewer to display the media elements. The media elements are also given their own id and stored under the particular chat-id.
Future Plans
- Add voice and video calls
- Add notifications
- Add last seen or last read features
- Add pre scheduled messages