У нас есть приложение PWA, написанное на Svelte / Sapper, и нам нравится конвертировать это приложение на мобильные платформы. Из-за некоторых бизнес-причин нам нужно явно приложение в магазине Android и iOS.
- На Android ситуация проста. Мы будем использовать Google TWA, и все будет отлично.
- На Apple iOS это довольно сложно. Google TWA для iOS не существует. А также тонна требований Apple store будет довольно болезненной.
Небольшое примечание: нам не нужны какие-либо нативные API на мобильных платформах. Нам достаточно API браузера JavaScript.
Итак, я нашел проект Apache Cordova, который, как мне кажется, является лучшим для нашей проблемы, и нашел шаблон для Svelte syonip/svelte-cordova-template
. Но этого недостаточно. Шаблон решает Svelte, но не Sapper.
В лучшем случае я загружаю некоторый шаблон Cordova / Svelte / Sapper, копирую существующий исходный код, исправляю некоторые проблемы по пути, экспортирую приложение в проект xCode, собираю егои он будет работать на iOS без каких-либо серьезных проблем (но, конечно, я ожидаю некоторые изменения кода, но не полное переписывание приложения).
Возможно, у вас есть некоторый опыт работы с Svelte / Sapper ->Миграция Cordova?
Edit1 : Я думаю, что можно будет использовать функцию Sapper export
и передавать собранные файлы в Cordova. У него будут некоторые проблемы, такие как неработающая маршрутизация, когда пользователь вручную меняет URL-адрес (но для этого конкретного варианта использования - мобильного приложения - это не проблема, поскольку пользователь не сможет редактировать URL-адрес). Рендеринг, предварительная загрузка и предварительная загрузка на стороне сервера также не обсуждаются.
Edit2 : После некоторых копаний я думаю, что невозможно конвертировать приложение Sapper в Cordova. В Sapper много проблем с разбиением кода. Самые большие проблемы возникают с политиками CORS и тем, что приложение Sapper предназначено для работы с сервером и доменом, а не с файловой системой. Возможно, можно было бы использовать какой-то скрытый сервер localhost в Cordova для обслуживания файлов, но это было бы проблематично и очень неприятно.