GetXify

GetXify

pub package License: MIT style: effective dart Awesome Flutter

GetXify is an improved and enhanced version of GetX - an extra-light and powerful solution for Flutter. It combines high-performance state management, intelligent dependency injection, and route management quickly and practically.

What is GetXify?

GetXify is a modernized fork of GetX that:

  • Supports latest Dart & Flutter - Compatible with Dart SDK ^3.12.2 and Flutter >=3.44.2
  • Removes deprecated code - Cleaned up all deprecated APIs and unused modules
  • Enhanced code quality - Improved documentation, removed dead code, added safety checks
  • Updated APIs - Aligned with latest Flutter APIs for BottomSheet, Snackbar, and Dialog
  • Better testing - Expanded test coverage with 222+ passing tests

Breaking Changes from GetX

  • Removed GetConnect module - HTTP/WebSocket communication module has been removed
  • Removed mini stream - Stream-related utilities have been removed
  • Removed all deprecated methods - Cleaned up all deprecated APIs from the original GetX

Installation

Add GetXify to your pubspec.yaml file:

dependencies:
  getxify:

Import getxify in files that it will be used:

import 'package:getxify/getxify.dart';

Quick Start

Replace import 'package:get/get.dart'; with import 'package:getxify/getxify.dart';

The API is fully compatible with GetX. All your existing GetX code will work with GetXify.

Basic Example

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

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

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

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

class Other extends StatelessWidget {
  final Controller c = Get.find();
  @override
  Widget build(context) {
    return Scaffold(body: Center(child: Text("${c.count}")));
  }
}

Example App

A comprehensive example application demonstrating the key features of GetXify is available in the example/ directory. This example showcases:

Features Demonstrated

  • Nested Routing - Complex route structure with parent-child relationships using GetRouterOutlet
  • Route Guards - Authentication middleware (EnsureAuthMiddleware, EnsureNotAuthedMiddleware)
  • Named Routes - Type-safe route navigation using the Routes class
  • Route Parameters - Dynamic route parameters (e.g., product details)
  • Transitions - Various page transitions (cupertino, size, etc.)
  • Reactive State - Using .obs for reactive variables in controllers
  • Services - Global state management with GetxService
  • Dependency Injection - Bindings with lazy loading using Binding class
  • Clean Architecture - Separation of concerns with organized modules

Running the Example

cd example
flutter pub get
flutter run

Project Structure

The example follows a clean architecture pattern with:

  • app/modules/ - Feature modules (dashboard, home, login, products, profile, etc.)
  • app/middleware/ - Route guards and middleware
  • app/routes/ - Route configuration
  • services/ - Global services (authentication)
  • models/ - Data models

Each module contains its own bindings, controllers, and views following the MVVM pattern.

Documentation

For detailed documentation on all features, please refer to the official GetX documentation.

GetXify maintains the same API and features as GetX, so all GetX documentation applies directly to GetXify.

Key Features

  • State Management - Reactive and simple state managers
  • Route Management - Navigation without context
  • Dependency Management - Smart dependency injection
  • Internationalization - Easy translations and locales
  • Theme Management - Simple theme switching
  • Utils & Helpers - Platform detection, responsive design, and more

Migration from GetX

If you were using GetX and want to migrate to GetXify:

  • Replace import 'package:get/get.dart'; with import 'package:getxify/getxify.dart';
  • Replace get dependency with getxify in pubspec.yaml
  • If you were using GetConnect, you'll need to implement your own HTTP client using dio or http package
  • If you were using mini stream utilities, migrate to standard Dart streams or RxDart
  • All deprecated methods have been removed, so update your code to use the current APIs

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

GetXify is released under the MIT License. See the LICENSE file for details.

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/smart_management
get_core/src/typedefs
get_instance/get_instance
get_instance/src/bindings_interface
get_instance/src/extension_instance
get_instance/src/lifecycle
get_navigation/get_navigation
get_navigation/src/bottomsheet/bottomsheet
get_navigation/src/dialog/dialog_route
get_navigation/src/extension_navigation
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/router_report
get_navigation/src/routes/circular_reveal_clipper
get_navigation/src/routes/custom_transition
get_navigation/src/routes/default_route
get_navigation/src/routes/default_transitions
get_navigation/src/routes/get_information_parser
get_navigation/src/routes/get_navigation_interface
get_navigation/src/routes/get_navigator
get_navigation/src/routes/get_route
get_navigation/src/routes/get_router_delegate
get_navigation/src/routes/get_transition_mixin
get_navigation/src/routes/index
get_navigation/src/routes/modules
get_navigation/src/routes/observers/route_observer
get_navigation/src/routes/page_settings
get_navigation/src/routes/parse_route
get_navigation/src/routes/route_middleware
get_navigation/src/routes/route_report
get_navigation/src/routes/router_outlet
get_navigation/src/routes/test_kit
get_navigation/src/routes/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_getx_widget
get_state_manager/src/rx_flutter/rx_notifier
get_state_manager/src/rx_flutter/rx_obx_widget
get_state_manager/src/rx_flutter/rx_ticket_provider_mixin
get_state_manager/src/simple/get_controllers
get_state_manager/src/simple/get_responsive
get_state_manager/src/simple/get_state
get_state_manager/src/simple/get_view
get_state_manager/src/simple/get_widget_cache
get_state_manager/src/simple/list_notifier
get_state_manager/src/simple/mixin_builder
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/queue/get_queue
getxify
GetX is an extra-light and powerful multi-platform framework. It combines high performance state management, intelligent dependency injection, and route management in a quick and practical way.
instance_manager
Get Instance Manager is a modern and intelligent dependency injector that injects and removes dependencies seasonally.
route_manager
Get Navigator allows you to navigate routes, open snackbars, dialogs and bottomsheets easily, and without the need for context.
state_manager
Get State Manager is a light, modern and powerful state manager to Flutter
utils
Get utils is a set of tools that allows you to access high-level APIs and obtain validation tools for Flutter and GetX