Рассчитать проект
Нажимая кнопку «Отправить» вы соглашаетесь на обработку персональных данных
Приложение для чтения книг. Тысячи книг у вас в кармане!

Книги Онлайн

Задача

Создание мобильного приложения «Книги Онлайн» для устройств на iOS.

Функционал

  • Личная библиотека пользователя, где хранятся все книги пользователя;

  • Разделение книг по категориям: хиты, новинки, интересные и тд.;

  • Чтение книг в онлайн режиме;

  • Локальное хранение книги: после скачивания книги на устройство, она доступна в режиме офлайн;

  • Мгновенное изменение параметров отображения контента: шрифт, фон, размер, межстрочный интервал, яркость;

  • Поиск по книгам и содержанию книг;

  • Механизм закладок;

  • Встроенные покупки и аналитика.

Особенности

Мобильное приложение состоит из нативного интерфейса и модуля просмотра контента. Так как книги в формате epub представляют из себя фактически web-документ, поэтому для просмотра содержания книг используется встроенный браузер UIWebView.

Решения

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

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

  • JavaScript браузера.
Все изменения на странице книги, такие как изменение шрифта, поиск по страницам и так далее, работают через JavaScript браузера, поэтому часть работ по проекту необходимо было провести веб-разработчику, помимо iOS разработчика. Нам доставила много сложностей работа с JavaScript браузера, так как у него есть существенные ограничения по сравнению со стандартным JavaScript.

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

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

Команда проекта

Игорь
Технический директор, Android лидер
Василий
iOS лидер
Константин
Производственный директор
Оля
UI/UX специалист, дизайнер