This Flutter project is an implementation of a simple blog app that displays a list of blog posts using the JSONPlaceholder API. The app includes various features, such as viewing posts, searching, adding/deleting posts, and viewing detailed post information along with comments.
- The app displays a list of blog posts with animated insertions ( not implemented ) and deletions.
- Each post preview includes the author's name and the post title.
- Users can search for posts using a search bar, allowing them to filter the list based on keywords.
- Users can add new posts to the list.
- Users can delete existing posts from the list.
- Clicking on a post in the list opens a detailed view.
- The detailed view includes the post title, author's name, user profile picture, post content, an image, and a list of comments.
- Commenting: Users can add comments to blog posts. (0%)
- Animations: Various animations enhance the user interface. (25%)
- Page Transition Animations: Smooth animations between different screens. (10%)
- User Profiles: View and edit user profiles. (50%)
- Unit Testing: Includes unit tests for different components. (0%)
The project follows a clean and organized structure with separation of concerns. Key components include:
libs.dart
: Centralized import file for easy access to dependencies.models/
: Contains the data models for posts, comments, etc.providers/
: Manages the state and data providers using Riverpod.widgets/
: Reusable UI components.services/
: Handles API calls and data fetching using theApi
class.pages/
: Individual screens for different sections of the app.routes/
: The router made with GoRouter
Ensure you have Flutter and Dart installed on your machine. To run the project, use the following commands:
flutter pub get
flutter run