Zero Native: Убийца Electron от Vercel, которого никто не ждал
BBetter Stack
Computing/SoftwareSmall Business/StartupsInternet Technology
Transcript
00:00:00Это Xero Native, нативный конструктор приложений на базе Zig от Vercel, который может использовать системный webview,
00:00:05либо упаковывать весь Chromium целиком, как Electron, для десктопных или мобильных приложений, создавая крошечные файлы
00:00:12и обеспечивая мгновенную пересборку в процессе разработки.
00:00:14Но не отпугнет ли JavaScript-разработчиков тот факт, что для работы нужно немного знать Zig?
00:00:18Подписывайтесь, и давайте выясним.
00:00:20Хотя команда BUN переходит с Zig на Rust, это все равно очень крутой язык:
00:00:28в нем нет borrow checker и времен жизни (lifetimes), он может напрямую вызывать C, а значит, любая C-библиотека подключается одним импортом
00:00:35без необходимости писать какой-либо связующий код.
00:00:37И он достаточно понятен, чтобы JavaScript-разработчики могли его освоить.
00:00:39Кстати, если хотите посмотреть, как я учусь программировать на Zig с нуля, дайте знать в комментариях.
00:00:44Думаю, это будет довольно весело.
00:00:46Но по сути, Xero Native — это тонкая оболочка на Zig, в которой работает webview, отрисовывающая фронтенд,
00:00:51и использует JSON-мосты, чтобы JavaScript в webview мог взаимодействовать с нативным слоем Zig и наоборот.
00:00:58Именно так приложение получает доступ к системным API ОС.
00:01:01Если вам кажется, что это похоже на Electrobun, что ж, так оно и есть.
00:01:04Но с одним огромным отличием, о котором мы поговорим позже в видео.
00:01:07А пока давайте перейдем к очень простому демо.
00:01:10Для начала вам нужно установить Zig, что я и сделал с помощью Miez.
00:01:13Но можно использовать и Brew, а затем установить Xero Native.
00:01:16После этого вы можете запустить команду “xero-native init”, чтобы создать структуру нового проекта.
00:01:22Это название моего проекта, но оно может быть любым.
00:01:25Я использую флаг фронтенда с React, что установит проект Vite React.
00:01:30Но это также может быть Svelte, Vue, Next или даже просто чистый Vite.
00:01:34Нажимаем Enter, и Xero Native добавит несколько директорий.
00:01:37Перейдя в проект, мы видим файл app.zon (Zig Object Notation), который я разберу позже.
00:01:43У нас есть папка assets для иконок и статики, а также файл build.zig,
00:01:48который отвечает за граф сборки Zig, JS-мост, веб-движок и директорию frontend с нашим кодом.
00:01:54На самом деле, если мы заглянем туда, то увидим файлы, привычные для JavaScript-разработчика.
00:01:58Теперь, если мы выполним команду «zig build run», установятся все зависимости и наше приложение откроется в новом окне.
00:02:04Заметьте, если вы хотите установить Xero Native в уже существующий JavaScript-проект,
00:02:08рекомендую использовать Vite-версию и заменить содержимое папки frontend кодом вашего приложения.
00:02:15У Xero Native также есть крутой dev-сервер, который управляет всем жизненным циклом фронтенда.
00:02:19Запуск “zig build dev” компилирует бинарный файл и запускает сервер разработки.
00:02:24Если я изменю код, нативное приложение обновится в реальном времени.
00:02:28Я даже могу запустить “zig build package”, чтобы собрать нативное приложение для дистрибуции.
00:02:33Оно находится в папке zig-out/package и весит всего 2,9 МБ — это очень мало.
00:02:39А некоторым даже удавалось довести размер до менее чем 1 МБ.
00:02:43Но что, если я захочу сменить иконку, название или веб-движок?
00:02:46Здесь на помощь приходит файл app.zon, где можно менять иконку, имя проекта, движок и даже размер окна.
00:02:55Вот такой очень краткий обзор Xero Native.
00:02:58Я не успел разобрать многое: иконки в трее, подпись кода и встроенные приложения для iOS и Android.
00:03:05Мне нужно уделить этому больше времени, что может вылиться в еще одно видео.
00:03:09При всей крутости Xero Native, как он в сравнении с Electrobun, который тоже создает быстрые приложения на системном webview?
00:03:17В Electrobun сам Bun является средой выполнения, так как основной процесс пишется на TypeScript.
00:03:24Хотя приложение запускает бинарник Zig, код работает внутри Bun web worker, общаясь с нативными API через FFI через слои C++ и Objective-C.
00:03:37С Xero Native же нужен только бинарник Zig: никакого JavaScript или Bun, только Zig, который общается с API ОС и C-библиотеками напрямую.
00:03:50Это дает максимально тонкую нативную оболочку по сравнению с Electrobun.
00:03:54Правда, сейчас вам может понадобиться написать немного кода на Zig или поменять настройки в файле .zon.
00:04:03Также Xero Native пока не так богат функциями, как Electrobun, где я мог менять стиль заголовка или добавлять пункты меню.
00:04:11К сожалению, в файле app.zon эти вещи сейчас не поддерживаются.
00:04:15Мне даже пришлось создать тикет, так как сборка пакета на macOS не сработала с первого раза, но возможно, дело во мне.
00:04:22Тем не менее, уверен, команда работает над новыми функциями, исправлением багов и поддержкой мобильных устройств.
00:04:29А если вам не терпится — это же открытый код.
00:04:32Просто скормите его Claude, скажите, что нужно, и он наверняка допишет эти функции за вас, верно?
Community Posts
No posts yet. Be the first to write about this video!
Write about this video