Talk is a smart, fast, and modern chat app built with Flutter and Firebase, designed for seamless real-time communication. It supports one-on-one messaging and group chats, all packed into a clean, intuitive, and responsive user interface.
With features like profile customization, group creation, dark mode, and secure authentication, Talk offers a complete messaging experience that's both powerful and user-friendly.
π The app is currently in version v2.0.0.
- Displays a list of all personal chats.
- Each chat item shows:
- User's profile photo
- Username
- Email as a subtitle
- Unread message count badge (if applicable)
- A side navigation drawer is accessible for app-wide navigation.
- Real-time one-on-one messaging using Firebase Firestore.
- Chat screen includes:
- App bar with sender's profile photo (clickable to view), username, and email as subtitle.
- Live auto-scrolling to latest message.
- Message bubbles show:
- Message text
- Timestamp
- Alignment based on sender (left/right)
- Long-press on a message shows options to:
- Report user
- Block user
- Real-time group messaging powered by Firebase Firestore.
- Groups screen:
- Displays all groups the user is part of.
- Shows "No groups found" message if user isnβt in any group.
- Create group screen includes:
- Input field for group name
- Scrollable user list with:
- Username
- Checkbox to select users
- Create Group button to finalize creation
- Group chat screen:
- App bar with group name and a delete button (for group admin)
- Message bubbles show:
- Sender's profile photo
- Username
- Message text
- Timestamp
- Proper alignment based on sender
- Customize your profile with:
- Editable username
- Optional profile photo (upload from gallery or delete)
- Settings include:
- Dark mode toggle for theme switching
- Change username with a hint showing current username
- Blocked users list β view and unblock users
- Delete Account button:
- Permanently deletes user data from:
- Firebase Auth
- Firestore
- Firebase Storage
- Permanently deletes user data from:
- Accessible via swipe or menu icon.
- Displays:
- Profile section:
- Profile photo
- Username
- Real-time photo updates (supports fallback if photo is deleted)
- Navigation options:
- Home (Chats)
- Groups
- Settings
- About
- Logout button
- Profile section:
- Designed with smooth transitions, shadows, and clean layout.
- Firebase Email & Password authentication (Google sign-in coming soon)
- Fields:
emailprofileImageuiduname
- Subcollection:
groupsβ stores group IDs user is part of
- Each chatroom ID has a subcollection:
messages- Fields:
messagetimestampsenderIdsenderEmailreceiverIdunameisRead
- Fields:
- Each group ID has:
- Subcollection:
messages(same fields as above) - Fields:
name(group name)membersId(list of user IDs)
- Subcollection:
- Deleted profile images update across all screens instantly.
- Home screen shows unread message count markers for personal chats.
- Full real-time sync with Firestore β no manual refresh needed.
- State management ensures:
- Updated usernames and images reflect everywhere.
- No stale or cached data after profile changes or deletions.
| Tool | Purpose |
|---|---|
| Flutter | Cross-platform app development |
| Firebase Auth | User authentication & management |
| Firebase Firestore | Real-time chat & group data |
| Firebase Storage | Profile image uploads |
- Built with a Material-first aesthetic
- Responsive layouts for all screen sizes
- Smooth animations and UI transitions
- Clean separation of features and screens
- Prioritizes usability, speed, and clarity
- Comes with a custom-designed app icon/logo
- UI themed for a sleek and modern look in both light and dark modes
Talk is built for modern communication β balancing performance, simplicity, and community. Whether chatting one-on-one or managing group conversations, it offers everything you need, without the clutter.
![]() Login |
![]() SignUp |
![]() Light Mode |
![]() Dark Mode |
![]() Light Mode |
![]() Dark Mode |
![]() Light Mode |
![]() Dark Mode |
![]() Light Mode |
![]() Dark Mode |
![]() Group List |
![]() Group Chat |
Note - More screenshots are available in the 'assets/screenshots' folder.











