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.
Спасибо всем, кто вообще пользуется программой, сообщает о проблемах и предлагает идеи.
Телеграм-канал автора:
В целом это всё, можете закинуть меня помидорами, клоунами и написать что потратил время впустую :)



ИТ-проекты пикабушников
780 постов3.5K подписчиков
Правила сообщества
0. Запрещены посты вне тематики сообщества
1. Уважайте труд людей, пишите только конструктивную критику,
2. Не выкладывайте информацию по своему проекту чаще 2ух раз в месяц