# 📋 Аудит проекта Umbrix v0.1.0 (build 100) **Дата:** 29 декабря 2025 г. **Flutter:** 3.24.0 (Stable) **Платформа:** Android SDK 36.1.0 --- ## ✅ Статус сборки ### 🎯 Успешно собрано - **APK:** `build/app/outputs/flutter-apk/app-debug.apk` - **Размер:** 223 MB (debug-режим с символами отладки) - **Время сборки:** 11.4s (Gradle) - **Bootstrap:** 2358ms - **Статус:** ✅ Приложение запущено и работает на эмуляторе --- ## 📊 Статический анализ кода (Flutter Analyze) ### Общая статистика - **Всего проблем:** 265 - **Категории:** - ❌ **Errors:** 0 (критических ошибок нет) - ⚠️ **Warnings:** ~30 (неиспользуемые импорты, мёртвый код) - ℹ️ **Info/Hints:** ~235 (стилистика, рекомендации) ### Основные проблемы #### ⚠️ Warnings (требуют внимания): 1. **Неиспользуемые импорты** (20+ файлов): - `lib/features/per_app_proxy/overview/per_app_proxy_page.dart:5` - `go_router` - `lib/features/home/widget/home_page.dart:15` - `active_proxy_notifier.dart` - `lib/features/settings/widgets/advanced_setting_tiles.dart` - 3 импорта - И другие... 2. **Неиспользуемые переменные**: - `connection_button.dart:31` - `today` - `system_tray_notifier.dart:64` - `destinations` - `logs_overview_page.dart:31` - `debug` - `about_page.dart:28` - `appUpdate` - И другие... 3. **Мёртвый код (Dead code)**: - `profile_notifier.dart:117` - `false && ...` (всегда false) - `qr_code_scanner_screen.dart:143` - недостижимый код - `system_tray_notifier.dart:184` - недостижимый код 4. **Go lang warning**: - `libcore/config/server.go:46` - impossible condition: `nil != nil` #### ℹ️ Info (рекомендации по стилю): - Отсутствие `const` конструкторов (~100 мест) - Отсутствие trailing commas (~50 мест) - Использование deprecated API (~10 мест) - Generated код (protobuf) - игнорируется --- ## 📦 Зависимости ### Устаревшие пакеты (требующие обновления): #### Критичные (серьёзно устарели): - `flutter_adaptive_scaffold`: 0.1.12 → **0.3.3+1** (discontinued! ⚠️) - `go_router`: 13.2.5 → **17.0.1** (+3 мажорные версии) - `grpc`: 3.2.4 → **5.1.0** (+2 мажорные версии) - `hooks_riverpod`: 2.6.1 → **3.1.0** - `freezed_annotation`: 2.4.4 → **3.1.0** - `riverpod_annotation`: 2.6.1 → **4.0.0** - `protobuf`: 3.1.0 → **6.0.0** (+3 мажорные версии) #### Рекомендуемые к обновлению: - `mobile_scanner`: 5.2.3 → 7.1.4 - `package_info_plus`: 5.0.1 → 9.0.0 - `sentry_flutter`: 7.20.2 → 9.9.1 - `share_plus`: 7.2.2 → 12.0.1 - `slang`: 3.32.0 → 4.11.1 - `upgrader`: 9.0.0 → 12.3.0 - `window_manager`: 0.3.9 → 0.5.1 - `wolt_modal_sheet`: 0.4.1 → 0.11.0 #### Dev dependencies: - `build_runner`: 2.4.13 → 2.10.4 - `dependency_validator`: 3.2.3 → 5.0.3 --- ## 🔧 Конфигурация линтера **Файл:** `analysis_options.yaml` ### Используемые плагины: - ✅ `package:lint/strict.yaml` (строгие правила) - ✅ `custom_lint` с `provider_parameters` ### Исключения: - `libcore/**` (Go код) - `**.g.dart` (сгенерированный код) - `lib/gen/**` (переводы) ### Отключенные правила: - `sort_pub_dependencies: false` - `sort_unnamed_constructors_first: false` - `avoid_classes_with_only_static_members: false` --- ## 🌍 Переводы (i18n) ### Статус: ✅ Полная локализация **Поддерживаемые языки:** 11 - 🇸🇦 ar (арабский) - 🇬🇧 en (английский - базовый) - 🇪🇸 es (испанский) - 🇮🇷 fa (персидский) - 🇫🇷 fr (французский) - 🇮🇩 id (индонезийский) - 🇧🇷 pt-BR (португальский) - 🇷🇺 ru (русский) ✨ - 🇹🇷 tr (турецкий) - 🇨🇳 zh-CN (китайский упрощенный) - 🇹🇼 zh-TW (китайский традиционный) **Генератор:** slang v3.32.0 (можно обновить до 4.11.1) **Время генерации:** 0.229s **Статус:** Все ключи переведены, включая: - ✅ `excludedDomains` (добавлены для id, pt-BR, zh-TW в этой сессии) - ✅ `proxies.pageTitle` изменено с "Proxies" на "Locations" во всех языках --- ## 🛠️ Flutter Doctor ### ✅ Работающие компоненты: - Flutter SDK 3.24.0 (stable) - Android toolchain SDK 36.1.0 - Android Studio 2025.1.3 - VS Code 1.106.3 / 1.108.0-insider - Connected devices (2) - Network resources ### ❌ Отсутствующие (для полной поддержки): - Chrome (для web-разработки) - Linux toolchain (clang++, CMake, ninja) --- ## 📝 Git Status ### Изменённые файлы: - `.gitignore` - `android/app/build.gradle` - `android/app/src/main/AndroidManifest.xml` ### Удалённые файлы (ребрендинг): - Старый пакет: `com.hiddify.hiddify` - Новый пакет: `com.umbrix.app` - Удалено ~50 Kotlin файлов из старого namespace --- ## 🎨 UI Изменения (текущая сессия) 1. **Размер шрифта:** - Description: 12px (было: default) - Buttons: 13px (было: default) - Цель: уместить русский текст в одну строку 2. **Переводы:** - Кнопка "Proxies" → "Локации" (все языки) - Добавлен раздел "Exclusions" для id, pt-BR, zh-TW --- ## 🚀 Рекомендации ### 🔴 Критично (сделать в ближайшее время): 1. **Удалить неиспользуемые импорты:** ```bash dart fix --apply ``` 2. **Обновить discontinued пакет:** - Заменить `flutter_adaptive_scaffold` на актуальную альтернативу 3. **Исправить мёртвый код:** - `profile_notifier.dart:117` - убрать `false &&` - Другие dead code warnings ### 🟡 Важно (планировать): 4. **Major updates пакетов:** - Обновить Riverpod 2.x → 3.x (breaking changes!) - Обновить go_router 13.x → 17.x - Обновить protobuf 3.x → 6.x - Обновить grpc 3.x → 5.x 5. **Размер APK (223 MB):** - Создать release build для оптимизации - Проверить, нет ли лишних ресурсов - Использовать app bundle вместо APK ### 🟢 Желательно (улучшения): 6. **Добавить const конструкторы** (производительность) 7. **Добавить trailing commas** (читаемость) 8. **Обновить deprecated API:** - `AutoDisposeRef` → `Ref` - `SingboxServiceRef` → `Ref` - `package:drift_dev/api/migrations.dart` 9. **Linux support:** ```bash sudo apt install clang cmake ninja-build ``` --- ## 🧪 Плагины для проверки ### Уже используются: - ✅ `flutter analyze` (встроенный статический анализатор) - ✅ `custom_lint` (кастомные правила для Riverpod) - ✅ `package:lint/strict.yaml` (строгие правила) ### Рекомендуемые дополнительно: 1. **dart_code_metrics** (DCM) ```yaml dev_dependencies: dart_code_metrics: ^5.7.6 ``` - Циклическая сложность - Метрики кода - Anti-patterns 2. **flutter_lints** ```yaml dev_dependencies: flutter_lints: ^4.0.0 ``` - Более современная альтернатива lint 3. **very_good_analysis** ```yaml dev_dependencies: very_good_analysis: ^5.1.0 ``` - Еще более строгие правила от Very Good Ventures 4. **Dependency checkers:** ```bash flutter pub run dependency_validator ``` - Проверка неиспользуемых зависимостей 5. **Security audit:** ```bash flutter pub run pubspec_dependency_analyzer ``` --- ## 📈 Итоговая оценка | Критерий | Оценка | Комментарий | |----------|--------|-------------| | **Сборка** | ✅ 10/10 | Собирается без ошибок | | **Код-стиль** | ⚠️ 6/10 | 265 замечаний, но нет критичных | | **Зависимости** | ⚠️ 5/10 | Много устаревших пакетов | | **Локализация** | ✅ 10/10 | 11 языков, все ключи переведены | | **Размер APK** | ⚠️ 6/10 | 223 MB (debug), нужен release | | **Тесты** | ❓ N/A | Требует проверки | | **Документация** | ✅ 8/10 | README есть, можно улучшить | ### Общая оценка: ⚠️ 7.5/10 **Вывод:** Проект в хорошем состоянии, основные проблемы - устаревшие зависимости и стилистические замечания линтера. Критических ошибок нет, приложение работает стабильно. --- ## 🎯 План действий ### Этап 1 (Немедленно): - [ ] Запустить `dart fix --apply` - [ ] Удалить неиспользуемые импорты вручную - [ ] Исправить dead code ### Этап 2 (На этой неделе): - [ ] Собрать release APK - [ ] Проверить размер release build - [ ] Обновить minor версии пакетов ### Этап 3 (Планирование): - [ ] Протестировать major updates - [ ] Заменить discontinued пакеты - [ ] Добавить DCM метрики --- **Отчёт сгенерирован:** GitHub Copilot **Версия приложения:** Umbrix v0.1.0 (100)