VK Desktop — Версия 1.2.0
Всем привет!
После версии 1.1.0 и пару патчей я cгорел и забросил это дело и спустя 5 месяцев вспомнил про проект и решил обновить - просто по приколу, захотелось так :)
Выпустил VK Desktop 1.2.0. В этой версии я переработал верхнюю панель программы, обновил систему установки обновлений и привёл в порядок техническую часть проекта.
Исходный код:
Скачать последнюю версию:
Что же нового в клиенте?
Новая верхняя панель (Вдохновился Яндекс Браузером)
Стандартная рамка Electron заменена собственной (кривой) компактной панелью.
В ней находятся:
меню VK Desktop;
кнопка возврата на предыдущую страницу;
название и версия программы;
индикатор доступного обновления;
кнопки сворачивания, разворачивания и закрытия окна.
Панель подстраивается под светлую и тёмную тему ВКонтакте. Также исправлено её поведение в полноэкранном режиме и при разворачивании окна.
Обновлённая система обновлений
Состояние обновления теперь отображается прямо в верхней панели.
Если вышла новая версия, рядом с номером программы появляется индикатор. Во время скачивания отображаются процент загрузки и скорость.
Загрузку можно отменить, а после её завершения установить обновление с автоматическим перезапуском VK Desktop.
При нажатии на номер версии открывается раздел «Что нового». В нём можно посмотреть:
описание последнего обновления;
номер версии;
дату публикации;
ссылку на страницу релиза в GitHub.
Если при обновлении с версии 1.1.3 появляется ошибка 429, скачайте новый установщик вручную по ссылке выше. Ошибка связана с временным ограничением запросов со стороны GitHub.
Горячие клавиши
Добавлены стандартные сочетания для управления страницей:
Ctrl + + для увеличения масштаба;
Ctrl + - для уменьшения масштаба;
Ctrl + 0 для сброса масштаба;
Ctrl + R для перезагрузки страницы;
Ctrl + Shift + R для перезагрузки без кэша.
Обновление VK Next
Встроенный VK Next обновлён с версии 14.7.2 до 14.14.0.
Также обновлены его файлы, разрешения и система проверки целостности.
Исправления
Полоса прокрутки больше не заходит под верхнюю панель.
Исправлена отмена скачивания обновления.
Улучшена синхронизация кнопок с текущим состоянием окна.
Исправлено отображение прогресса обновления.
Улучшена обработка ошибок при проверке и скачивании новой версии.
Техническая часть
В версии 1.2.0 была серьёзно переработана внутренняя структура приложения.
Что именно изменилось:
Полностью переписана логика верхней панели и управления окном.
Добавлены отдельные IPC-команды для кнопки «Назад», сворачивания, разворачивания, закрытия окна и управления обновлениями.
Добавлена проверка источника IPC-запросов, чтобы команды принимались только от внутренних страниц приложения.
Состояние окна теперь синхронизируется с интерфейсом: приложение отслеживает полноэкранный режим, возможность вернуться назад и текущее состояние окна.
Логика горячих клавиш вынесена в отдельный модуль.
Полностью переработана система состояний обновления. Теперь отдельно обрабатываются проверка, наличие новой версии, загрузка, отмена, завершение и ошибка.
Для реальной отмены загрузки обновлений добавлен CancellationToken.
Старое отдельное окно прогресса удалено. Процент и скорость загрузки теперь передаются прямо в верхнюю панель.
Добавлена загрузка описания последнего релиза с GitHub для раздела «Что нового».
Ответ GitHub кэшируется на пять минут, чтобы не отправлять одинаковые запросы при каждом открытии окна.
Добавлена проверка и ограничение ссылок, текста и данных, полученных из описания релиза.
После установки обновления приложение автоматически запускается повторно.
Обновлена проверка целостности встроенного VK Next. Алгоритм переведён на новую версию с нормализацией переносов строк CRLF и LF, чтобы результат проверки не зависел от операционной системы.
Для VK Next сокращён список разрешений и доступных веб-ресурсов.
Добавлены тесты для верхней панели, горячих клавиш, системы обновлений, IPC-команд и проверки целостности VK Next.
Также была полностью переработана автоматизация проекта через GitHub Actions:
добавлена отдельная проверка линтера и тестов;
добавлена автоматическая сборка Windows x64;
добавлена проверка соответствия версии приложения Git-тегу;
добавлена проверка настроек безопасности Electron;
настроено автоматическое создание черновика GitHub Release;
установщик, файл .blockmap и latest.yml автоматически прикрепляются к релизу;
старый workflow для Linux AppImage удалён.
Проект и GitHub Actions переведены на Node.js 26 (Частично). Также обновлены зависимости сборки, документация, лицензия, правила участия в разработке и описание структуры проекта.
На этом работа над VK Desktop не заканчивается. Если встретите ошибку или заметите странное поведение, напишите об этом в комментариях или создайте Issue в GitHub.
Спасибо всем, кто вообще пользуется программой, сообщает о проблемах и предлагает идеи.
Телеграм-канал автора:
В целом это всё, можете закинуть меня помидорами, клоунами и написать что потратил время впустую :)



