Почти год назад, а именно 12 сентября 2011 года, мы выложили на Google Play тогда ещё Android Market клиент для справочно-правовой системы «Право.ru». Этот проект был первым крупным приложением от компании Parcsis под ОС Android. Забегая вперёд, скажу, что разработка шла совсем не так гладко, как хотелось бы. Далеко не все идеи, предложенные дизайнерами, удалось воплотить, да и не все инженерные решения удовлетворяли требованиям бизнеса. Android преподнёс нам немало неожиданностей.
Но, тем не менее, благодаря сплочённости и самоотверженности команды, мы прошли этот путь длиной более чем в год, выпустив и поддерживая продукт, входящий в ТОП-10 бесплатных приложений в категории «Бизнес».
Дизайн
Android vs. iPhone
Так сложилась, что у нас в Parcsis во главе рабочего процесса стоят дизайнеры. Бизнес-анализ глубоко интегрирован в отдел дизайна, и макет приложения фактически является техническим заданием для отдела разработки. За некоторое время до начала разработки под Andriod были успешно реализованы клиенты под iPhone и iPad, и тут-то нас ждала первая проблема.
Любой пользователь Андроида уверенно скажет вам, что Андроид — это совсем не Айфон. Но пользователи Айфонов считают, что Андроид — это почти Айфон, только чуть хуже. Наши дизайнеры, как убеждённые сторонники продукции Apple, изначально предлагали реализовать тот же интерфейс, что и на iPhone, игнорируя стандартные элементы управления и наличие физических кнопок.
Понятно, что так поступать было ни в коем случае нельзя, поскольку тогда приложение будет абсолютно неюзабельно. Как часто бывает, эта проблема была решена долгой и обстоятельной беседой, с демонстрацией интерфейсов стандартных приложений iOS и Android. В итоге дизайнеры, как люди достаточно образованные и обладающие необходимой широтой сознания, приняли позицию разработчиков и начали готовить для нас отдельный макет, отличный от iPhone.
Множество конфигураций экрана
Как я уже писал ранее, устройства на базе Android имеют большое количество различных конфигураций экрана, и количество пикселей по горизонтали и вертикали — отнюдь не решающая характеристика. Ведь существуют как устройства с диагональю 10 дюймов и разрешением 800х600, так и с диагональю 5 дюймов и разрешением 1280х800.
Дизайнеры всё время спрашивали, какой должен быть размер страницы макета в пикселях? Потребовался настоящий квантовый скачок сознания, чтобы понять, что вёртска под андроид ближе к веб-вёртске, чем к вёрстке под iOS.
Разработка
Оффлайн-база
Одна из главных «фишек» нашей программы — оффлайн режим работы. Ценность очевидна — при отсутствии интернета, например, в здании суда (или уже в СИЗО, как повезёт) пользователь сможет получить доступ ко всем основным документам — Конституции РФ, кодексам и федеральным законам. Изначально предполагалось поставлять архив с документами непосредственно внутри файла apk, в каталоге asserts. Арихв весил более 30 метров, что давало на выходе, вместе с ресурсами и собственно бинарником программы, apk весом в 35 мегабайт. «Okay», — решили мы и выложили на маркет первую версию.
И практически сразу стали получать письма от пользоваталей, что они не могут скачать приложение, даже на современные мощные телефоны с достаточным количеством свободного места и быстрым вай-фаем.
Причины нашлось две. Во-первых, некоторые андроид-устройства не могут устанавливать файлы apk более 30 мегабайт. Во-вторых, для установки приложения весом в N метров требуется порядка 3N свободного места не телефоне.
Встала задача обеспечить работу приложения на устройствах с кешем загрузки не менее тридцати мегабайт.
Были предложены разные пути решения проблемы. Например, сделать две версии программы — полную, с оффлай-базой, и облегчённую, работающую только онлайн. Или вообще отказаться от заранее сформированной базы, дав возможность пользователю самому выбирать документы для оффлайн-доступа. Но финальным решением проблемы стало добавление функционала скачивания базы с веб, чем мы и пользуемся до сих пор. Впоследствии этот механизм были использован как на iOS, так и на WP7.
Контент-провайдеры
В Андроид есть замечательный механизм, основанный на позднем связывании и представляющий собой невероятную помесь <a href=«ru.wikipedia.org/wiki/Ajax>AJAX и DML. Называется он ContentProvider.
Выглядит этот механизм как вполне нативный, и мы не смогли устоять перед соблазном его использования. Но, как оказалось в дальнейшем, контент-провайдеры обладают рядом существенных недостатков, сильно замедляющих процесс разработки приложения. Единственное явное достоинство — обмен данными с другими приложениями, нами не использовалось, и, в конце-концов, мы вовсе отказались от контент-провайдеров, как от ненужной прослойки в механизме получения данных из БД.
Заключение
Несмотря на все сложности, с которыми мы столкнулись, нам удалось разработать действительно полезное приложение. Его достоинства оценили как практикующие юристы, так и студенты юридических факультетов. Количество устройств, на которых установлено «Право.ru» для Android, приближается к 100 000, каждый день программа используется до 15 000 раз. Мы прислушиваемся ко всем пожеланиям пользователей и читаем все письма, которые присылают нам на sps@pravo.ru. Каждый новый релиз добавляет программе новый функционал, делая её ещё удобнее и полезнее.
Автор: ilichme