import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'app.dart'; import 'config/settings.dart'; import 'decoder/decoder.dart'; import 'export/csv_exporter.dart'; import 'layout/layout_controller.dart'; import 'session/session_controller.dart'; import 'transport/websocket_transport.dart'; Future main() async { WidgetsFlutterBinding.ensureInitialized(); final settings = await Settings.load(isWeb: kIsWeb); final layout = await LayoutController.load(); final transport = WebSocketTransport( initialReconnectDelay: settings.reconnectInitialDelay, maxReconnectDelay: settings.reconnectMaxDelay, backoffFactor: settings.reconnectBackoffFactor, ); final decoder = DecoderImpl(batchInterval: settings.decoderBatchInterval); await decoder.start(); final session = SessionController( transport: transport, decoder: decoder, settings: settings, ); await session.start(); final exporter = CsvExporterImpl(); runApp(TelemetryApp( session: session, layout: layout, settings: settings, exporter: exporter, )); }