Проблемы при разработке веб-приложений для мобильных устройств

Проблемы, с которыми сталкивается любой программист при разработке веб-приложений для мобильных устройств, следующие:

  1. Большое количество устройств от разных производителей, каждый из которых обладает своими специфичными свойствами, которые могут существенно повлиять на поведение вашего приложения.
  2. Адаптация к специфичным мобильным операторам, которые могут иметь свои ограничения.
  3. Необходимо исследовать рынок интернет-провайдеров, предоставляемых ими услуг (и цен, конечно) тех стран, на которые вы ориентируете свое решение.

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

User Agent

Когда пользователь открывает страницу, то серверу передается User Agent, который сообщает, какой браузер использует пользователь. В Википедии можно найти большой список различных User Agent, которые существуют на данный момент.

Например, мой FireFox посылает

Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8 (.NET CLR 3.5.30729)

в качестве User Agent, а IE:

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729).

С настольными версиями браузеров проще, их не так много, а есть брать только основные, то, в целом, не более десятка. Написав небольшую проверку на тип браузера – на JavaScript или ASP.NET:

if(Request.Browser.Browser.Equals("Netscape") &&
   Request.Browser.MajorVersion >= 6)
      Response.Write("Thank God! you are using a better version of Netscape.");

if(Request.Browser.Browser.Equals("IE") && Request.Browser.MajorVersion >=8)
	Response.Write("Yours is the best!");

то можно легко оперировать полученными данными.

С мобильными версиями все не так просто. Поэтому переходим к следующему пункту – определение типа браузера для мобильных устройств.

Определение типа браузера для мобильных устройств

Компания Microsoft создала Mobile Device Browser File, который хостится на сайте codeplex, с помощью которого можно получить последнюю информацию об устройствах и их возможностях.

Описание с сайта:

What is the Mobile Device Browser Definition File?
The Mobile Device Browser Definition File contains capability definitions for individual mobile devices and browsers. At run time, ASP.NET uses this .browser file, along with the information in the HTTP request header, to determine what type of device/browser has made the request and what the capabilities of that device are. This information is exposed to the developer through the Request.Browser property and allows them to tailor the presentation of their web page to suit the capabilities of the target device.

More Information
The format of the .browser file is XML and the schema is defined here: Browser Definition File Schema. The Browser Definition File was introduced in the .NET Framework version 2.0. In earlier versions of the .NET Framework, the browserCaps element was used to define browser definitions in configuration files. Please note that you must have Microsoft .NET Framework 3.5 Service Pack 1 installed to use this .browser file.

Несколько фактов:

  • информация, представленная в файле, используется командой Mobile Browse Hotmail in production;
  • обновляется приблизительно раз в месяц;
  • информация представлена для 500 наиболее распространенных мобильных устройств (из около 2000, покрытие – 99%);
  • содержит описание 60+ свойств для каждого устройства, например AcceptsAudioMp3, AcceptsImageSVG, IsSslSupported, MaxUrlLength, SupportedImageGifVersion и т.д. Полный список можно посмотреть здесь.
  • размер файла – 4.32 МБ.

Для получения нужной информации достаточно переписать файл mobile.browser в папку AppBrowsers/Devices и потом использовать следующий код для доступа к некоему свойству:

Request.Browser[CapabilityName"]

Если кому то нужны свойства, которых нет в данный момент в файле, то можно послать запрос команде разработчиков, которые, возможно, включат их в новую версию.

Сколько версий сайтов делать?

Не секрет, что даже наличие полной информации о свойствах устройства не ответит на вопрос сколько версий сайта необходимо поддерживать для максимального покрытия пользователей. Ведь, например, iPhone и новые Nokia обладают более продвинутыми возможностями чем более старые телефоны, где же грань? Практика разработки Mobile Hotmail показала, что лучше использовать две версии мобильного сайта: 1) для старых устройств (wap) 2) для новых устройств типа iPhone (3G).

Тестирование мобильных веб-приложений

Один из самых главным вопросов при разработке мобильных веб-приложения – это тестирование.

Возможные способы тестирования:

Изменение User Agent

Изменяя значение User Agent вашего браузера или программно:

WebClient client = new WebClient();
client.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");

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

Преимущество: простота реализации, недостаток: низкое качество тестирования.

Использование эмуляторов устройств

Некоторые стандартные эмуляторы идут в поставке с Visual Studio, некоторые необходимо доустанавливать.

Преимущество: можно получить среду, максимально приближенную к оригиналу, недостаток: много времени необходимо потратить на установку и настройку эмуляторов.

Тестирование с помощью DeviceAnywhere

О компании:

Компания DeviceAnywhere, основанная в 2003 г., находится в Сан-Матео, Калифорния и имеет дополнительные офисы в Великобритании, Германии, Франции, Японии, Канаде и Пакистане. С момента запуска сервиса DeviceAnywhere в январе 2006 г. разработчики могут пользоваться услугами удаленного доступа к мобильным устройствам и комплексным решениям в области поддержки разработки для мобильных устройств, обеспечивающим создание и распространение высококачественного мобильного контента. В настоящее время DeviceAnywhere поддерживает более 1,000 реальных устройств, соединенных с серверами и работающих в более чем 25 телекоммуникационных сетях по всему свету. При этом число поддерживаемых устройств и сетей постоянно растет. Кроме того, экономичная модель SaaS, предлагаемая DeviceAnywhere позволяет снижать затраты на ручное тестирование и, за счет этого, выводить контент на рынок быстрее, чем было возможно ранее.

Преимущества налицо, из недостатков можно назвать только то, что этот сервис является платным.

Тестирование на реальных устройствах

Ну и, естественно, самым лучшим способом является тестирование вашего приложения на реальных устройствах. Дорого, но зато наверняка.

Источник на msug.vn.ua

Previous ArticleNext Article
Технический директор IT-Dimension, компании-разработчика кросс-платформенного программного обеспечения

Leave a Reply

Your email address will not be published. Required fields are marked *

В.

В сети появились первые скриншоты Firefox Mobile (Fennec)

В сети появилась информация о том что Mozilla CEO Джон Лилли (John Lilly) в интервью Mercury News заявил о том что мобильная версия браузера Firefox (Fennec) должна появиться в течении месяца. Также он представил первые скриншоты Fennec.

Веб-разработчикам, наверное, будет интересен тем факт что Fennec получил 88 баллов из ста в тесте Acid3.

На данный момент в списке официально заявленных мобильных платформ, для которых будет доступен Fennec, указана только UME (Ubuntu Mobile and Embedded)  для Nokia 8×0, но планируются также версии и для остальных популярных мобильных платформ.

Официальную информацию по этому поводу можно узнать здесь.

PS: Меня как разработчика ПО для мобильных устройств очень интересует, на сколько удобным будет процесс встраивания браузера в приложения на С++. Если в дистрибутиве Fennec, как и в дистрибутиве Firefox для десктонов, разработчики предусмотрят наличие примеров, то вполне возможно что этот браузер станет довольно удобным инструментом разработки ПО для Ubuntu Mobile and Embedded ибо на данный момент более-менее комфорстно можно пользоваться только WebKit’ом, и то, для этого требуются длительные танцы с бубном %)

O.

Opera Devices SDK 9.7

Opera Devices SDK 9.7

Компания Opera Software на проходящей в Лас-Вегасе выставке CES-2009 представила новую версию Opera Devices SDK 9.7. Данный набор средств разработки ещё больше стирает грань между компьютерами, мобильными телефонами и различными бытовыми устройствами, обладающими выходом в Интернет. Напомню, что Opera Devices SDK позволяет создавать приложения на основе Presto, движка рендеринга HTML, использующегося в браузерах семейства Opera. Облее детально об Opera Devices SDK можно узнать здесь.

В число основных нововведений Opera Devices SDK 9.7 входят:

  • Opera Link — данная технология позволяет синхронизировать закладки и элементы панели Быстрого старта между компьютерами, мобильными телефонами, а теперь и бытовыми устройствами — телевизионными/игровыми приставками.
  • Opera Dragonfly — отладка JavaScript, инспектирование CSS и DOM, поиск и устранение ошибок в коде — всё это теперь доступно и для бытовых устройств. Opera Dragonfly также позволяет осуществлять удалённую отладку на бытовых устройствах непосредственно с настольного компьютера.
  • Аппаратное ускорение Opera Zoom — данная технология позволяет обеспечивать устройства с ограниченными ресурсами полноценными функциями прокрутки и гладкого масштабирования.
  • Соответствие ACID3 — новая версия Opera Devices SDK 9.7 полностью проходит тест на соответствие современным веб-технологиям ACID3.

Официальный пресс-релиз.

Источник.