admiralui_flutter 1.5.12 copy "admiralui_flutter: ^1.5.12" to clipboard
admiralui_flutter: ^1.5.12 copied to clipboard

The visual component library for Flutter

example/lib/main.dart

import 'dart:io';

import 'package:admiralui_flutter/admiralui_flutter.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'screens/onboarding_screen.dart';
import 'screens/root_screen.dart';
import 'package:firebase_core/firebase_core.dart';
import 'firebase_options.dart';
import 'package:flutter/foundation.dart' show kIsWeb;
import 'package:flutter_dotenv/flutter_dotenv.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  SharedPreferences prefs = await SharedPreferences.getInstance();
  final bool showOnboarding = prefs.getBool('showOnboarding') ?? true;
  SystemChrome.setSystemUIOverlayStyle(
    const SystemUiOverlayStyle(
      statusBarColor: Colors.transparent,
    ),
  );
  await dotenv.load(fileName: '.env');
  runApp(
    MyApp(
      isShowOnboarding: showOnboarding,
    ),
  );
}

class MyApp extends StatefulWidget {
  const MyApp({
    Key? key,
    this.isShowOnboarding = false,
  }) : super(key: key);

  final bool isShowOnboarding;

  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  bool isLoading = true;

  @override
  void initState() {
    super.initState();
    _initializeApp();
  }

  Future<void> _initializeApp() async {
    if (!kIsWeb) {
      if (Platform.isAndroid) {
        await Firebase.initializeApp(
          options: DefaultFirebaseOptions.currentPlatform,
        );
      } else if (Platform.isIOS) {
        await Firebase.initializeApp();
      }
    }
    if (kIsWeb) {
      await Future<void>.delayed(Duration(seconds: 3));
    }

    setState(() {
      isLoading = false;
    });
  }

  @override
  Widget build(BuildContext context) {
    final AppTheme theme = AppThemeProvider.of(context);
    final ColorPalette colors = theme.colors;

    if (isLoading && kIsWeb) {
      return MaterialApp(
        home: Scaffold(
          body: Center(
            child: Spinner(
              style: SpinnerStyle.initial,
              size: SpinnerSize.large,
            ),
          ),
        ),
      );
    }

    return AppThemeProviderWrapper(
      child: MaterialApp(
        title: 'Дизайн-система «Адмирал»',
        home: widget.isShowOnboarding ? OnboardingScreen() : RootScreen(),
        debugShowCheckedModeBanner: false,
        theme: ThemeData(
          appBarTheme: AppBarTheme(
            iconTheme: IconThemeData(color: colors.elementPrimary.color()),
          ),
        ),
      ),
    );
  }
}
1
likes
50
points
61
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

The visual component library for Flutter

Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

flutter, golden_toolkit, intl, path, simple_animations

More

Packages that depend on admiralui_flutter