Нативные мобильные приложения немного странные, если остановиться и подумать о них.
Среднее мобильное приложение весит около 20 МБ , часто требует подключения к Интернету, чтобы использовать его по назначению, и выдает несколько объемных обновлений в течение срока службы. Некоторые из этих мобильных приложений имеют веб-версию, которая содержит все или большинство одинаковых функций, примерно в 1/20 размера.
Когда вы покупаете мобильный телефон, многие из этих приложений предустановлены, и их может быть сложно удалить с вашего устройства. Существует приложение для каждого использования, которое вы можете себе представить, но каждая загрузка означает, что на вашем устройстве будет меньше свободного места. Многие нативные приложения имеют особые и тривиальные варианты использования (калькуляторы, будильники, диктофоны), но при этом имеют большие размеры файлов и требования к интернет-соединению.
Если вы разработчик, это только страннее. Вы не можете просто сделать приложение и выпустить его в дикую природу. Сначала вы должны получить его одобрение на каком-то рынке, чтобы увидеть его, что может быть трудным и дорогим процессом (99 долларов США в магазине приложений Apple). Если вы хотите сделать свое приложение доступным для более широкой аудитории (apple, android и Firefox OS), вы должны выпустить отдельные версии, которые включают дополнительные процессы одобрения на рынке и много дополнительного времени на разработку.
Проблема
Хотя нативные мобильные приложения полезны и интересны, они также являются огромным неудобством.
Для разработчиков их сложно разработать, если ваш набор навыков вращается вокруг HTML, CSS и JavaScript. Их трудно найти на рынке из-за жестко контролируемых требований и лицензионных сборов. Их сложно поддерживать из-за нескольких версий программного обеспечения и несовместимости устройств. Как пользователь Android, я столкнулся с несколькими замечательными приложениями, которые я хотел бы установить и использовать, но не могу, потому что они существуют только для пользователей iPhone. Это огорчающая (хотя и «первая мировая») проблема, но я не могу винить разработчиков приложения, потому что поддержка только одной платформы достаточно сложна!
Для пользователей их сложно установить из-за ограничений пропускной способности, размеров файлов и частых обновлений (откройте диспетчер приложений на телефоне и посмотрите, сколько ваших приложений нуждаются или недавно загрузили обновление). Сколько раз вам приходилось удалять приложение на вашем устройстве, чтобы освободить место для более важного?
Давайте не будем забывать, что несколько мобильных приложений имеют веб-версии с одинаковым содержанием и возможностями, что сводит на нет необходимость в приложении.
Поэтому родные мобильные приложения сложны как для пользователей, так и для разработчиков. Но разработчики продолжают создавать их, пользователи продолжают скачивать их, и все продолжают жаловаться. Так есть ли решение проблемы нативных мобильных приложений, или мы застряли с проблемами, которые у нас есть?
Решение
Решением является браузер. Помните, когда я говорил, что большинству приложений требуется какая-либо форма подключения к Интернету для правильной работы? Что ж, если честно, для правильной работы всех приложений требуется подключение к Интернету, потому что без Интернета вы не сможете загрузить какие-либо приложения. Мы используем Интернет для загрузки приложений и обновлений для них, а также часто для отправки и получения данных, связанных с приложениями.
Если все наши приложения так сильно зависят от Интернета, почему бы нам просто не оставить их там? Это именно то, что делает веб-приложение. Веб-приложение опирается на браузер и его возможности для визуализации приложения, тогда как собственное мобильное приложение полагается на устройство и его возможности для визуализации приложения.
Веб-приложения вызывают множество головных болей в мобильных приложениях. Если вы разработчик, вам нужны только HTML, CSS и Javascript, чтобы начать создавать свое приложение! В некоторых случаях ваше приложение может быть полностью статичным , что означает, что вам не нужно полагаться на обработку на стороне сервера.
Хотя торговые площадки для веб-приложений существуют , пользователю не нужно идти к нему, чтобы загрузить ваше приложение. Веб-приложения живут в браузере, что означает, что ваши пользователи могут перейти по URL-адресу, чтобы использовать ваше приложение, и установка так же проста, как создание закладки веб-сайта. Разработчики также могут избежать необходимости делать несколько разных версий в зависимости от операционных систем своих пользователей.
Веб-приложения отлично подходят для пользователей, особенно потому, что они упрощают распространение и установку. Они также устраняют ограничения по размеру, что означает, что больше не нужно удалять приложение, чтобы освободить место для большего! Обновление веб-приложения для пользователя — это простой процесс, не требующий ничего, кроме обновления браузера.
Gotchas
Хотя веб-приложения предлагают потенциальное решение для головной боли мобильных устройств, между браузером и собственными механизмами рендеринга существует множество технологических пробелов. Пол Кинлан (Paul Kinlan) пишет отличную статью об этой проблеме , в которой он публикует результаты своего стремления жить только веб-приложениями целый день.
Хотя это объясняется в вышеприведенной статье, проблема веб-приложений и производительности в автономном режиме заслуживает отдельного упоминания. Автономная первая архитектура означает структурирование вашего контента таким образом, что, когда у пользователя нет подключения к Интернету, он не получает пустой белый экран из вашего веб-приложения. Вместо этого они могут взаимодействовать с веб-приложением, и данные будут синхронизироваться с сервером при наличии соединения. Многие веб-приложения сегодня очень плохи в этом, и в результате рынок веб-приложений не такой большой, как мог бы быть. В списке Apart есть отличная статья, подробно объясняющая концепцию, и она того стоит. Решения для решения проблемы в автономном режиме растут, одним из самых захватывающих является PouchDB (вот руководство по началу работы ).
Еще одна большая проблема, которую веб-платформе еще предстоит полностью решить, — это проблема кэширования и хранения ресурсов приложения на стороне клиента. Appcache был создан для решения этой проблемы (мы ее уже рассматривали ), но у него были свои проблемы , и поэтому сообщество ищет сервисных работников для окончательного решения. Но работники сферы обслуживания еще не готовы .
Системные уведомления и фоновые задачи — это еще две проблемы, которые веб-приложения еще предстоит решить, хотя решение для размещения в веб-приложениях Google Chrome, похоже, предлагает решение этих проблем.
Начиная
Несмотря на то, что есть области, в которых веб-приложения еще не наверстали упущенное, мы не должны отчаиваться от создания веб-приложений сегодня. Хотя технологические ограничения мешают сделать все веб-приложения устаревшими, в настоящее время мы можем начать заменять родные приложения технологиями, которые у нас есть сейчас. Вот некоторые ресурсы, которые помогут вам начать.
- Hoodie — это фреймворк для создания веб-приложений, который обладает возможностями автономной работы, что делает его отличным приложением для работы на мобильных устройствах. Вот как начать с капюшоном .
- Intel XDK — это кроссплатформенный инструмент разработки HTML5 для создания веб-приложений и гибридных приложений. Вот более подробный взгляд на XDK .
- Google Chrome и Firefox OS позволят вам создавать «размещенные веб-приложения», которые могут предоставить вашему приложению дополнительные функции и возможности, и даже сделать ваше приложение устанавливаемым на устройстве пользователя.
- Offline.js — это библиотека, которая будет уведомлять ваших пользователей, если они потеряли свое интернет-соединение.
- Famo.us — это инфраструктура javascript для создания пользовательских интерфейсов, которые работают как родные на любом экране.
- Treo — это jQuery-решение для использования indexedDB.
Вывод
Мы еще не достигли того момента, когда Интернет сможет полностью заменить все нативные приложения, но сейчас мы можем создавать высокопроизводительные адаптивные веб-приложения. С появлением новых веб-API и библиотек, которые выпускаются каждый день, веб-приложение начинает выглядеть более привлекательным по сравнению с традиционными нативными приложениями. Давайте начнем создавать в Интернете такие вещи, которые будут работать как родные приложения, принимая во внимание такие вопросы, как использование экрана, возможности работы в автономном режиме и размер файла.
Если вы ищете новый сторонний проект, выберите приложение, установленное на вашем телефоне, и попробуйте создать прототип веб-приложения. В качестве бонуса обязательно посмотрите этот замечательный доклад Кристиана Хайльмана, в котором он затрагивает тему Интернета и нативных приложений и то, что разработчики могут сделать, чтобы сделать Интернет лучшим местом для посещения.
Какие функции, подобные нативным приложениям, вы хотели бы видеть реализованными в веб-платформе?