cryptofoundry

Связаться с cryptofoundry

Расскажите, что вы хотите создать или автоматизировать.

Электронная почта
[email protected]
ADAMANT Messenger
Открыть в ADAMANT
Статья

Переход Android PWA на Capacitor

Переход Android PWA на Capacitor

Ранее приложение ADAMANT для Android создавалось с помощью PWABuilder, что накладывало несколько ограничений: отсутствие контроля над целевым уровнем API, доступа к нативному коду и поддержки автоматизации. С обновлением PWA до версии 4.7 приложение перешло на Capacitor.js, чтобы получить полный контроль над нативным кодом, возможность запуска нативных функций, таких как push-уведомления и камера через Cordova API, оптимизацию кода, поддержку пользовательских плагинов и автоматизацию CI/CD.

Moving Android PWA to Capacitor

Почему выбран Capacitor.js?

ADAMANT Messenger — децентрализованная платформа для обмена сообщениями, в которой приоритет имеют производительность, безопасность и удобство сопровождения. Capacitor.js был выбран, поскольку он интегрируется без проблем с современными веб-фреймворками, такими как Vue.js, позволяет использовать единый кодовой базис для iOS, Android и веб-платформы, обеспечивает доступ к нативным API, не жертвуя веб-опытом, и поддерживается активным сообществом с подробной документацией.

Moving Android PWA to Capacitor

Сравнение: Native Android, PWABuilder и Capacitor.js

Разработка под Native Android предоставляет полный доступ ко всем функциям и API Android, высокую производительность и детальный контроль над интерфейсом и функциональностью, но требует знаний Java или Kotlin, отдельной кодовой базы для каждой платформы, а также увеличивает стоимость и сроки разработки.

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

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

Техническая реализация

Приложение для Android собирается нативно с использованием Capacitor.js и GitHub Actions. В реализацию добавлен workflow для GitHub Actions, конфигурация Capacitor, файлы манифеста Android, изображения заставки и иконки приложения, а также скрипт сборки. Полный перечень изменений доступен в pull request на GitHub.

Moving Android PWA to Capacitor