Каркас приложения: авторизация, зоны/устройства/правила, управление устройствами

HTTP-клиент к /api/v1 с Sanctum-токеном (хранится в secure storage),
модели зеркалят Laravel API Resources. Экраны: логин, список устройств
с живым статусом, детальная страница устройства (история телеметрии,
turn-on/turn-off/set-level с проверкой capability), списки зон и правил
автоматизации (пока только чтение — формы создания/редактирования впереди).
This commit is contained in:
2026-08-12 01:12:39 +05:00
parent 6a00826194
commit 45b8733d22
25 changed files with 1531 additions and 129 deletions
+21
View File
@@ -0,0 +1,21 @@
import 'dart:io' show Platform;
/// Backend base URL, without a trailing slash and without `/api/v1`.
///
/// Override at build/run time, e.g.:
/// flutter run --dart-define=API_BASE_URL=http://192.168.1.10:8000
///
/// Without an override we guess a sane per-platform default for local dev:
/// the Android emulator can't reach the host via `localhost` (it has its own
/// loopback), so it needs the special `10.0.2.2` alias instead.
class ApiConfig {
static const _override = String.fromEnvironment('API_BASE_URL');
static String get baseUrl {
if (_override.isNotEmpty) return _override;
if (!Platform.isAndroid) return 'http://localhost:8000';
return 'http://10.0.2.2:8000';
}
static String get apiV1Url => '$baseUrl/api/v1';
}