docs: refresh project README

This commit is contained in:
Artem Kokos
2026-04-22 23:39:34 +07:00
parent 762d16dc78
commit 504f65fc5f

View File

@@ -23,7 +23,8 @@
- Flutter 3.x / Dart - Flutter 3.x / Dart
- Riverpod -- управление состоянием - Riverpod -- управление состоянием
- Dio -- HTTP-клиент - Dio -- HTTP-клиент
- SharedPreferences -- локальное хранение настроек - SharedPreferences -- локальное хранение несекретных настроек
- Flutter Secure Storage -- безопасное хранение API-ключей
- Geolocator -- геолокация - Geolocator -- геолокация
- Workmanager -- периодические фоновые задачи - Workmanager -- периодические фоновые задачи
- Flutter Local Notifications -- локальные уведомления - Flutter Local Notifications -- локальные уведомления
@@ -32,13 +33,16 @@
``` ```
lib/ lib/
├── app/
│ └── app_bootstrap.dart -- bootstrap приложения и стартовые состояния
├── main.dart -- точка входа, тема, роутер ├── main.dart -- точка входа, тема, роутер
├── models/ ├── models/
│ └── home_config.dart -- модель "дома" (сервер) │ └── home_config.dart -- несекретная модель "дома" (сервер)
├── services/ ├── services/
│ ├── api_client.dart -- обёртка Dio для Ignis API │ ├── api_client.dart -- обёртка Dio для Ignis API
│ ├── credentials_storage.dart -- безопасное хранение API-ключей
│ ├── geofence_worker.dart -- фоновая проверка геофенса │ ├── geofence_worker.dart -- фоновая проверка геофенса
│ └── settings_service.dart -- хранение домов в SharedPreferences │ └── settings_service.dart -- хранение домов и миграция ключей
├── providers/ ├── providers/
│ └── providers.dart -- Riverpod-провайдеры │ └── providers.dart -- Riverpod-провайдеры
├── screens/ ├── screens/
@@ -79,7 +83,12 @@ flutter analyze
flutter test flutter test
``` ```
Текущий baseline после коммита `ffc2ea1` зелёный: анализатор без issues, тесты проходят. Текущий baseline зелёный: анализатор без issues, тесты проходят. Перед установкой на телефон дополнительно проверялась сборка:
```bash
flutter build apk --debug
flutter build apk --release
```
## Настройка ## Настройка
@@ -87,6 +96,8 @@ flutter test
Для добавления второго дома: кнопка "домик" в левом верхнем углу пульта -> экран домов -> кнопка "+". Для добавления второго дома: кнопка "домик" в левом верхнем углу пульта -> экран домов -> кнопка "+".
API-ключи хранятся отдельно от конфигурации домов в `flutter_secure_storage`. Старые ключи, сохранённые прежними версиями приложения в `SharedPreferences`, автоматически мигрируются при запуске.
## API ## API
Приложение работает с [Ignis Core API](https://git.akokos.ru) -- self-hosted бэкенд на FastAPI для управления лампами WiZ по локальной сети. Используемые эндпоинты: Приложение работает с [Ignis Core API](https://git.akokos.ru) -- self-hosted бэкенд на FastAPI для управления лампами WiZ по локальной сети. Используемые эндпоинты:
@@ -118,8 +129,9 @@ flutter test
## Текущие ограничения ## Текущие ограничения
- Целевая платформа сейчас Android. - Целевая платформа сейчас Android.
- API-ключи пока хранятся в `SharedPreferences`; это следующий приоритетный технический долг. - Release APK пока подписывается debug-ключом из Flutter-шаблона.
- Архитектура всё ещё содержит крупный `providers.dart` и много сырых `Map<String, dynamic>`. - Архитектура всё ещё содержит крупный `providers.dart` и много сырых `Map<String, dynamic>`.
- Обработка ошибок стала лучше на bootstrap/polling, но ещё не унифицирована по всем экранам.
## Лицензия ## Лицензия