bflutter 0.1.8+3 copy "bflutter: ^0.1.8+3" to clipboard
bflutter: ^0.1.8+3 copied to clipboard

discontinued
outdated

BeeSight Soft Flutter core package, bloc, caching, auth, network, lifecycle, utils

example/lib/main.dart

/*
 * Developed by Nhan Cao on 10/24/19 5:19 PM.
 * Last modified 10/9/19 4:38 PM.
 * Copyright (c) 2019 Beesight Soft. All rights reserved.
 */

import 'dart:ui' as ui;

import 'package:bflutter/bflutter.dart';
import 'package:bflutter/libs/bcache.dart';
import 'package:bflutter/provider/base_localizations.dart';
import 'package:bflutter/provider/main_bloc.dart';
import 'package:bflutter/widgets/app_loading.dart';
import 'package:bflutter_poc/pages/login/login_screen.dart';
import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';

void main() async {
  // @nhancv 2019-10-24: Start services later
  WidgetsFlutterBinding.ensureInitialized();
  // @nhancv 10/23/2019: Init bflutter caching
  await BCache.instance.init();
  // @nhancv 10/23/2019: Run Application
  runApp(MyApp());
}

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  final mainBloc = MainBloc.instance;

  @override
  Widget build(BuildContext context) {
    /**
     * App flow:
     * - First, login
     * - Second, navigate to Home with auto fetch beesightsoft github info
     * - Then, navigate Search screen
     * - Last, navigate to Detail screen
     */
    return StreamBuilder(
        stream: mainBloc.localeBloc.stream,
        builder: (context, snapshot) {
          return MaterialApp(
            locale: (snapshot.hasData
                ? snapshot.data
                : Locale(ui.window.locale.languageCode,
                    ui.window.locale.countryCode)),
            supportedLocales: [
              const Locale('en'),
              const Locale('vi'),
            ],
            localizationsDelegates: [
              DefaultLocalizations.delegate,
              GlobalMaterialLocalizations.delegate,
              GlobalWidgetsLocalizations.delegate,
            ],
            debugShowCheckedModeBanner: false,
            theme: ThemeData(
              primarySwatch: Colors.blue,
            ),
            home: AppContent(),
          );
        });
  }
}

class AppContent extends StatelessWidget {
  final mainBloc = MainBloc.instance;

  @override
  Widget build(BuildContext context) {
    WidgetsBinding.instance.addPostFrameCallback((_) => onAfterBuild(context));

    return Scaffold(
      backgroundColor: Colors.transparent,
      body: Stack(
        children: <Widget>[
          LoginScreen(),
          StreamBuilder(
            stream: mainBloc.appLoading.stream,
            builder: (context, snapshot) =>
                snapshot.hasData && snapshot.data ? AppLoading() : SizedBox(),
          ),
        ],
      ),
    );
  }

  // @nhancv 10/25/2019: After widget initialized.
  void onAfterBuild(BuildContext context) {
    mainBloc.initContext(context);
  }
}
2
likes
40
pub points
0%
popularity

Publisher

verified publishernhancv.com

BeeSight Soft Flutter core package, bloc, caching, auth, network, lifecycle, utils

Repository (GitHub)
View/report issues

License

MIT (LICENSE)

Dependencies

connectivity, flutter, flutter_spinkit, path, rxdart, sqflite, uuid

More

Packages that depend on bflutter