Как мне разработать веб-приложение, которое не уступает родному мобильному приложению? [закрыто]

Готовлюсь начать работу над проектом, который позволит вам слушать свою музыкальную коллекцию с любого устройства. Мой план состоит в том, чтобы создать адаптивный веб-сайт, чтобы я мог ориентироваться практически на любое устройство с помощью всего одного интерфейса.

Проблема в том, что я хочу, чтобы приложение работало в автономном режиме. Я хочу, чтобы пользователи мобильных и настольных компьютеров могли сохранять песни для воспроизведения в автономном режиме, и я не хочу, чтобы приложение строго зависело от наличия подключения к Интернету.

Это осуществимая идея? Я думаю, что, вероятно, мог бы заставить это работать на настольном компьютере, добавив расширение или приложение Chrome (я согласен с тем, что мой веб-сайт ограничен только одним браузером), но я понятия не имею, выполнимо ли это на мобильном телефоне. Меня действительно волнует только Android; есть ли способ заставить это работать на Android как веб-приложение?

в сторону: да, я знаю, что веб-приложение никогда не будет таким же удобным для пользователя, как нативное приложение. Я планирую заниматься этим проектом в одиночку, поэтому меня больше волнует сокращение человеко-часов разработки, чем идеальный UX.

TLDR: я делаю адаптивное веб-приложение, но хочу, чтобы оно работало в автономном режиме на Android и в Chrome для ПК. Он должен иметь возможность постоянно хранить много больших файлов и работать без подключения к Интернету. Существуют ли какие-либо библиотеки/API/программное обеспечение, которые позволили бы мне это сделать?

Ответы (1)

Хм, на самом деле я думаю, что нашел довольно хорошее решение для этого. Android позволяет вам создать приложение, которое представляет собой просто WebView для просмотра веб-сайта, и вы можете привязать методы JavaScript к методам в вашем приложении для Android. Для расширений Chrome доступно множество API , которые могут выполнять такие действия, как доступ к файловой системе.

Таким образом, когда мое веб-приложение загружается, оно проверяет, доступно ли расширение для Android или Chrome. Если одна из этих вещей действительно доступна, она использует соответствующие методы для доступа к файловой системе и чему-то еще. Если ни один из них недоступен, приложение работает в «упрощенном» режиме, в котором некоторые функции недоступны.

Что касается кэширования страниц, чтобы убедиться, что они работают в автономном режиме: я думаю, мне нужно будет вести какой-то индекс того, какие файлы должны быть всегда доступны и кэшироваться, и загружать эти файлы локально как можно скорее. В Android я могу использовать shouldOverrideUrlLoading() , чтобы убедиться, что все запросы к этим кэшированным файлам перехватываются, и вместо этого загружается локальная копия. Пока еще не выяснил точных деталей, но я знаю, что подобное возможно в Chrome (на самом деле, похоже, что приложения Chrome можно запускать на Android/iOS , поэтому, возможно, я просто разрабатываю приложение Chrome...)