60 Days Of Flutter : Building a Messenger from Scratch
In this series I’ll be building Messio, A messenger app from scratch using Flutter and writing a daily blog post about it. My goal with this series will be to become a better flutter developer and also practice writing concise blog posts. Now, before you think that 60 days is too long, I’d like to mention that I’ll be writing the series over 60 days and it won’t necessarily have 60 parts. You can expect it to be around 40 parts.
What Am I Building
For this series I’ll be building Messio, A messenger. The distinguishing point for Messio from other messengers will be it’s ease of use and taking a different approach from the conventional messaging navigation flow to a more convenient gesture based navigation.
For this project I’ll be using the BLOC Pattern . I’ll be dividing the development into two phases. The first set of MVP Features:
- Peer to peer chat
- Attachments
- Registration using GoogleAuth
- Emoji support
- Voice messages
- Media bookmarks/Custom categories
- Profile
- Gesture-based navigation
Since I haven’t built the app yet so I’m uncertain about the timelines. If everything finishes on/before time I’ll do a second set of features. The second set of features will be:
- Privacy settings
- Search
- Personal/shareable cloud storage for messages and media
- Double tap to save media to gallery
Mock Designs
To start with I’ve scribbled the rough designs to give you an idea of what I’ll be building. Again, the end result might or might not be similar but this should give you a look into what I’ll be building.
How Will I Go About It
Everyday I’ll write a new blog post describing my most recent progress on the app. The posts will be short and precise and list all the resources I will be using during the development.
I’ll also be following all the best practices and strictly following test-driven development.
What I’ll Use
Some of the technologies I plan to use for Messio are:
- Flutter ( Do I even need to mention that?)
- Firebase Firestore for database
- Firebase Auth for authentication
- Firebase Cloud Storage for hosting images
How Can You Contribute?
- Open issues with suggestion of better approaches or ideas for the app.
- Connect with me on Twitter or Linkedin or Instagram.
- Star the Github repository.
- Share the series on Twitter.
- Follow me on Github.
Posts In This Series
- 60 Days Of Flutter : Building a Messenger from Scratch
- 60 Days of Flutter : Day 1 : Creating the App
- 60 Days of Flutter : Day 2 : Setting Up A CI With Flutter
- 60 Days of Flutter : Day 3–4 : Building a Chat Screen in Flutter
- 60 Days of Flutter : Day 4–5 : Widget Testing With Flutter
- 60 Days of Flutter : Day 6–7 : Implementing a Slideable Widget Using Bottomsheet in Flutter
- 60 Days of Flutter : Day 8 : Changing The Launcher Icon and Implementing GestureDetector
- 60 Days of Flutter : Day 9–10–11 : Creating Awesome Register Screen in Flutter
- 60 Days of Flutter : Day 12–14 : Understanding BLoC Pattern in Flutter
- 60 Days of Flutter : Day 15–17 : Implementing Registration Screen using ‘flutter_bloc’
- 60 Days of Flutter : Day 18–19 : Unit Testing in Flutter using ‘ mockito’
- 60 Days of Flutter : Day 20–21 : Unit Testing a Bloc in Flutter
- 60 Days of Flutter : Day 22–23 : Building a Modern Contacts Page in Flutter
- 60 Days of Flutter : Day 24–26 : Building a Animated Progress Fab and the Contacts Bloc in Flutter
- 60 Days of Flutter : Day 27–29 : Sending and Retrieving Messages from Firebase using BLOC
- 60 Days of Flutter : Day 30–32 : Firebase Chat UI using Stream and Bloc
- 60 Days of Flutter : Day 33–35 : Paginating data from Firestore using Firebase Queries
- 60 Days of Flutter : Day 36–38 : Seamlessly Upload Files to Firebase Storage
- 60 Days of Flutter : Day 39–41 : One UI Inspired Attachments Showcase Page
- 60 Days of Flutter : Day 42–45 : Creating the Home Page & Quick Peek BottomSheet for Messages
- 60 Days of Flutter : Day 45–47 : Adding Dark Mode to a Flutter App
- 60 Days of Flutter : Day 48–50 : Creating the Settings Page using Bloc
- 60 Days of Flutter : Day 51–54 : Unit Testing Firebase Providers with Mockito60 Days of Flutter : Day 55–56 : Deploying Firestore Security Rules using Firebase CLI
- 60 Days of Flutter : Day 60 : Wrapping It Up
Show Your Support
Press the clap button below if you liked reading this post. The more you clap the more it motivates me to write better!