Talkio is a real-time messaging app built with Flutter and Firebase. It enables private one-on-one chats, features auto-generated avatars, real-time typing indicators, push notifications, and provides a clean, modern user experience.
- Firebase Authentication
- Private 1-to-1 chat system
- Auto-generated avatars based on user UID
- Typing status indication in real time
- Real-time message updates with Firestore
- Search bar to filter messges
- Responsive and modern chat UI
- Real-time notifications for new messages
- Flutter
- Firebase CLI
- Firebase (Auth, Firestore, FCM, Functions)
- Provider
lib/
├── app/ # App configuration and main setup
├── components/ # Reusable UI widgets
├── controllers/ # Business logic and state management
├── errors/ # Custom error classes and handlers
├── middlewares/ # Request/response interceptors or guards
├── modals/ # Modals and bottom sheets
├── models/ # Data models and entities
├── providers/ # Dependency injection and global providers
├── screens/ # UI screens and views
├── services/ # External services and APIs (e.g., Firebase)
├── utils/ # Utility functions and helpers
└── validators/ # Input validators and schemasgit clone https://github.com/DanielArndt0/Talkio.git
cd talkio
flutter pub get
flutter run --dart-define-from-file=env/env.local.json{
"androidApiKey": "androidApiKey",
"androidAppId": "androidAppId",
"iosApiKey": "iosApiKey",
"iosAppId": "iosAppId",
"iosBundleId": "iosBundleId",
"projectId": "projectId",
"storageBucket": "storageBucket",
"messagingSenderId": "messagingSenderId"
}flutter build apk --release --dart-define-from-file=env/env.local.jsonUse the command below to generate your production keystore file (upload-keystore.p12):
keytool -genkey -v -keystore upload-keystore.p12 \
-storetype PKCS12 -keyalg RSA -keysize 2048 -validity 10000 \
-alias uploadYou will be prompted to enter your name, organization, and keystore password.
Get SHA1 / SHA256 fingerprints Run this to retrieve your certificate fingerprints (required by Firebase):
keytool -list -v -keystore upload-keystore.p12 -alias upload -storetype PKCS12To generate your app’s debug and release certificate fingerprints (SHA-1 and SHA-256), use the following command from the android/ directory:
./gradlew signingReport| Tool | Version |
|---|---|
| Flutter | 3.29.2 stable |
| Dart | 3.7.2 stable |
| Java | >= 11 |
| Android SDK | 35 |
| targetSdkVersion | 35 |
| minSdkVersion | 21 |
| Android NDK | 27.0.12077973 |
| Gradle | 8.10.2 |
| Kotlin | 1.9.24 |
| Groovy | 3.0.22 |




