Преимущества и недостатки использования Electron в 2021 году.

Если вы пытаетесь использовать JavaScript для создания настольного приложения, скорее всего, вы хотя бы рассматривали возможность использования Electron. Выпущенный GitHub в 2013 году для редактора Atom, Electron использовался многими крупными компаниями, такими как Microsoft, Discord и Slack. Эта статья призвана дать объективный обзор Electron, а также его достоинства и недостатки. В этой статье также дается обзор нескольких альтернатив и того, можете ли вы использовать их вместо них.

В 2013 году GitHub пытался создать новый элегантный редактор под названием Atom. Они также хотели использовать веб-технологии для его создания. К сожалению, тогда было не так много хороших инструментов для создания приложений с использованием веб-технологий. Было очень мало способов встроить браузер, и многие из них не были так хорошо построены. GitHub решил создать для этого свой собственный инструмент и назвал его Atom-Shell. Он быстро рос, даже когда VS Code сильно ударил по Atom. Позже его переименовали в «Электрон», так оно и есть сейчас.

Electron - это, по сути, Chromium вместе с Node.js, упакованный в настольное приложение. Chromium - это то, что поддерживает Chrome, а Node.js - самый популярный серверный движок JavaScript. Оба эти проекта хорошо поддерживаются и являются зрелыми, поэтому они являются оптимизированными и надежными инструментами.

Electron позволяет вам использовать JavaScript во внешнем интерфейсе, как на обычном веб-сайте. Он также позволяет использовать Node.js для доступа к файлам и других операций, связанных с системой. Поскольку Electron позволяет использовать JavaScript для всего, он стал популярным как способ создания настольных приложений на JavaScript.

Однако, поскольку Electron объединяет весь браузер и Node.js, Electron имеет тенденцию создавать большие приложения. Простое приложение Electron обычно весит около 120 МБ без сжатия.

Для сравнения, Flutter, еще один популярный кроссплатформенный фреймворк, имеет приложения размером всего 5 МБ. Кроме того, поскольку Electron запускает несколько экземпляров JavaScript одновременно, он потребляет большой объем оперативной памяти и процессора. Как видите, у использования Electron есть свои преимущества и недостатки.

Стоит ли использовать Электрон?

Плюсы

  • Большое сообщество
  • Нам доверяют Microsoft, Discord, Slack и другие
  • Низкая кривая обучения
  • Позволяет использовать веб-экосистему
  • Интегрирует Node.js

Минусы

  • Большой (~ 120 МБ) размер установки
  • Тяжелый; Использует много оперативной памяти и процессора
  • Нет мобильной поддержки
  • Несколько небезопасно; Позволяет пользователям легко заглядывать в приложение
  • Невозможно интегрировать собственный код за пределами Node.js FFI

Прежде всего, за Electron стоит большое сообщество, включающее несколько компаний. Это означает, что существует множество инструментов с открытым исходным кодом, руководств и многого другого. Вы также можете использовать большинство инструментов и руководств веб-экосистемы. У Electron'а также низкая кривая обучения, потому что, если вы знаете JavaScript, вы знаете Electron. Еще одно преимущество состоит в том, что Electron напрямую интегрирует Node.js, что позволяет вам использовать всю мощь JavaScript за пределами песочницы.

Однако эти преимущества имеют некоторые недостатки. Во-первых, Electron может быть тяжелым и медленным. Приложения Electron имеют базовый размер ~ 120 МБ и большую нагрузку на ОЗУ и ЦП. Потребление электронного ОЗУ может достигать сотен мегабайт.

Еще один из самых больших недостатков Electron - отсутствие поддержки мобильных устройств. Вы можете развернуть приложения Electron на Mac, Windows и Linux (за исключением некоторых дистрибутивов, таких как PureOS), но его нельзя развернуть на IOS или Android. Для этого есть решения, например использование Ionic, но многие из этих решений требуют изменения большого количества кода и инструментов.

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

Наконец, если вы пытаетесь использовать другие языки в качестве замены Node.js в Electron, у вас возникнут проблемы. Вы можете использовать другие языки, но только через WebAssembly или Node.js FFI, что может быть сложно настроить и снизить производительность.

Как видите, Electron хорош во многих отношениях, но не так хорош в других. В целом, если вы хотите использовать JavaScript везде и не заботитесь о производительности или безопасности, Electron - довольно хороший выбор. Однако, если у вас есть какие-либо соображения по поводу производительности, вам нужна мобильная поддержка или нужна оптимальная безопасность, вы, вероятно, не захотите использовать Electron.

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

Тельца

Между Electron и Tauri есть два основных различия.

Во-первых, Tauri использует браузер, встроенный в операционную систему, что значительно уменьшает размер приложения и может повысить его производительность.

Во-вторых, бэкэнд Tauri построен на Rust, а не на Node.js. Это позволяет использовать Rust напрямую, не прибегая к Node.js FFI или WASM. Это также делает Tauri более быстрым и более эффективным с точки зрения памяти. Приложения Tauri могут иметь размер всего несколько мегабайт, и они часто используют меньше половины памяти, чем приложения Electron.

Tauri также может быть более безопасным, поскольку он скрывает исходный код и отключает инструменты разработчика в производственной среде. Node.js по умолчанию не включен в Tauri, но вы можете добавить его. Но минусы у Тельца все же есть. Первая проблема заключается в том, что, поскольку Tauri не всегда использует Chromium, вы должны поддерживать несколько браузеров.

Другой недостаток в том, что Tauri новее и не имеет такого большого сообщества. Если вы хотите опробовать новую технологию, Tauri - отличный выбор.

Плюсы

  • Намного меньшее приложение и меньшее использование ресурсов
  • Более безопасный
  • Интегрируется с Rust

Минусы

  • Некоторые пользователи не будут использовать Chrome
  • Меньшее сообщество

Прогрессивное веб-приложение

Прогрессивные веб-приложения или PWA - это прогрессивные веб-приложения, которые изначально поддерживаются большинством браузеров.

Вместо того, чтобы быть упакованными в устанавливаемый файл, браузеры могут обнаруживать PWA, когда вы посещаете их веб-сайт, и отображать запрос на их установку. Вы также можете установить PWA из магазинов приложений, таких как Microsoft App Store и Google Play.

Установка из браузера работает, потому что PWA - это, по сути, веб-сайты с несколькими дополнительными функциями. Это означает, что пользователи могут использовать основные функции веб-сайта, а если они хотят большего, они могут установить PWA. Вот почему они постепенно улучшаются.

Есть много преимуществ создания PWA. Во-первых, они крошечные. Поскольку размер PWA не меньше ресурсов вашего веб-сайта, вы можете создавать готовые приложения размером всего несколько сотен килобайт.

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

У PWA есть и недостатки.

Во-первых, у них ограниченный доступ к собственным API-интерфейсам, и поддержка этих API-интерфейсов браузером может быть ограничена. Во-вторых, PWA полностью не поддерживаются в Firefox.

Наконец, PWA в настоящее время не могут распространяться во многих распространенных формах, хотя был достигнут большой прогресс в том, чтобы разрешить PWA быть упакованными в такие форматы, как пакеты MSIX. Если вы хотите использовать веб-приложения будущего, вам нужно простое развертывание и обновление или нужна мобильная поддержка, PWA - отличный вариант.

Плюсы

  • Устанавливается прямо из веб-сайта
  • Легко распространяется через магазины приложений
  • Автоматически работает и как веб-сайт
  • Очень маленький (может быть ‹1 МБ)
  • Легкое обновление
  • Поддерживает настольные и мобильные устройства

Минусы

  • Ограниченный доступ к собственному API
  • Нет поддержки PWA в Firefox
  • Трудно распространять как файловый установщик

Заключение

Электрон может быть полезен в некоторых случаях. Однако это не всегда лучший инструмент. Все зависит от потребностей и особенностей вашего приложения.

Если вы предпочитаете работать с проектами с большим сообществом, Electron - отличный выбор. Если вы используете Rust и хотите быстрые настольные веб-приложения, Tauri подойдет. Наконец, если вы хотите быстро выйти на рынок, поддержку мобильных устройств и не хотите поддерживать две версии своего приложения, PWA могут подойти.

Спасибо за чтение, и я надеюсь, что вы кое-что из этого узнали.

Больше контента на plainenglish.io