This is my repository for the 28 Days of Flutter challenge, where I'll be learning and practicing Flutter by building a new app every day for 28 days.
Day 1: Restaurant Picker
This is a Flutter app that randomly selects a restaurant from a list of restaurants, when the user presses the "Pick Restaurant" button.
Day 2:Tip Calculator
This is a Flutter app that calculates a tip based on a user-entered total amount and a selected tip percentage. The app has a simple user interface with a text field for entering the total amount, a set of toggle buttons for selecting the tip percentage, and a button for calculating the tip
Day 3:Easy Read
This is a simple Flutter app with a text field and a slider. The app allows the user to change the font size of the text in the text field using the slider.
Day 4:Flashcard App
This is a Flutter application that displays flashcards with questions and answers, and allows the user to navigate through them using the "PREV" and "NEXT" buttons.
Day 5:Web View
This is a simple Flutter application that demonstrates how to use a web view widget to display a webpage inside a Flutter app.
Day 6:Picture Carousel
This is a Flutter application that creates a picture carousel using the carousel_slider package.
Day 7:Tic Tac Toe
Tic Tac Toe is a two-player game played on a 3x3 grid. The players take turns marking their chosen symbol (traditionally X or O) in an empty square of the grid, with the aim of getting three of their symbols in a row, column, or diagonal. The game ends either when a player achieves a winning pattern or when all squares are filled, resulting in a draw. Tic Tac Toe is a simple game that is often used as an educational tool for teaching basic concepts of game theory and artificial intelligence.
This is a Flutter application that allows the user to select their preferred settings and save them to persistent storage using the PreferencesService class. The UI consists of a ListView with various form elements such as text fields, radio buttons, checkboxes, and switches, allowing the user to select their preferred options.
Day 9:Share Widget Screenshots
This is a simple Flutter application that takes a screenshot of a Card widget and then shares it using the share_plus package.
Day 10:Networking Requests
This is a simple Flutter application that makes a network request using the http package and displays the response on the screen.
Day 11:Weather App
This weather app is a simple mobile application developed using the Flutter framework. It allows users to search for weather information about any city in the world. Users can enter the name of the city in a search bar, and the app will display the current temperature, weather description, and an icon representing the current weather condition.
This is a Flutter app that displays two tabs, one with a ListView and one with a GridView, each with 20 items.
Day 13:Flutter BloC and Cubit
This is a Flutter application that retrieves a list of posts from a remote API using the BLoC pattern and displays them in a ListView widget.
Day 14:Upgrade to Bloc from Cubit
This is a Flutter application that retrieves a list of posts from a remote API using the BLoC pattern and displays them in a ListView widget.
Day 15:BLoC Navigation
The app is a simple demonstration of navigation in Flutter using the Bloc pattern. It consists of two screens: the first screen shows a list of posts fetched from an API using a PostsBloc and rendered using a ListView.builder. The second screen shows the details of a post that the user selects from the first screen.
Day 16:Pokedex
PokeDex app that shows pokemon in a GridView using the BLoC pattern. This app will cover making a networking request, implementing a Bloc, and displaying remote images from an API
Day 17:Pokedex 2
Build out the navigation for the Pokedex app using the BLoC library. This will cover app navigation, working with multiple blocs, and performing multithreaded networking requests.
Day 18:Todo App
Todo app with Flutter using AWS Amplify and the BLoC pattern. This will cover how to build out the model schema using the Amplify Admin UI, setting up a cubit for state management, and persisting todos to the device.
To perform cross platform data sync by using the cloud (AWS Amplify) in your Flutter app. This will cover how to add the API category to Amplify app, syncing the local DataStore database with the DynamoDB backend, and displaying the realtime updates in the todo app.
Updating the Auth category to support web sign in, authentication state management, and updating the Todo model schema for supporting user specific queries.
Day 21:Login UI using BLoC
Login UI develop and validation with forms and managing state with BLoC.
Day 22:Sign up UI using BLoC
Creatied the sign up and confirmation screens, managing state between blocs and cubits, and communicating with multiple navigators.
Day 23:User Authentication
Amplify project with Admin UI, adding functionality to auth capabilities like sign up and sign in, and saving the registered user to DataStore as the database.
Day 24:Dice App
The Dice App is a simple and intuitive mobile application that emulates the experience of rolling dice. It provides users with a convenient way to simulate random dice rolls for various tabletop games, educational purposes, or any situation where a virtual dice is needed.
Day 25:Xylophone
A simple xylophone app for Android and iOS.
Day 26:Video Trimmer
This is a simple Flutter app that allows you to trim videos. It provides a user-friendly interface to select a video file and trim it to the desired duration.
Day 27:Flutter Polls
This is a Flutter app that allows users to create and participate in polls. It provides a user-friendly interface for creating polls, voting on polls, and viewing poll results.
Day 28:Date Picker
This Flutter application demonstrates a calendar picker using the provider
package for state management.
The app allows users to select a date from the calendar picker and displays the selected date below.
I would like to express my sincere thanks and appreciation to Kilo Loco for providing me with helpful resources and tutorials that have been instrumental in my learning and development of Flutter. His dedication and commitment to creating high-quality content have helped me to understand complex concepts and build robust applications. I am grateful for his contributions to the Flutter community and for being an invaluable resource to me throughout my learning journey.