init function UI Root
Main function for initializing whole App, also used in tests.
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());
}
}