Android chat application using Firebase, EventBus, Realm, OneSignal, Chatkit, Butterknife & Dagger
- Login using Email, Phone number or Facebook
- Signup using Email, Phone number or Facebook
- Email verification process using Firebase SDK
- Phone number verification process using Firebase SDK
- Phone number zone detection and format
- Recent chats view with principal menu - updated in realtime
- Chat page
- Image, emoji icons and current location can be sent to the chat
- Chat bubbles with user image and automatic letter image & timestamp
- Multiple poeple chat
- A group chat - can be edited and add additional members from edit screen
- Chat is updated in realtime and sending notifications to all participants using OneSignal SDK
- Images can be viewed
- Typing indicator shows while someone in the group is currently typing
- Create new group
- Intiate a private chat with a contact in your phone
- Mechanism that searches for facebook friends or contacts in your phone that are available in app Firebase DB
- Matched contacts are shown in the app when trying to initiate a group or a chat, like Telegram does.
- Architecture is IOC for all components of the app
- Application data is available offline even if there's no connection to Firebase using RealmDB
- Contacts, messages & recents chats are persisted in user's device
- Messages are encrypted and decrypted on the other side
- https://github.com/mikepenz/MaterialDrawer - side menu in the app
- https://github.com/mikepenz/Android-Iconics - automatic high quality icons library
- https://github.com/akashandroid90/ImageLetterIcon - generating letter images for users without a profile picture
- https://github.com/Clans/FloatingActionButton - for floating action buttons
- https://github.com/traex/RippleEffect - for ripple effects on components and views
- https://github.com/vanniktech/Emoji - for showing emoji icons and emoji keyboard
- https://github.com/stfalcon-studio/ChatKit - for showing chat bubbles
- https://github.com/realm/realm-android-adapters - for Realm integration in Android
- https://github.com/pchmn/MaterialChipsInput - for users selections using a chips input - used in the new group creation process
- https://github.com/heetch/Android-country-picker - a picker for countries when selecting phone area codes
- https://github.com/afollestad/material-dialogs - for showing material dialogs
- https://github.com/81813780/AVLoadingIndicatorView - loaders library - used for the typing indicator
- https://github.com/googlei18n/libphonenumber - used for phone number validation and format
- https://github.com/ParkSangGwon/TedPermission - for better async permissions support on Android 6+ devices
- https://github.com/google/dagger - Dagger framework
- https://github.com/JakeWharton/butterknife - Butterknife framework
- https://github.com/greenrobot/EventBus - for dispatching and listening to events between services & views
- https://github.com/scottyab/AESCrypt-Android - for messages encryption
- https://github.com/bumptech/glide - for automatic & easy aync images
- https://github.com/OneSignal/OneSignal-Android-SDK - OneSignal SDK for android