Сделать из сайта — десктоп приложение? Легко.

Благодаря развитию JavaScript и веба в целом, многие приложения из памяти ПК перекочевали на страницы сайтов. Это очень хорошая тенденция, однако потребность в десктоп приложениях не снизилась.
Я люблю слушать музыку на стриминговых сервисах. В данный момент пользуюсь Яндекс.Музыкой. К великому сожалению, их сервис не имеет версии для ПК. Собственно, как и толкового API для реализации неофициальных клиентов.
Это все расстраивает, но выход есть всегда. Самым простым решением, является обычное приложение-обертка. Приложение будет аналогом Webview на мобильных устройствах. Просто открывает страницу в виде отдельного приложения, и большего не нужно.
На ум сразу пришел Electron. Ищем имплементации поставленной задачи, и все уже придумано до нас. Библиотека nativefier позволяет создавать обертки в виде Electron-приложения для любого адреса в интернете. Идеально, посмотрим что умеет.
nativefier — это cli библиотека позволяющая на основе базового шаблона сделать обертку для нужного вам веб-сервиса.

Для начала установим библиотеку. Все стандартно, ставим через npm:
npm install nativefier -gЗдорово. Все что осталось сделать, ввести в терминал следующую команду:
nativefier music.yandex.ruТеперь немного ждем:

На выходе мы получили папку с нашим приложением:

По-сути, вы уже имеете готовое приложение. Но мне не нравится два момента: название и иконка. Давайте это исправим!
Выполним ту же команду, но уже с дополнительными аргументами:
nativefier music.yandex.ru -name Yandex.Music --icon ~/rtplv-projects/yammy/og-image.pngВ аргументе name указываем название приложения, а в icon — путь к иконке.
Иконки для macOS могут быть в формате .icns или .png. Так же при сборке под разные операционные системы, есть вероятность что потребуются дополнительные либы, перечень которых указан в документации nativefier.

Ура! Работает!
