init function UI Root

Future<void> init()

Main function for initializing whole App, also used in tests.

Init HiveAdapters, locator and log.

Implementation

Future<void> init() async {
  WidgetsFlutterBinding.ensureInitialized();
  //
  // > logger
  //
  Logger.root.level = Level.ALL;
  Logger.root.onRecord.listen((record) {
    dev.log(
      '${record.level.name.substring(0, 3)}:  ${record.message}',
      //${record.time}:
    );
  });
  //
  // > hive adapter
  //
  try {
    // never fail on double adapter registration
    Hive
      ..registerAdapter(ServiceOfJournalAdapter())
      ..registerAdapter(
        ServiceStateAdapter(),
      );
    // ignore: avoid_catching_errors
  } on HiveError catch (e) {
    log.severe(e.toString());
  }
  //
  // > localization
  //
  final locale = await loadDefaultLocale();
  //
  // > locator
  //
  final sharedPreferences = await SharedPreferences.getInstance();
  try {
    locator
      ..registerLazySingleton<AppLocalizations>(() => locale)
      ..registerLazySingleton<SharedPreferences>(() => sharedPreferences);
    // ignore: avoid_catches_without_on_clauses
  } catch (e) {
    dev.log(e.toString());
  }
}