Welcome to this Flutter Hands-On Project! This hands-on experience is designed to help you strengthen your Flutter skills by building a simple yet feature-rich mobile app. Throughout this project, you will cover various essential aspects of Flutter development, including theming, widget creation, routing, asset management, model and DTO implementation, and working with HTTP requests using the DIO library with the BLoC pattern.
Getting Started To get started with this hands-on project, make sure you have Flutter and Dart installed on your development environment. If not, please follow the official Flutter installation guide: Flutter Installation Guide.
Clone this repository to your local machine to access the project files:
git clone https://github.com/TheLiux/flutter_hands_on.git
cd flutter-hands-on
The project is organized into different sections, each focusing on a specific aspect of Flutter development. The primary sections include:
- Explore how to set up a theme for your Flutter app.
- Customize colors, fonts, and other visual elements to create a cohesive design.
- Learn how to create new custom widgets to enhance the modularity and reusability of your code.
- Understand widget composition and inheritance principles.
- Implement page navigation using Flutter's routing system.
- Create new pages and manage navigation between them.
- Import and use libraries and assets such as images and fonts, in your Flutter app.
- Explore best practices for handling assets efficiently.
- Utilize the Dio library to make HTTP requests in Flutter.
- Implement the BLoC (Business Logic Component) pattern to manage state and data flow.
- Define data models and DTOs (Data Transfer Objects) to structure your app's data.
- Autogenerate code with json_serializable
At the end of this hands-on, you will realize an app that will search and return Books with all infos available.
Switch to the branch corresponding to the section you want to work on:
git checkout branch-name
Replace branch-name with the desired branch, such as step-1-theming
, step-2-widget-creation
, step-3-routing
, step-4-assets-management
, step-5-http-requests-with-bloc
or step-6-models-and-dto
.
Follow the instructions provided in each branch's README file to complete the tasks related to that section.
Feel free to experiment, modify, and extend the code to further enhance your understanding of Flutter development.
If you encounter any issues, have suggestions, or want to contribute improvements, please feel free to submit a pull request. Your feedback and contributions are highly appreciated!
Happy coding!