A modern Flutter application integrated with Firebase Firestore, providing real-time data access, offline persistence, and network-aware features.
- 🔥 Firebase Firestore Integration – Real-time sync and offline caching.
- 🌐 Network Connectivity Handling – Reacts to changes in internet connection.
- 🛠️ Clean Architecture – Modular and scalable code structure.
- 📱 Responsive UI – Smooth UI across devices with adaptive frame rates.
- 🔙 Back Navigation Support – Compatible with Android 13+ back gesture system.
- 🔒 Secure Connection – Firebase handles encrypted data transfers.
Creativity_Showcase.mp4
The app uses a layered approach:
lib/
├── cubit/ # State management using cubit
├── screens/ # UI pages/screens
├── widgets/ # Reusable custom widgets
└── main.dart # Entry point of the app
- Flutter SDK (>=3.0.0)
- Firebase CLI
- Dart (>=2.17.0)
- Android Studio or VS Code
git clone https://github.com/Siddiqui145/creativity_showcase.git
cd creativity_showcase
flutter pub get
- Set up Firebase project and download
google-services.json
intoandroid/app/
. - Run the app:
flutter run
Ensure you've:
- Enabled Cloud Firestore in Firebase Console.
- Downloaded and placed the
google-services.json
file correctly. - Added the appropriate rules in Firebase:
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if true; // Adjust as per your auth needs
}
}
}
- This is a known issue with
ProviderInstaller
. It’s generally harmless unless you're relying on advanced TLS features. - Solution: Ensure Google Play Services are up to date on your test device/emulator.
To support Android 13 back gesture, add this to your AndroidManifest.xml
:
<application
android:enableOnBackInvokedCallback="true"
... >
Package | Description |
---|---|
firebase_core |
Firebase SDK core |
cloud_firestore |
Firestore DB |
cubit |
State management |
flutter_local_notifications |
For background alerts (optional) |
This project is licensed under the MIT License. See the LICENSE file for details.
Pull requests are welcome. For major changes, please open an issue first to discuss what you’d like to change.