@Basitkhan
full-stack developer, ux/ui designer

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

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

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

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

Пожалуйста проясните ситуацию)
  • Вопрос задан
  • 631 просмотр
Решения вопроса 1
Пригласить эксперта
Ответы на вопрос 3
  • saboteur_kiev
    @saboteur_kiev
    build 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, в который всё оборачивается, тоже компилируется отдельно для каждой платформы, на которой потом будет запущен.
    Кросс-платформенное приложение - это один исходный код, который компилируется под разные ОС, а не один бинарный файл, который запускается на разных ОС. Такое в принципе невозможно.
    Ответ написан
  • majetree
    @majetree
    есть компиляция(1), компиляция в байт-код(2) и интерпретация(3)
    2 и 3 в принципе позволяют(иногда с мелкими доработками) создавать кросс-платформенное приложение если в запускаемой системе уже присутствует нужная виртуальная машина(2) или интерпретатор(3).
    Для 1-го же существует кросс-компиляция позволяющая собирать программы под нужную платформу(архитектуру процессора и семейство ОС).
    НО, сама виртуальная машина(2) или интерпретатор(3) изначально должны быть скомпилированы(1) под нужную платформу.

    electron это по сути интерпретатор(3) ваших программ.
    Поэтому ваша программа написанная на electron будет псевдо кросс-платформенная, так как она тянет за собой интерпретатор который должен быть скомпилирован под нужную платформу.
    Ответ написан
Ваш ответ на вопрос

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

Войти через TM ID
Похожие вопросы