opticore 2.2.0 copy "opticore: ^2.2.0" to clipboard
opticore: ^2.2.0 copied to clipboard

OptiCore is a lightweight micro-framework for Flutter that simplifies and optimizes your app development

๐Ÿ“Œ Changelog #

All notable changes to this project are documented here. Each release includes details about new features, improvements, bug fixes, and any breaking changes, helping users and developers track the evolution of OptiCore.

๐Ÿ”„ Versioning Strategy #

We follow Semantic Versioning (SemVer) to indicate the nature of changes:

  • ๐Ÿš€ MAJOR: Breaking changes that may affect compatibility.
  • ๐ŸŒŸ MINOR: New features or improvements that are backward compatible.
  • ๐Ÿ›  PATCH: Bug fixes and minor improvements that are backward compatible.

Each section lists the changes in chronological order, with the most recent release at the top. Where applicable, links to relevant discussions or issues are provided.

๐ŸŽฏ [2.2.0] - Reactive State Management #

  • ๐Ÿ†• New Features:
    • Added ReactiveNotifier<T> - A lightweight reactive value holder similar to ValueNotifier with extra convenience methods (update, silent, refresh)
    • Added AsyncReactiveNotifier<T> - For async operations with built-in loading/error/data states
    • Added Reactive<T> widget - A single unified widget for reactive UI rebuilds with optional features:
      • buildWhen - Control when to rebuild
      • listener - Side effects without rebuilding
      • autoDispose - Automatically dispose notifier when widget is removed
      • Reactive.multi - Listen to multiple notifiers
      • Reactive.select - Rebuild only when selected property changes
      • Reactive.async - Handle async states with loading/error/data builders
    • Added ReactiveProvider<T> - Share notifiers across the widget tree using InheritedWidget
    • Added context.reactive<T>() extension for easy notifier access

๐ŸŽฏ [2.1.8] - BLoC Lifecycle Control #

  • ๐Ÿ†• New Features:
    • Added disposeBloc parameter to BaseScreen for controlling BLoC disposal behavior
    • Added customAppBarWidget parameter to MaintenanceConfig for custom app bar support
    • MaintenanceScreen now conditionally allows back navigation when custom app bar is configured

๐Ÿ›  [2.1.7] - Status Bar Navigation Fix #

  • ๐Ÿ› Bug Fixes:

    • Fixed status bar icon color not updating when navigating back to previous screen
    • Implemented RouteAware mixin in BaseScreen to properly track navigation lifecycle
    • Added global RouteObserver to RouteHelper for navigation event monitoring
    • Status bar icons now correctly switch between dark/light when popping back from another screen
    • Added sized: true to AnnotatedRegion for better status bar overlay coverage
  • โšก Performance Improvements:

    • Optimized _refreshStatusBar() calls to only fire on actual navigation events (push/pop)
    • Removed redundant status bar updates from initState, didChangeDependencies, and didUpdateWidget
    • Reduced unnecessary rebuilds and system UI overlay updates
  • ๐Ÿ— Infrastructure:

    • Enhanced CoreSetup to include RouteObserver in navigator observers
    • Improved navigation lifecycle handling across all screens using BaseScreen

๐Ÿš€ [2.1.6] - Event Transformers & UI Enhancements #

  • ๐ŸŽฏ New Features:

    • Added Event Transformers for BLoC pattern with debounce and sequential processing
    • Introduced debounce() transformer with customizable duration for delayed event processing
    • Added predefined transformers: fastDebounce(), standardDebounce(), slowDebounce(), verySlowDebounce()
    • Implemented sequential() transformer for one-by-one event processing
  • ๐ŸŽจ UI Improvements:

    • Enhanced CoreButton with additional tap gesture support
    • Added barrierColor property to CoreSheet for better customization
  • ๐Ÿ› Bug Fixes:

    • Fixed status bar icon color issues across different themes
    • Resolved type compatibility issues in theme extensions (AppBarThemeData, InputDecorationThemeData)

๐Ÿ†• [2.1.5] - Scroll Overlay & Usability Improvements #

  • ๐Ÿงฉ New Widget:

    • ScrollStatusBarOverlay: Wraps a scrollable and paints an overlay behind the status bar to improve visual experience in scrollable UIs.
  • ๐ŸŽจ UI Enhancements:

    • Added PlaceholderAlignment support to withUnderline inside WidgetSpan for more control over inline widget alignment.
    • Introduced zero itemPadding default to FlexibleGridView for tighter and more compact grid spacing.
  • ๐Ÿ” Extensions:

    • Enhanced safeInt extension for better default handling and fallback precision.
  • ๐Ÿ“ฆ Dependency Updates:

    • Updated internal dependencies for performance, compatibility, and future-proofing.

โœจ [2.1.4] - UI & String Extension Enhancements #

  • ๐Ÿ“ ExpandableText:

    • Added underline support for enhanced text styling.
  • ๐ŸŒ String Extension:

    • Introduced .arabicNumbers getter to convert English digits into Arabic numerals.

๐Ÿ”ง [2.1.3] - Validation Toolkit & Dependency Updates #

  • ๐Ÿ“ฆ Dependency Updates:

    • Upgraded internal packages to ensure stability and compatibility
  • โœ… Validation Improvements:

    • Integrated auto_validate package
    • Centralized and enhanced validation capabilities across the micro-framework

๐Ÿ›  [2.1.2] - API Enhancements #

  • ๐Ÿงฐ Improved Map Extensions:
    • Made key parameter optional in safeList<T>() for more flexible API usage
    • Enhanced return behavior to provide empty list when key is not provided

๐Ÿ›  [2.1.1] - Static Analysis Improvements #

  • ๐Ÿ“Š Enhanced pub score with improved static analysis compliance
  • ๐Ÿ“ Documentation refinements for better DartDoc generation
  • ๐Ÿ” Type safety enhancements across all components
  • ๐Ÿงน Code cleanup with removal of unused imports and dependencies

๐ŸŒŸ [2.1.0] - Core Improvements & New Components #

๐Ÿ†• New Features

  • ๐Ÿงฉ Added StateBuilder widget for selective UI updates based on specific component states
  • ๐Ÿ—๏ธ Added ComponentDataState in RenderState for better state management
  • ๐Ÿงฐ New Extensions:
    • DoubleFormatter for smart number formatting (formatSmart)
    • IterableExtension with firstWhereOrNull method for safer collection operations
  • ๐ŸŽ›๏ธ Enhanced CoreButton with new properties (dimmedBackgroundColor, dimmedTextColor)

๐Ÿ”„ Improvements

  • ๐Ÿ–ผ๏ธ SvgWidget Enhancements:
    • Auto-detection of SVG type
    • More flexible property requirements (path, bytes, or file)
  • ๐ŸŒ API & Network improvements:
    • Better error handling
    • Fixed issues with status code parsing
    • Improved connection timeout handling with proper loading states
    • Fixed updateHeaders issues in BaseRepo
  • ๐Ÿ“ฑ UI Components:
    • Enhanced click behavior in ExpandableText
    • Added enableScroll property to CoreSheet
    • Set itemPadding default to zero in FlexibleListView
  • ๐Ÿ“Š Code Quality:
    • Improved BaseBloc implementation
    • Updated dependencies to latest versions

๐Ÿ›‘ Breaking Changes

  • ๐Ÿ”„ Renamed builder to itemBuilder in FlexibleGridView for API consistency

๐Ÿ“ [2.0.1] - Documentation Update #

  • ๐Ÿ“– Enhanced README.md: Improved clarity, structure, and formatting for better readability.

๐Ÿ”น [2.0.0] - Initial Stable Release #

  • ๐ŸŽ‰ First official stable release of OptiCore.

For a complete history of updates during the beta phase, refer to Beta History.


Stay updated with the latest enhancements and fixes! ๐Ÿš€

24
likes
160
points
219
downloads

Publisher

unverified uploader

Weekly Downloads

OptiCore is a lightweight micro-framework for Flutter that simplifies and optimizes your app development

Repository (GitHub)
View/report issues

Documentation

API reference

Funding

Consider supporting this project:

github.com

License

MIT (license)

Dependencies

auto_validate, bot_toast, cached_network_image, connectivity_plus, dio, dio_smart_retry, equatable, flutter, flutter_bloc, flutter_svg, font_awesome_flutter, internet_connection_checker_plus, lottie, modal_bottom_sheet, talker, talker_dio_logger

More

Packages that depend on opticore