My Repository of 100 Days of Flutter Practice
Loosely follows Olexale's Flutter Roadmap
Learnt how stateless and stateful widgets function Learnt how to create classes and functions, and how to pass them through as parameters
Built a simple Quotes Application It displays quotes, and quotes can also be deleted from the list. Pretty Basic
Built a Ninja ID Card Application Displays basic information about user. Learnt layout widgets and image assets Basic State Changing procedures
- Learnt how navigator and routes work
- Learnt how to fetch data using APIs and how to convert them into Maps
- Learnt various data types and null safety features
Worked on World Time Clock It displays the world time for selected locations using data from the worldtimeapi
- http
- intl
- Learnt how to use loaders and spinners
- Learnt how to format and show the dates
- Learnt how the stack widget works
- Progress on World Time Clock
- Implemented loading screen spinner.
- Started on making the UI better
- http
- intl
- flutter_spinkit
- Learnt how to use Ternary Operators
- Learnt how to use Builders
- Learnt how to pass data through screens
- Progress on World Time Clock
- Implemented location lists
- Completed the Project
- http
- intl
- flutter_spinkit
- Learnt how to create a firebase project
- Learnt how to Integrate flutter with firebase
- Learnt how to use the flutterfire CLI tool
- Simple Firebase CRUD Application
- Added Firebase firestore and read the document from collection
- firebase_core
- firebase_firestore
- Learnt how to implement CRUD on Firebase Firestore
- Learnt how audio streaming systems work
- Simple Firebase CRUD Application
- Added functionality to add and delete documents to the collection
- Finished the application
- firebase_core
- firebase_firestore
- Learnt how to implement Firebase Auth
- Learnt the Expanded widget features
- Learnt how to use images as background using Stack
- Learnt how to use Gradient on the whole app
- Habit Tracker
- Started work on building a Habit Tracker
- Built the basic Homescreen UI
- Built habit card for Home
- firebase_core
- firebase_auth
- firebase_firestore
- provider
- floating_bottom_navigation_bar
- google_fonts
- Learnt how to make a custom drawer
- Learnt how to effectively refactor code
- Learnt how to use Figma
- Learnt various design principles
- Habit Tracker
- Started work on the drawer
- Designed the Login and Signup screens on Figma
- Looking to do a complete UI overhaul while I still can
- Refactoring changes
- firebase_core
- firebase_auth
- firebase_firestore
- provider
- floating_bottom_navigation_bar
- google_fonts
- Learnt how Navigation between pages works
- Habit Tracker
- Implemented Login page UI
- Implemented Register Page UI
- Implemented Navigation between pages
- Refactoring changes
- firebase_core
- firebase_auth
- firebase_firestore
- provider
- floating_bottom_navigation_bar
- google_fonts
- Learnt how Futures and Streams work in Dart
- Started learning Provider for state management
-
Habit Tracker
- Taking a break from it
-
Clock App
- Built a simple clock app using the Canvas API
- firebase_core
- firebase_auth
- firebase_firestore
- provider
- floating_bottom_navigation_bar
- google_fonts
- Learnt how Futures and Streams work in Dart
- Started learning Provider for state management
- Habit Tracker
- No progress
- firebase_core
- firebase_auth
- firebase_firestore
- provider
- floating_bottom_navigation_bar
- google_fonts
- Learnt animations in Flutter
- Learnt how to use TweenAnimationBuilder
- Experimented with building Animations
- Habitalia:
- Worked on getting the authentication methods setup
- Switched out Facebook login for Phone and OTP based login
- Pinput
- Firebase_auth
- Continued learning about custom animations and canvas
- Tried Implementing Iron Man's Arc Reactor Design
- Learnt animations in Flutter
- Learnt how to use TweenAnimationBuilder
- Habitalia:
- Continued work on the authentication methods
- Implemented Phone based authentication
- Started redesigning the main homescreen UI
- Pinput
- Firebase_auth
- Learnt using provider for theme management
- Learnt how to use TweenAnimationBuilder
- Calculator:
- Built a Calculator App
- Implemented Theme Switching
- Implemented Calculator Logic
- math_expressions
- provider
- Learnt using provider for theme management
- Learnt how to use TweenAnimationBuilder
- Calculator:
- Built a Calculator App
- Implemented Theme Switching
- Implemented Calculator Logic
- math_expressions
- provider
- Learnt using provider for theme management
- Learnt how to use TweenAnimationBuilder
- Calculator:
- Built a Calculator App
- Implemented Theme Switching
- Implemented Calculator Logic
- math_expressions
- provider
- Learnt how to implement phone based authentication using Firebase Auth
- Learnt how reCaptcha and SHA fingerprints work
- Implemented Phone number auth
- Designed User data model
- Designed basic onboarding screen
- Implemented Google Auth and Login
- Implemented Signout Feature
- Started designing the UI overhaul for the homepage
Losing motivation for this app 😢
- Learnt how MediaQuery works
- Learnt differences between Google Authentication on the Web vs on Android/iOS
- Implemented Responsive UI
- Implemented Web platform support with responsive design
- Learnt the guidelines for iOS appstore publishing
- Started designing the homepage
- Learnt about FutureBuilders and Streams
- Learnt how to make data flow from one screen to another
- Learnt how to select images and upload them onto Firebase Storage
- Implemented Google Login
- Implemented Email Login
- Implemented User Data Input at Registration
- Implemented Image Picker and Uploading
- Implemented User and University Data models
- Implemented Data Fetching and Conversion
- Offline data storage
- Webview for Universities
It's been a hectic day 😴
- Learnt about SharedPreferences
- Learnt how to store data in SharedPreferences
- Learnt ways to convert and store data for your projects
- Learnt Hive Storage
- Learnt Isar Storage
- Learnt WebView
- Implemented SharedPreferences
- Implemented State Management Models for User Data and Universities
- Implemented offline mode for app
- Implemented WebView
- Implemented Network Image Fetching
Things to implement.... None actually The app's complete! It's been a hectic day 😴
- Learnt about Carousels
- Learnt Supabase
- Learnt more about viewports
- Learnt about Scrollable PageView
- Comic Tracker App
- Tracks your comics
- Decided to switch over to Supabase as the database
- Built the Dashboard Homescreen
- Built the Profile Page
- Started integration with Supabase
- Using auth from firebase and database from supabase.. what could possibly go wrong? 😂
- Learnt how to use Hive Database
- Learnt how to convert XML data into class
- Learnt how Hive Data Adapters work
- Learnt how to control flow and throw errors in async events
- Learnt how to get location data from device
- Built an application that gets the users location
- Built converter class to convert XML data from API into usable format
- Implemented state management into the application
- Implemented Hive for Local data storage to store the data in case of no network connection
- Learnt how to use SQLite DB in App
- Learnt basic SQL necessary for queries
- Started work on a simple Task management application that uses SQlite database for storage
- Built the UI for the App. Created simple card based widgets for the Task list, along with the ability to check them on and off with code.
- Learnt about Design Patterns in Flutter
- Learnt the Builder, Factor, Singleton and Dependency Injection Design Patterns
- Learnt the MVC, MVP and MVVM architectural models
- Designed the Database structure for the application
- Decided to convert it from a simple application into a fully fledged project tracking and task management application. Let's see how this goes
Today marks 1 month of coding and learning about Flutter. Just 70 more days to go... yay.....
- Learnt about creating my own factory patterns in Flutter
- Learnt about Abstract Base Classes
- Implemented Task Class. Implemented functions to build the class from JSON (factory fromMap) and to export it to JSON (toMap)
- Learnt about RiverPod for State Management
- Learnt about the Limitations of sqflite library and now am thinking of how to circumvent them.
- Implemented Riverpod state management
- Implemented CRUD functions using sqflite
- Redesigned my Portfolio Website in Figma. Gonna start implementing it using Flutter Web
- Learnt about Network Modes in Docker
- Learnt how to create a DockerFile
- Learnt how to use custom images in Docker Compose
- Learnt how to create a Docker Compose Stack
- Learnt base images work in Docker
- Learnt how to use PostgreSQL in my custom application
- Learnt the various terminologies of Docker
- Dockerized my Task Management API. Created a Docker Compose file to orchestrate it using well.. Docker Compose.
- Added task retrieval functionality
- Created Tag View Page
- Resolved some bugs
The app is functionally complete! Another project done 😼
- Learnt about the Supabase Database and Row Level Security Features
- Integrated Supabase Database into the app
- Created Event model
- Created the functions required to fetch the events and turn them into widgets
- Built the Event Dashboard
- Created the Search Screen
- Created Notification Screen
- Created Orders Screen
- Learnt about the Hero Widget and Animations
- Created the Notification and Orders Model
- Created the Event Info Page
- Spent the whole damn day debugging null safety errors by trying to integrate Firebase Auth with Supabase Database
- Wrote Custom Calender Selector for Selecting the events according to dates
- Wrote functions to dynamically build notifications and orders from list
- Wrote state management stuff for events and auth
- Learnt about payments gateways Razorpay, Paytm and Stripe
- Integrated the Dashboard and Search Screen with State Management
- Integrated Calender Bar with Dashboard
- Created Genre based view for events
- Created Payment Page
- Tried Integrating Razorpay as well as Paytm, but at last ended up using Stripe
- Learnt what a disaster it can be to try and integrate two services together
- Learnt about AppCheck rules and how to enable device check in Firebase
- Added functionality to automatically update the events database and orders table whenever a payment is successful
- Added state management model for Profile
- Spent the day trying to debug authentication errors
- Debugged Profile Errors
- Learnt about Splash Screens
- Learnt about how to change app icon in launcher
- Added Finishing touches to the app
- Updated the launcher icon for the app
- Added Splash Screen for the app. Doesn't work for Android 12 tho.. (Thanks a lot google)
- Switched Auth Provider to Supabase
- Completed and Delivered the Application
With this another project comes to an end....
- Started a New Project
- Started working on Creating a Management Application for our Pharmacy
- Designed the basic UI of the application in Figma
- Decided on the colorscheme to be used for the app. Wanted to go for a lighter theme to match the pharmaceutical feel
- Implemented Base Template to be used by the application
- Implemented the Theme class
- Implemented Quick Add Buttons (functionality remains yet to be implemented)
- Created custom widget for the Headers
- Implemented Medicine Class
- Started Implementing the Database Service for the app
- Started Implementing the Authentication Service for the app
- Implemented the Login Screen
- Implemented Medicine Fetching Functionality for Medicine Page
- Implemented Search Functionality on Medicine Page
- Did a lot of backend work on getting RLS (Row Level Security) to work in the App
- Implemented Adding Medicine Page
- Implemented View Medicine Page
- Implemented Adding Bill Page
- Implemented Autocomplete for Selecting Doctors and Patients
- Worked on creating a splash screen when the app initially loads
- Worked on finishing the final design and flow for adding doctors and patients