Plugin
Plugin is a class which can be used for dependency injection.
Plugin implements IPlugin interface and can contain children.
#
PluginManagerPluginManager is a factory class and it contain core managers which we can access from anywhere.
PluginManager should be initialized at the beginning of the application.
void main() async {
// Ensure initialization. WidgetsFlutterBinding.ensureInitialized();
// Environment (Optional). String value = await rootBundle.loadString("assets/jsons/environment.json"); Environment environment = Environment.fromJson(jsonDecode(value));
// Initialize plugin manager. await PluginManager().initialize(environment: environment);
// Add service manager. IServiceManager serviceManager = ServiceManager(); PluginManager().addPlugin<IServiceManager>(serviceManager);
/* TODO */}
Using Environment class we can configure languages, base urls and google services.
We can also add our custom plugins in PluginManager and later we can access those from anywhere.
IServiceManager serviceManager = PluginManager().getPlugin<IServiceManager>() as IServiceManager;serviceManager.getUserService().getUsers(100, callback: (event) { /* TODO */});
IEnvironmentManager environmentManager = PluginManager().getPlugin<IEnvironmentManager>() as IEnvironmentManager;
// Switch to dark theme.environmentManager.setThemeMode(ThemeMode.dark);
// Switch to development mode.environmentManager.setMode(EnvironmentManager.MODE_DEVELOPMENT);