Лайфхакер
Лайфхакер
Лучшее
Рубрики
Рецепты
Подкасты
Сервисы
Колонки
Лучшее
Рубрики
Рецепты
Подкасты
Сервисы
Колонки
Выгодные покупки
Новости
Здоровье
Спорт и фитнес
Покупки
Технологии
Отношения
Кино
Реклама
МакрадарТехнологии
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

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

15 idej original'nyh podarkov na Novyj god

15 идей оригинальных подарков на Новый год

Realme 15 Pro

11 лучших скидок на смартфоны с распродажи 11.11 на AliExpress

Настолько хорошие куртки и плащи, что про них пишут в отзывах целые книги

Настолько хорошие куртки и плащи, что про них пишут в отзывах целые книги

Chto podarit' muzhchine na Novyj god: 120 interesnyh idej

Что подарить мужчине на Новый год: 120 интересных идей

Chto komanda Lajfhakera pokupaet na rasprodazhe 11.11

Что команда Лайфхакера покупает на распродаже 11.11

Надо брать: мини-ПК с Intel Core i7 со скидкой 61%

Надо брать: мини-ПК с Intel Core i7 со скидкой 61%

Утеплённые кроссовки от Baasploa, которые не подведут зимой

Утеплённые кроссовки от Baasploa, которые не подведут зимой

Эти товары быстро расхватают 11.11: добавляйте в корзину сейчас, чтобы урвать

Эти товары быстро расхватают 11.11: добавляйте в корзину сейчас, чтобы урвать

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

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

От традиций к инновациям: 8 перспективных профессий современного сельского хозяйства

От традиций к инновациям: 8 перспективных профессий современного сельского хозяйства

Как выбрать тренера для ребёнка: 7 признаков классного профессионала 

Как выбрать тренера для ребёнка: 7 признаков классного профессионала 

Не просто плохое настроение: 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 не ставится.
Что вы могли пропустить
Samsung Galaxy S27 Ultra может получить уникальную систему распознавания лиц
Samsung Galaxy S27 Ultra может получить уникальную систему распознавания лиц
0
14:50
Новости
Устройства
11 лучших скидок на смартфоны с распродажи 11.11 на AliExpress
11 лучших скидок на смартфоны с распродажи 11.11 на AliExpress
0
13:00
Покупки
Устройства
В WhatsApp появится «экстремальный режим аккаунта» для защиты от мошенников
В WhatsApp появится «экстремальный режим аккаунта» для защиты от мошенников
0
11:10
Новости
Технологии
Складной iPhone станет первым смартфоном с подэкранной камерой на 24 Мп
Складной iPhone станет первым смартфоном с подэкранной камерой на 24 Мп
0
Вчера
Новости
Устройства
iPhone 18 Pro может получить прозрачную заднюю крышку, как у iMac конца 1990-х
iPhone 18 Pro может получить прозрачную заднюю крышку, как у iMac конца 1990-х
0
Вчера
Новости
Устройства
12 смартфонов Xiaomi получат HyperOS 3 на базе прошлогодней Android 15 — список
12 смартфонов Xiaomi получат HyperOS 3 на базе прошлогодней Android 15 — список
0
Вчера
Новости
Устройства
Альтернатива ноутбуку и планшету: представлен карманный ПК OmniOne 5.7 с сенсорным дисплеем
Альтернатива ноутбуку и планшету: представлен карманный ПК OmniOne 5.7 с сенсорным дисплеем
0
Вчера
Новости
Устройства
Moonshot AI представила Kimi K2-Thinking — бесплатную ИИ-модель, которая превосходит GPT-5
Moonshot AI представила Kimi K2-Thinking — бесплатную ИИ-модель, которая превосходит GPT-5
0
Вчера
Новости
Технологии
Black Shark выпустила игровые полноразмерные наушники Fengming S1 — 155 часов на одной зарядке
Black Shark выпустила игровые полноразмерные наушники Fengming S1 — 155 часов на одной зарядке
0
Вчера
Новости
Устройства
ИИ не оправдал ожиданий: компании начали нанимать уволенных сотрудников обратно
ИИ не оправдал ожиданий: компании начали нанимать уволенных сотрудников обратно
0
Вчера
Новости
Технологии
Россиянам будут блокировать мобильный интернет и СМС после роуминга — временно
Россиянам будут блокировать мобильный интернет и СМС после роуминга — временно
0
Вчера
Новости
Технологии
Увлажнитель, мойка и очиститель воздуха: в чём разница и что выбрать
Увлажнитель, мойка и очиститель воздуха: в чём разница и что выбрать
0
Вчера
Как выбрать
Устройства
Объясняем за минуту: можно ли заливать воду из-под крана в увлажнитель воздуха
Объясняем за минуту: можно ли заливать воду из-под крана в увлажнитель воздуха
0
6 ноября
Ликбез
Технологии
Кнопку остановки будильника в iOS 26.1 заменили на слайдер — но её можно вернуть
Кнопку остановки будильника в iOS 26.1 заменили на слайдер — но её можно вернуть
0
6 ноября
iOS
Новости
Samsung раскрыла информацию о линейке Galaxy S26 — они станут «революцией в ИИ»
Samsung раскрыла информацию о линейке Galaxy S26 — они станут «революцией в ИИ»
0
6 ноября
Новости
Устройства

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

Аватар автора комментария
Artem Kulpinsky1 час назад

0 / 0

Подборка отстоя. Статья написана ради написания, а не ради разбора реальных флагманов. Не рекомендую ориентироваться на эту чушь!
11 лучших смарт-приставок и медиаплееров для ТВ в 2025 году
Аватар автора комментария
Илья Петрашко1 час назад

0 / 0

Мыс страха, ну там правда ему не удалось закончить все в свою пользу, но все же. Законопослушный гражданин в целом такой же, все вроде шло по плану, но... И пожалуй 22 пули, вот там было отлично, все знали что умрут, только не знали когда это произойдет и всю жизнь боялись. А почему исчезнувшая про месть я честно говоря не понимаю, да есть какое то присутствие этой идеи, но мне кажется что он чуть более сложный, чем просто о мести в классическом представлении.
«Престиж», «Мементо» и «Олдбой»: Collider выбрал 10 величайших триллеров о мести
Аватар автора комментария
Мила Цимбал3 часа назад

0 / 0

Велосипедная, но кто запрещает носить ее в повседневной жизни? Ношу зимой утепленные велосипедные перчатки и очень довольна)
15 мелочей до 1 000 рублей, которые делают жизнь удобнее
Аватар автора комментария
Feya3 часа назад

0 / -1

Я очень люблю делать минет и радовать им своего партнёра. Оральные ласки как и всё остальное в постели между двумя взрослыми людьми, которые нравятся друг другу, вообще считаю они обязательно обоюдны. Потому что игра в одни ворота не дело. Я у тебя беру в рот а ты мне лизать не хочешь. Так не пойдёт! И естественно партнёр должен быть здоров и чистоплотен. Вот тогда оральные ласки просто кайф . Любви всем и качественного секса 🫶
Как сделать потрясающий минет: 8 советов от эксперта
Пазл жизни: что нужно знать о донорстве костного мозга

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

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