Огромный привет читателям и пользователям GeekTimes, которые заглянули к нам в блог!
Любители ли Вы читать книги?! Более, чем уверен, что среди нас много любителей почитать в транспорте, или перед сном, или на курорте под палящими лучами южного солнца. Кто-то предпочитает подержать в руках книгу в твёрдом красивом переплёте и потеребить плотненькие странички. Но всё больше и больше читателей переходят на чтение электронных книг, из-за удобства и простоты использования. Кто-то любит художественную литературу, кто-то предпочитает исключительно профессиональную, но перед каждым из нас встаёт один и тот же вопрос: на чём удобнее и комфортнее читать любимые книги?!
Сегодня, как и обещали в первой статье, мы начинаем цикл публикаций о продуктах Prestigio с истории создания и развития одного из программных продуктов Prestigio – eReader Prestigio. Это приложение изначально разрабатывалось в качестве домашней библиотеки, но за пару лет разрослось до популярной Android-читалки электронных книг с поддержкой множества удобных функции и всех популярных форматов как электронных, так и аудио-книг. Под катом мы обсудим некоторые проблемы, с которыми нам пришлось столкнуться при разработке приложения, а также пути их решения, затронем аспекты взаимодействия с официальными властями и лицами для получения легального доступа к литературным произведениям и размещения в библиотеке.
Но обо всём по порядку.
Предыстория
В 2012 года в недрах Prestigio вызрела идея запуска своей линейки планшетов, которая в последующем должна была стать основой управления эко-системой «умного дома» Prestigio. Чтобы начать работать в данном направлении – проще говоря, чтобы опробовать свои силы – было предложено отработать модель разработки при создании портативной и интерактивной библиотеки или хотя бы «книжной полки
».
К тому же, основатель компании, белорус по национальности, жаждал увидеть произведения национальных авторов на белорусском языке, доступные каждому желающему в любой точке земного шара, в том числе и произведения из списка школьной программы. Но об этом мы расскажем в специальном интервью с основателем Prestigio. Пока же отметим, что для этих целей был закуплен на собственные средства аппарат для автоматической отцифровки книг, а также заключены договоры с издателями и правообладателями. В результате наши пользователи, говорящие и/или изучающие белорусский язык имеют полный и, главное, бесплатный (!)
доступ к более
3000 (!)
произведений литературы в формате EPUB!
В магазине Вы можете приобрести и прочитать более 50 000 книг
на более
25 языках мира
. Естественно, что часть из них распространяется совершенно бесплатно
Большинство книг, конечно же, на русском, но и другие языки не отстают по мере развития магазина
Итак, есть желание, есть возможности, и практически нет конкурентов: тогда 3-4 года назад чтение электронных книг с различных устройств только входило в моду, к тому же, в основном читали на специальных девайсах с E-ink дисплеем. Что же касается приложений для обычных смартфонов, то особого выбора и разнообразия программ для чтения тогда ещё не существовало, в частности для планшетов. Рынку только-только предстояло бурное развитие с выпуском дешёвых 100-долларовых планшетов.
В мире Android-устройств в то время безраздельно правил Имбирный Хлебушек aka Gingerbread (2.3), и эта версия была исключительно для смартфонов, а для планшетов предусматривалсь свой Honeycomb. А версии великого объединения Android 4.х, появившейся в 2011 году, ещё предстояло завоевать своих пользователей.
История появления различных версий Android (Источник)
990x.top
Всем салют ребята. Сегодня разговор будет о программе eReader Prestigio, которую вы можете заметить на Андроиде. Эта прога, судя по названию, является фирменной прогой от компании Prestigio, а судя по слову eReader, то она что-то считывает или при помощи нее можно что-то читать, короче read это переводится как читать.
Все как я и думал. eReader Prestigio это приложение для чтения электронных книг, которые могут быть в таких форматах как: FB2 (и FB2.ZIP), ePub (и ePub3 с видео и аудио), PDF, DJVU, MOBI, PDF, HTML, DOC, RTF, TXT. Также есть поддержка MP3, AAC, M4B и использование синтезатора для чтения книг вслух (TTS). Ну что я могу сказать. Приложение вроде ништяковое, многое что поддерживает, даже аудио форматы. Короче eReader Prestigio это читалка, что тут еще сказать =)
Вот еще читаю, что в eReader Prestigio предоставляется около 50 000 книг, и все они на разных языках, ну и конечно не все так просто.. Только примерно 5000 книг являются бесплатными, все остальное стоит денежек. Хотя я вот нашел такую картинку и тут сказано, ну вроде сказано, что книг всего более 620 000 на 22-х разных языках, ну смотрите сами:
Ну нехило, согласен… Чему верить не знаю, но думаю что цифра 50 000 это устаревшие данные, ну это мне так кажется просто…
Для того чтобы пользоваться eReader Prestigio, то нужно создать свою учетку, она называется My Prestigio. После этого будет доступна синхронизация номера страницы, короче если вы читали и остановились на десятой странице к примеру, то потом на другом устройстве Prestigio, если вы войдете в учетную запись My Prestigio, то сможете продолжить чтение именно с той страницы, где остановились. Блин, ну надеюсь понятно, а то немного закручено написал.
Для того чтобы загружать бесплатные книги из eReader Prestigio Store, то также необходима учетная запись My Prestigio. Ну а покупать книги можно используя PayPal, Skrill и My Prestigio Vouchers, хотя честно говоря я этим всем никогда не пользовался..
Что я еще могу сказать о eReader Prestigio? Судя по официальному описанию в Плей Маркете, то навигация в этом приложении выполнена удобно, стильный дизайн и все такое. Есть какой-то кабинет, где будут отображены ваши покупки, даже списки желаний есть, ссылки на скачивание книг, настройки учетки, содержание корзины покупок.. Также есть в проге коллекция книг, там будут ваши книги, их можно отсортировать по всяким параметрам, там типа жанр, автор и вот даже по частоте чтения (а вот это вообще думаю полезная фишка). В проге есть и магазин, ну я думаю не стоит ничего описывать и так понятно зачем он нужен. Есть и файловый менеджер, там можно понять на каком устройстве какая книга лежит, также тут есть поддержка облачных хранилищ, правда каких именно, то не указывается =(
В приложении есть какое-то боковое меню, вот читаю что оно мега удобное и там есть быстрый доступ ко всему необходимому функционалу =)
Еще есть в проге какой-то супер мега интеллектуальный поиск книг на устройстве.
Так, немного разобрались. Выяснили что это читалка. Теперь давайте посмотрим на визуальную составляющую. Ну вот вроде так выглядит eReader Prestigio:
Книжечки очень приятно смотрятся, так и хочется почитать их. А вот тут мы видим файлы и что каждый тип файла имеет свое оформление и все как-то действительно удобненько запилено:
Блин, это тут не просто файлы! Это облако Google Drive, то есть прога поддерживает работу с этим облаком, а это между прочим суперский момент. О, еще вижу что есть поддержка OneDrive, это облако от Microsoft, оно мне нравится меньше чем Google Drive…
При чтении можно мутить такие мутки полезные:
Ну а вот настройки чтения, тоже вижу удобняк:
Ребята, а вот супер-функционал, короче текст выделяете и потом оно проговаривает вслух (TTS):
А вот это типа и есть боковое меню:
Вот страница самой книги, тут есть ценник, описание вроде, кто автор, ну и еще какая-то инфа, смотрите:
Вот приложение на планшете, все тут удобно расположено:
Еще одна картинка по поводу того как смотрятся книги, ну это прям как бы библиотека (хотя вообще напомнило реальный книжный магазин):
А вот на этой картинке мы уже видим, что приложение поддерживает облачный сервис хранения данных Dropbox:
Скажу так, Dropbox это качественное облако как и Google Drive, уж поверьте мне =) Кстати на этой картинке также видим, что прога работает и с SD картами памяти.
Вот еще картинка, в принципе тут ничего нового, просто тут приложение на планшете как бэ ну и вот так оно смотрится:
А вот на этой картинке вроде как идет воспроизведение аудио-файла:
Вот здесь видно, что можно читать какие-то уникальные книги, где есть и аудио и видео (я такого вообще нигде не встречал):
Ну и последняя картинка, вот ребята как выглядит магазин в eReader Prestigio на планшете:
Ребята, ну вот мы немного и разобрались с тем что такое eReader Prestigio. Надеюсь что вам было понятно тут все, если я что-то не так написал или что-то забыл, то прошу простить мне эту ошибку.. Желаю вам удачи и наилучшего настроения, пока!
Как создавалась читалка: извилистый путь наверх
Первые шаги: аутсорс разработка или когда всё идёт не по плану
К сожалению, большой проблемой оказалось отсутствия опыта, как в части дизайна интерфейса, так и программирования под Android. В воздухе витали только идеи, поэтому, чтобы переложить их в реальный продукт, в компании Prestigio решили нанять стороннюю команду разработчиков, которая позволила бы, как тогда казалось, максимально упростить процесс создания приложения, а также минимизировать затраты на разработку.
И вполне естественно, что выбор пал на команду, у которой уже был достаточный опыт – команду FB Reader. В течение полугода был разработан концепт-дизайн, нарисованы и прописаны основные блоки приложения, а также добавлена та самая «книжная полка
«. И к осени 2012 года на свет появился eReader Prestigio версии 1.0, который изначально был доступен только для планшетов Prestigio (в качестве предустановленной версии), ведь разрабатывалась читалка в качестве встроенной библиотеки.
В чём-то eReader Prestigio и FB Reader были как две капли воды похожи
Но были и характерные отличия в дизайне и функциональности: например, у FB Reader отсутствует «
книжная полка» как таковая, изменён файловый менеджер
К сожалению, к концу 2012 года из-за высокой стоимости разработки для такого локального продукта, контакты с командой FB Reader были разорваны, а написанный к тому времени код был реквизирован. Вторая попытка отдать проект на аутсор в равной мере обернулась фиаско, хотя и была выпущена вторая версия приложения с добавлением нового функционала и опций, но подробнее об этом чуть ниже. В конечном итоге пришлось искать внутренние возможности для продолжения работ над приложением.
Дорогой урок:
аутсорс разработка, кончено, имеет свои достоинства (например, если требуется создать приложение и забыть про него в плане поддержки и обновлений), но и не лишена существенных недостатков. Недостаточная мотивация самого аутсорс разработчика или группы разработчиков, работающих за фиксированную, зачастую почасовую оплату, и затягивание сроков сдачи проекта. Заказчику необходимо проработать проект, отдаваемый на аутсорс, до мельчайших деталей, ибо игра в «пинг-понг» может обойтись и наверняка обойдётся слишком дорого.
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.
Существенное различие: программное перелистывание с настройкой «принудительное ускорение графики» (слева) и реализованное на openGL (справа) для FullHD дисплея
Конечно же, не обошлось без эксцессов. Так некоторые фирмы-производители устройств (не будем показывать пальцем), заявляли поддержку OpenGL2, хотя на самом деле чипсеты не имели такой поддержки, что приводило просто к пустым страницам во время чтения. Тогда как другие производители неверно рассчитывали и указывали в прошивках разрешение экрана, которое автоматически считывается при отрисовке интерфейса, что так же сказывалось на отображаемой картинке:
Смешные баги, из-за неверных данных, заложенных производителем в прошивку
Рабочие моменты: желания пользователей – благо или вред?!
Однажды с командой разработчиков приключилась преинтереснейшая история. Специально организованный опрос общественного мнения показал, что настройками чтения (размер и тип шрифта, подсветка и так далее) пользуется не так уж много пользователей и большинство из них высказались за замену развёрнутых настроек до пары основных кнопок. Что ж, желание пользователей – закон: сделали и выпустили новую версию приложения. Впоследствие оказалось, что подавляющее большинство пользователей решило проигнорировать данный опрос, при этом наградив приложение гневными отзывами уже после реализации новых настроек чтения. Пришлось как можно скорее переделывать обратно и разделить настройки на две группы основные: те, которыми могло бы без труда пользоваться большинство пользователей, и продвинутые опции для того, кто любит тщательно настраивать отображаемый текст на экране:
Теперь опции настройки текста разделены на основные, выскакивающие сразу, и дополнительные
Аналогичная ситуация произошла и с бэкграундом, картинкой, которую видит пользователь при чтении. Аудитория разделилась на два лагеря: тех, кто хочет пресеты, то есть предустановленные цвета фона, и тех, кто желает видеть полноценную цветовую гамму с тонкой настройкой цвета. Пока победила версия с колёсиком гаммы, но мы обязательно добавим и несколько наиболее популярных пресетов в будущих версиях.
Мораль сей басни такова:
любой опрос показывает мнение только активной части аудитории, за которой может скрываться гораздо более значимая масса людей. Им просто хочется пользоваться любимым приложением, и они очень тяжело переносят радикальные перемены.
Новые процессоры от Intel на базе x86 архитектуры: кошмары разработчиков
Год 2014 ознаменовался релизом новых процессоров от компании Intel на базе архитектуры x86, которые очень быстро начали захватывать рынок, хотя «прототипы» устройств были доступны ещё с 2012 года. Мало кто тогда думал, что это потребует нечеловеческих усилий от разработчиков, ведь смена архитектуры без соответствующих средств переноса с платформы на платформу фактически означает написание нового приложения под новую архитектуру.
Компания Intel даже проводила мастер-классы, призывая активно разрабатывать под платформу x86 (и даже на Хабре). Однако вскоре после успешного запуска и некоторого шокового состояния, гиганты Google и Intel договорились и выпустили специальный компилятор для кросс-архитектурного создания приложений (обзор в блоге Intel).