Bookly is a Flutter-based mobile application designed for book enthusiasts. It provides users with access to a wide range of books, categorized by genres such as Programming, Science, Health, and more. The app includes features like a splash screen with animations, home and detail views for books, and a robust search functionality to help users find their favorite books.
-
Splash Screen
- Animations for the logo and text.
- Automatic navigation to the home screen after a short delay.
-
Home Screen
- Displays featured books and newest books by categories.
- Includes a tab bar for easy navigation between categories.
-
Book Details Screen
- Provides detailed information about a selected book.
- Displays similar books based on the book's category.
-
Search Functionality
- Allows users to search for books using a search bar.
- Displays search results with pagination and loading indicators.
-
Bloc State Management
- Uses
flutter_bloc
for efficient state management. - Separate Cubits handle fetching data for featured books, newest books, and search results.
- Uses
Splash Screen | Loading Books Screen | View Books Screen |
---|---|---|
Default Search Screen | Search Books Screen | Details Books Screen |
---|---|---|
- Clone the repository:
git clone https://github.com/yourusername/bookly.git
- Navigate to the project directory:
cd bookly
- Install dependencies:
flutter pub get
- Run the app:
flutter run
lib/
├── core/
│ ├── routers/
│ │ └── routers_manager.dart # Manages app routes
│ ├── theme/
│ │ └── theming_app.dart # Contains app themes
│ ├── utils/
│ │ └── service_locator.dart # Dependency injection
│ ├── widgets/
│ └── reusable_widgets.dart # Reusable UI components
├── features/
│ ├── home/
│ │ ├── data/
│ │ │ └── repo/ # Home repository implementation
│ │ ├── presentation/
│ │ ├── view/ # UI for home-related screens
│ │ └── view model/ # Bloc Cubits for home features
│ ├── splash/ # Splash screen features
│ ├── search/ # Search functionality
└── main.dart # App entry point
- Animates logo and text using
AnimationController
andTween
. - Navigates to the home screen after 3 seconds.
- Fetches featured and newest books using
FeatureBooksCubit
andNewestBooksCubit
. - Displays categories with
TabBar
and a scrollable list of books.
- Accepts a
BookModel
object and displays its details. - Fetches similar books using the
SimilarBooksCubit
.
- Includes a text field for user input.
- Uses
BuilderSearchBooks
to fetch and display results.
- flutter_bloc: State management
- go_router: Navigation and routing
- http: API calls and data fetching
Contributions are welcome! Feel free to submit a Pull Request with improvements, bug fixes, or new features.
- Fork the repository.
- Create a new branch (
git checkout -b feature/my-feature
). - Make your changes and commit (
git commit -am 'Add new feature'
). - Push to the branch (
git push origin feature/my-feature
). - Create a new Pull Request.
You’ve successfully integrated Bookly App into your Flutter app! For more advanced features and customization options.
If you found this guide helpful, don’t forget to ⭐ star this repository on GitHub to show your support!
Thank you for reading!
For any questions or inquiries, feel free to reach out:
- GitHub: mohamedmagdy2301
- Email: mohammedmego15@gmail.com
This project is licensed under the MIT License - see the LICENSE file for details.