GetXify

GetXify

pub package CI codecov License: MIT style: flutter_lints

GetXify is a modernized, streamlined, and actively maintained fork of GetX — focused purely on high-performance reactive state management, intelligent dependency injection, and route management for Flutter without extra bloat.


What is GetXify?

GetXify combines three core pillars of Flutter development into a single, cohesive framework:

  1. State Management — High-performance reactive state management (.obs + Obx) and simple state management (GetBuilder).
  2. Dependency Injection — Smart, lifecycle-aware dependency management (Get.put, Get.lazyPut, Get.find, GetxService).
  3. Route Management — Contextless navigation (Get.to, Get.back), named routes, nested outlets (GetRouterOutlet), middleware guards, and deep links.

What's new in v5.0?

GetXify v5.0 is a complete architectural modernization built for Dart 3 and modern Flutter:

  • Native Routing: Uses standard Dart Uri and Flutter RouterDelegate under the hood. Supports both contextless (Get.to()) and context-aware (context.to()) nested navigation.
  • Native State Management: Powered by Flutter's native ListenableBuilder and ChangeNotifier, completely removing custom memory management loops for peak performance.
  • Element-Bound Dependency Injection: GetDependencyScope intrinsically ties dependencies to the Flutter element tree, guaranteeing deterministic cleanup and zero memory leaks.
  • Unified Reactive Primitives: Built entirely on Dart 3 typedefs (e.g. typedef RxInt = Rx<int>), offering zero-boilerplate syntax (count.obs) with maximum performance.

Installation

dependencies:
  getxify: ^5.0.0
import 'package:getxify/getxify.dart';

Migrating from GetX

// Before
import 'package:get/get.dart';

// After
import 'package:getxify/getxify.dart';

That's it — the core API is fully compatible. Also update your pubspec.yaml:

# Before
dependencies:
  get: ...

# After
dependencies:
  getxify: ^5.0.0

📖 For a detailed guide on v5 architectural changes, API modernizations, and code examples, check out MIGRATION_V5.md.


Quick start

void main() => runApp(GetMaterialApp(home: Home()));

class CounterController extends GetxController {
  var count = 0.obs;
  void increment() => count++;
}

class Home extends StatelessWidget {
  final c = Get.put(CounterController());

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Obx(() => Text('Clicks: ${c.count}'))),
      body: Center(
        child: ElevatedButton(
          onPressed: () => Get.to(OtherPage()),
          child: const Text('Go to Other'),
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: c.increment,
        child: const Icon(Icons.add),
      ),
    );
  }
}

class OtherPage extends StatelessWidget {
  final c = Get.find<CounterController>();
  @override
  Widget build(BuildContext context) {
    return Scaffold(body: Center(child: Obx(() => Text('${c.count}'))));
  }
}

Key features

  • State management — reactive (.obs + Obx) and simple (GetBuilder) state managers
  • Route management — named routes, nested navigation, middleware, transitions, deep links
  • Dependency injection — smart lifecycle-aware DI with Get.put, Get.lazyPut, Get.find, bindings
  • Internationalization — .tr translations with CLDR plural support
  • Theme management — light/dark theme switching without rebuilding the tree
  • Platform utilities — GetPlatform, responsive breakpoints, context extensions

Example app

A complete, production-ready example app is available in the example/ directory (main.dart), demonstrating:

  • Nested routing with GetRouterOutlet
  • Route guards (EnsureAuthMiddleware, EnsureNotAuthedMiddleware)
  • Named routes with type-safe Routes class
  • Dynamic route parameters & deep linking
  • Context-aware navigation and modal overlays
  • Reactive state management with .obs & Obx
  • GetxService for global state lifecycle
  • Element-bound lazy Bindings
cd example
flutter pub get
flutter run

Contributing

See CONTRIBUTING.md for setup instructions, coding standards, and the PR workflow.

License

GetXify is released under the MIT License. See LICENSE for details.
Originally forked from GetX by Jonatas Borges.

Libraries

animations/animations
animations/extensions
animations/get_animated_builder
animations/index
common/get_reset
common/obx_error
core/core
core/src/flutter_engine
core/src/get_interface
core/src/get_main
core/src/log
core/src/typedefs
getxify
instance/instance
instance/src/bindings_interface
instance/src/extension_instance
instance/src/get_dependency_scope
instance/src/instance_builder_factory
instance/src/instance_info
instance/src/lifecycle
instance/src/lifecycle_manager
navigation/src/extension_navigation
navigation/src/overlays/bottomsheet/bottomsheet
navigation/src/overlays/dialog/dialog_route
navigation/src/overlays/snackbar/snackbar
navigation/src/overlays/snackbar/snackbar_controller
navigation/src/root/get_cupertino_app
navigation/src/root/get_material_app
navigation/src/root/get_root
navigation/src/root/internationalization
navigation/src/routes/core/default_route
navigation/src/routes/core/get_navigation_interface
navigation/src/routes/core/get_route
navigation/src/routes/core/modules
navigation/src/routes/core/route_middleware
navigation/src/routes/core/test_kit
navigation/src/routes/index
navigation/src/routes/observers/route_observer
navigation/src/routes/router/get_information_parser
navigation/src/routes/router/get_navigator
navigation/src/routes/router/get_route_information_provider
navigation/src/routes/router/get_router_delegate
navigation/src/routes/router/page_settings
navigation/src/routes/router/parse_route
navigation/src/routes/router/router_outlet
navigation/src/routes/transitions/circular_reveal_clipper
navigation/src/routes/transitions/custom_transition
navigation/src/routes/transitions/default_transitions
navigation/src/routes/transitions/get_transition_mixin
navigation/src/routes/transitions/transition_strategy
navigation/src/routes/transitions/transitions_type
navigation/src/routes/url_strategy/impl/io_url
navigation/src/routes/url_strategy/impl/stub_url
navigation/src/routes/url_strategy/impl/web_url
navigation/src/routes/url_strategy/url_strategy
rx/rx
rx/src/rx_typedefs/rx_typedefs
rx/src/rx_types/extensions/iterable_extensions
rx/src/rx_types/extensions/primitive_extensions
rx/src/rx_types/rx_core/rx_impl
rx/src/rx_types/rx_core/rx_interface
rx/src/rx_types/rx_core/rx_num
rx/src/rx_types/rx_core/rx_string
rx/src/rx_types/rx_iterables/rx_list
rx/src/rx_types/rx_iterables/rx_map
rx/src/rx_types/rx_iterables/rx_set
rx/src/rx_types/rx_types
rx/src/rx_workers/rx_workers
rx/src/rx_workers/utils/debouncer
state_manager/src/controllers/get_controllers
state_manager/src/controllers/list_notifier
state_manager/src/controllers/rx_notifier
state_manager/src/mixins/get_restoration
state_manager/src/mixins/rx_ticker_provider_mixin
state_manager/src/widgets/get_responsive
state_manager/src/widgets/get_state
state_manager/src/widgets/get_view
state_manager/src/widgets/rx_obx_widget
state_manager/src/widgets/simple_builder
state_manager/state_manager
utils/src/equality/equality
utils/src/extensions/context_extensions
utils/src/extensions/context_navigation_extensions
utils/src/extensions/event_loop_extensions
utils/src/extensions/export
utils/src/extensions/internationalization
utils/src/extensions/iterable_extensions
utils/src/platform/platform
utils/src/platform/platform_io
utils/src/platform/platform_stub
utils/src/platform/platform_web
utils/src/platform/platform_web_detect
utils/src/queue/get_queue
utils/utils