β‘οΈ First Chat App is a Mobile Cross Platform App that fully supports Android, IOS, and Web platforms; I finished developing it in Mar. 2024. I built it to better understand & gain more experience in
- Flutter Framework
- BLoC & Cubit Design Pattern
- State Management
- Clean Architecture
- Chat Apps
β‘οΈ And I was able to accomplish the above, using
- Dart Programming Language
- Flutter Framework
- BLoC Library
- Firebase Cloud Firestore
- Firebase Cloud Storage Database
β‘οΈ App Features
- Create Account and Sign In
- Update profile name, about, and picture
- Search and Add contacts
- View contact profile
- Chat with contacts
- List of all chats
- Send messages, images, and videos in the chat
- Read recepients (Sent, Delivered, Read)
- Delete messages (For me, For every one)
- Emoji keyboard
- Select and send multiple media at once
β‘οΈ In order to build and structure my project correctly and effeciently, I read, studied and followed these official documentations
- Flutter Framework: https://docs.flutter.dev/
- State Management: https://docs.flutter.dev/data-and-backend/state-mgmt/options
- BLoC Library: https://pub.dev/documentation/bloc/latest/
- Firbase Cloud Firestore: https://firebase.google.com/docs/firestore
- Firebase Cloud Storage: https://firebase.google.com/docs/storage
System Block Diagram | Firestore Database Schema |
---|---|
Project Files Structure | ||
---|---|---|
- bloc: https://pub.dev/packages/bloc
- flutter_bloc: https://pub.dev/packages/flutter_bloc
- fluttertoast: https://pub.dev/packages/fluttertoast
- google_nav_bar: https://pub.dev/packages/google_nav_bar
- line_icons: https://pub.dev/packages/line_icons
- firebase_core: https://pub.dev/packages/firebase_core
- cloud_firestore: https://pub.dev/packages/cloud_firestore
- firebase_storage: https://pub.dev/packages/firebase_storage
- image_picker: https://pub.dev/packages/image_picker
- video_player: https://pub.dev/packages/video_player
- carousel_slider: https://pub.dev/packages/carousel_slider
- share_plus: https://pub.dev/packages/share_plus
- flutter_secure_storage: https://pub.dev/packages/flutter_secure_storage
- emoji_picker_flutter: https://pub.dev/packages/emoji_picker_flutter
- crypto: https://pub.dev/packages/crypto
- permission_handler: https://pub.dev/packages/permission_handler
dependencies:
flutter:
sdk: flutter
bloc: ^8.1.2
flutter_bloc: ^8.1.3
cupertino_icons: ^1.0.2
fluttertoast: ^8.2.2
google_nav_bar: ^5.0.6
line_icons: ^2.0.3
firebase_core: ^2.15.0
cloud_firestore: ^4.8.4
firebase_storage: ^11.2.5
image_picker: ^1.0.1
video_player: ^2.3.8
carousel_slider: ^4.2.1
share_plus: ^7.2.2
flutter_secure_storage: ^8.0.0
emoji_picker_flutter: ^1.6.4
crypto: ^3.0.3
permission_handler: ^10.4.3