Лайфхакер
Лайфхакер
Лучшее
Рубрики
Рецепты
Подкасты
Сервисы
Колонки
Лучшее
Рубрики
Рецепты
Подкасты
Сервисы
Колонки
🧡 Осень в радость
Новости
Здоровье
Спорт и фитнес
Покупки
Технологии
Отношения
Кино
Реклама
МакрадарТехнологии
10 сентября 2010

Интервью с разработчиками exLibris

Фото автора Konstantin Klimov
Konstantin Klimov

Интервью с разработчиками exLibris

Экслибрис — книжный знак с именем или эмблемой владельца книги и информацией о составе его библиотеки. Столь интересное название своему приложению дала молодая команда разработчиков из Ростова-на-Дону. Программа exLibris это читалка книг в формате EPUB с функцией загрузки произведений через iTunes, с помощью электронной почты или через web-бразуер Safari.

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

Вчера в AppStore появилась новая версия exLibris. Наряду с некоторыми исправлениями, возможности ридера приросли опцией отключения сглаживания текста и расстановкой переносов для русского и английского языков. Воспользовавшись этим поводом, мы решили задать несколько вопросов создателям exLibris Михаилу Любимову и Алексею Гребенец.

Михаил, Алексей, что привело вас на платформу Mac, какие продукты Apple вы используете в повседневной жизни и работе? 

Михаил:

На Mac OS я пришёл достаточно витиеватым для программиста путём. Сначала моими инструментами были Windows и платформа .NET, после этого Perl и Linux. Два года назад директор нашей компании “Точка Кипения” предложил мне попробовать писать приложения под новую на тот момент платформу iPhoneOS. Естественно я не отказался :). С тех пор более интересного для себя направления я не нашёл. В качестве рабочей и домашней машины использую MacBook, которого вполне хватает для моих задач. Из мобильных устройств — пожалуй всю линейку iPhone и iPad Wi-Fi.

Алексей:

Мне по этому вопросу сказать нечего. Начал разрабатывать больше по воле случая =)

Когда iPad попал в мои руки, на меня самое сильное впечатление оказали три приложения: Weather HD, Alice и конечно iBooks. Назовите наиболее интересные программы, за счет которых iPad может “обыграть” любые устройства подобного рода, тот же Galaxy Tab от Samsung? 

Михаил:

Хотя я и не умею играть на музыкальных инструментах, первым iPad приложением, которое меня поразило, стало Magic Piano — весьма интересная реализация пианино, полностью раскрывающая мультитач возможности устройства. Из игр — это Angry Birds и Plants vs. Zombies. Что касается сравнений iPad c другими аналогичными по формату устройствами, я считаю это не совсем корректным. Каждое из подобных устройств имеет свою нишу на рынке.

Алексей:

Реально сложно говорить об этом не представляя себе как выглядит Galaxy Tab. А вообще сильный эффект был только от того что это “бальшой айфон”.

Как возникла идея разработки приложений для AppStore? Каковы ваши роли в проекте и кто участвовал в нем помимо вас? 

Михаил:

Учитывая, что в проекте нас всего двое, (да ещё и оба программисты) жёсткого распределения ролей нет. Есть задачи, которые более профильны для меня, и есть для Алексея. Все работы касающиеся серверной части приложения выполнены веб-программистами “Точки Кипения”. С дизайном нам помог Роман Мартиросян, за что ему большое спасибо! Идея назвать приложение exLibris пришла как раз от него.

Есть ли у вас еще приложения, помимо exLibris, уже выпущенные для мобильных устройств? 

Михаил:

Из уже выпущенных наиболее заметным было моё первое приложение iProbki, которое достаточно долго держалось в топе приложений русского AppStore и серия приложений литературного проекта “Этногенез” последние версии которого мы выпускали уже вместе с Алексеем.

Насколько сложно было начать работать с Objective C? С какими проблемами вы столкнулись на этапе разработки?

Михаил:

Особых проблем при знакомстве с Objective C не было. Язык достаточно прост для знающих основы C и понимающих принципы ООП. Сложности появляются при углублении в фреймворки идущие в составе iPhone SDK. Как обычно это бывает: 80% проекта выполняется за 20% времени. Остальное время — война за оптимизацию кода и борьбу с багами нижестоящих компонент. Отдельной трудностью также можно назвать поддержку обоих платформ iPhone и iPad, в частности самого слабого из устройств — iPhone 3G.

Алексей:

Сам язык Objective‑C очень простой по сравнению с С и С++. Вся информация относящаяся к различиям между С и Objective‑C помещается в одну wiki страничку, причем вам даже не нужно хорошо знать С, так как большинство возможностей языка С можно не использовать вообще. В Objective‑C нет таких проблем с управлением памяти как в C и нет сложностей с шаблонами как в С++. В целом это хороший современный язык, который можно смело ставить в один ряд с такими языками как Java или C#.

Там есть и свои сложности, в основном они относятся к стандартным библиотекам. Достаточно плохая документация (например некоторые функции могут возвращать только код ошибки, не сообщая ничего о её причине, причем описание такой ошибки часто не получается найти ни в документации, ни даже в гугле), часто неочевидные названия методов (например для того чтобы найти вхождение подстроки в строку вам потребуется использовать метод rangeOfString:, хотя название содержащее слово find было бы привычнее), сложность в модификации стандартного поведения некоторых компонент (некоторые вещи которые, казалось бы, должны делаться просто, доставляют много головной боли — например много усилий вы потратите если попытаетесь обвести компоненту UITextView рамкой).

Как возникла идея создать ридер для довольно заполненной ниши в AppStore? Возможен ли доход от приложения такого рода или это лишь проба собственных сил и возможностей? 

Михаил:

Когда стало понятно, что эволюция читалки для Этногенеза упёрлась в исходный формат книги, стали выбирать из уже имеющихся и наиболее распространённых форматов. Каждый из них имел свои минусы и ограничения, поэтому выбрали EPUB, как наиболее открытый и мощный, на наш взгляд, в плане возможностей форматирования книги.

Ридеров в AppStore на самом деле не так уж и много. А для действительно качественных вообще хватит пальцев одной руки. Мы решили попытаться пополнить этот список своим приложением. Естественно кроме бесплатной версии читалки мы заинтересованы выпустить и платные (либо с платным контентом) приложения на базе созданного движка. Для этого сейчас мы ищем партнёров, желающих продавать свой контент (книги, журналы или любые схожие по формату публикации).

Алексей:

Идея была всегда. Первая читалка была реализована в приложении “Маруся”, читала разбитый на файлы plain text и умела только переходить по оглавлению (это было задолго до появления ibooks). Постепенно эта читалка улучшалась, пока в один прекрасный день не было принято решение попробовать перейти на отображение epub. Попробовали, получилось.

Доход от данного приложения конечно возможен, так как многим нужен движок для чтения книг. Ридер — это всего лишь возможность обкатать движок и подготовить его к интеграции в другие приложения.

Именно поэтому ридер бесплатен. Это всего лишь испытательный полигон =)

Приложения других разработчиков изучали долго и кропотливо. Смотрели на те функции, которые были в каждом из них (stanza, amazon, booq, ibooks, kobo, freebooks, i2reader и другие), смотрели на интерфейсы и отзывы. В некотором роде exLibris — это компиляции всего наиболее полезного из других читалок =)

IMG_0228.jpg

На чем было сосредоточено основное внимание при создании exLibris?

Михаил:

Основное внимание, конечно же, сконцентрировано на удобстве пользования приложением, стабильности и максимальной поддержке формата. Сейчас, когда вышла уже вторая версия приложения, мы постоянно обрабатываем все приходящие нам отчёты о проблемах в приложении и отзывы пользователей. В новой версии появится возможность написать нам отзыв изнутри приложения и прислать книгу, которая, по мнению читателя, имеет проблемы при отображении в exLibris. Таким образом мы планируем совершенствовать продукт исходя из мнений пользователей. Ну и конечно в самых ближайших планах плотно заняться дизайном и юзабилити интерфейса.

IMG_0234.jpg

Алексей:

Было 3 больших проблемы — парсинг epub’a (основные сложности связаны с парсингом css), отображение текста на плоскости (здесь сложности связаны с разбивкой элементов на страницы) и память. Памяти приложению не хватало всегда, и это ужасно замедляло процесс разработки.

С парсингом epub’a все сложно — дело в том, что стандарта структуры epub файла как такового не существует. Есть то, как делает большинство, но, тем не менее, часто можно встретить книги, где стили css не вынесены в отдельный файл и вставлены в заголовок каждой xhtml страницы, или книги в которых в принципе нет файла оглавления, или книги в которых весь текст (очень большой!) засунут в один файл.

Поэтому тут пришлось идти на компромисс, устанавливая список случаев когда читалка просто не будет открывать книги. Ну и конечно были сложности с парсингом css — поддерживать весь стандарт css — это очень сложная задача, пришлось выбрать только небольшое подмножество стилей.

Отображение текста на плоскости также вызывало затруднения. Дело в том, что единственная библиотека для рисования текста CoreText, во-первых, достаточно глючная, а, во-вторых, не позволяет сделать много необходимых вещей (например, не позволяет делать отступ влево от правого края). Поэтому несмотря на то, что в итоге CoreText лег в основу приложения, впоследствии многие его функции были заменены своими, более стабильными и обладающими расширенной функциональностью.

Проблемы с нехваткой памяти начались наверно ещё до первого запуска (точнее первый запуск на устройстве не удался именно по причине нехватки памяти). Особенно ужасно дела обстоят на iPhone 3g. Невозможно держать в памяти разбитую на страницы книгу целиком (выбрасывается все кроме текущей главы), невозможно держать в памяти текст глав (а это значит, что сложнее осуществлять поиск). Экономить приходится буквально на всем. На текстурах, на текстовой информации, на вспомогательных контроллерах.

На данном этапе именно проблемы с памятью остаются самыми важными.

Каким образом был реализован 3d эффект для перелистывания страниц?

Алексей:

Технически, это действительно 3d эффект, реализованный с помощью openGL. Однако если присмотреться, то вы поймете, что 3d там нет =) На самом деле страница просто загибается так, …

Михаил:

Интересно, что большинство из тех, кто пытается реализовать подобный эффект в OpenGL начинают воплощать его в “полном 3D”. Мы пошли другим путём и обошлись без него. Если с первого взгляда получившийся эффект кажется естественным, то мы добились поставленной задачи и не будем портить магию объяснением её технической реализации :)

IMG_0235.jpg

Имеются ли в дальнейшем планы в отношении рынка AppStore, уже есть идеи по его завоеванию? :)

Михаил:

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

Алексей:

Планов полно. Жаль что в сутках только 24 часа.

Спасибо Михаилу и Алексею за интересные и весьма содержательные ответы на наши вопросы. Пожелаем им удачи и новых идей!

Страница приложения exLibris для iPad и iPhone (free)

Домашняя страница проекта exLibris.

Если нашли ошибку, выделите текст и нажмите Ctrl + Enter

Лучшие предложения

Что умеет фен от Dreame: разбор умной новинки в премиальном стиле

Что умеет фен от Dreame: разбор умной новинки в премиальном стиле

10 muzhskih krossovok ot populyarnyh brendov so skidkami do 59%

10 мужских кроссовок от популярных брендов со скидками до 59%

Это нам надо: популярная сыворотка с ретинолом и микроиглами со скидкой 20%

Это нам надо: популярная сыворотка с ретинолом и микроиглами со скидкой 20%

Надо брать: ударная дрель от Heimerdinger со скидкой 70%

Надо брать: ударная дрель от Heimerdinger со скидкой 70%

18 nadyozhnyh smesitelej, kotorye chasto pokupayut na marketplejsah

18 надёжных смесителей, которые часто покупают на маркетплейсах

10 вещей популярных брендов со скидками до 65%

10 вещей популярных брендов со скидками до 65%

Надо брать: робот-пылесос Roborock S8 со скидкой 69%

Надо брать: робот-пылесос Roborock S8 со скидкой 69%

15 otlichnyh tovarov, kotorye otdayut so skidkami do 70% na AliExpress

15 отличных товаров, которые отдают со скидками до 70% на AliExpress

Это интересно
Шерсть из каждого угла: 6 важных правил уборки для хозяев котиков 

Шерсть из каждого угла: 6 важных правил уборки для хозяев котиков 

Что-то на богатом. Как заработать на инвестициях, если не хочется следить за всеми новостями финансового рынка

Что-то на богатом. Как заработать на инвестициях, если не хочется следить за всеми новостями финансового рынка

Пазл жизни: что нужно знать о донорстве костного мозга

Пазл жизни: что нужно знать о донорстве костного мозга

Учителя, которых мы запомнили на всю жизнь: истории редакции

Учителя, которых мы запомнили на всю жизнь: истории редакции

Комментарии
Paul Dmitryev
10.09.10 13:30
судя по скринам - замечательная программа, жаль только минимум 3.2 iOS требует.
Anonymous
11.09.10 11:36
А почему жаль?
Anonymous
11.09.10 11:39
Кстати, 3.2 - это версия для iPad. Пока что единственная.
Михаил Любимов
11.09.10 13:45
Это приложение работает на обоих платформах iPhone и iPad. Исключением является iPhone2G, на который iOS 4 не ставится.
Что вы могли пропустить
12 игр для Android, в которые можно играть вдвоём на одном смартфоне
12 игр для Android, в которые можно играть вдвоём на одном смартфоне
0
13:00
Android
Android
Какой принтер лучше — струйный или лазерный
Какой принтер лучше — струйный или лазерный
0
Вчера
Ликбез
Устройства
ZTE представила игровые смартфоны Red Magic 11 Pro — впервые с жидкостным охлаждением
ZTE представила игровые смартфоны Red Magic 11 Pro — впервые с жидкостным охлаждением
0
Вчера
Новости
Устройства
Репетитор, повар, стилист: 20 кастомных чат-ботов для ChatGPT на все случаи жизни
Репетитор, повар, стилист: 20 кастомных чат-ботов для ChatGPT на все случаи жизни
0
Вчера
Технологии
Технологии
Apple планирует выпустить складной iPhone с широким экраном, похожий на Huawei Pura X
Apple планирует выпустить складной iPhone с широким экраном, похожий на Huawei Pura X
0
Вчера
Новости
Устройства
Microsoft перепишет всю операционную систему Windows «вокруг ИИ»
Microsoft перепишет всю операционную систему Windows «вокруг ИИ»
0
16 октября
Windows
Новости
10 лёгких и функциональных альтернатив встроенным приложениям Windows
10 лёгких и функциональных альтернатив встроенным приложениям Windows
0
16 октября
Windows
Windows
Honor показала Robot Phone — это смартфон с камерой на подвесе, который сам познаёт мир
Honor показала Robot Phone — это смартфон с камерой на подвесе, который сам познаёт мир
0
16 октября
Новости
Устройства
Honor показала флагманы Magic 8 и Magic 8 Pro — оба стали компактнее предшественников
Honor показала флагманы Magic 8 и Magic 8 Pro — оба стали компактнее предшественников
0
15 октября
Новости
Устройства
Apple представила новые iPad Pro и MacBook Pro с процессорами М5
Apple представила новые iPad Pro и MacBook Pro с процессорами М5
0
15 октября
Новости
Устройства
5 типичных ошибок при выборе смартфона, которые заставляют зря тратить деньги
5 типичных ошибок при выборе смартфона, которые заставляют зря тратить деньги
0
15 октября
Устройства
Устройства
ИИ-редактор изображений Nano Banana появится в Google-поиске и «Google Фото» 
ИИ-редактор изображений Nano Banana появится в Google-поиске и «Google Фото» 
0
15 октября
Новости
Технологии
Ролевые игры с ИИ: OpenAI разрешит ChatGPT вести эротические беседы
Ролевые игры с ИИ: OpenAI разрешит ChatGPT вести эротические беседы
0
15 октября
Новости
Технологии
Объясняем за минуту: можно ли открывать окно при включённом увлажнителе воздуха
Объясняем за минуту: можно ли открывать окно при включённом увлажнителе воздуха
0
14 октября
Технологии
Технологии
Motorola представила ультратонкий смартфон Moto X70 Air — ответ iPhone Air и Galaxy S25 Edge
Motorola представила ультратонкий смартфон Moto X70 Air — ответ iPhone Air и Galaxy S25 Edge
0
14 октября
Новости
Устройства

Новые комментарии

Аватар автора комментария
Eduard Selskiy8 минут назад

0 / 0

В бедное советское время добавляли варёную колбасу вместо рябчика, морковку вместо раковых шеек. Попробуйте использовать мясо курицы, индейки, даже говядину и конечно раковые шейки, креветки или мясо краба. Времена изменились и можно это себе позволить. Приятного аппетита.
Оливье с крабовыми палочками
Аватар автора комментария
Anastasia Ivanova14 минут назад

0 / 0

Хотела спросить если использовать муку рисовую не клейкую, результат будет совершенно другим, и по поводу тофу, использование питьевого натурального йогурта возможно?
Японские моти-пончики
Аватар автора комментария
Родион Губила1 час назад

0 / 0

Мультфильм «История игрушек». Особенно 3-я часть, где владелец игрушек повзрослел. Во время релиза душу рвал будь здоров.
10 фильмов, напоминающих взрослым, что можно оставаться детьми
Аватар автора комментария
Mike1 час назад

0 / 0

Все это травмы из сурового советского детства... Не люблю супы любые и каши. Все остальное (если без молока), вполне ОК. Даже печеночный торт.
15 блюд, к которым мы привыкли, но вообще-то они странные
Эксперты рассказали о пользе киберспорта для детей

Эксперты рассказали о пользе киберспорта для детей

Лайфхакер
Информация
О проектеРубрикиРекламаРедакцияВакансииДля начинающих авторов
Подписка
TelegramВКонтактеTwitterViberYouTubeИнициалRSS
Правила
Пользовательское соглашениеПолитика обработки персональных данныхПравила применения рекомендательных технологийПравила сообществаСогласие на обработку персональных данныхСогласие для рекламных рассылокСогласие для информационной программы
18+Копирование материалов запрещено.
Издание может получать комиссию от покупки товаров, представленных в публикациях