В чём разница между Meteor и Electron?

Meteor js и Electron – кроссплатформенные фреймворки для разработки приложений на JavaScript, Node, HTML и CSS. Я попытался выяснить, какой из фреймворков лучший для написания десктопных приложений.

Meteor

1478770575687474703a2f2f692e696d6775722e636f6d2f7174444d5538632e706e67

Meteor предназначен для создания Javascript-приложений. Для этого фреймворк нужно установить на компьютер и работать с проектами через команды. Он включает в себя API, инструменты разработки, пакеты из Node.js, а также базовую поддержку Javascript-сообщества.

Чтобы начать работать с Meteor, перейдите на официальный сайт фреймворка и установить его на ПК (есть версии для Windows, Mac или Linux). Затем нужно создать приложение при помощи команды meteor create myapp и запустить meteor. После чего будет запущен локальный сервер для разработки. Если вам нужно больше подробностей, ознакомьтесь с руководством Meteor.

В состав Meteor входит библиотека пакетов Atmosphere, в которой есть всё необходимое для работы с фреймворком. Meteor также позволяет использовать npm. Есть вероятность, что уже в скором будущем пакеты будут переведены на npm. Готовые Meteor-приложения также можно перевести в библиотеки, чтобы использовать их внутри других проектов.

Так как Meteor создает приложения на базе Node, вам потребуется хостинг Node. Лучший хостинг для Meteor js - Galaxy, основанный на Amazon Web Services (AWS). Использование этого хостинга упрощает процесс запуска.

Galaxy позволяет вести логи, собирать аналитику, мониторить, обновлять и постоянно интегрировать что-то новое, переносить проекты, а также пользоваться специальными инструментами.

Создаваемое вами приложение также может быть адаптировано под Android или iOS. Для этого понадобятся дополнительные настройки и инструменты. Но добавить их достаточно просто, а для тестирования можно использовать эмуляторы. Meteor для Windows не поддерживает мобильные сборки (билды). Эта способность есть у Cordova, который является фреймворком, преобразующим веб-языки в мобильные приложения.

На сайте Meteor js Windows сказано, что он позволяет разрабатывать десктопные приложения. Но в действительности это не так.

Meteor подходит для создания того, что запускается на сервере, и работает в браузере или на iOS/Android. Он представляет собой фреймворк, оборудованный модулями и интерфейсами.

Другие фреймворки (например, Ember), предназначены только для front-end разработки. Meteor поддерживает интеграцию и применение большинства популярных Javascript-библиотек и фреймворков (Angular и React).

Meteor js изначально подготовлен к интеграции с MongoDB на серверной стороне и MiniMongo на стороне клиента. Здесь довольно просто создать набор данных и начать использовать их в базе.

Electron

1478770569687474703a2f2f692e696d6775722e636f6d2f494c4f4c7261772e706e67

Electron предназначен для создания кроссплатформенных приложений, работающих как десктопные. Здесь разработка также происходит на JavaScript, HTML, CSS и с использованием различных Node-библиотек. Но создаваемое приложение компилируется в нативные программы для Windows, Linux и Mac. Как раз этой функции не хватает в Meteor.

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.

1478770572687474703a2f2f692e696d6775722e636f6d2f656553723136672e706e67

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

Для хранения данных предусмотрено множество вариантов. Самый простой – LocalStorage. Но его может оказаться недостаточно, так как объём исчисляется в мегабайтах. Следующим по счёту JSON-хранилищем, которое удобно использовать для настроек и состояний называется electron-json-storage. Ещё можно использовать Pouchdb, но доводилось слышать много жалоб на производительность этой СУБД, если код насчитывает свыше 50 тысяч строк.

Идеальным вариантом будет IndexedDB. Для работы с ней есть различные инструменты и API, вроде Dexie.js. Здесь даже есть локальные хранилища для БД, вроде NeDB.

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

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

Загвоздка в том, что вряд ли для этого существует удобный способ. Есть много разных методов. Лучше начать изучать этот вопрос с форумов Meteor. Также можно обратиться к Electrometeor – проекту для запуска Meteor в Electron. Но учтите, что этой утилите уже несколько лет. Я не знаю, работает ли она с последними версиями Meteor.

Я бы и сам хотел попробовать скомбинировать два этих фреймворка. Результатом такого слияния должно стать приложение, которое будет работать в веб, компилироваться под iOS и Android, а также работать на всех десктопных операционных системах. При этом все варианты реализации будут основываться на одной и той же базе исходного кода.

Конкурентов Electron не так и много. Среди них можно выделить NW.js (прежнее название «node-webkit»). Оба фреймворка построены на движке V8 Chromium JS, но Electron лучше с точки зрения функционала.

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

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

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

Учтите, что Meteor подходит только для работы с маленькими приложениями.

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

Если вы разработали приложение при помощи Electron, а затем хотите запустить его в веб, то придётся разобрать его до базового Node-проекта без использования API Electron. Проще будет сначала создать веб-приложение, а затем думать о том, как скомпилировать его для работы на настольных ПК.

Надеюсь, сегодняшняя статья поможет вам определиться, какой фреймворк использовать в следующем проекте – Electron или Meteor js. Я рекомендую познакомиться с обоими фреймворками.

Перевод статьи “What’s the Difference between Meteor and Electron?” был подготовлен дружной командой проекта Сайтостроение от А до Я.

25 августа 2017 в 08:37
Материалы по теме
{"url":"http://www.fastvps.ru/", "src":"/images/advbanners/fastvps.png", "alt":"Хостинг Fastvps.ru. Наш выбор!"}
Заработок