layer_kit 1.1.3 copy "layer_kit: ^1.1.3" to clipboard
layer_kit: ^1.1.3 copied to clipboard

A Flutter architecture package that combines Clean Architecture and MVVM patterns using Provider for state management.

example/lib/main.dart

//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
//               CREATED BY NAYAN PARMAR
//                      © 2025
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

import 'dart:io';

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:layer_kit/layer_kit.dart';
import 'package:layer_kit_example/config/lang/app_localization.dart';
import 'package:layer_kit_example/config/routes/routes.dart';
import 'package:layer_kit_example/config/theme/theme.dart';
import "package:layer_kit_example/core/callbacks/callbacks.dart";
import 'package:layer_kit_example/core/constants/app_constants.dart';
import 'package:layer_kit_example/core/helper/global_prefs.dart';
import 'package:layer_kit_example/src/splash/screens/splash_screen.dart';
import 'package:provider/provider.dart';
import "package:toastification/toastification.dart";
import 'package:url_strategy/url_strategy.dart';

import 'di_container.dart';

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();

  /// FIREBASE SETUP
  ///
  // await Firebase.initializeApp(
  //   options: DefaultFirebaseOptions.currentPlatform,
  // );
  // await _setupFirebaseCrashlytics();
  ///
  /// /////////////

  await Di.init();
  await GlobalPrefs.init();
  await AppLocalization.init();
  await AppTheme.init();

  HttpOverrides.global = MyHttpOverrides();

  setPathUrlStrategy();
  runApp(AppLocalization(
    child: AppTheme(
      child: MyApp(),
    ),
  ));
}

/// CODE FOR FIREBASE CRASHLYTICS
///
// Future<void> _setupFirebaseCrashlytics() async {
//   await FirebaseCrashlytics.instance.setCrashlyticsCollectionEnabled(!kDebugMode);
//   FlutterError.onError = (FlutterErrorDetails details) {
//     if (kDebugMode) {
//       FlutterError.dumpErrorToConsole(details);
//     } else {
//       FirebaseCrashlytics.instance.recordFlutterError(details);
//     }
//   };
//
//   PlatformDispatcher.instance.onError = (error, stack) {
//     FirebaseCrashlytics.instance.recordError(error, stack, fatal: true);
//     return true;
//   };
// }
/// ////////////////////////////////////////

class MyApp extends StatefulWidget {
  const MyApp({super.key});

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  @override
  void initState() {
    super.initState();
    widgetBinding((_) {
      // CODE
    });
  }

  @override
  Widget build(BuildContext context) {
    SystemChrome.setPreferredOrientations([
      DeviceOrientation.portraitUp,
      DeviceOrientation.portraitDown,
      // DeviceOrientation.landscapeRight,
      // DeviceOrientation.landscapeLeft,
    ]);

    ThemeConfig.init(context);
    RouteConfig.setDefaultTransition(TransitionType.fade);
    return ToastificationWrapper(
      child: MaterialApp(
        title: AppConsts.appName,
        navigatorKey: AppRouter.navigatorKey,
        debugShowCheckedModeBanner: false,
        onGenerateRoute: (s) => AppRouter.generateRoute(s, SplashScreen()),
        scrollBehavior: const StretchScrollBehavior(),
        initialRoute: Routes.splash.path,
        localizationsDelegates: context.localizationDelegates,
        supportedLocales: context.supportedLocales,
        locale: context.locale,
        theme: context.theme.currentTheme,
        builder: (context, child) {
          return MediaQuery(
            data: MediaQuery.of(context).copyWith(textScaler: const TextScaler.linear(1.0)),
            child: child ?? SizedBox(),
          );
        },
      ),
    );
  }
}
3
likes
140
points
63
downloads

Publisher

verified publishertcircle.kesug.com

Weekly Downloads

A Flutter architecture package that combines Clean Architecture and MVVM patterns using Provider for state management.

Documentation

API reference

License

MIT (license)

Dependencies

args, flutter, flutter_easy_routing, path, recase

More

Packages that depend on layer_kit