flutter_easy

flutter_easy

pub flutter license build

A common Flutter package. Example

Getting Started

Additional arguments:

--dart-define=app-debug-flag=true

Run:

flutter run --release --dart-define=app-debug-flag=true

Example:

main.dart

void main() async {
  await initEasyApp(
    appBaseURLChangedCallback: () {
      // Reload API
      configAPI(null);
    },
  );
  await initApp();
  runApp(const MyApp());
  if (isAndroid) {
    SystemChrome.setPreferredOrientations([
      DeviceOrientation.portraitUp,
      DeviceOrientation.portraitDown,
    ]);
    // Set overlay style status bar. It must run after MyApp(), because MaterialApp may override it.
    SystemUiOverlayStyle systemUiOverlayStyle =
        const SystemUiOverlayStyle(statusBarColor: Colors.transparent);
    SystemChrome.setSystemUIOverlayStyle(systemUiOverlayStyle);
  }
}

app.dart

Future<void> initApp() async {
  // Encrypt password
  StorageUtil.setEncrypt("XxXxXxXxXxXxXxXxX");
  // Load user info
  await Get.putAsync(() => UserService().load());
  // Load API
  configAPI(null);
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return BaseApp(
      initialRoute: Routes.splash,
      getPages: Routes.routes,
      localizationsDelegates: const [
        S.delegate,
        GlobalMaterialLocalizations.delegate,
        GlobalWidgetsLocalizations.delegate,
        GlobalCupertinoLocalizations.delegate,
        LocaleNamesLocalizationsDelegate(),
      ],
      supportedLocales: S.delegate.supportedLocales,
      locale: Get.deviceLocale,
      localeResolutionCallback:
          (Locale? locale, Iterable<Locale> supportedLocales) {
        logDebug("localeResolutionCallback: $locale");
        if (locale == null || !S.delegate.isSupported(locale)) {
          return null;
        }
        if (locale.languageCode == "zh") {
          return const Locale("zh", "CN");
        }
        return locale;
      },
    );
  }
}

routes.dart

class Routes {
  static final String root = '/';
  static final String splash = '/splash';

  Routes._();

  static final List<GetPage> routes = [
    GetPage(
      name: Routes.root,
      page: () => RootPage(),
    ),
    GetPage(
      name: Routes.splash,
      page: () => SplashPage(),
    ),
    GetPage(
      name: routesLoginNamed,
      page: () => LoginPage(),
    ),
}

Installing

Add flutter_easy to your pubspec.yaml file:

dependencies:
  flutter_easy:

Import flutter_easy in files that it will be used:

import 'package:flutter_easy/flutter_easy.dart';

Libraries

components/export
components/src/base
components/src/base64_image
components/src/base_animation_image
components/src/base_animation_number_text
components/src/base_cycle_view
components/src/base_loading_view
components/src/base_navigator_pop_exit
components/src/base_placeholder_view
components/src/base_progress_bar
components/src/base_refresh
components/src/base_segment_bar
components/src/base_sliver_expanded
components/src/base_sliver_persistent_header
components/src/base_state
components/src/base_tab_page
components/src/base_tag_list_view
components/src/base_web_image
components/src/keep_alive
extension/export
extension/src/duration_extensions
extension/src/dynamic_extensions
extension/src/font_extensions
extension/src/function_extensions
extension/src/map_extensions
extension/src/num_extensions
extension/src/string_extensions
flutter_easy
routes/routes
utils/export
utils/src/adapt_util
utils/src/color_util
utils/src/connectivity_util
utils/src/crypto_util
utils/src/date_util
utils/src/device_info_util
utils/src/global_util
utils/src/hw/hw_html
utils/src/hw/hw_io
utils/src/hw/hw_mp
https://dart.dev/guides/libraries/create-library-packages
utils/src/hw/hw_none
utils/src/json_util
utils/src/loading_util
utils/src/locale_util
utils/src/logger_util
utils/src/lunar/lunar_solar_converter
utils/src/network_util
utils/src/package_info_util
utils/src/picker_util
utils/src/shared_preferences_util
utils/src/storage_util
utils/src/string_util
utils/src/timer_util
utils/src/toast_util
utils/src/uuid_util