Раньше существовало четкое различие между «приложениями» и «веб-сайтами».

  • приложения - устанавливаемые двоичные пакеты, ориентированные на определенные вычислительные платформы, которые остаются на устройстве до тех пор, пока не будут удалены.
  • веб-сайты - обслуживаемые страницы HTML / JavaScript / CSS, отображаемые в клиентском веб-браузере.

Теперь у нас есть прогрессивные веб-приложения (PWA), которые представляют собой нечто большее, чем статические веб-страницы. Они нацелены на то, чтобы их можно было устанавливать, работать в автономном режиме и иметь функции, похожие на приложения (уведомления, фоновые задачи, синхронизацию и т. Д.), При этом доставляя их через веб-браузер.

Движение PWA стремительно развивается, но если вы веб-разработчик и хотите создавать собственные устанавливаемые приложения для Mac, Windows и Linux сегодня, то фреймворк Electron может быть для вас. . Это платформа, используемая для создания приложений Slack и Microsoft Visual Studio Code.

Просто создайте веб-приложение HTML / JavaScript / CSS, которое в качестве бонуса может включать в себя модули npm из мира Node.js, а Electron упакует все это в виде собственного устанавливаемого пакета приложения. Приложения получают свой собственный значок (весело отскакивает от док-станции Mac) и могут автоматически обновляться и иметь доступ к собственным меню, селекторам файлов и другим API.

Мое первое электронное приложение

В моем первом проекте Electron я думал, что сделаю простую, но полезную утилиту из компонентов, которые у меня уже были. Я использовал свою библиотеку couchimport, которая импортирует структурированные данные в CouchDB / Cloudant, для создания настольного приложения.

Пользовательский интерфейс максимально прост: запустите приложение, перетащите CSV-файл и посмотрите, как он импортируется в локальную базу данных CouchDB или удаленный кластер Cloudant.

Структура приложения Electron

Если вы раньше создавали приложения Node.js, то знаете, что метаданные и зависимости вашего приложения хранятся в package.json файле. В приложении Electron есть два файла package.json:

  • Development package.json - определяет зависимости, необходимые для сборки исполняемого файла и установщика Electron.
  • Application package.json - зависимости вашего приложения

Обычно каталог с исходным кодом выглядит так…

|-README.md
|-package.json
|-app/
  |-package.json
  |-app.js

… С вашим веб-приложением, находящимся в подкаталоге app. Хотя собственный проект Electron Быстрый старт не организован таким образом, это очень удобный способ отделения зависимостей фреймворка от ваших, и его стоит принять с самого начала.

Электронная обработка веб-приложения

Как правило, простое приложение Electron имеет main.js, который является точкой входа в приложение. Он открывает веб-страницу как главное окно.

Хотя Electron по большей части держится подальше от вашего веб-приложения, есть некоторые особенности, специфичные для Electron, которые вы должны учитывать для своего приложения:

  • если вы хотите, чтобы в вашем приложении были собственные меню, вам необходимо определить их в файле main.js вашего приложения.
  • чтобы активировать собственные селекторы файлов из вашего приложения, вы должны углубиться в Electron APIs
  • если вы хотите, чтобы теги привязки открывались в окне браузера, воспользуйтесь API электронной оболочки
  • для сохранения состояния (например, конфигурации вашего приложения) между запусками, вам понадобится что-то вроде electronic-config для сохранения данных локально

В противном случае ваше статическое приложение HTML / JavaScript / CSS может на ваших глазах превратиться в нативное приложение.

Работает локально

Клонируйте репозиторий вашего проекта и запустите npm install, чтобы загрузить код Electron и зависимости вашего приложения:

git clone https://github.com/ibm-cds-labs/couchdbimporter.git
cd couchdbimporter
npm install

Запустите приложение с npm start

npm start

Делаем установщик

Если вы хотите распространять свое приложение, вам понадобится «установщик» для каждой платформы операционной системы. У меня настроен "package.json", так что он создает установщик Apple Mac с

npm run mac

а полученные файлы хранятся в каталоге dist/mac.

Тот же процесс можно запустить для win и linux целей для создания установщиков для Windows и Linux соответственно.

Также возможно написать сценарий сборки и развертывания установщиков вашего приложения.

Альтернативы Electron

Платформа Electron - это мощный способ создания нативных приложений для нескольких платформ с учетом ваших навыков работы с веб-приложениями, избегая при этом проблем с кроссбраузерностью. Но это не единственная пони в шоу:

  • Прогрессивные веб-приложения - это веб-сайты, которые могут предлагать функции, подобные приложениям, и доступны по URL-адресу.
  • уже есть инструменты, которые позволяют веб-сайтам вести себя как настольные приложения (заключая их в оболочку Electron)
  • Cordova позволяет создавать веб-приложения как нативные мобильные приложения для iOS и Android.
  • React Native - еще один способ создания нативных мобильных приложений из веб-технологий, как и NativeScript.

Попробуй сам

Взгляните на мое приложение для импорта данных CouchDB, а затем попробуйте это со своим собственным приложением. Если вам понравилась эта статья, выскажите свое мнение, щелкнув ♡. Спасибо.