uBooks — читалка книг для iPhone

uBooks

Я не ошибусь, если скажу, что у большинства пользователей мобильных гаджетов (телефон/смартфон/кпк) есть приложение для чтения книг, не обделены ими и пользователи iPhone, и вот сегодня я хотел поделиться с читателями Хабра небольшой историей о разработке приложения uBooks — надеюсь, оно займет должное место среди ваших приложений.


Создание приложения


Работа над приложением началась давно – это наш самый первый большой проект под iphone-os. Было сделано много исследований, т.к. язык Objective-C был в новинку нашим девелоперам, которые переходили на него с других языков (С, С++ и др.). Поэтому, к сожалению, времени на создание приложения ушло очень много.

Но, по порядку. Самое большое и емкое – было создать экран чтения книги с элементами управления на нем. Сама технология перелистывания, которая должна была включать и различные варианты тап-зон, и возможность автопрокрутки текста – оказались очень трудоемкими. Кстати, об автопрокрутке – полностью плавной прокрутки на малой скорости добиться невозможно – попиксельная перепрорисовка текста все равно дает некую скачкообразность, поэтому минимальная скорость автопрокрутки нами была увеличена. Автоповорот экрана был также принудительно отключен – акселерометр у iphone очень чувствительный, и при чуть большем наклоне экрана происходил поворот текста, а это неудобно (особенно некомфортно, когда читаешь лежа – а текст вдруг начинает поворачиваться).

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

uBooks Screen 1uBooks Screen 2

uBooks Screen 3uBooks Screen 4

Вначале был разработан метод заливки книг в приложение через файловую систему iphone, т.е. с использованием сторонних браузеров. Но мы решили перестраховаться, и не дразнить цензоров apple этим фактом, чтобы не доказывать потом, что эти браузеры есть в appstore (тот же fileaid со ссылкой на diskaid). И тогда мы создали возможность заливки книг через wi-fi соединение, причем по двум протоколам: http и ftp. (Честно говоря, возможность подгружать книги через файловую систему осталась – достаточно перейти по такому пути — /var/mobile/Media/DCIM/uBooksLib :) ) В ближайшее время мы дополним варианты заливки, без использования wi-fi соединения.

Также в ближайшее время мы расширим поддерживаемые форматы книг – к существующим .fb2 и .txt добавится html, и потом будет что-то еще.

Итого, разработка и тестирование первой версии uBooks заняла несколько месяцев…

Возможно кому-то будет интересно узнать, что в нашем приложении мы использовали следующие библиотеки:
  • FTP(DiddyFtpServer) – для организации FTP сервера
  • Cocoahttpserver – HTTP сервер
  • FMDatabase – обертка над SQLite.


Штурм AppStore


На этапе утверждения в apple тамошние цензоры не обошлись без неприятного сюрприза для нас – вначале наше приложение было отвергнуто. Причина reject-а заключалась в том, что мы использовали несанкционированные типы анимации при перелистывании страниц – наши девелоперы решили сделать приятное пользователям и добавили к трем общедоступным анимациям еще 3, взятые из приватных фреймворков apple. Правда, к чести самих цензоров, должен сказать, что это рассмотрение не заняло 2 недели и более, а всего 9 дней (в другом нашем проекте цензоры рассматривали приложение 21 день, прежде чем указали, что в нем не так). Конечно, мы быстро удалили неподобающие элементы и перезалили бинарник. Еще через 10 дней наше приложение было доступно в appstore!

Лично я могу сделать вывод, что к теме читалок у apple более пристальное внимание, чем к ряду других (другое наше приложение – в теме travel), либо просто нам повезло и uBooks попал в руки более быстрого работника/работников apple.

Результат


Теперь любой из Вас может бесплатно (пока что) скачать наше приложение uBooks:
http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=331005526&mt=8

Если у Вас будут какие-то пожелания и предложения – мы с удовольствием их рассмотрим ;)

P.S. В действительности, я сомневался к какому топику больше подходит данная статья, так что не судите строго, если усмотрели в статье слишком много саморекламы
+42
1 октября 2009, 16:55
18

комментарии (79)

0
Demlock #
Радует, что не «айБукс», вот только «юБукс» — не очень благозвучно ;)
–1
akmute #
eBooks надо было сделать (или уже есть?)
0
Demlock #
Так оно так, еБукс, конечно, благозвучней :)
Но ебуками называют специальные читальные девайсы, электронные книги.
0
cst #
eBooka

По моему шикарно +)
–2
fanex #
На WinMobile есть читалка с очень похожим названием — uBook.

Кстати, u в начале — это по ходу µ (мю), по крайней мере так в µTorrent
–1
Demlock #
На симбиане все Ридерами зовутся. КуРидер, ЗэтИксРидер… :)
0
fanex #
Ну, не только на Симбиане: AlReader, Adobe Reader, Microsoft Reader, MobiPocket Reader ;)
+2
nett00n #
на WM ИМХО лучший — ALReader. Название в стиле сибияновые читалок, ага
0
fanex #
Я в курсе.
Я к нему когда-то иконки рисовал :)
–15
FLAKON #
читалка на яблочном телефоне! Ура товарищи! Ура! =)
–2
ivlis #
эээ, а что не было? O_O Сам видел народ, который с айфонов что-то читал.
–14
FLAKON #
ну это могла быть и интернет страничка, слава Яблокам интернет работает прекрасно!
0
ivlis #
нет, это была точно книжка, но может быть в html.
+9
folone #
Stanza.
+1
oisee #
это была рекурсивная шутка.
+8
Molfly #
А как же Stanza? Среди бесплатных ИМХО лучшая.
+7
sigizmund #
ShortBook уже очень-очень давно есть и я его использую каждый божий день. Тянет книги с либрусека ;)
0
svyatogor #
Аналогично, это была первая программа которую я купил в AppStore. Автору uBooks все равно респект — конкуренция это всегда хорошо.
0
sys #
это лучшая читалка из всех
бесплатная версия разрешает загрузку книг только с родного сайта
что обходится с пол пинка:
накидать в папку книжек, натравить туда апач
в телефоне прописать в /etc/hosts ххх.ххх.ххх.ххх www.shortki.com

даже как-то идея была сделать морду либрусека под айфон
0
Goodkat #
а я сперва proxomitron использовать, чтобы перенаправлять запросы c shortki.com на lib.rus.ec, но быстро надоело прописывать прокси в настройках телефона, и комп нужно было держать включенным, и в пути книжку не скачаешь — через пару дней купил
+3
iliar #
Проснись и пой. Читалок сейчас в AppStore вагон и маленькая тележка.
Из бесплатных:
iChitalka
uBooks (уже на втором месте в рейтинге бесплатных приложений)
Stanza
eRiader

Из платных:
ShortBook
i2Reader

и еще целая куча прог, которые мне даже было лень пробовать.
0
DaemonI #
Молодцы, радует, что приложение Free. Один вопрос:
> Работа над приложением началась давно – это наш самый первый большой проект под iphone-os.

Представьте команду.
+5
AntonShevchuk #
Компания NIX Solutions Ltd.
+10
sulla #
-нет глав
-нет номера страниц, только %
-нет коверов (обложки не загружаются, только превью) в fb2
-медленно открывает файлы
-столько рекламы я еще не видел. это просто песня, неужели появился безлимитный инет у всех?
-мало шрифтов, достаточно для простой работы но всётаки есть привычные )

-нет возможности сохранить книгу из телефона по http в комп

А так в целом для первого варианта неплохо даже очень.
0
AntonShevchuk #
Спасибо за конструктивные замечания.
Постараемся учесть их в следующих версиях.
0
Ingolmo #
картинки в fb2 видимо тоже не показывает?
0
AntonShevchuk #
картинки отображаются, а коверы — нет — они многих раздражают, возможно будут «опционально» отображаться, этот функционал завис в обсуждении…
+2
Njordy #
О_о Ткните пальцем в такого… нелюбителя обложек!..
0
ivlis #
Жесть ребята, вы не могли покрутить до этого haali reader и FBReader?
+3
nerezus #
Или хотя бы ShortBook.
0
NickyX3 #
Или PalmFiction на PalmOS, до сих пор надеюсь что хоть кто-то реализует все его фишки для iPhone, имхо лучшее что было вообще из всех читалок на всех PDA
0
Peyt #
А в платной версии тоже столько рекламы будет?

p.s. спасибо за программу, потестим намедни.
+1
Sundance #
В целом читалка удобная, спасибо.
Хорошо, что можно самому менять шрифт, цвета и т.д. — в первую очередь полез именно туда)
С пролистыванием и landscape тоже все ок.
Единственное, хотелось бы побольше форматов — doc и pdf например добавить, чтобы использовать приложение более функционально,
т.к. я например, читаю не только и не столько книги, сколько журналы, газеты и т.д.
Кроме этого, оставила очень приятно впечатление, на iphone оставлю.
+1
FLAKON #
Кстати, а чем вы руководствовались, когда придумывали свою програму!?
0
AntonShevchuk #
На момент старта разработки в AppStore не было бесплатных читалок, но разработка затянулась…
+2
Njordy #
Хммм, Stanza 1.3 (ранее просто не могу получить информацию) была доступна Aug / 27 / 2008
Вы работаете над uBooks уже больше года?
0
AntonShevchuk #
К сожалению, я не помню точной даты старта проекта, он то что мы на тот момент промониторили AppStore на предмет фришных и функциональных читалок — это точно, может Stanza была на тот момент в AppStore, да только нам показалась больно сырой и функционально куцой…
0
sovnarkom #
Нихренасебескажуясебе
+1
andrew_che #
Скачал. Установил.
До этого пользовался BookZ Reader — там тоже была реализована загрузка книг через вай-фай. То чего мне не хватает после перехода на яблоко-ось это текстуры в качестве фона.
И спасибо большое за работу!
+3
Molfly #
В Stanza тоже есть загрузка через Wi-Fi.
0
andrew_che #
Угу. Но есть еще и альтернативы — через браузер. Он полдхватывает сам файлы, но не архивы :( а тут только один способ загрузки реализован.
0
AntonShevchuk #
Для сохранения из браузера используйте путь /var/mobile/Media/DCIM/uBooksLib
0
andrew_che #
Спасибо )
И за прокрутку спасибо тоже е дико не хватало в той читалке которой я пользовался.
+2
Molfly #
За ночной режим спасибо! Чертовски удобно. Респект NIX Solutions Ltd.
+2
corp #
так и в станзе оно есть, еще и яркость можно быстро регулировать. или тут что то революционное придумали?
0
EaE #
Вы сделали с читалкой все, ВСЕ чего мне не хватало в Stanza. И картинки, и фиксированную ориентацию, и т.д. и т.п.

У меня официально новая читалка для айфона. Спасибо вам огромное за проделанную работу.

Могу только пожелать научиться поддерживать больше форматов. :)
0
dreik #
Ну, вообще-то в станзе есть фиксированная ориентация.
0
EaE #
да! и она — фиксированная вертикальная. no thanks.
0
dreik #
Попробуйте перевернуть iPhone в момент запуска приложения и получите Landscape fixed… Если бы всё было так как вы пишете, я бы уже удалил Станзу :)
0
EaE #
Да, конечно. Я знаю. И удивлен, что его не надо еще трясти, трижды притопнув ногой и плюнув через левое плечо. Stanza хорошая читалка, но я рад, что теперь я переживу без этого геморроя.
0
powerlexis #
Очень странно что она не работает на первом айподтаче (даже поставить нельзя). Пишет что нужен микрофон, зачем?
0
AntonShevchuk #
О_о — к сожалению, мы не тестировали на первой версии, постараемся выяснить причину столь странного бага, спасибо за баг-репорт…
0
Goodkat #
In America you listen to a music player
In Soviet Russia a music player listen to you
+1
MKay #
Перепробовала разные читалки.
Согласна, что до настоящего времени Stanza была самой удобной для чтения, а вот заливка книг у нее была реализована преотвратно. Теперь буду пользоваться uBooks. Пока все нравится.
Разработчикам — спасибо и ждем новых приложений.
+2
noma4i #
после подключения «сторонних» онлайн библиотек, другие читалки даже скачивать не хочется. Я уже и забыл, когда это руками заливал с компьютера книжу в айфон.

www.zone4iphone.ru/index.php?p_id=2
0
biglibowski #
Вы просто человечище!
Спасибо за линк ;)
+3
vasechka #
при первом же запуске грохнулось. при втором запуске опять же грохнулось.
при третьем краш не повторился. не стабильно как-то :)
0
MaEcTPo #
Приду домой — установлю, посмотрю.
Но сразу вопрос возник. А сколько оно будет стоить в будущем? Какая приблизительная цена?
0
AntonShevchuk #
Пока точно не решили, но скорее всего не больше, чем $1.99
Конечно, рекламы в платной версии не будет.
0
Etherial #
Вылетает при открытии запакованный zip'ом fb2. Со второго раза книжка уже показывается незапакованной, но все равно вылетает. И наконец с третьего раза открывает и работает нормально :)
Будем изучать дальше, пока нравится больше чем Stanza.
0
takobus #
Аналогично, первый файл в зипе — не удалось сконвертировать книгу. Следующие уже нормально.
Не хватает настройки полей, как в ShortBook.
За ручной поврот — спасибо.
0
AntonShevchuk #
А можно прислать на мыло AntonShevchuk@gmail.com эти файлы…
+2
vrmzar #
Субпиксельное сглаживание решает проблему медленного скроллирования.
0
ptiss #
кстати да, актуально — считайте снижение (а лучше регулирование) фичереквестом. Вот в AlReader под винмобайл — при автоскроллинге верхняя и нижняя тапзоны замедляли-ускоряли скроллинг.
в целом — отлично.
0
joedm #
Кнопка «Delete» (после жеста «зачёркивания») не переведена.
0
biglibowski #
Юзаю ShortBook и Станзу, вот будет еще и юБукс!
Замечательная программа. Молодцы:)
0
SantaClaus16 #
Ребят, обогнать Stanza очень не просто. Я сам ее использую год, и за это время так и не смог с нее слезть. Я скажу чего мне не хватает в Stanza и ради чего бы я перешел на uBooks.
1. Возможность скачивания fb2 через встроенный браузер (не работает в Stanza)
2. Поддержка epub библиотек (есть в stanza)
3. Полная и грамотная русификация
4. Дескопный мультиплатформеный клиент для закачки книг в iPhone (хотябы wifi и кстати есть у Stanza)

А по интерфейсу я думаю стоит все взять от Alreader2 (wm), и тогда цены вашей проге не будет!
Успехов!
–1
mchekalov #
Если бы эта программа делала перевод слова по нажатию на него (например переводчиком lingvo) я бы купил ее за 10$ и еще бы радовался, что так дешево…

Странно, для WM такие читалки есть, а для Iphone OS нет. ( Возможность перевода в Stanza я не рассматриваю, т.к. online переводчик не всегда доступен. )

В общем ждем и надеемся, что вы прикрутите переводчик хотя бы с ENG to RUS для начала. (Большинству больше и не требуется)
0
Argentur #
эхх, только обрадовался, а тут… Остаюсь на станзе опять ((
В общем вылетает она, как и все мои любимые программулины для iphone, как то rubook, finder.
так и не смог запустить. Заставка — хлоп и домой…
Что я не так делаю, если у всех робит а у меня нет? )))
Может надо обновить прошивку у оси? Хотя стоит 3.0
Я уже почти готов вернуть обратно 2.2 ради rubook. Stanza хороша, не спорю, но у меня огромная коллекция книг на компе и качать с инета как-то не супер, да и трафик дороговат.
0
sovnarkom #
Много программ в бекграунде?
0
Argentur #
ни одной, кроме телефона.
удалил бэкграундер — нуль реакции
0
Argentur #
нашел причину отказа в работе. Создал папку для книг раньше времени. До первого запуска софтинки. Удалил, счас все работает.
А про вафлю, это вы там в столицах избалованы, а мне как то нету особого смысла покупать карточку только для iphone. Деньги пока что с неба не сыплютЬси, я как то туда залез, там их почему-то вообще нету(на небе то)
0
AntonShevchuk #
Проверочку добавим…
+1
wicharek #
Чем она лучше Stanza, которая к тому же абсолютно бесплатная?
0
Argentur #
единственная, которой можно скормить книгу по проводу.
0
wicharek #
Ааа, ясно. Ну лично мне не проблема залить по wifi.
0
stand_up #
По мойму проблема с читанием в кровати с включенным акселерометром решается очень просто:
1. Хоть акселерометр и чувствительный, то можно ж переворачивать после каких-то критичных поворотных значениях, и ставить задержку в 1 секунду, чтоб когда трясли телефоном, он сразу не переворачивался туда-сюда;
2. + самое главное, можно сделать кнопку «запомнить положения», которая отключает акселерометр, ну или туже задержку увеличивает на неприличное количество.

Лично для меня переворот акселерометром — довольно важная и удобная фича, отказываться от неё я все таки не решился б.
0
80InchNail #
Понравилось, что минимум кнопок и экранов, функций достаточно (на первый взгляд).
Странно отрисовываются и ведут себя стандартные контролы — сглаживаются там, где не должны, не реагируют на некоторые стандартные действия, или реагируют нестандартно. Может, такая прорисовка связана с субпиксельным сглаживанием для прокрутки, который тут упоминали, но ощущение странное.
И немного раздражает нестандартное поведение:
1) Скрол (который, я уверен, не просто так написан свой) ведет себя подобно стандартному, но не доконца — программеры непочувствовали основного в оригинале, когда копировали ;)
2)… ну и др. контролы (например переключатели между FTP и HTTP, и еще где-то в настройках)
0
badc0de #
Скажите, я наверное тупой, но как удалить книжку из библиотеки?

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.