НовостиОбзорыСобытияIT@WorkРеклама
Идеи и практики автоматизации:

Блог

Унифицированные технологии мобильных веб-приложений

Перечень рекомендованных стандартов и технологии, на основе которых следует выстраивать веб-системы, дабы они надежно функционировали на большинстве мобильных устройств, опубликовал в ноябре консорциум по веб-стандартизации W3C.

[spoiler]Графика.
Scalable Vector Graphics (SVG) -- масштабируемая векторная графика, описывает 2D-изображения с помощью XML, интегрируется в HTML5. Всевозможное графическое оформление веб-страничек выполняется с помощью каскадных стилей CSS.
Для работы с шрифтами рекомендован Web Open Font Format.
Вне W3C ведется работа над реализацией 3D-графики -- WebGL,и консорциум к этому проекту пока относится положительно.

Мультимедиа.
Два тега HTML5 -- audio и video, существенно упрощают использование мультимедийных данных. Для прямого манипулирования медийными потоками разрабатывается WebRTC 1.0 (см предыдущий пост).

HTML Canvas 2D Context API позволяет модифицировать как изображения, так и видео, а для работы со звуком готовится Audio API (пока в фонде Mozilla).
Разрабатывается внушительный пакет интерфейсов для работы с клиентскими устройствами (камерой, микрофоном, датчиками, адресными книгами, календарем и службами обмена сообщениями).

Адаптация под приложение.
Мобильные устройства, в отличие от ПК, различаются характеристиками очень сильно -- от размера и разрешения экрана до способов ввода информации, работы с мультимедиа и т. д. Описание мобильного устройства возможно в стандартном виде в формате DDR с помощью серверного Device Description Repository Simple API и клиентского The System Information API.

Механизмы записи мультимедиа стандартизуются через The Media Capture API, а раскладка и поведение веб-страничек -- через CSS Device Adaptation и Media Queries.

Экранные формы.
Известные ограничения на ввод данных с клавиатуры мобильных устройств существенно усложняют ввод текстовых данных в экранные формы в браузерах. HTML5 предлагает, во-первых, набор стандартных "объектов" -- например, для ввода даты/времени, э-адреса, URL-а, оптимизированных под ввод с любых гаджетов, а во-вторых, средства создания шаблонов выбора, подсказок ввода, и проверки корректности данных на сервере.

Взаимодействие с пользователем.
Интерфейсы сенсорного и вибрационного взаимодействия рассматривались в предыдущем посте, но этого мало, и сейчас разрабатывается механизм абстрактных событий DOM (объектной модели документа) -- чтобы действовать не на уровне понятий "щелчок", "нажатие клавиши", "касание пальцем", а на более универсально-осмысленном, в терминах операций (например, Undo или Next).
Уведомление пользователя о событиях реализуется с помощью Web Notifications.
Над речевым управлением трудится пока инкубаторская группа W3C HTML Speech Incubator Group.

Хранение данных.
Сохранение собственного состояния, экспорт данных, интеграция "по данным" с другими системами, решаются упомянутыми воо вчерашнем посте API для Web Storage, FileSystem и Indexed database.

Управление персональными данными.
Тут помогут два API: Calendar API и Contacts API.

Интеграция дополнительных датчиков.
Расширение функциональности гаджета GPS-кой, акселерометром, термометром или фонариком по понятным причинам желательно стандартизовать. Имеется универсальный API для мониторинга подобных датчиков Sensor API.

Доступ к геолокационной информации, ассоциированной с устройством, возможен через Geolocation API.

Ориентация в пространстве определяется с помощью DeviceOrientation Event Specification.

Сеть.
В дополнение к упомянутому ранее WebSocket API разработан XMLHttpRequest (грузим всё по HTTP стандартным образом), а подробную информацию о сетевом окружении соберет The Network Information API.

Взаимодействие.
The Messaging API -- программный интерфейс отсылки смс-ок и э-почты.
Кроме того, обещаны пиринговые стандарты обмена короткими сообщениями и медийными данными -- над этим трудится Web Real-Time Communications Working Group.

Инсталляция и поддержка работы прикладного продукта.
Как пользователю продолжать работу с приложением, если связь оборвалась? Какие данные нужно хранить на клиентском устройстве, а какие на сервере? Как скачивать или приобретать цифровые продукты в онлайновых магазинах?
Оффлайновый режим реализуется кэшем приложений HTML5, а распределенное распространение цифровых пакетов в виде zip-архивов обеспечивается семейством стандартов W3C Widgets.

Производительность и оптимизация.
Когда процессор относительно слабый, а аккумулятор маломощный, особую важность приобретают механизмы контроля за загрузкой процессора и памяти. За соответствующие API ответственна рабочая группа Web Performance, которая готовит спецификации Resource Timing, User Timing, Performance Timeline и др.; можно отследить, свернута ли веб-страничка, дабы не нагружать процессор, итд. Контроль за уровнем аккумулятора упоминался вчера.

Набор лучших инженерных практик для построения правильных мобильных приложений: Mobile Web Application Best Practices.

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