πŸš€ OptiCore – The Ultimate Flutter Micro-Framework

A lightweight BLoC-based micro-framework designed to accelerate Flutter app development.
Optimized state management Β· Built-in API handling Β· Reusable utilities

Pub Package Build Status Unit Test Creator License

Buy Me A Coffee


⚑ Supercharge Development with OptiKit CLI

Take your workflow to the next level with OptiKit CLIβ€”a command-line tool designed to automate project management and enhance productivity.

πŸ”Ή Effortlessly manage versions & builds
πŸ”Ή Streamline development tasks with powerful commands
πŸ”Ή Seamless integration with OptiCore

πŸ“¦ OptiKit NPM | πŸ”— GitHub Repo


πŸ”₯ Why Choose OptiCore?

OptiCore simplifies state management and reduces boilerplate by providing built-in utilities and a structured architecture for scalable Flutter applications.

Feature Description
βœ… BLoC-Powered Built on top of Flutter BLoC for seamless state management
βœ… Optimized API Handling Integrated utilities for network requests and error handling
βœ… Reusable Components Prebuilt UI elements to reduce development time
βœ… Performance-Focused Minimal overhead and efficient memory management
βœ… 70+ Extensions Data manipulation, UI customization, and enhanced workflows
βœ… Extensible & Flexible Works with both small and large-scale projects

πŸ“– Documentation

Get started with OptiCore using our comprehensive documentation:

Architecture & Concepts

Document Description
πŸ— Architecture Complete architectural overview, philosophy, and design principles
πŸ“Œ Core BLoC integration, state handling, and essential utilities
βš™οΈ Functionality Built-in utilities, helpers, and system-wide enhancements
πŸ›  Reusability Reusable widgets, components, and UI utilities
πŸ›‘ Infrastructure Foundational configurations, API handling, and global settings
✨ Extensions Data manipulation, UI customization, and enhanced workflows

Implementation Patterns

Pattern Description
🧩 BLoC Patterns Initialization, skeleton data, loading flags, fetch handlers
πŸ“Š State Patterns Initial states, success/fail pairs, loading/loaded pairs
⚑ Event Patterns Event definitions, transformers, naming conventions
🏭 Factory Patterns State factories, multi-model, transformations
πŸ“± Screen Patterns Screen setup, configuration, lifecycle hooks
πŸ—„ Repository Patterns Simple fetch, query params, mutations
πŸ“¦ Model Patterns JSON parsing, serialization, copyWith

Note: Reactive state management (ReactiveNotifier, AsyncReactiveNotifier, Reactive widgets) has been extracted to the standalone optireact package as of v2.3.1.


❗ Report Issues & Contribute

πŸ” Found a bug? Have a feature request?
Report issues on the GitHub Issues page. Your feedback helps improve OptiCore for everyone!

When reporting an issue, please provide:

  • A clear description of the issue or feature request.
  • Steps to reproduce (if applicable).
  • The OptiCore version in use.
  • Relevant code snippets or screenshots.

We also welcome contributions! If you’d like to enhance OptiCore, check our contribution guidelines.


πŸ”„ Changelog & Updates

πŸ“œ Changelog – View all releases, new features, improvements, and bug fixes. πŸ“œ Beta History – View historical updates and changes during beta releases.


πŸ‘€ Created By

Built with ❀️ by Mahmoud El Shenawy

LinkedIn GitHub Medium


πŸ“œ License

License: MIT

OptiCore is open-source software released under the MIT License.

Free to use, modify, and distribute β€” in personal and commercial projects.

Libraries

opticore