![](https://habrastorage.org/files/7b0/44a/20e/7b044a20ef8b498cb2166f470eb52a4b.jpg)
Огромный привет читателям и пользователям GeekTimes, которые заглянули к нам в блог!
Любители ли Вы читать книги?! Более, чем уверен, что среди нас много любителей почитать в транспорте, или перед сном, или на курорте под палящими лучами южного солнца. Кто-то предпочитает подержать в руках книгу в твёрдом красивом переплёте и потеребить плотненькие странички. Но всё больше и больше читателей переходят на чтение электронных книг, из-за удобства и простоты использования. Кто-то любит художественную литературу, кто-то предпочитает исключительно профессиональную, но перед каждым из нас встаёт один и тот же вопрос: на чём удобнее и комфортнее читать любимые книги?!
Сегодня, как и обещали в первой статье, мы начинаем цикл публикаций о продуктах Prestigio с истории создания и развития одного из программных продуктов Prestigio – eReader Prestigio. Это приложение изначально разрабатывалось в качестве домашней библиотеки, но за пару лет разрослось до популярной Android-читалки электронных книг с поддержкой множества удобных функции и всех популярных форматов как электронных, так и аудио-книг. Под катом мы обсудим некоторые проблемы, с которыми нам пришлось столкнуться при разработке приложения, а также пути их решения, затронем аспекты взаимодействия с официальными властями и лицами для получения легального доступа к литературным произведениям и размещения в библиотеке.
Но обо всём по порядку.
Предыстория
В 2012 года в недрах Prestigio вызрела идея запуска своей линейки планшетов, которая в последующем должна была стать основой управления эко-системой «умного дома» Prestigio. Чтобы начать работать в данном направлении – проще говоря, чтобы опробовать свои силы – было предложено отработать модель разработки при создании портативной и интерактивной библиотеки или хотя бы «книжной полки».
К тому же, основатель компании, белорус по национальности, жаждал увидеть произведения национальных авторов на белорусском языке, доступные каждому желающему в любой точке земного шара, в том числе и произведения из списка школьной программы. Но об этом мы расскажем в специальном интервью с основателем Prestigio. Пока же отметим, что для этих целей был закуплен на собственные средства аппарат для автоматической отцифровки книг, а также заключены договоры с издателями и правообладателями. В результате наши пользователи, говорящие и/или изучающие белорусский язык имеют полный и, главное, бесплатный (!) доступ к более 3000 (!) произведений литературы в формате EPUB!
В магазине Вы можете приобрести и прочитать более 50 000 книг на более 25 языках мира. Естественно, что часть из них распространяется совершенно бесплатно
![](https://habrastorage.org/files/62a/e2c/b62/62ae2cb62a11431a9d3e7ac165c2133c.png)
Большинство книг, конечно же, на русском, но и другие языки не отстают по мере развития магазина
Итак, есть желание, есть возможности, и практически нет конкурентов: тогда 3-4 года назад чтение электронных книг с различных устройств только входило в моду, к тому же, в основном читали на специальных девайсах с E-ink дисплеем. Что же касается приложений для обычных смартфонов, то особого выбора и разнообразия программ для чтения тогда ещё не существовало, в частности для планшетов. Рынку только-только предстояло бурное развитие с выпуском дешёвых 100-долларовых планшетов.
В мире Android-устройств в то время безраздельно правил Имбирный Хлебушек aka Gingerbread (2.3), и эта версия была исключительно для смартфонов, а для планшетов предусматривалсь свой Honeycomb. А версии великого объединения Android 4.х, появившейся в 2011 году, ещё предстояло завоевать своих пользователей.
![](https://habrastorage.org/files/cdb/df4/943/cdbdf494392446348c30012b0c4d78d5.png)
История появления различных версий Android (Источник)
Как создавалась читалка: извилистый путь наверх
Первые шаги: аутсорс разработка или когда всё идёт не по плану
К сожалению, большой проблемой оказалось отсутствия опыта, как в части дизайна интерфейса, так и программирования под Android. В воздухе витали только идеи, поэтому, чтобы переложить их в реальный продукт, в компании Prestigio решили нанять стороннюю команду разработчиков, которая позволила бы, как тогда казалось, максимально упростить процесс создания приложения, а также минимизировать затраты на разработку.
И вполне естественно, что выбор пал на команду, у которой уже был достаточный опыт – команду FB Reader. В течение полугода был разработан концепт-дизайн, нарисованы и прописаны основные блоки приложения, а также добавлена та самая "книжная полка". И к осени 2012 года на свет появился eReader Prestigio версии 1.0, который изначально был доступен только для планшетов Prestigio (в качестве предустановленной версии), ведь разрабатывалась читалка в качестве встроенной библиотеки.
![](https://habrastorage.org/files/e61/55e/b6a/e6155eb6ae184a5191de35e6a722400b.jpg)
В чём-то eReader Prestigio и FB Reader были как две капли воды похожи
![](https://habrastorage.org/files/33a/c22/34c/33ac2234c6294281a779c65e4fab2a10.jpg)
Но были и характерные отличия в дизайне и функциональности: например, у FB Reader отсутствует "книжная полка" как таковая, изменён файловый менеджер
К сожалению, к концу 2012 года из-за высокой стоимости разработки для такого локального продукта, контакты с командой FB Reader были разорваны, а написанный к тому времени код был реквизирован. Вторая попытка отдать проект на аутсор в равной мере обернулась фиаско, хотя и была выпущена вторая версия приложения с добавлением нового функционала и опций, но подробнее об этом чуть ниже. В конечном итоге пришлось искать внутренние возможности для продолжения работ над приложением.
![](https://habrastorage.org/storage2/967/1c9/b30/9671c9b303ec60148b7448fbe0e9ef0d.png)
Дорогой урок: аутсорс разработка, кончено, имеет свои достоинства (например, если требуется создать приложение и забыть про него в плане поддержки и обновлений), но и не лишена существенных недостатков. Недостаточная мотивация самого аутсорс разработчика или группы разработчиков, работающих за фиксированную, зачастую почасовую оплату, и затягивание сроков сдачи проекта. Заказчику необходимо проработать проект, отдаваемый на аутсорс, до мельчайших деталей, ибо игра в «пинг-понг» может обойтись и наверняка обойдётся слишком дорого.
DRM и Adobe: без DRM никак, а с DRMом тяжко
Следующей вехой и большим шагом вперёд стало подключение DRM (Digital Rights Management) книг с помощью RMSDK от Adobe в версии приложения 2.0, а также создание полноценного магазина и личного кабинета или, скажем так, «читательского билета» для синхронизации между устройствами. К этому времени парадигма разработки приложения начала меняться: на смену сугубо локальному продукту приходит доступная для всех версия через Google Play.
Читатель, естественно, задастся вопросом: а зачем вообще добавлять DRM-книги и поддержку DRM-форматов?
Ответ очень прост: главная цель создания данного приложения заключалась в том, чтобы иметь портативную библиотеку, доступной в любой точки заменого шара, на любых языках с возможностью покупки любых книг при желании. И тут встаёт дилемма: либо пиратские версии книг, либо полноценный и легальный DRM-контент. К сожалению, пиратство, мягко говоря, не поощряется в большинстве страны, особенно, так называемого, цивилизованного мира, именно поэтому без легализации контента никак не обойтись. И это же является одной из основных причин, почему мы не может подключить каталог Флибутсы напрямую через читалку.
К тому же, через обратную связь в какой-то моент стали поступать просьбы от наших пользователей из Польши, Германии, Чехии, других стран ЕС добавить те или иные любимые ими и интересные книги на их родных языках. К нашему глубокому сожалению, ситуация с законодательством на территории бывшего СССР крайне затрудняет заключение договоров и продвижение DRM-книг на русском, украинском и белорусском языках по доступным ценам, а вот в европейских странах литературные произведения только так и могут распространяться. Но об этом на более глубоком уровне, как уже отмечалось выше, мы поговорим в другой раз.
И хотя в коде были уже внедрены такие фичи, как OPDS (Open Publication Distribution System)-каталог, основа для магазина и личный кабинет, всё это необходимо было развивать, улучшать и просто поддерживать в работоспособном состоянии. Полностью разочаровавшись в аутсорсе, пришлось собрать собственную команду разработчиков, и начать, фактически, строить всё заново на заготовленном фундаменте.
К существующим проблемам добавилась ещё одна. Примерно в середине 2014 года вышло обновление RMSDK с новыми библиотеками от Adobe, которое обладало рядом существенных недостатков:
- библиотека отъедала половину скачиваемого объёма приложения, соответственно, для нормальной работы пришлось её очень сильно порезать перед компиляцией и добавлением в приложение;
- библиотека работает не с самим текстом, а преобразует его в картинки-страницы, которые не могут быть скормленны синтезатору речи (text-to-speech);
- библиотека нативная и требует компиляции под разные версии ОС и устройств исключительно на MAC, что создавало ряд трудностей.
Рабочие моменты: медленный EPUB
После очередного обновления приложения, в которое была добавлена новая библиотека от Adobe, стали поступать жалобы от пользователей, что книги в формате EPUB загружаются крайне медленно при прочтении. Разбор полётов показал, что одна из причин кроется в обновлённой версии RMSDK. Так, в случае чтения EPUB с помощью DRM системы Adobe при начале чтения книги происходит предварительный подсчет страниц и их подготовка для отображения, что занимает определённое время. Однако, сам подход к понятию страницы при зумировании и изменении параметров отображения текста отличается: для Adobe данное количество остаётся прежним, а в нашей читалке оно пересчитывается в соответствии с этими новыми параметрами, что опять-таки занимает немалое время. В результате, пришлось использовать прежнюю библиотеку и оптимизировать сам процесс разметки страниц.
Кстати, команда FB Reader пошла иным путём, предлагая скачивать и устанавливать дополнения — плагины — к основной версии программы, что по своему затрудняет работу с ним.
Великое объединение Android и FullHD-экраны
Следующим важным этапом стал редизайн графической оболочки и проблемы, которое принесло с собой объединение планшетной и смартфонной версий Android в единый Android 4, а также выпуск устройств с полноценным FullHD-дисплеем.
Примерно полгода занял процесс редизайна графической оболочки приложения, одновременно с которой осуществлялся переход на новое меню Android 4: вместо четырёх нижних кнопок, осталось только 3, к тому же изменилась верхняя область уведомлений. Плюс ко всему, с 2012 по 2014 год шло активное внедрение FullHD дисплеев на смартфонах, то есть дисплеев с разрешением 1920 на 1080 пикселей. Если не изменяет память, то одной из первых ласточек был Butterfly от компании HTC. При этом оказалось, что программная реализация различных эффектов, например, эффекта перелистывания сильно подтормаживает на многих устройствах из-за программного ускорения графики, что привело к внедрению уже аппаратного ускорения, реализованного на OpenGL. Фактически приложение родилось заново в версии 3.0.
![](https://habrastorage.org/files/a66/0d9/13f/a660d913f6c94f218b5bacdfaa3626ba.jpg)
Существенное различие: программное перелистывание с настройкой «принудительное ускорение графики» (слева) и реализованное на openGL (справа) для FullHD дисплея
Конечно же, не обошлось без эксцессов. Так некоторые фирмы-производители устройств (не будем показывать пальцем), заявляли поддержку OpenGL2, хотя на самом деле чипсеты не имели такой поддержки, что приводило просто к пустым страницам во время чтения. Тогда как другие производители неверно рассчитывали и указывали в прошивках разрешение экрана, которое автоматически считывается при отрисовке интерфейса, что так же сказывалось на отображаемой картинке:
![](https://habrastorage.org/files/ed9/5f9/e1e/ed95f9e1e45340e1a754f7aae30e5f2d.jpg)
Смешные баги, из-за неверных данных, заложенных производителем в прошивку
Рабочие моменты: желания пользователей – благо или вред?!
Однажды с командой разработчиков приключилась преинтереснейшая история. Специально организованный опрос общественного мнения показал, что настройками чтения (размер и тип шрифта, подсветка и так далее) пользуется не так уж много пользователей и большинство из них высказались за замену развёрнутых настроек до пары основных кнопок. Что ж, желание пользователей – закон: сделали и выпустили новую версию приложения.
Впоследствие оказалось, что подавляющее большинство пользователей решило проигнорировать данный опрос, при этом наградив приложение гневными отзывами уже после реализации новых настроек чтения. Пришлось как можно скорее переделывать обратно и разделить настройки на две группы основные: те, которыми могло бы без труда пользоваться большинство пользователей, и продвинутые опции для того, кто любит тщательно настраивать отображаемый текст на экране:
![](https://habrastorage.org/r/w1560/files/899/52d/713/89952d713f92447cbb97853cc97cbe86.png)
Теперь опции настройки текста разделены на основные, выскакивающие сразу, и дополнительные
Аналогичная ситуация произошла и с бэкграундом, картинкой, которую видит пользователь при чтении. Аудитория разделилась на два лагеря: тех, кто хочет пресеты, то есть предустановленные цвета фона, и тех, кто желает видеть полноценную цветовую гамму с тонкой настройкой цвета. Пока победила версия с колёсиком гаммы, но мы обязательно добавим и несколько наиболее популярных пресетов в будущих версиях.
Мораль сей басни такова: любой опрос показывает мнение только активной части аудитории, за которой может скрываться гораздо более значимая масса людей. Им просто хочется пользоваться любимым приложением, и они очень тяжело переносят радикальные перемены.
Впоследствие оказалось, что подавляющее большинство пользователей решило проигнорировать данный опрос, при этом наградив приложение гневными отзывами уже после реализации новых настроек чтения. Пришлось как можно скорее переделывать обратно и разделить настройки на две группы основные: те, которыми могло бы без труда пользоваться большинство пользователей, и продвинутые опции для того, кто любит тщательно настраивать отображаемый текст на экране:
![](https://habrastorage.org/files/899/52d/713/89952d713f92447cbb97853cc97cbe86.png)
Теперь опции настройки текста разделены на основные, выскакивающие сразу, и дополнительные
Аналогичная ситуация произошла и с бэкграундом, картинкой, которую видит пользователь при чтении. Аудитория разделилась на два лагеря: тех, кто хочет пресеты, то есть предустановленные цвета фона, и тех, кто желает видеть полноценную цветовую гамму с тонкой настройкой цвета. Пока победила версия с колёсиком гаммы, но мы обязательно добавим и несколько наиболее популярных пресетов в будущих версиях.
Мораль сей басни такова: любой опрос показывает мнение только активной части аудитории, за которой может скрываться гораздо более значимая масса людей. Им просто хочется пользоваться любимым приложением, и они очень тяжело переносят радикальные перемены.
Новые процессоры от Intel на базе x86 архитектуры: кошмары разработчиков
Год 2014 ознаменовался релизом новых процессоров от компании Intel на базе архитектуры x86, которые очень быстро начали захватывать рынок, хотя «прототипы» устройств были доступны ещё с 2012 года. Мало кто тогда думал, что это потребует нечеловеческих усилий от разработчиков, ведь смена архитектуры без соответствующих средств переноса с платформы на платформу фактически означает написание нового приложения под новую архитектуру.
Компания Intel даже проводила мастер-классы, призывая активно разрабатывать под платформу x86 (и даже на Хабре). Однако вскоре после успешного запуска и некоторого шокового состояния, гиганты Google и Intel договорились и выпустили специальный компилятор для кросс-архитектурного создания приложений (обзор в блоге Intel).
Вместо заключения: Планы на будущее
Сегодня читалка eReader Prestigio – это более восьми миллионов пользователей на 9000(!) различных Android-устройствах, поддержка более 25 языковых пакетов, более 50 000 книг на этих языках, частью из которых можно наслаждаться абсолютно бесплатно в одном из десятка наиболее распространённых книжных форматов (FB2, DOC, RTF, TXT, DJVU, HTML, MOBI, EPUB и EPUB2, PDF), а также аудиофайлов MP3 и AAC. Плюс ко всему, можно установить словарь ColorDict напрямую из приложения и мгновенно переводить незнакомые слова в иностранной литературе, что существенно облегчает чтение неадаптированных текстов. При этом ридер выполнен в эргономичном стиле Material Design и имеет интуитивно понятный для пользователя интерфейс.
![](https://habrastorage.org/files/efa/cd2/867/efacd2867da043b68ac467344d1444dc.jpg)
Читалка в обновлённом стиле Material Design
![](https://habrastorage.org/files/fac/a25/dab/faca25dabb414427baa99fb60fb88465.png)
Все поддерживаемые форматы в одном месте, включая и аудиокниги
Сравнение eReader с другими читалками (Источник)
Однако команда eReader Prestigio не сидит без дела. Буквально пару месяцев назад прошёл Helloween и только-только завершились новогодние праздники, которые наша читалка встретила с обновлённой праздничной стилизацией.
![](https://habrastorage.org/files/b40/163/5fa/b401635fafcc48edb881e148a8fb6e3b.jpg)
Так мы отметили Хэллоуин
![](https://habrastorage.org/files/f20/05d/f38/f2005df388cd42d8892cca9ff2c6ba1b.jpg)
А такие обои были преподнесены к новогодним праздникам
В ближайшее время мы добавим поддержку формата DOCX в качестве плагина (опять-таки процесс тормозиться из-за большого размера библиотеки), а ещё в планах PDF-парсер. А вот с новыми форматами HTML5 и EPUB3, к сожалению, пока придётся повременить, из-за того, что форматы ещё не пришли к какому-то единому знаменателю и постоянно дополняются, корректируются и изменяются.
Система синтезатора речи (text-to-speech или TTS) уже встроена в читалку и ей, как не парадоксально бы это звучало, ловко пользуются люди с проблемами зрения. На данный момент, это встроенный TTS от Google, который, может быть, и хорошо справляется с английскими текстами, но плохо работает с другими языками. В скором времени будет реализована поддержка сторонних синтезаторов речи в виде подгружаемых плагинов, которые позволят нашим пользователям самим выбирать наиболее комфортный для них TTS.
Работы по расширению библиотеки и охвату всё новых произведений литературы идут постоянно. Однако мы не в состоянии предугадать все чаяния и желания пользователей, поэтому мы запустим в скором времени специальный сервис, с помощью которого Вы, уважаемые книголюбы, сможете запросить определённую книгу, которой ещё нет в библиотеке, а мы по мере сил и возможностей будем стараться их туда добавлять.
И чуть не забыли: скоро мы объявим конкурс на интересные тематические обои для читалки с ценными призами от компании Prestigio, так что не забывайте подписываться на наш блог и следить за нашими новостями и обновлениями.
Вам не сложно, а нам приятно!
Приложение eReader Prestigio для Вашего Android-устройства скачайте совершенно бесплатно, перейдя по ссылкам:
![](https://habrastorage.org/files/3b0/6ff/64b/3b06ff64ba8d442585bf38f866d67300.png)
eReader Prestigio
Текст подготолвен Tiberius
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Являетесь ли Вы пользователем читалки eReader Prestigio?
13.91% Да и довольно давно32
3.04% Да, установил пару месяцев назад7
80.87% Нет186
2.17% Затрудняюсь ответить, может что-то где-то и завалялось5
Проголосовали 230 пользователей. Воздержались 18 пользователей.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Скачали ли Вы приложение eReader Prestigio после прочтения статьи?
11.23% Да!21
55.61% Нет, пользуюсь другим ридером и всё устраивает104
33.16% Нет, пользуюсь специальным устройством для чтения (Kindle, PocketBook и т.д.)62
Проголосовали 187 пользователей. Воздержались 42 пользователя.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Хотели бы Вы что-то добавить изменить в читалке eReader Prestigio?
11.59% Да, отпишусь в комментариях или ЛС19
9.76% Нет, всё устраивает и так16
78.66% Я — пчолы!129
Проголосовали 164 пользователя. Воздержались 49 пользователей.