Anime Store is a modern, beautiful, lightweight and open source mobile app for streaming anime without ads. Built with Flutter and featuring a clean BLoC architecture, it provides multilingual support (English and Brazilian Portuguese) with features including daily releases, top anime rankings, recent episodes, and personal watchlists.
Anime Store uses a dual-API architecture for optimal data delivery:
- Jikan API (MyAnimeList) - Provides comprehensive anime metadata, search, rankings, and genre information
- Consumet API - Handles video streaming with multi-provider support
The app follows clean architecture principles with:
- BLoC State Management - Reactive, testable state management using flutter_bloc
- Repository Pattern - Clean separation between data sources and business logic
- Custom API-agnostic Models - Unified data models independent of API structure
- Converter Pattern - Transforms external API responses to internal models
Anime Store has no copyrights of the content and is not the uploader or keeper of any content. This app is for educational purposes and demonstrates Flutter development skills. Users are responsible for ensuring their usage complies with local copyright laws.
- Browse Anime - Explore top anime, seasonal releases, and trending titles
- Advanced Search - Find anime by title with pagination support
- Genre Discovery - Browse anime by your favorite genres
- Personal Watchlist - Save and manage your anime collection
- Episode Tracking - Track watched episodes and continue where you left off
- Video Streaming - Watch anime episodes with integrated video player
- Multilingual - Support for English and Brazilian Portuguese
- Material Design - Beautiful, responsive UI following Material Design guidelines
- Flutter SDK 3.0+
- Dart 2.17+
- Android Studio / Xcode for mobile development
git clone https://github.com/codecollab-co/animestore.git
cd animestoreflutter pub get# Development mode
flutter run
# Profile mode (better performance)
flutter run --profile
# Release mode
flutter run --releaseflutter build apk --releaseNote: Release builds require a signing key. For development, use debug builds or profile mode.
flutter build ios --releaseNote: iOS builds require a Mac with Xcode installed.
lib/
βββ data/
β βββ database/ # SQLite database layer
β βββ repositories/ # Data repositories (Jikan, Consumet, User)
βββ logic/
β βββ blocs/ # BLoC state management
β β βββ application/ # App-wide state
β β βββ anime_details/ # Anime details screen
β β βββ search/ # Search functionality
β β βββ video_player/ # Video playback
β β βββ ...
β βββ Constants.dart # App-wide constants
βββ models/ # Data models
β βββ anime_model.dart
β βββ episode_model.dart
β βββ converters/ # API response converters
βββ ui/
β βββ component/ # Reusable UI components
β βββ pages/ # App screens
β βββ theme/ # Theme configuration
βββ main.dart # App entry point
This major release represents a complete architectural overhaul of the app:
- β MobX β BLoC - Complete migration to flutter_bloc for state management
- β AniTube β Jikan + Consumet - Migrated from deprecated AniTube API to dual-API architecture
- β Custom API-agnostic Models - Built unified models independent of API structure
- β Repository Layer Rewrite - Implemented clean repository pattern
- AnimeRepository - Unified interface for anime operations
- JikanRepository - MyAnimeList metadata integration
- ConsumetRepository - Multi-provider video streaming support
- GenreRepository - Genre management and filtering
- UserRepository - User data and preferences with SQLite backend
- ApplicationBloc - Global app state, watchlist, and episode tracking
- AnimeDetailsBloc - Anime details and episodes
- SearchBloc - Jikan-powered search with pagination
- VideoPlayerBloc - Video playback with episode navigation
- GenreBloc - Genre-filtered anime browsing
- HomeBloc - Home page feed management
- AnimeModel - Unified anime data structure
- EpisodeModel - Episode data with streaming info
- GenreModel, SearchResultModel, HomePageModel
- JikanConverter, ConsumetConverter - API transformation layer
- Started with 175 errors β Final: 0 errors
- Production-ready codebase with complete null safety
- All deprecated APIs updated to current Flutter standards
- Removed inconsistent 'new' keyword usage
- Standardized variable declarations for type safety
- Fixed constant naming conventions
- Organized imports following Dart conventions
- Updated deprecated Flutter APIs (bodyText2 β bodyMedium, etc.)
- Removed dead code and unused imports
- Modified: 31+ files across the codebase
- Deleted: 10 MobX store files
- Added: 50+ new files (models, repositories, BLoCs)
See our GitHub Issues for the complete list of improvements and planned features.
- Deploy Consumet API to production
- Implement comprehensive error handling
- Add proper logging framework
- Implement image caching strategy
- Increase test coverage (currently ~3%)
- Add watch progress tracking with percentage
- Improve loading states with skeleton loaders
- Add retry mechanisms for failed operations
- Dark/light theme toggle
- Personalized recommendations
- Push notifications for new episodes
- Offline mode with caching
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is open source and available for educational purposes. Please ensure your usage complies with local copyright laws regarding anime content.
- Jikan API - MyAnimeList unofficial API
- Consumet API - Multi-provider anime streaming API
Note: This app is for educational purposes. All anime content is sourced from third-party APIs. We do not host or own any content.



