Статьи

В чем разница между Метеором и Электроном?

Преподаватель с Электроном и Метеором на доске позади него

И что я должен изучить и использовать?

Meteor и Electron являются кроссплатформенными средами для разработки приложений с использованием веб-языков и технологий, таких как JavaScript, Node, HTML и CSS.

Некоторое время я предполагал, что они делали то же самое и напрямую конкурировали друг с другом. Это было основано на языке на их собственных сайтах. Электрон говорит: «Создайте кроссплатформенные настольные приложения с JavaScript, HTML и CSS» . Метеор, с другой стороны, говорит: «Метеор — это платформа с открытым исходным кодом для Интернета, мобильных устройств и компьютеров».

Я начал исследовать, какое приложение «лучше» для создания «настольного» приложения, и чему я должен уделять время на изучение. Когда я попытался найти основные различия между ними, я был удивлен, что было мало информации, сравнивая их.

Путаница заключается в том, что они оба утверждают, что создают «настольные» приложения. Я не знаю, почему Метеор заявляет об этом, может быть, кто-то может объяснить?

Давайте рассмотрим точно, для чего каждый.

метеор

Метеор логотип

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

Это полнофункциональная платформа JavaScript, включающая в себя API, инструменты сборки и кураторские пакеты из Node.js и общего сообщества JavaScript. Meteor включает в себя Node.js, или же вы можете установить Node локально.

Чтобы начать работу с Meteor, зайдите на веб-сайт и установите программу для своей операционной системы; Windows, Mac или Linux. Затем вы создаете приложение с помощью meteor create myappmeteor Если вы хотите узнать больше о специфике, обратитесь к Руководству по метеору .

Метеор имеет библиотеку пакетов под названием «Атмосфера», которая содержит библиотеки, специфичные для Метеора. Некоторые библиотеки могут зависеть от других библиотек атмосферы. Метеор также может использовать npm. В будущем, скорее всего, все пакеты будут на npm. Завершенные приложения Meteor также могут стать библиотекой, которая может быть включена в другие проекты.

Когда проект будет готов, вы можете развернуть приложение. Поскольку Meteor создает приложение на основе Node, вам необходим хостинг Node. Meteor рекомендует собственный хостинг-сервис Galaxy, основанный на Amazon Web Services (AWS).

Многие крупные приложения Meteor сегодня размещены на Galaxy. Его использование делает развертывание немного проще, и на самом деле нечего смеяться над тем, что он основан на AWS. Вы должны быть в хороших руках для масштабирования вашего приложения.

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

Вы также можете развернуть приложение для Android или iOS . Это требует некоторых дополнительных настроек и инструментов в вашей среде разработки, но вы можете добавить их и запустить эмуляторы для тестирования. Meteor для Windows не поддерживает мобильные сборки . Эта возможность основана на Cordova , которая сама по себе является основой для превращения веб-языков в мобильные приложения.

Большой вывод здесь заключается в том, что, несмотря на то, что на веб-сайте Meteor написано, что «Meteor — это платформа с открытым исходным кодом для Интернета, мобильных устройств и настольных компьютеров», это на самом деле не означает, что она создает настольные приложения! Это то, что смутило меня сначала и, возможно, других.
Meteor предназначен для создания «веб-приложения», которое запускается на сервере и в браузере, приложении iOS или Android (с соответствующими инструментами сборки). Meteor — это полнофункциональный фреймворк, имеющий как внешние, так и внутренние модули и возможности. Другие фреймворки, такие как Ember, например, предназначены только для внешнего интерфейса.

Meteor поддерживает интеграцию и использование самых популярных библиотек и сред JavaScript, таких как Angular и React.
Он поставляется с глубокой интеграцией MongoDB из коробки на стороне сервера и с так называемым MiniMongo на стороне клиента. Синхронизация двух БД — это разговор о возможностях публикации / подписки (публикации и подписки). Создать набор данных и начать использовать его очень просто, почти так же легко, как создать и использовать массив.

Для примеров сайтов, построенных на Meteor, посмотрите их витрину или отправляйтесь на BuiltWithMeteor . В качестве примера можно привести клон Trello, доска канбан под названием Wekan .

электрон

Электронный логотип

Electron предназначен для создания кроссплатформенных приложений, которые работают как настольные приложения . Вы также программируете на JavaScript, HTML, CSS и различных библиотеках Node, но он компилируется как собственное настольное приложение для Windows, Linux и Mac. То, что Метеор не делает из коробки.

Electron был создан Github для их редактора Atom, и с тех пор используется подобными Microsoft и Facebook.

Контейнер интерфейса обрабатывается Chromium и использует встроенный сервер Node.JS для «обслуживания» приложения в контейнере. Это автономный веб-сервер, работающий во фрейме, который мало чем отличается от вкладки в окне браузера Chrome.

Можно использовать все типичные инструменты, такие как библиотеки React, Angular и Node. Вы не будете использовать PHP, Ruby или Java!

Через Chromium ваши приложения могут получать доступ к определенным встроенным функциям ОС, таким как диалоговые окна, меню и уведомления. Приложения Windows могут быть упакованы и развернуты с помощью программы установки. У вас есть доступ к файловой системе, и вы можете хранить данные различными способами.

Программы могут быть построены так, чтобы включать самообновление, отчеты о сбоях и профилирование / отладку.

Если вы хотите увидеть Electron в действии, вы, вероятно, уже используете его. На нем работают многие приложения, такие как Slack, Visual Studio Code, Nylas N1, Brave Browser и Atom editor. Смотрите еще много здесь .

Visual Studio Code встроен в Электрон

Скомпилированные приложения для Mac должны иметь как минимум версию 10.9 64bit. Для Windows вам нужна Windows 7 и выше, и они могут работать как с 32-битной, так и с 64-битной версиями, но не с версиями ARM. Linux зависит от библиотек, но наверняка Ubuntu 12.04 (и более поздние версии), а также Fedora 21 и Debian 8 проверены на работоспособность.

Для хранения много вариантов. Самым маленьким может быть LocalStorage, но он очень маленький, измеряется в мегабайтах. Хорошее JSON-хранилище «следующего размера» (полезно для настроек и состояния) называется Electron- JSON -Storage . Продвигаясь оттуда, вы можете посмотреть на Pouchdb, но некоторые утверждают, что производительность падает после стольких тысяч строк, около 50 тыс. И выше.

Возможно, самый большой вариант хранения — IndexedDB, размер которого ограничен до 3-х доступного места на жестком диске. Существуют различные адаптеры и API для управления IndexedDB, такие как Dexie.js . Вы даже можете найти альтернативные локальные базы данных, такие как NeDB , вдохновленные MongoDB.

Итак, главное отличие заключается в …

Electron компилирует настольные приложения для Windows, Linux и Mac. Meteor создает полноценное веб-приложение и, возможно, приложения для iOS и Android через Cordova.

Один очевидный вопрос, который мы могли бы задать: могу ли я создать приложение Meteor, но запустить его как контейнер Electron, чтобы получить все преимущества обоих?

Ответ — да.

Предостережение заключается в том, что не существует надежного и общепринятого способа сделать это. Существует много способов, как показывает быстрый поиск в Google. Лучшее место для начала — форумы Метеор. Вы можете столкнуться с Electrometeor , проектом по запуску Meteor в Electron, но коммитам уже год и два года. Я не знаю, работает ли все еще с последней версией Meteor (на момент написания этой статьи, версией 1.4).

Сочетание двух определенно в моем собственном списке ведра!

Конечным результатом их объединения является то, что у вас есть приложение, которое будет работать в Интернете, компилироваться в приложения для iOS и Android и работать на многоплатформенных рабочих столах. Все различные развертывания будут использовать большую часть одной и той же базы кода.

Другие

Само собой разумеется, что есть альтернативы обеим этим структурам.

Альтернативы Electron невелики, основным конкурентом является NW.js , ранее «node-webkit». Они оба основаны на двигателе V8 Chromium JS, но Electron просто опережает в своих возможностях.

Существуют и другие способы упаковки приложений для нескольких платформ, но Electron предназначен для HTML, JS, CSS и Node. Xamarin , например, делает то же самое, но с использованием C #.

Лучшим конкурентом для Meteor, вероятно, станет Express, который также является фреймворком для Node.js. Дополнением к Express будет Feathers , который добавляет больше модулей и функций для создания приложений реального времени и округления функций Express.

Конкуренция настолько жесткая, что я бы всерьез подумал о том, чтобы исследовать Meteor против Express и Feathers, прежде чем делать выбор в пользу того или другого. Express приобрел большую популярность и быстро запускает проект Node. Feathers добавляет функции реального времени и множество полезных модулей для работы с Express.

Вывод

Используйте Meteor, если вы хотите, чтобы локальный инструмент разработчика создавал и развертывал веб-приложение JavaScript в Интернете. Используйте хостинг Galaxy и все инструменты, которые он предоставляет, чтобы ваше приложение могло масштабироваться и контролироваться должным образом, экономя на рутинной работе системного администратора.

Meteor — это платформа для разработки, тестирования, профилирования, развертывания, обновления и мониторинга многофункционального веб-приложения. А затем с помощью Cordova вы можете упаковать его в магазины приложений для телефонов и развернуть на iOS и Android. После этого вы можете подумать о том, чтобы упаковать приложение в Electron, чтобы создать рабочий стол для Windows, Mac и Linux.

Метеор не только для небольших приложений. Эта увлекательная презентация под названием «3000 часов в Метеор» о том, как Qualia построила свою систему на Метеоре (с 10 тысячами фрагментов связанных данных и очень интенсивным интерфейсом данных), стоит посмотреть!

Используйте Electron, если вы заинтересованы только в создании кроссплатформенных настольных приложений, которые могут работать как в автономном, так и в онлайн-режиме, и хотите создавать веб-языки, такие как библиотеки JavaScript, HTML, CSS, Node и npm. В основе Electron лежит сервер Node, работающий в контейнере Chromium с движком JavaScript V8. Теоретически, вы можете запустить любое старое приложение Node, созданное с помощью Meteor или другим способом.

Если вы сначала создаете приложение с помощью Electron, а затем хотите развернуть его в Интернете, вам придется деконструировать его в основной проект Node без использования API Electron. Возможно, сначала будет проще создать веб-приложение, и ТОГДА подумайте об упаковке и использовании Electron для последующего развертывания на настольных компьютерах.

Я надеюсь, что это поможет вам решить, использовать ли Meteor и / или Electron в вашем следующем проекте! Я предлагаю быть знакомым с обоими!

Дайте нам знать в комментариях, если вы хотите увидеть больше статей, посвященных Электрону или Метеору.