Разработка под Android: наступает оттепель?

Источник материала:  
05.04.2012 10:09 — Новости Hi-Tech
Долгожданный выход популярного фотоприложения Instagram для платформы Android спровоцировал очередную волну обсуждений среди разработчиков: избегать эту платформу из-за проблем с разработкой и поддержкой приложений, или перечисленные проблемы - это мифы?


Сам по себе выход Instagram дал аргументы как противникам Android, так и сторонникам. С одной стороны, тот факт, что маленькая команда разработчиков (пусть и очень известного продукта) посчитала нужным выпустить приложение для этой ОС, означает, что и другим не нужно бояться выхода на эту платформу. С другой стороны – сразу после выхода программы выяснилось, что многие пользователи не смогли публиковать фотографии из-за проблем совместимости, и разработчикам пришлось спешно выпускать обновление. 

Глава Instagram, Кевин Систром (Kevin Systrom), в свое время обещал пользователям Android, что версия программы для их платформы будет лучше оригинального iOS-приложения и станет одной из лучших программ для Android вообще. Сдержал ли Instagram свое обещание? Не совсем.

Внешний вид приложения Instagram для Android мало чем отличается от iOS-версии, что фанаты Google сразу записали "в минус". Действительно, после выхода Android 4.0 у данной платформы появился достаточно четкий свод правил в отношении интерфейса. Например, в Android-приложениях не принято использовать панели внизу экрана, все элементы управления должны быть размещены вверху. С другой стороны, разработчики популярных сервисов (Twitter, Facebook), как правило, не заинтересованы в том, чтобы их программы по-разному выглядели на разных устройствах – узнаваемость здесь куда важнее.

Функционально Instagram неплохо интегрирован с Android. Важное отличие Android от iOS заключается в механизме взаимодействия программ. При помощи системы так называемых намерений" ("intents") одна программа может "заявить" о том, что она может отдавать данные какого-то типа, а другая – о том, что готова их принимать. Это позволяет Instagram принимать фотографии из любых приложений (фоторедакторов, браузеров), разработчики которых и не думали о поддержке популярной программы.

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

Строго говоря, Систром не сдержал свое обещание. Instagram для Android не хуже, но и не лучше iOS-версии. Будет ли интересна эта программа Android-пользователям – сложно сказать, ведь платформа имеет встроенную интеграцию с фотосервисами Google (Picasa и Google+), и для нее существует множество похожих программ. Достаточно упомянуть Pixlr-o-matic от знаменитой Autodesk, число эффектов в которой исчисляется сотнями.

Что это значит для разработчиков?

Проблемы с разработкой и поддержкой Android-приложений на данный момент характерны в основном для небольших команд. В Play Store представлены приложения всех крупных разработчиков: Adobe, Microsoft, EA Games, Gameloft и многих других. Действительно, крупные релизы уже давно перестали обходить Android стороной. Проблемы остаются у мелких команд или разработчиков-одиночек, чьи приложения уже пользуются успехом в App Store. Именно у них возникает дилемма: стоит ли выходить на новую платформу? Так ли все страшно, как говорят?

Релиз Instagram нельзя считать однозначной победой Android, так как проблемы совместимости у разработчиков все-таки возникли. Но, тем не менее, многие восприняли данный релиз как сигнал, что проблемы с многообразием Android-устройств значительно преувеличены и решаемы – особенно с учетом того, что это позволяет выйти на огромную аудиторию.

Что делать?

По словам Юрия Федосеева, главного разработчика News360, новостного приложения, существующего для множества мобильных платформ, включая Android, iOS, Windows Phone 7, основные проблемы Android сводятся к многообразию экранов. Если посмотреть статистику Google Play, существует четыре основных типа смартфонов по размеру экрана, и четыре типа по разрешению матрицы – это уже 16 комбинаций. В случае с каждой комбинацией разработчику приходится по-разному решать проблему отрисовки шрифтов и отображения элементов управления. Что еще хуже, полагаться на указанные 16 категорий тоже нельзя, так как конкретное приложение может по-разному выглядеть на разных экранах одной категории. Фактически, разработчику придется самому для себя составить похожую таблицу.

Во многих статьях приводятся цифры количества поддерживаемых тем или иным разработчиком смартфонов, часто больше тысячи различных моделей. Однако это не значит, что команде нужно иметь столько аппаратов на руках. В случае с News360 тестирование проводится на пяти смартфонах и пяти планшетах (включая Barnes & Noble Nook Tablet и Amazon Kindle Fire). Выбор смартфонов для тестирования определяется внутренней статистикой разработчика (на чем работают его пользователи), из которой нужно выбрать несколько устройств с принципиально разными экранами – от самого большого (на сегодняшний день – 4,7-5,3 дюйма) до самого маленького (3,2 и ниже).

Чтобы понять, как приложение будет выглядеть на конкретном экране, можно воспользоваться и стандартным эмулятором в поставке SDK для Android. Естественно, нельзя таким образом оценить эргономику приложения – например, удобно ли добраться пальцем до такой-то кнопки на очень большом экране? Однако это позволяет оценить правильность отображения шрифтов и графики в том или ином сюжете.

К сожалению, эмулятор не позволяет оценить производительность приложения – просто потому, что он работает намного медленнее реального смартфона, отмечает Федосеев. Можно задать объем памяти устройства и оценить экономность программы, но вот задать конкретный процессор нельзя.

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

Другая проблема – совместимость с конкретной версией Android. Каждая версия ОС соответствует конкретному уровню API, всего таких уровней 15 (активно на рынке – 11). Однако, по словам Федосеева, необходимо лишь определить для себя минимальный поддерживаемый уровень API. Делается это на основе все той же статистики Google, показывающей популярность той или иной версии. В случае с News360 выбран Android 2.2. До сих пор у разработчиков не возникало проблем с обратной совместимостью – приложение, созданное для Android 2.2, нормально работает и в Android 4.0. Тем не менее, очевидно, что такой подход тормозит развитие программы, ведь разработчик просто не может воспользоваться новыми уровнями API. Однако при желании никто не мешает создать несколько версий приложения – в Play Store они будут распространяться под одним именем и выбираться автоматически, согласно заданному разработчиком регламенту. Такой регламент или "манифест" и определяет то, какую версию нужно ставить для какого устройства.

Манифест в Android – достаточно важный инструмент, позволяющий избежать многих проблем совместимости. Как пишет глава компании Zipline (разработчик ряда популярных игр), Тод Хупер (Todd Hooper), манифест позволяет сделать простую вещь – не показывать приложение тем пользователям, чьи устройства не поддерживаются. Таким образом, можно выпустить программу для ряда самых популярных смартфонов и постепенно расширять круг поддерживаемых моделей. Это избавит разработчика от негативных отзывов пользователей неподдерживаемых устройств. Такой подход достаточно популярен у разработчиков игр – например, таким образом был выпущен GTA III для Android, а также такие игры как Shadowgun, Soulcraft и другие.

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

Раздута ли проблема фрагментации?

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

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

Таким образом, можно надеяться, что весенние релизы популярных приложений – Instagram, Readability, Temple Run и многие другие – должны сподвигнуть независимых разработчиков к тому, чтобы вновь обратить внимание на платформу от Google. Но, как выясняется, Google тоже нужно приложить дополнительные усилия к решению этой проблемы – создать более производительный эмулятор устройств, а также дать более детальную информацию об используемых смартфонах.
←Китай усовершенствовал свой "Великий китайский брандмауэр"

Лента Новостей ТОП-Новости Беларуси
Яндекс.Метрика