AppBootstrap class

This class accepts a wide array of strategies for various things, and then loads the app in a way that makes sure everything is scoped properly.

It takes care of:

  • App build versioning metadata
  • Device/screen layouts
  • User/authentication, displaying auth screens, logging out
  • Push notifications (Firebase)
  • App routing (using fluro) This includes deep linking
  • Analytics, crashlytics, error reporting

Constructors

AppBootstrap({AuthModule<Object> auth = const AnonymousAuthModule(), required RoutingModule routing, AppInfoModule appInfo = const DefaultAppInfoModule(), DeviceInfoModule deviceInfo = const DefaultDeviceInfoModule(), UserPrefsModule userPrefs = const DefaultUserPrefsModule(), LocalizationModule localization = const DefaultLocalizationModule(), AnalyticsModule analyticsInit = const DefaultAnalyticsModule(), PushNotificationModule? pushNotifications, InjectionModule injection = const ProviderInjectionModule(), TabSet? tabs, VersionCheckSettings? versionCheckSettings, bool isChangeBrightness = true, FirebaseApp? firebaseApp, Future completeStage1(LifecycleInit? init)? = defaultCompleteStage1, required String identifier, Widget buildPlatformApp(BuildContext context, Widget app) = defaultBuildPlatformApp, FRouter? router, void initWithinApp(BuildContext context)?, void initWithinNavigator(BuildContext context)?, void onUnauthenticatedError(BuildContext context) = noopBuildContext, Widget loggedInWidget(UserDetails profile)?, Getter<Widget>? loggedOutWidget, Getter<Widget>? splashPageWidget, required String appTitle, String? baseApiUrl, Widget buildOuterContext(Widget inner) = defaultBuildOuterContext, ThemesBuilder themesBuilder = buildDefaultThemes, List<LoginProvider> loginProviders = const [], Stream<ErrorStack>? appErrors, ScreenInit screenInit = defaultScreenInit, Future<bool> onPreLogout()?})

Properties

analyticsInit AnalyticsModule
final
appErrors Stream<ErrorStack>
final
appInfo AppInfoModule
final
appTitle String
final
auth AuthModule<Object>
final
baseApiUrl String?
final
buildOuterContext Widget Function(Widget inner)
final
buildPlatformApp Widget Function(BuildContext context, Widget app)
final
completeStage1 → (Future Function(LifecycleInit? init)?)
final
deviceInfo DeviceInfoModule
final
firebaseApp → FirebaseApp?
final
hashCode int
The hash code for this object.
no setterinherited
identifier String
final
initWithinApp → (void Function(BuildContext context)?)
final
initWithinNavigator → (void Function(BuildContext context)?)
final
injection InjectionModule
final
innerContext BuildContext?
getter/setter pair
isChangeBrightness bool
final
lifecycleInit LifecycleInit?
Stateful property that contains the parameters gathered during initialization
getter/setter pair
localization LocalizationModule
final
loggedInWidget → (Widget Function(UserDetails profile)?)
final
loggedOutWidget → Getter<Widget>?
final
loginProviders List<LoginProvider>
final
modules List<Object>
no setter
onPreLogout → (Future<bool> Function()?)
final
onUnauthenticatedError → void Function(BuildContext context)
final
pushNotifications PushNotificationModule?
final
router → FRouter?
final
routing RoutingModule
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
screenInit → ScreenInit
final
serviceResolver BuildContextResolver
no setter
splashPageWidget → Getter<Widget>?
final
tabs TabSet?
final
themesBuilder ThemesBuilder
final
userPrefs UserPrefsModule
final
versionCheckSettings VersionCheckSettings?
You can provide this to enforce that your application is within a certain version range
final

Methods

buildRootWidget() Future<Widget>
initializeFromWithin(BuildContext innerContext) → void
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
run() Future
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited

Static Methods

current() AppBootstrap
currentContext() BuildContext