Обновить

Как я сделал desktop‑версию мессенджера на vanilla Electron, не на React Native for Desktop. И не пожалел

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели8.3K
Всего голосов 3: ↑3 и ↓0+3
Комментарии5

Комментарии 5

Спасибо за статью! electron-store классный, но не совсем (как мне кажется) прозрачно работают миграции

ПС удалось подписать винду? от кого EV-сертификат?

Спасибо! Про electron-store вы правы, миграции у неё через migrations API делаются непрозрачно, особенно когда схема нетривиальная. Я как раз поэтому пока остался на своём readSessionFile/writeSessionFile пусть не атомарно, зато прозрачно. Возможно перейду на conf это младший брат electron-store от того же автора, без миграций вообще, и под мои задачи (один JSON со session-токеном) её более чем достаточно.

Винду пока не подписал это в очереди, но процесс получения EV-сертификата для российского юрлица в 2026 непростой, поэтому откладываю. Если у вас есть свежий опыт поделитесь, было бы полезно.

Я в целом сижу на electron-store, миграции плюс-минус работают, но все больше желания через стор написать свою обвязку с флагами версий и обработчикам если версия не проставлена, как раз для миграций

По поводу EV, могу сказать что ssl com РФ документы (очевидно было, но грустно) не принимает, профиль не валидирует, а это как для EV так и для OV нужно по идее, но даже имея оргу. не в РФ, все равно требует документов в адресом (регистрацию) и DUNS, а как альтернативный вариант (2026 год Карл!) предложили прислать бумажное письмо с кодом, но пока тихо

Вроде бы есть у Azure, code signing, но если правильно понял, там далеко не для всех регионов подходит

В общем, сам хотел узнать, вдруг есть какие-то варианты :)

Как разработчик нативных десктоп приложений смотрю с грустью и печалью на такие статьи.

Упомянутый Whatsapp: заменил UWP приложение на веб под Windows. Почитайте в интернете отзывы пользователей об этом.

IPC в рамках одного приложения, бизнес логика живущая в окне - какой-то архитектурный ад.

Понимаю вашу боль. Я и сам с грустью смотрю на то как современный десктоп массово ушёл в Electron-обёртки. WhatsApp на UWP был действительно лучше нынешней веб-версии, тут не поспоришь. Но давайте честно. Я соло-разработчик, делаю мессенджер на React Native для iOS и Android. Десктоп нужен потому что часть моих пользователей пишут с компьютера. У меня два варианта:

  1. Не делать десктоп вообще. Часть пользователей теряется.

  2. Сделать на Electron за неделю, переиспользовав UI-логику с веба.

  3. Нанять нативного Windows/macOS-разработчика и делать полгода отдельные приложения на UWP/Swift/AppKit.

Третий вариант для меня экономически невозможен. Я выбрал второй. Это не “потому что Electron хороший”, это “потому что 50МБ лишней памяти у пользователя меньшее зло чем отсутствие десктопа вовсе”. Согласен что нативное приложение всегда будет лучше для конечного пользователя. И если бы у меня была команда я бы туда смотрел. Пока команды нет, Electron это компромисс с открытыми глазами.

P.S. Про IPC в рамках одного приложения это болезненная история у меня тоже. main process и renderer process с разными ограничениями api это не самая чистая архитектура, согласен. Но обходное решение всегда находится. В статье я как раз про несколько таких рассказал.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации