Содержание статьи
В этой статье — вся важная информация, необходимая для того, чтобы решить, подходит ли Electron JS для вашего проекта.
Есть веская причина, по которой вы постоянно слышите о разработке на Electron: создание приложений с помощью этого фреймворка происходит быстро, эффективно и экономично. Но что именно вы можете построить с помощью Electron? И зачем выбирать его для своего проекта? Чтобы ответить на эти вопросы, нам сначала нужно поближе познакомиться с фреймворком и объяснить, чем он отличается от традиционных технологий разработки для настольных компьютеров.
Что такое Электрон?
Electron JS — это фреймворк с открытым исходным кодом, который позволяет разработчикам создавать кроссплатформенные настольные приложения с помощью JavaScript, HTML и CSS, которые на сегодняшний день являются тремя основными веб-технологиями. Он разработан и поддерживается GitHub. На своем веб-сайте Electron обещает, что любой, кто может создать веб-сайт, может использовать его для создания настольного приложения.
Почему? Поскольку все сложные части, такие как автоматические обновления, собственные меню и уведомления, отчеты о сбоях и отладка, выполняются механизмом рендеринга Chromium (часть браузера Chrome с открытым исходным кодом) и Node.js (среда выполнения JavaScript). построен на движке Chrome V8 JavaScript). Естественно, Electron привлекает веб-разработчиков, которые могут использовать его для разработки мощных кроссплатформенных настольных приложений без предварительного изучения множества новых навыков.
Ключевые особенности Electron.js
Любое написанное вами веб-приложение может работать на Electron.js. Точно так же любое приложение Node.JS, которое вы пишете, может использовать эту технологию. Electron JS использует веб-технологии, такие как простой HTML, CSS и JavaScript. Это не требует скиллов сеньора, если, конечно, вам не нужно что-то продвинутое. Фреймворк может быть разработан для одного браузера. Его файловая система принадлежит API-интерфейсам Node.js и работает в Linux, Mac OS X, Windows. Electron JS использует модуль npm, который широко используется для JavaScript. Он состоит из собственного меню для диалогов и уведомлений. Установщики Windows не нуждаются в какой-либо настройке.
Он также имеет возможность автоматического обновления и создания отчетов о сбоях в Windows и Mac с помощью Squirrel. Отчеты о сбоях отправляются на удаленный сервер для дальнейшего анализа. За действиями по отслеживанию контента, такими как отладка и профилирование, следит Chromium.
Немного об архитектуре
Теперь давайте прольем свет на то, на что похожа архитектура Electron.js. Если вы говорите, что Electron.js — это пицца, а Node.JS — это основа, то Chrome — это сыр, а V8 JavaScript Engine — начинка.
- Libchromiumcontent
Chrome — это веб-браузер с открытым исходным кодом, созданный Google, который предоставляет оконный менеджер с вкладками или оболочку для Интернета. Он имеет минималистичный пользовательский интерфейс и использует V8 в качестве движка JavaScript и blink в качестве движка компоновки. Libchromiumcontent — это библиотека рендеринга Chromium, которая является основой с открытым исходным кодом для браузера Google Chrome.
- Node.JS
Node.JS — это среда выполнения JavaScript с открытым исходным кодом, в которой используется движок JavaScript V8. Он позволяет вам запускать JavaScript вне браузера, а также предоставляет интерактивную оболочку, в которой вы можете выполнять необработанный код JavaScript.
- JavaScript-движок V8
V8 JavaScript Engine также является движком JavaScript с открытым исходным кодом, разработанным Google, написанным на C++ и JavaScript.
Electron JS — почему стоит выбрать фреймворк для создания настольного приложения
Сложные и утомительные части создания настольного приложения — это упрощение упаковки, установки, обновления, обеспечение поддержки собственных меню, уведомлений, диалоговых окон и, наконец, оптимизация отчетов о сбоях приложения. Electron JS в значительной степени позаботится обо всех этих важных шагах, чтобы пользователь мог сосредоточиться на ядре своего приложения.
Когда мы пишем приложение для веб-браузера, мы в основном пишем код, который будет выполняться на чужом компьютере. Мы не знаем, какие браузеры будут использовать наши целевые пользователи. Это может быть последняя версия Chrome или устаревшая версия Internet Explorer. Следовательно, не остается большого выбора, кроме как быть консервативными в технологиях, которые мы выбираем для реализации, и в типе кода, который нужно набросать. Когда вы создаете свои приложения с помощью Electron, вы упаковываете определенную версию Chromium и Node.JS, поэтому вы можете полагаться на любые функции, доступные в этих версиях.
Даже у разработчиков, не специализирующихся на фронтенде, есть много веских причин использовать Electron, в том числе:
- безопасность,
- большое сообщество разработчиков и пользователей,
- кроссплатформенная поддержка.
Разработка на Electron имеет наибольший смысл при создании многоплатформенных настольных приложений, которым не нужно придерживаться строгих требований к использованию памяти и подчеркивать дизайн UX и UI.
Кроссплатформенные настольные приложения с HTML, CSS и JavaScript
С Electron можно написать приложение только один раз и распространять его повсюду без дублирования усилий по разработке. Мультиплатформенный характер Electron может значительно сократить процесс разработки и привести к существенной экономии средств. Более того, поскольку приложения Electron создаются с использованием трех основных веб-технологий — JavaScript, HTML и CSS, — разработчики могут использовать единую кодовую базу как для веб-приложений, так и для настольных приложений.
Инструменты для разработчиков Electron.js
Это инструменты, необходимые Electron.js для создания приложения.
- Electron — устанавливает готовые двоичные файлы Electron для использования в командной строке с помощью npm.
- Электронная компиляция — использует ES2015, CoffeeScript, LESS, SCSS в вашем приложении без этапа предварительной компиляции.
- Electron-packager — упаковывает файлы и распространяет их в вашем приложении.
- Devtron — это официальное расширение DevTools.
- Spectron — тестирует приложения Electron с помощью ChromeDriver.
Electron с точки зрения бизнеса
Поскольку с помощью Electron вы можете создать настольное приложение с помощью веб-технологий, скорее всего, ваша текущая команда разработчиков справится с этой задачей. Вы можете хорошо использовать имеющиеся таланты. Это также ускоряет выход на рынок, потому что вам не нужно настраивать свой код для различных систем и их версий. В большинстве случаев Electron будет хорошим выбором с точки зрения бизнеса. И технические решения всегда должны приниматься с учетом перспективы бизнеса. Использование бизнес-контекста для принятия технологических решений — это первый шаг к разрушению границ между IT и бизнесом и просто к созданию более качественных продуктов.
Когда разработка Electron не подходит?
Поскольку приложения Electron, по сути, представляют собой окна браузера с сервером Node.js, работающим в фоновом режиме, они, как правило, потребляют значительный объем памяти. Из-за этого нет особого смысла использовать Electron для простых утилит. Приложения Electron также могут быть очень большими по сравнению с их родными аналогами. Разница в размере может быть особенно заметна, когда речь идет о приложениях, которые не содержат слишком много функций. Однако по мере того, как память и дисковое пространство с каждым годом дешевеют, доводы против использования Electron для создания простых утилит постепенно теряют свою актуальность.
Например, Etcher — это простое в использовании приложение для записи образов, способное записывать образы ОС на SD-карты и USB-накопители и проверять их функциональность. В отличие от большинства других подобных утилит, Etcher имеет красивый пользовательский интерфейс, который есть практически у всех приложений Electron.
Примеры электронных приложений
- Электронная разработка сделана правильно — настольное приложение Slack
Отличным примером популярного приложения, которое иллюстрирует, когда разработка Electron имеет смысл, является Slack, центр совместной работы, где команды могут работать вместе, чтобы добиться цели. Slack был первоначально выпущен в 2013 году, всего через месяц после Electron, и стал одним из самых популярных инструментов для совместной работы в мире. Slack упрощает совместную работу, включая постоянные чаты, поддержку обмена файлами и интеграцию с большим количеством сторонних сервисов, включая Google Drive, Trello, Dropbox и многие другие. Хотя не секрет, что кроссплатформенное настольное приложение Slack построено на Electron, может быть не очевидно, что это гибридное приложение, созданное на основе веб-приложения (slack.com). Это одно из самых привлекательных преимуществ Electron — вы можете не только создать кроссплатформенное настольное приложение с нуля с помощью известных и любимых веб-технологий, но и расширить уже существующее веб-приложение новыми и мощными возможностями.
- Простая утилита, но созданная с помощью Electron — Etcher
Etcher разработан Balena (ранее Resin.io), компанией, которая предоставляет полный набор инструментов для создания, развертывания и управления парками подключенных устройств Linux. Смущенная состоянием приложений для написания изображений, на которые полагались ее клиенты, Balena решила что-то с этим сделать, и так появился Etcher. История Etcher служит прекрасным свидетельством того, насколько просто разработать приложение с помощью Electron.
Когда IoT-компания может использовать Electron для разработки того, что сейчас является одним из самых популярных приложений для создания изображений в свободное время, нет никаких ограничений для того, чего могут достичь профессиональные разработчики Electron.
- Новое изобретение колеса — Visual Code Studio
Зная об универсальности Electron, Microsoft использовала фреймворк для переопределения редактирования кода с помощью Visual Studio Code. Это легкий редактор кода, который работает везде и может быть превращен в полноценную IDE с расширениями. С момента его выпуска число разработчиков, использующих Visual Studio Code, резко возросло, что показывает, как можно применить новую технологию, чтобы заново изобрести колесо и улучшить его в процессе.
Альтернативы Electron: фреймворки для кроссплатформенных настольных приложений
Некоторое время назад было невозможно создавать настольные приложения с помощью JavaScript. Теперь разработчики JS могут выбирать из нескольких фреймворков.
- NW.js дает разработчикам свободу выбора фреймворков и инструментов и позволяет вызывать модули Node.js непосредственно из DOM.
- Meteor быстр, но он не создает приложения сам по себе — его нужно использовать с Cordova или подобными инструментами.
- Proton Native использует тот же синтаксис, что и React Native (можно сказать, что он делает то же самое для настольных компьютеров, что React Native делает для мобильных устройств). Proton Native работает с Redux и совместим с Node.js.