From 504f65fc5f16f86d08e9c87d672051384a8422c0 Mon Sep 17 00:00:00 2001 From: Artem Kokos Date: Wed, 22 Apr 2026 23:39:34 +0700 Subject: [PATCH] docs: refresh project README --- README.md | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index d4fcecc..3539256 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,8 @@ - Flutter 3.x / Dart - Riverpod -- управление состоянием - Dio -- HTTP-клиент -- SharedPreferences -- локальное хранение настроек +- SharedPreferences -- локальное хранение несекретных настроек +- Flutter Secure Storage -- безопасное хранение API-ключей - Geolocator -- геолокация - Workmanager -- периодические фоновые задачи - Flutter Local Notifications -- локальные уведомления @@ -32,13 +33,16 @@ ``` lib/ +├── app/ +│ └── app_bootstrap.dart -- bootstrap приложения и стартовые состояния ├── main.dart -- точка входа, тема, роутер ├── models/ -│ └── home_config.dart -- модель "дома" (сервер) +│ └── home_config.dart -- несекретная модель "дома" (сервер) ├── services/ │ ├── api_client.dart -- обёртка Dio для Ignis API +│ ├── credentials_storage.dart -- безопасное хранение API-ключей │ ├── geofence_worker.dart -- фоновая проверка геофенса -│ └── settings_service.dart -- хранение домов в SharedPreferences +│ └── settings_service.dart -- хранение домов и миграция ключей ├── providers/ │ └── providers.dart -- Riverpod-провайдеры ├── screens/ @@ -79,7 +83,12 @@ flutter analyze 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 Приложение работает с [Ignis Core API](https://git.akokos.ru) -- self-hosted бэкенд на FastAPI для управления лампами WiZ по локальной сети. Используемые эндпоинты: @@ -118,8 +129,9 @@ flutter test ## Текущие ограничения - Целевая платформа сейчас Android. -- API-ключи пока хранятся в `SharedPreferences`; это следующий приоритетный технический долг. +- Release APK пока подписывается debug-ключом из Flutter-шаблона. - Архитектура всё ещё содержит крупный `providers.dart` и много сырых `Map`. +- Обработка ошибок стала лучше на bootstrap/polling, но ещё не унифицирована по всем экранам. ## Лицензия