This repository contains a Flutter project that follows a feature-first architecture and utilizes the flutter_riverpod package for state management and freezed for code generation.
- Good project architecture using feature-first approach.
- State management powered by
flutter_riverpod. - Code generation with
freezed. - API requests using
dio. - Routing using
go_router.
The project utilizes the following packages from pub.dev:
cupertino_icons: ^1.0.2dio: ^5.4.0shared_preferences: ^2.2.2flutter_riverpod: ^2.4.9freezed_annotation: ^2.4.1json_annotation: ^4.8.1riverpod_annotation: ^2.3.3pretty_dio_logger: ^1.3.1go_router: ^13.0.1cached_network_image: ^3.3.1
Make sure to include these packages in your pubspec.yaml file before running the project.
To get started with this Flutter project, follow the steps below:
- Clone the repository to your local machine:
git clone https://github.com/mohammadhammadi/flutter_base_project.git
-
Ensure that you have Flutter installed on your machine. If not, refer to the Flutter installation guide for instructions.
-
Open the project in your preferred IDE or editor.
-
Install the project dependencies by running the following command in the project root directory:
flutter pub get
- Run the app on a connected device or emulator:
flutter run
The app's home page fetches user data from a free API using dio for API requests and displays it in a list.
Each list item shows the user's name, email, and profile image.
The user can swipe any list item to delete it.
The list can also be refreshed by swiping down.
In case of error, error screen will be displayed
When a list item is pressed, a bottom modal is shown, providing more detailed information about the user.
The app utilizes go_router package for routing. It provides a flexible and powerful routing solution for your Flutter application.
Contributions to this Flutter project are welcome. If you encounter any issues or have ideas for improvements, feel free to open an issue or submit a pull request.

