Basitkhan
@Basitkhan
full-stack developer, ux/ui designer

Кросс платформенное приложение, миф ли это?

Сегодня у меня возник некий спор о кроссплатформенности нашего приложения, у нас web приложение и у него есть оболочка для десктопа, и моя коллега очень настырно мне говорит, что этот electron создаёт одно приложение, которое можно установит как на Windows, так и на Mac Os.

Я понял слово "кроссплатформенность" на сайте электрона как, то что наше само приложение написанное на: node.js, react, html, css будут К-П, а интерпретатор (оболочка созданная electronom) будет на каждую ОС разной (ну их будет несколько), типа браузеры для разных ОС, которые будут открывать один и тот же сайт

Возможно я как то отстал от жизни, но по моему один установщик приложения под разные ОС это дичь (ну в принципе можно обнаруживать, какая ОС и в зависимости от этого давать нужные пакеты и директории для установки, но я ещё такого не видел)

Пожалуйста проясните ситуацию)
  • Вопрос задан
  • 763 просмотра
Решения вопроса 1
k12th
@k12th
console.log(`You're pulling my leg, right?`);
Нет, electron создает три отдельных, хотя и функционально одинаковых приложения под каждую платформу. Кросс-платформенных экзешников не существует, насколько я знаю (ну если только FatELF -- контейнер с elf-ами под несколько платформ). Внутри везде один и тот же html/js/css, но завернуто это в разные бинарники в зависимости от платформы.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
saboteur_kiev
@saboteur_kiev
software engineer
Electron is an open source library developed by GitHub for building cross-platform desktop applications with HTML, CSS, and JavaScript. Electron accomplishes this by combining Chromium and Node.js into a single runtime and apps can be packaged for Mac, Windows, and Linux.

То есть к вам приезжает nodejs + браузер Chromium и поверх этого - ваше приложение в одном исполняемом файле.
Как бы технически - они не врут, но..
Ответ написан
evnuh
@evnuh
Поиск Гугл помог мне, впусти и ты его в свой дом
Установщик, в привычном значении "инсталлятора" - это выполняемый файл, поэтому для каждой платформы он свой.
А электрон - это типа v8, который выполняет ваш node.js код и рендерит фронтенд. И этот v8, в который всё оборачивается, тоже компилируется отдельно для каждой платформы, на которой потом будет запущен.
Кросс-платформенное приложение - это один исходный код, который компилируется под разные ОС, а не один бинарный файл, который запускается на разных ОС. Такое в принципе невозможно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы