За последние несколько лет было написано большое количество настольных приложений, которые действительно популярны и имеют огромное удобство использования. Некоторые из них, которые вы можете узнать, - это Google Chrome, Spotify, Slack, Discord, Atom и Visual Studio Code. Все эти приложения работают на платформе под названием Electron. Electron - это фреймворк с открытым исходным кодом, который позволяет легко манипулировать графическим пользовательским интерфейсом (GUI), поскольку он включает в себя как серверные, так и внешние компоненты: его серверная часть - это Node.js, а ее интерфейс - это Chromium.

Итак, как это работает?

Electron был впервые опубликован в 2013 году Ченг Чжао для решения проблем, связанных с node-webkit, аналогичным фреймворком. Он написан на C ++, Javascript, Python, Objective-C и Objective C ++.

Интерфейс Electron, который вы видите, работает в версии Chrome с открытым исходным кодом от Google, известной как Chromium. Это означает, что он фактически открывает другое окно Chrome, в котором есть все собственные CSS, Javascript и HTML, чтобы оно отображалось должным образом. Кроме того, приложения Electron имеют некоторый доступ к встроенным функциям компьютера, что позволяет ему получать доступ к файловой системе, а также отправлять push-уведомления на ваш рабочий стол. Этот собственный комплект в сочетании с интерфейсом веб-браузера позволяет Electron одинаково работать в разных операционных системах, а также в том, что серверная часть написана для поддержки трех основных операционных систем Mac OSX, Windows и Linux.

Преимущества Electron

У вас может возникнуть вопрос: почему Electron так популярен? На базовом уровне он позволяет разработчикам писать кроссплатформенные приложения без необходимости переписывать кучу своего кода. Обычно компьютер Apple и компьютер Windows требуют разного кода для запуска одного и того же приложения, поскольку они работают в разных операционных системах и, следовательно, имеют разные файловые структуры. Однако Electron позволяет разработчикам писать одну кодовую базу, которая работает в нескольких операционных системах. Это означает, что вместо того, чтобы нанимать кучу опытных разработчиков для каждой операционной системы, компания может иметь небольшую отдельную команду разработчиков, которая будет работать исключительно с Electron над созданием приложения.

Кроме того, все в Electron может быть написано на HTML, CSS и Javascript. Вот почему, когда вы просматриваете свои настройки в Visual Studio Code или Atom, вам предоставляется лист CSS или файл Javascript для внесения изменений в ваши предпочтения. Поскольку почти каждый человек с опытом веб-разработки должен знать эти три языка, это также означает, что компании не нужно будет нанимать специалистов-разработчиков для создания приложения. Большинство компаний не беспокоились бы о настольных приложениях, если бы Electron не существовал.

Настольные приложения обладают гораздо большей функциональностью, чем веб-приложения. К сожалению, код нужно писать специально для настольных приложений, поскольку каждая операционная система имеет свою файловую систему. Однако создание веб-приложений может быть проще, поскольку браузеры понимают HTML, CSS и Javascript и могут объединять их для создания веб-страницы. Что делает Electron, так это то, что он сочетает в себе функциональность веб-приложения с собственными инструментами настольного приложения. Он позволяет использовать многие вещи, недоступные веб-приложению, например ярлыки, уведомления и многое другое.

Недостатки Electron

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

Кроме того, это означает, что вы запускаете код Google Chrome всякий раз, когда работает приложение, использующее Electron. Это связано с тем, что Electron создает экземпляр новой виртуальной машины, которая запускает Google Chrome для каждого запущенного приложения Electron, независимо от того, открыто ли в это время окно Google Chrome. Как известно большинству людей, это означает, что у Electron больше оперативной памяти. Для тех из вас, кто похож на меня, у которых доступно только 4 ГБ ОЗУ, это сильно ограничивает как скорость моего компьютера, так и количество окон, вкладок и т. Д., Которые я могу держать открытыми.

Многие приложения Electron также оказались относительно неоптимизированными. Это приводит к очень разному потреблению памяти между приложениями. Например, Atom против Visual Studio Code: Atom требует для работы около 1 ГБ ОЗУ, тогда как Visual Studio Code занимает всего около 300–400 МБ, несмотря на то, что это разные инструменты, которые делают одно и то же. Обычно собственное настольное приложение, написанное специально для операционной системы, будет более эффективным, но требует гораздо больше ресурсов со стороны компании, производящей приложение.

Так почему мы используем электрон?

Честно говоря, это потому, что даже при всех недостатках у большинства людей есть достаточно мощные компьютеры, поэтому они не замечают всей его неэффективности. Те, кто этого не делает, обычно наиболее осведомлены, поскольку открывают свой Activity Monitor и задаются вопросом, почему все эти вспомогательные процессы вообще существуют. Для тех, чьи компьютеры могут это терпеть, Electron настолько смехотворно эффективен и мощен, что нет причин не использовать его для написания настольных приложений, если не будет написана лучшая и более мощная среда.