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

Как начать заниматься спортом, если вы живёте в небольшом городе: 5 простых и доступных способов

3 места в доме, которые часто захламляются 

3 места в доме, которые часто захламляются 

Как это сделать: разъехаться с партнёром после расставания

Как это сделать: разъехаться с партнёром после расставания

Путешествие начинается до взлёта! Как провести время до посадки с комфортом

Путешествие начинается до взлёта! Как провести время до посадки с комфортом

Комментарии
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 не ставится.
Что вы могли пропустить
Сколько розеток должно быть на кухне и где их лучше разместить
Сколько розеток должно быть на кухне и где их лучше разместить
0
18:00
Ликбез
Технологии
Samsung выпустила смартфон Galaxy S26 FE — уже известны российские цены
Samsung выпустила смартфон Galaxy S26 FE — уже известны российские цены
0
16:10
Новости
Устройства
Xiaomi представила смартфон Redmi Note 17 Pro Max с трёхдневной автономностью
Xiaomi представила смартфон Redmi Note 17 Pro Max с трёхдневной автономностью
0
15:10
Новости
Устройства
Как скачать видео с Rutube на любое устройство в 2026 году
Как скачать видео с Rutube на любое устройство в 2026 году
0
10:00
Ликбез
Технологии
Apple анонсировала презентацию iPhone 18 в сентябре
Apple анонсировала презентацию iPhone 18 в сентябре
0
Вчера
Новости
Технологии
Мессенджер WB Chat от Wildberries теперь доступен всем пользователям
Мессенджер WB Chat от Wildberries теперь доступен всем пользователям
0
Вчера
Новости
Технологии
Влагозащита и месяц без зарядки: PocketBook показала ридер Q в формате смартфона
Влагозащита и месяц без зарядки: PocketBook показала ридер Q в формате смартфона
0
Вчера
Новости
Устройства
Telegram выпустил большое обновление к 13-летию мессенджера
Telegram выпустил большое обновление к 13-летию мессенджера
0
Вчера
Новости
Технологии
12 лучших нейросетей для генерации изображений с нуля в 2026 году
12 лучших нейросетей для генерации изображений с нуля в 2026 году
0
Вчера
Ликбез
Технологии
Honor показала доступный смартфон Play20A с двумя экранами, как у Xiaomi 17 Pro
Honor показала доступный смартфон Play20A с двумя экранами, как у Xiaomi 17 Pro
0
25 августа
Новости
Устройства
Последний шанс: 15 устройств Xiaomi со скидками на завершающейся распродаже AliExpress
Последний шанс: 15 устройств Xiaomi со скидками на завершающейся распродаже AliExpress
0
25 августа
Покупки
Устройства
В «Яндекс Музыке» появились персональные итоги лета
В «Яндекс Музыке» появились персональные итоги лета
0
25 августа
Новости
Технологии
Casio выпустила новые часы G‑Shock с пульсометром и гибридной зарядкой
Casio выпустила новые часы G‑Shock с пульсометром и гибридной зарядкой
0
25 августа
Новости
Устройства
Смартфон iPhone Ultra понравился первым пользователям, но у него есть недостатки
Смартфон iPhone Ultra понравился первым пользователям, но у него есть недостатки
0
25 августа
Новости
Устройства
12 гаджетов по лучшим ценам на большой распродаже AliExpress — наш топ
12 гаджетов по лучшим ценам на большой распродаже AliExpress — наш топ
0
24 августа
Покупки
Устройства

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

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

0 / 0

Видимо то, что она мало ела. Зажиточная анарексичка :)
Археологи разгадали тайну молодой «вампирши» XVII века из Польши
Аватар автора комментария
Kompozitsia Osoznanno6 часов назад

0 / 0

Ну камон. Через сто с лишним лет существования цветного офсета давайте удивите нас оптическим смешением цветов))
Иллюзия Манкера-Уайта: разноцветные круги, которые на самом деле одного цвета
Аватар автора комментария
Bul'ba6 часов назад

0 / 0

Один вопрос: какого (неприличное слово) вы используете для "простого" объяснения довольно узкоспециализированные слова, формулировки и обозначения. Modulo, "оператор остатка при делении". При этом вы где-то объясняете, а где-то "Ну это же знают даже дети.". Например: "Оператор «/» означает неполное частное, то есть целую часть результата деления.". Ну напишите вы: "Код года = остаток от деления (6 + последние две цифры года + целая часть от деления последних двух цифр года на 4) на 7." И если вы уж такие молодцы и оставили, пусть всё ещё нихрена не понятное, объяснение "%7", то продублируйте его там где это встретиться. Я не знаю, есть ли у вас редактор, мне кажеться нет, не знаю пишет ли все статьи один человек, но эта статья выглядит как очень неудачная попытка пересказать технический справочник ребёнку. Причем пересказывает технарь с "питоном головного мозга" и полным отсутствием социальных навыков, который обычно говорит зубодробительными формулами вышмата. Прошу прощения, если это слишком грубо.
Как определить день недели по дате, не заглядывая в календарь
Аватар автора комментария
Iceland Radio6 часов назад

0 / 0

Вскрытие показало что потерпевший умер от вскрытия :))
Археологи разгадали тайну молодой «вампирши» XVII века из Польши
Поваренная книга донора. 15 простых и полезных рецептов, которые поддержат организм до и после сдачи крови

Поваренная книга донора. 15 простых и полезных рецептов, которые поддержат организм до и после сдачи крови

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