Выбор Android-разработчиков. Ключевые моменты.

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

Фрагментация

illustration-8.jpg#asset:3645

По данным OpenSignal, фрагментация Android-устройств увеличилась с 18796 до 24093 за последний год. На рисунке показаны всевозможные модели смартфонов на платформе Android, где размер блоков соответствует популярности модели.

Фрагментация устройств Android растет с каждым годом. Причиной тому — кастомизация: производители смартфонов могут подвергнуть изменению всё — от визуальных элементов до внутренней логики устройства. Это сказывается на работе приложений и их внешем виде. Кроме того, до сих пор живы различные официальные версии и подверсии Android. Создать качественное Android-приложение в таких условиях — не тривиальная задача. Давайте разберемся детальнее.

Типы экранов

illustration-2-2.jpg#asset:3639

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

Аппаратная начинка

illustration-3.jpg#asset:3640

Android призван работать как на сильном, так и на слабом аппаратном обеспечении. Главное отличие бюджетных устройств от флагманских моделей — недостаточно производительные процессоры, малые объем и быстродействие оперативной памяти, низкопроизводительные графические чипы и не очень качественные матрицы экранов. Все это влияет на поведение приложения, скорость его работы и цветопередачу. Следовательно, слабая аппаратная составляющая не всегда позволяет реализовать требуемый функционал.

Разные версии операционной системы и системного API

illustration-5.jpg#asset:3642

С каждым годом появляются новые версии операционной системы Android с измененным или полностью переработаным внутренним API, что заставляет разработчиков не стоять на месте. Начиная с системы Android 1.0 и по сегодняшний день вышло 22 версии API. Первой наиболее стабильной системой считается Android 2.3, соответствующая API версии 9 (менее 7% устройств на рынке). Самыми популярными считаются системы от Android 4.0 (14 версия API) и далее, а самыми полюбившимися пользователям — Android 4.4 (API-19), 5.0 (API-21) и 5.1 (API-22).

Каждая новая операционная система включает новый функционал, который зачастую не работает на старых версиях. Первый глобальный пример — NFC-платежи: они начали работать только на Android 4.4. Второй — Material Design, появившийся в Android 5.0; Cуществует библиотека Support Design Library, но она лишь частично поддерживает Material Design на устройствах старой версии, и многие визуальные эффекты не реализованы.

Большниство свежих приложений создавались под версию Android 4.0 и выше с целью максимального охвата возможностей системы и повышенной стабильности работы. Множество функций, как логичестких так и визуальных, недоступны в 9-ой версии API (Android 2.3), поэтому разработчикам приходится прибегать к нестандартным реализациям, вставке костылей и использованию сторонних библиотек, что повышает трудозатраты и увеличивает время разработки.

Вендоры и кастомизация Android

illustration-4-2.jpg#asset:3641

При создании системной оболочки вендоры кастомизируют стандартные системные элементы интерфейса. Это ведет к несовпадению с дизайном, поехавшей верстке, крэшам и т.п. Пример тому — Samsung Note 2: разработчики компании инвертировали цвета стандартной темы Android, поэтому надписи в некоторых местах приложения могут теряются на фоне.

Решение этих проблем

illustration-6.jpg#asset:3643

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

1. Посмотреть портфолио и попросить рассказать про сложные проекты.

Если никаких сложных проектов не было, то откуда взяться опыту? Оцените, насколько сложен ваш проект, и найдите схожий по сложности проект в портфолио.

2. Узнать про инструментарий и опыт с конкретными библиотеками.

Много энтузиастов пишут свои бибилиотеки с открытым исходным кодом, но их качество зачастую оставляет желать лучшего. Например, мы используем зарекомендованные сторонние бибилиотеки, такие как Retrofit, Picasso, OkHttp, Otto, Cupboard ORM, Dagger 2, Realm.

3. Узнать, есть ли в команде дизайнеры, знакомые с особенностями платформы.

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

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

В Live Typing имеются четырех-, пяти-, семи- и десятидюймовые устройства от разных компаний на различных версиях Android, с разным разрешением и степенью плотности пикселей на дюйм, на которых мы отслеживаем странное поведение приложений и лечим баги на этапе внутреннего тестирования, не позволяя конечному пользователю столкнуться с этими проблемами.

5. Получить детализированную оценку и поэтапный план работ.

Для этого потребуется реалистичный прототип интерфейса, а лучше — дизайн всех экранов. Мы в Live Typing предоставляем оценку в виде таблицы с разделением на фичи или экраны приложения, с детализацией количества часов по каждому специалисту и ценой часа работы.

6. Поинтересоваться, на каких авторитетных людей и компании в мире Android ориентируются разработчики.

Среди наших авторитетов — Джейк Уортон и Джесси Уилсон, сотрудники Square Inc. и одни из самых известных евангелистов и энтузиастов Android-сообщества, и Ларс Фогель, независимый консультант и тренер, регулярный спикер международных конференций Devoxx, EclipseCon, O'Reilly Android Open, MobilTechCon и Droidcon. Ларс имеет собственный сайт со множеством уроков.

How to...
Jesse Wilson
Material Design
Android
Влад
Влад Коробов
Исполнительный директор
Давайте сотрудничать