Интеграция с клиентским приложением
Изначально Duit проектировался с прицелом на максимальное упрощение интеграции с новыми и существующими приложениями, написанными на Flutter. Интеграция состоит из нескольких шагов:
Инициализация драйвера
Для работы Duit-представления обязательно необходимо создать экземпляр DuitDriver. На этом этапе мы можем применять к драйверу ранее созданные расширения.
late final DuitDriver driver;
void initState() {
driver = DuitDriver(
"/endpoint_name",
transportOptions: HttpTransportOptions(
defaultHeaders: {
"Content-Type": "application/json",
},
baseUrl: "https://host:port",
),
);
super.initState();
}
void dispose() {
driver.dispose();
super.dispose();
}
Добавить host view
Duit-представление может быть как отдельным виджетом, так и отображать контент целого экрана. Этот контент должен быть отображен в специальном контейнере, который обеспечивает корректную инициализацию и построение UI.
Widget build(BuildContext context) {
return Scaffold(
body: SafeArea(
child: Center(
child: DuitViewHost(
driver: driver,
placeholder: const CircularProgressIndicator(),
),
),
),
);
}
После этого при монтировании виджета DuitViewHost будет инциализирован с указанными выше параметрами, выполнит начальный запрос макета виджета/экрана и отобразит его.
Глобальные настройки
Duit предоствляет публичн ый API для глобальной конфигурации фреймворка, регистрации компонентов и пользовательских виджетов.
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await DuitRegistry.initialize();
// Register custom widget
DuitRegistry.register(
"widget_key",
buildFactory: buildFactory,
);
// Register components
final response = await httpClient.get("http://localhost:8999/components");
await DuitRegistry.registerComponents([...response.data]);
runApp(const MyApp());
}