GetXify

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:
- State Management — High-performance reactive state management (
.obs+Obx) and simple state management (GetBuilder). - Dependency Injection — Smart, lifecycle-aware dependency management (
Get.put,Get.lazyPut,Get.find,GetxService). - 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
Uriand FlutterRouterDelegateunder the hood. Supports both contextless (Get.to()) and context-aware (context.to()) nested navigation. - Native State Management: Powered by Flutter's native
ListenableBuilderandChangeNotifier, completely removing custom memory management loops for peak performance. - Element-Bound Dependency Injection:
GetDependencyScopeintrinsically 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 —
.trtranslations 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
Routesclass - Dynamic route parameters & deep linking
- Context-aware navigation and modal overlays
- Reactive state management with
.obs&Obx GetxServicefor 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
- get_animations/animations
- get_animations/extensions
- get_animations/get_animated_builder
- get_animations/index
- get_common/get_reset
- get_common/obx_error
- get_core/get_core
- get_core/src/flutter_engine
- get_core/src/get_interface
- get_core/src/get_main
- get_core/src/log
- get_core/src/typedefs
- get_instance/get_instance
- get_instance/src/bindings_interface
- get_instance/src/extension_instance
- get_instance/src/get_dependency_scope
- get_instance/src/lifecycle
- get_navigation/src/bottomsheet/bottomsheet
- get_navigation/src/dialog/dialog_route
- get_navigation/src/root/get_cupertino_app
- get_navigation/src/root/get_material_app
- get_navigation/src/root/get_root
- get_navigation/src/root/internationalization
- get_navigation/src/routes/core/default_route
- get_navigation/src/routes/core/get_route
- get_navigation/src/routes/core/modules
- get_navigation/src/routes/core/route_middleware
- get_navigation/src/routes/core/test_kit
- get_navigation/src/routes/index
- get_navigation/src/routes/observers/route_observer
- get_navigation/src/routes/router/get_information_parser
- get_navigation/src/routes/router/get_route_information_provider
- get_navigation/src/routes/router/get_router_delegate
- get_navigation/src/routes/router/page_settings
- get_navigation/src/routes/router/parse_route
- get_navigation/src/routes/router/router_outlet
- get_navigation/src/routes/transitions/circular_reveal_clipper
- get_navigation/src/routes/transitions/custom_transition
- get_navigation/src/routes/transitions/default_transitions
- get_navigation/src/routes/transitions/get_transition_mixin
- get_navigation/src/routes/transitions/transitions_type
- get_navigation/src/routes/url_strategy/impl/io_url
- get_navigation/src/routes/url_strategy/impl/stub_url
- get_navigation/src/routes/url_strategy/impl/web_url
- get_navigation/src/routes/url_strategy/url_strategy
- get_navigation/src/snackbar/snackbar
- get_navigation/src/snackbar/snackbar_controller
- get_rx/get_rx
- get_rx/src/rx_typedefs/rx_typedefs
- get_rx/src/rx_types/rx_types
- get_rx/src/rx_workers/rx_workers
- get_rx/src/rx_workers/utils/debouncer
- get_state_manager/get_state_manager
- get_state_manager/src/rx_flutter/rx_notifier
- get_state_manager/src/rx_flutter/rx_obx_widget
- get_state_manager/src/rx_flutter/rx_ticker_provider_mixin
- get_state_manager/src/simple/get_controllers
- get_state_manager/src/simple/get_responsive
- get_state_manager/src/simple/get_restoration
- get_state_manager/src/simple/get_state
- get_state_manager/src/simple/get_view
- get_state_manager/src/simple/list_notifier
- get_state_manager/src/simple/simple_builder
- get_utils/get_utils
- get_utils/src/equality/equality
- get_utils/src/extensions/context_extensions
- get_utils/src/extensions/event_loop_extensions
- get_utils/src/extensions/export
- get_utils/src/extensions/internationalization
- get_utils/src/extensions/iterable_extensions
- get_utils/src/platform/platform
- get_utils/src/platform/platform_io
- get_utils/src/platform/platform_stub
- get_utils/src/platform/platform_web
- get_utils/src/platform/platform_web_detect
- get_utils/src/queue/get_queue
- getxify