DEV Community на русском
Подписаться
Одно Vue-приложение, три дома: десктоп с Tauri, Android с Capacitor и веб
Автор создал единое приложение на Vue.js, которое служит настольным клиентом, приложением для Android и веб-приложением. Такой подход обеспечивает унифицированный пользовательский интерфейс, вызовы API и OAuth-поток для всех платформ. Для настольных компьютеров использовался Tauri с бэкендом на Rust, а для Android — Capacitor. Также доступна обычная веб-версия. Существенная проблема заключается в том, что кросс-компиляция невозможна; для сборки требуется нативный инструментарий каждой платформы. В старых версиях Windows может отсутствовать WebView2, что потребует включения загрузчика в установщик. Обработка OAuth-перенаправлений в упакованных приложениях сложна и требует использования пользовательских схем или глубоких ссылок вместо традиционных обратных вызовов веб-сервера. Размер бинарного файла Rust в режиме релиза можно уменьшить с помощью оптимизаций в Cargo.toml, таких как panic="abort" и оптимизация времени компоновки. Несмотря на эти сложности, автор считает такой подход оправданным, поскольку он позволяет избежать поддержки отдельных проектов. Автор рекомендует Vue в сочетании с Tauri и Capacitor для веб-разработчиков, ориентированных на настольные и мобильные устройства, советуя учитывать особенности упаковки и OAuth. Автор также предлагает услуги фриланса для такого типа разработки.