feat: mobile-like window size and always-visible stats
- Changed window size to mobile phone format (400x800) - Removed width condition for ActiveProxyFooter - now always visible - Added run-umbrix.sh launch script with icon copying - Stats cards now display on all screen sizes
This commit is contained in:
227
update-server/CHANGELOG_DESKTOP.md
Normal file
227
update-server/CHANGELOG_DESKTOP.md
Normal file
@@ -0,0 +1,227 @@
|
||||
# История изменений системы обновлений
|
||||
|
||||
## Версия 1.1 - Упрощение и Desktop-фокус
|
||||
|
||||
**Дата:** 2024
|
||||
|
||||
### 🎯 Главное изменение
|
||||
|
||||
Система обновлений переориентирована **только на Desktop платформы** (Windows, macOS, Linux).
|
||||
Android версия использует Google Play Store для автоматических обновлений.
|
||||
|
||||
---
|
||||
|
||||
### ✨ Что изменилось
|
||||
|
||||
#### Код приложения
|
||||
|
||||
1. **new_version_dialog.dart** - Упрощён:
|
||||
- ✅ Android: Открывает браузер/Google Play
|
||||
- ✅ Desktop: Скачивание с прогресс-баром + автозапуск установщика
|
||||
- ❌ Удалены: Android permissions, MethodChannel, InstallHandler
|
||||
|
||||
2. **about_page.dart**:
|
||||
- Кнопка "Проверить обновления" видна **только на Desktop**
|
||||
- Android не показывает кнопку (обновления через Google Play)
|
||||
|
||||
3. **Android код удалён**:
|
||||
- ❌ `InstallHandler.kt` - удалён
|
||||
- ❌ `REQUEST_INSTALL_PACKAGES` permission - удалён из манифеста
|
||||
- ❌ Регистрация InstallHandler в MainActivity - удалена
|
||||
|
||||
#### Документация
|
||||
|
||||
1. **README.md** - Обновлён:
|
||||
- Добавлено предупреждение о Desktop-only
|
||||
- Изменена диаграмма процесса обновления
|
||||
- Добавлены ссылки на Google Play для Android
|
||||
|
||||
2. **README_DESKTOP.md** - Создан:
|
||||
- Подробная инструкция для Desktop платформ
|
||||
- Структура файлов (.exe, .dmg, .AppImage)
|
||||
- Примеры конфигурации
|
||||
|
||||
3. **api.php** - Обновлён комментарий:
|
||||
- Указано, что API только для Desktop
|
||||
- Упомянуто использование Google Play для Android
|
||||
|
||||
---
|
||||
|
||||
### 🧹 Что почистили
|
||||
|
||||
#### Удалённые файлы
|
||||
- `android/app/src/main/kotlin/com/umbrix/app/InstallHandler.kt`
|
||||
|
||||
#### Удалённые permissions
|
||||
- `android.permission.REQUEST_INSTALL_PACKAGES` из AndroidManifest.xml
|
||||
|
||||
#### Удалённый код
|
||||
- MethodChannel для проверки Android permissions
|
||||
- Функции `checkInstallPermission()`, `requestInstallPermission()`
|
||||
- Сложная логика установки APK из приложения
|
||||
|
||||
---
|
||||
|
||||
### 📦 Зависимости
|
||||
|
||||
Используемые пакеты **только для Desktop**:
|
||||
- `dio` ^5.4.1 - HTTP запросы и загрузка файлов
|
||||
- `path_provider` ^2.1.1 - Временная директория для загрузок
|
||||
- `open_file` ^3.3.2 - Открытие установщика после загрузки
|
||||
|
||||
Android теперь использует только:
|
||||
- `UriUtils.tryLaunch()` - Открытие браузера/Google Play
|
||||
|
||||
---
|
||||
|
||||
### 🔄 Логика работы
|
||||
|
||||
#### Desktop (Windows/macOS/Linux)
|
||||
```dart
|
||||
if (Platform.isWindows || Platform.isMacOS || Platform.isLinux) {
|
||||
// 1. Проверка обновлений на сервере
|
||||
// 2. Показ диалога с информацией о версии
|
||||
// 3. Скачивание с прогресс-баром (dio)
|
||||
// 4. Сохранение в temp директорию
|
||||
// 5. Автоматический запуск установщика (open_file)
|
||||
}
|
||||
```
|
||||
|
||||
#### Android
|
||||
```dart
|
||||
if (Platform.isAndroid) {
|
||||
// 1. Проверка обновлений НЕ показывается (кнопка скрыта)
|
||||
// 2. В production: прямая ссылка на Google Play
|
||||
// 3. В debug: открытие браузера с download_url
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 🚀 Дальнейшие планы
|
||||
|
||||
#### Production деплой
|
||||
|
||||
1. **Windows**:
|
||||
- Создание `.exe` установщика
|
||||
- Подпись сертификатом
|
||||
- Загрузка в `downloads/windows/`
|
||||
|
||||
2. **macOS**:
|
||||
- Создание `.dmg` образа
|
||||
- Нотаризация Apple
|
||||
- Загрузка в `downloads/macos/`
|
||||
|
||||
3. **Linux**:
|
||||
- Создание `.AppImage`
|
||||
- Добавление `.deb` / `.rpm` пакетов
|
||||
- Загрузка в `downloads/linux/`
|
||||
|
||||
4. **Android**:
|
||||
- Публикация в Google Play Store
|
||||
- Удаление кастомного сервера обновлений
|
||||
- Автоматические обновления через магазин
|
||||
|
||||
---
|
||||
|
||||
### 💡 Почему так?
|
||||
|
||||
**Проблема:** Android требует сложные разрешения для установки APK из приложения:
|
||||
- Нужен `REQUEST_INSTALL_PACKAGES` permission
|
||||
- Пользователь должен вручную дать разрешение в настройках
|
||||
- Это запутывает пользователей и выглядит нелогично
|
||||
|
||||
**Решение:**
|
||||
- Android → Google Play Store (стандартный путь)
|
||||
- Desktop → Собственный сервер обновлений (гибкость и контроль)
|
||||
|
||||
---
|
||||
|
||||
### 📝 Заметки разработчика
|
||||
|
||||
> "как то нелогично . но мы же его установили уже ... на андроид может и не надо такое обновление на exe надо будет"
|
||||
|
||||
Было принято решение упростить систему:
|
||||
- На Android слишком сложно и нелогично обновлять APK изнутри приложения
|
||||
- Google Play Store делает это автоматически и безопасно
|
||||
- Desktop платформам нужна эта функция, так как нет централизованного магазина
|
||||
- Разделение платформ упрощает код и улучшает UX
|
||||
|
||||
---
|
||||
|
||||
## Версия 1.0 - Первый релиз
|
||||
|
||||
**Дата:** 2024
|
||||
|
||||
- ✅ PHP API для проверки обновлений
|
||||
- ✅ Web-панель администратора
|
||||
- ✅ История версий
|
||||
- ✅ Поддержка beta/stable релизов
|
||||
- ✅ CORS настройки
|
||||
- ✅ Rate limiting
|
||||
- ✅ Логирование запросов
|
||||
- ✅ Интеграция с Flutter приложением
|
||||
|
||||
**Проблемы версии 1.0:**
|
||||
- Пыталась поддерживать Android с установкой APK
|
||||
- Требовала сложные Android permissions
|
||||
- Запутанная UX для пользователей Android
|
||||
|
||||
---
|
||||
|
||||
## Миграция с 1.0 на 1.1
|
||||
|
||||
### Для разработчиков
|
||||
|
||||
1. Обновите код приложения (Flutter):
|
||||
```bash
|
||||
git pull
|
||||
flutter pub get
|
||||
flutter build apk --debug # для тестирования
|
||||
```
|
||||
|
||||
2. Удалите старый APK с устройства:
|
||||
```bash
|
||||
adb uninstall com.umbrix.app
|
||||
```
|
||||
|
||||
3. Установите новую версию:
|
||||
```bash
|
||||
adb install build/app/outputs/flutter-apk/app-debug.apk
|
||||
```
|
||||
|
||||
### Для сервера
|
||||
|
||||
Ничего менять не нужно! API осталось совместимым.
|
||||
Просто обновите документацию:
|
||||
- `README.md` ← основной файл
|
||||
- `README_DESKTOP.md` ← подробности для Desktop
|
||||
|
||||
### Для пользователей
|
||||
|
||||
**Android:**
|
||||
- Обновления теперь через Google Play Store
|
||||
- Кнопка "Проверить обновления" больше не показывается
|
||||
|
||||
**Desktop:**
|
||||
- Всё работает как раньше, но с улучшенным UX
|
||||
- Прогресс-бар при скачивании
|
||||
- Автоматический запуск установщика
|
||||
|
||||
---
|
||||
|
||||
## Контрольный список релиза
|
||||
|
||||
- [x] Упростить код для Android
|
||||
- [x] Реализовать скачивание для Desktop с прогресс-баром
|
||||
- [x] Удалить InstallHandler.kt
|
||||
- [x] Удалить REQUEST_INSTALL_PACKAGES permission
|
||||
- [x] Обновить README.md
|
||||
- [x] Создать README_DESKTOP.md
|
||||
- [x] Обновить комментарии в api.php
|
||||
- [x] Протестировать на Android emulator
|
||||
- [ ] Создать Windows .exe установщик
|
||||
- [ ] Создать macOS .dmg образ
|
||||
- [ ] Создать Linux .AppImage
|
||||
- [ ] Опубликовать в Google Play Store
|
||||
- [ ] Production деплой сервера
|
||||
Reference in New Issue
Block a user