Pull to refresh

Comments 18

Есть Electrobun, но без мобилок, для десктопа удобно

Доброй ночи, savostin! Отвечу коротко на ваши вопросы.

  1. В проекте я использовал nodejs как стандарт индустрии, поддержку bun можно добавить в будущем.

  2. Мобильные устройства - это отдельный мир. Я задавался вашим вопросом. Честный ответ - на мобильных устройствах нельзя запустить nodejs. Но что можно сделать - это добавить ts обёртку для java вызовов (если мы говорим про андроид). И ребята из команды capacitor с этим успешно справляются: https://capacitorjs.com/docs/plugins. Webnative спокойно поддерживает плагины capacitor, я проверял.

Спасибо за ваш интерес к проекту!

На Tauri можно писать на одном только TypeScript.

Это если backend совсем не нужен и не нужны взаимодействия с самой системой.
Но в таком случае проще даже тулзы юзать, которые оборачивают в Tauri.
Типа таких https://github.com/tw93/Pake

В Tauri можно из TS работать с файлами, сокетами, БД, а на мобилках с NFC и биометрией, и ещё там всякого.

Доброй ночи, MountainGoat!

Хочу коротко прокомментировать ваши слова: да, технически можно. Но как только приходится выйти за рамки предустановленных API — нужен Rust. Вся бэкенд-логика, нестандартные системные вызовы, плагины — это Rust. В webnative бэкенд — это просто Node.js, вся npm экосистема доступна без ограничений.

Спасибо за ваше внимание к моему проекту!

не пишите ерунды, разберитесь сначала в вопросе.

Если приложение работает с

работает с файлами

сетью

UI

BD

окнами

уведомлениями

то можно почти 100% кода писать на TypeScript.

и даже если нужен winapi, есть способы интеграции node-процесса и делать import ffi from 'ffi-napi'

что является конечно же бредом, зачем тянуть ноду, когда можно просто в расте команды написать и дергать их из js

C++ хост‑процесс запускает два дочерних процесса: WebView с твоим фронтендом и Node.js с твоим бэкендом.

Nodejs таскаете с собой в дистрибутиве, или пользователю надо его обязательно в систему устанавливать нужной версии как зависимость?

Как оно работает с типичными андроидовскими особенностями - например, можно ли создать background/foregorund-сервис, подписываться на системные события, и т.д.?

Ну и на iOS оно не взлетит - Apple не пускает в AppStore ничего с JIT -компиляцией, а у вас там нода с V8.

Доброй ночи, MiracleUsr!

В процессе дизайна этой системы я потратил кучу времени на то, чтобы придумать как это всё правильно упаковать. В проекте я ставлю приоритетом удобство пользователя. Занимаемое на диске пространство - это один из самых важных параметров!

Однако в первых версиях webnative (в тех, которые сейчас есть в открытом доступе) я сфокусировался на self-contained приложениях. В будущем я планирую добавить windows (setup) и linux (flatpak) дистрибьюцию. Эти версии: v4 и v5 соответственно, я постараюсь опубликовать в открытый доступ в ближайшее время. Они позволят грузить зависимости динамически. При этом nodejs как зависимость будет устанавливаться автоматически (при разрешении пользователя) глобально, что позволит многим приложениям использовать один и тот же бекенд.

Отвечу на вопрос про особенности мобильных платформ. Плагины Capacitor позволяют получить доступ к нативным api устройства. Их можно использовать вместе с webnative без ограничений.

Спасибо за ваше внимание к моему проекту!

Tauri — хороший инструмент. Но он не для меня, не хочу писать на rust. Хочу всё приложение писать на typescript, к которому привык. Порог входа этого инструмента слишком высокий

риально? а почему на ts тогда не писать, а растом только запускать webview?

а bun зачем существует? c электроном сравнивать это конечно мощно, го сравнение с tauri и bun

Доброй ночи, xormark!

Electron взят для наглядности — это самый известный инструмент в нише. Tauri и webnative решают схожие задачи по-разному, каждый со своими компромиссами.

Спасибо за интерес к моей работе!

если честно выглядит так, будто он взят потому что он самый тяжелый и тормознутый инструмент в нише

Системный WebView будет сильно зависеть от оси (Linux WebKitGTK и Windows WebView2 — для коммерческих и моб. app не очень). Да и размерчик.. это из-за nodejs.

Тоже хотел написать что в таури можно и чисто TS использовать и что апи у веба очень большой, но об этом и так много сказано

А у вас вот бэкенда это взаимодействие с нативной платформой получается ? А то непонятно зачем писать бэк рядом с фронтом если бэк всё равно хостить на сервере

И если да, то хотелось бы примеров в статье с работой системного при из TS, но тут получается что они на фронте нужны, а если они на бэке только как передать взаимодействия ?

А у вас вот бэкенда это взаимодействие с нативной платформой получается ? А то непонятно зачем писать бэк рядом с фронтом если бэк всё равно хостить на сервере 

Судя по всему да. И тут дальше зависит от того, насколько грамотно продумана архитектура самого конкретного приложения, использующего этот рантайм.

Если разработчик запилит свое приложение так, что вся логика приложения все-таки живет в браузерной части, а на бэкенд оно лазиет от случая к случаю, только когда нужно как-то взаимодействовать с системой - это в целом ок. Хотя в этом случае довольно жирно тащить для такого целую огромную ноду (это и дополнительная зависимость, и потребление памяти), тут больше напрашивается какой-нибудь легковесный враппер системных API (файлы, сокеты, и т.д.) в REST API (или JSON-RPC через какие-нибудь вебсокеты), и можно обойтись без ноды. Подобный подход уже реализован в Tauri.

А если писать как обычно пишут под веб - на фронтенде только представление, а логика вся на бэке - то для десктопа/мобилок получается ещё более неэффективно, мало того что нужно тащить ноду на клиентскую машину и ее процесс висит в памяти, так например куча структур дублируется и в процессе браузера, и в процессе ноды, и данные гоняются туда-сюда на каждый чих.

да
вот ялавка например как то так делала мост https://t.me/yandex4frontend/469
и я тоже считаю что это лучший вариант

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

Попробуйте Flutter, тоже норм стандарт, развитая экосистема, собирается под веб, винду, линукс, андроид, ios, маки. По скорости +- также как и js на v8, если не быстрее. Памяти потребляет в разы меньше чем электрон.

Не знаю как вы собирали бандл электрона, но у меня на выходило около 80-85мб. После установки, конечно, было больше 200-300 мб.

Sign up to leave a comment.

Articles