getxify 4.0.1 copy "getxify: ^4.0.1" to clipboard
getxify: ^4.0.1 copied to clipboard

An improved and enhanced version of GetX - Open screens/snackbars/dialogs without context, manage states and inject dependencies easily with GetXify.

GetXify #

GetXify

pub package CI codecov License: MIT style: flutter_lints

GetXify is a modernized, actively maintained fork of GetX — an extra-light and powerful solution for Flutter. It brings high-performance state management, intelligent dependency injection, and route management while staying fully API-compatible with GetX.


What's new in v4.0.0 #

v4.0.0 is a landmark release, contributed entirely by @Baghdady92, who resolved 111 issues from the upstream GetX tracker and grew the test suite from 144 to 494 passing tests. Key areas improved:

  • Routing & navigationpreventDuplicates, nested GetRouterOutlet, middleware pipeline, browser back, predictive back, and deep links all fixed
  • System back & popPopScope / WillPopScope / canPop respected on Android, Web, and iOS edge-swipe
  • Dependency injection — deferred disposal, fenix registrations, route-scoped controllers, and Get.putAsync restored
  • State managementGetBuilder tag changes, RxList/RxSet/RxMap default constructors, bindStream leak fixed
  • Dialogs, sheets & snackbarsGet.close() result forwarding, idempotent SnackbarController, queue robustness
  • Reactive typesassign/assignAll notify exactly once, unmodifiable backing collections handled
  • InternationalizationscriptCode lookup, explicit locale vs device locale, CLDR plural categories

See the full CHANGELOG for details.


Why GetXify over GetX? #

GetX GetXify
Dart SDK legacy ^3.12.2
Flutter legacy >=3.44.2
Deprecated APIs present removed
Test suite 144 tests 494 tests
Upstream bug fixes 111 resolved
GetConnect (HTTP) included removed*

* Use dio or http instead — keeping GetXify focused on its core.


Installation #

dependencies:
  getxify: ^4.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 API is fully compatible. Also update your pubspec.yaml:

# Before
dependencies:
  get: ...

# After
dependencies:
  getxify: ^4.0.0

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 utilitiesGetPlatform, responsive breakpoints, context extensions

Example app #

A full example app is in the example/ directory, demonstrating:

  • Nested routing with GetRouterOutlet
  • Route guards (EnsureAuthMiddleware, EnsureNotAuthedMiddleware)
  • Named routes with type-safe Routes class
  • Dynamic route parameters
  • Page transitions
  • Reactive state with .obs
  • GetxService for global state
  • Lazy bindings
cd example
flutter pub get
flutter run

Breaking changes from GetX #

v4.0.0

  • Get.back() now returns bool — callers ignoring the result are unaffected
  • iOS back-swipe starts only near the leading edge by default — use popGesture: true to restore full-screen

v2.0.0

  • Removed GetUtils validation/string helpers — use validators or recase
  • Removed several extensions (double_extensions, duration_extensions, widget_extensions, etc.)

v1.0.0

  • Removed GetConnect HTTP/WebSocket module — use dio or http
  • Removed mini stream utilities — use standard Dart streams or rxdart
  • All deprecated GetX APIs removed

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.
Includes work by @Baghdady92 and originally forked from GetX by Jonatas Borges.

4
likes
160
points
663
downloads
screenshot

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

An improved and enhanced version of GetX - Open screens/snackbars/dialogs without context, manage states and inject dependencies easily with GetXify.

Repository (GitHub)
View/report issues
Contributing

Topics

#state-management #dependency-injection #routing #navigation #reactive

License

MIT (license)

Dependencies

flutter, flutter_web_plugins, web

More

Packages that depend on getxify