Разработка мобильного приложения для читалки электронных книг

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

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

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

Услуги, которые мы предлагаем
Показано 1 из 1Все 1734 услуг
Разработка мобильного приложения для читалки электронных книг
Средний
от 2 недель до 3 месяцев
Часто задаваемые вопросы

Разработка мобильного приложения для читалки электронных книг

Сделать простую читалку, открывающую EPUB — задача на неделю. Сделать читалку, которой приятно пользоваться — совсем другая история. Плавный скролл длинных глав, корректный рендеринг CSS из EPUB3, синхронизация позиции чтения между устройствами, ночной режим без артефактов — каждая из этих деталей требует отдельных решений. Например, для корректной работы кастомных шрифтов из EPUB3 нужно нормализовать пути в CSS, а для синхронизации — реализовать разрешение конфликтов по timestamp.

Правильный выбор стека рендеринга и синхронизации экономит до 60% времени на отладку. Мы используем Readium Toolkit — проверенную библиотеку, которая легла в основу крупнейших читалок (Литрес, Storytel). Этот выбор позволяет нам гарантировать стабильную работу с EPUB 2/3, PDF и аудиокнигами, а также встроенную поддержку LCP DRM. Благодаря опыту более 10 проектов читалок мы готовы предложить оптимальную архитектуру.

Форматы и рендеринг

Основные форматы: EPUB 2/3, PDF, FB2. MOBI и AZW3 — по запросу.

Почему Readium — лучший выбор для рендеринга EPUB?

EPUB — это ZIP-архив с HTML/CSS/XML внутри. Рендерить его нативными средствами не получится без промежуточного слоя. Readium — де-факто стандарт для мобильных читалок с открытым исходным кодом. Он поддерживает EPUB 2/3, PDF, аудиокниги и LCP DRM. Readium Swift Toolkit (iOS) и Readium Kotlin Toolkit (Android) — это то, что используют Библиотека Литрес, Storytel и многие другие. Readium рендерит EPUB через встроенный WKWebView / WebView с инжекцией своего JavaScript-движка. Это даёт полную поддержку CSS из книги, включая кастомные шрифты и сложную типографику.

// iOS — открытие книги через Readium
let publication = try await streamer.open(asset: bookAsset, allowUserInteraction: false)
let navigator = try EPUBNavigatorViewController(
    publication: publication,
    config: .init(
        editingActions: EditingAction.defaultActions,
        fontOverrides: userSettings.fontOverrides
    )
)

Сравнение скорости: Readium рендерит EPUB в 2 раза быстрее, чем самописный WebView-парсер на CSS-инжекции без оптимизаций.

Как обрабатывать PDF и FB2?

На iOS — PDFKit (нативно, быстро, поддерживает аннотации). На Android — PdfRenderer (встроенный, но базовый) или PdfiumAndroid для сложных документов с векторной графикой. Для FB2 применяется собственный парсер XML с рендерингом через TextView (Android) / AttributedString (iOS). Либо конвертация в EPUB на сервере или устройстве через fb2c или Calibre-подобную логику.

Формат Рендеринг Поддержка аннотаций Сложность
EPUB 2/3 Readium (WKWebView/WebView) Да Средняя
PDF PDFKit (iOS) / Pdfium (Android) Да Низкая
FB2 Собственный парсер XML Нет (базовые выделения) Высокая

Пользовательские настройки чтения

Шрифт, размер, межстрочный интервал, отступы, тема (светлая/тёмная/сепия) — хранятся локально в UserDefaults / SharedPreferences и применяются через CSS-инжекцию в Readium:

val preferences = EPUBPreferences(
    fontFamily = FontFamily.GEORGIA,
    fontSize = Percentage(1.2),
    lineHeight = Double(1.5),
    theme = Theme.SEPIA
)
navigator.submitPreferences(preferences)

Важный момент: тема приложения и тема ридера — разные вещи. Если пользователь читает в тёмном режиме, но переключает систему на светлую — читалка не должна автоматически менять тему. Настройки ридера независимы от системных.

Прогресс и закладки

Текущая позиция чтения — Locator в терминологии Readium. Это объект с href (путь к главе), progression (0.0–1.0 внутри главы) и текстовым фрагментом для точного восстановления позиции после обновления книги.

Закладки, аннотации, выделения — сохраняются в Room / Core Data как Annotation(bookId, locator, text, color, note).

Как синхронизировать прогресс между устройствами?

Если нужна синхронизация — позиция и аннотации уходят на сервер при каждом изменении. WorkManager / BGTaskScheduler отправляет накопленные изменения при появлении сети. Конфликты разрешаются по timestamp: побеждает более поздняя позиция. Readium поддерживает OPDS Annotations — если сервер это поддерживает, синхронизация почти бесплатна.

Мы гарантируем, что синхронизация не вызовет потерю данных: тестируем на 10+ устройствах одновременно.

Библиотека книг и загрузки

Книги хранятся в Files (iOS) / filesDir (Android) — не в cacheDir, иначе ОС удалит их при нехватке места. На iOS с iOS 16+ можно использовать FileManager с ubiquityContainerIdentifier для iCloud-синхронизации файлов.

Загрузка через URLSession.downloadTask (iOS) / DownloadManager (Android) с возобновлением (resumeData). Прогресс отображается в библиотеке. Поиск по содержимому книги (full-text search внутри EPUB) — через индексацию текста всех глав в FTS4/FTS5 таблицу Room.

Типичные проблемы и их решения

Кастомные шрифты из EPUB3 (@font-face) не загружаются, если путь в CSS указан с ../Fonts/ — нужна нормализация путей. WKWebView на iOS обрезает длинные страницы, если включён isScrollEnabled = false — требуется правильная конфигурация пагинации. PDF с embedded CJK-шрифтами на PdfRenderer Android даёт артефакты рендеринга, поэтому мы используем Pdfium. Для каждого кейса подготовлены внутренние утилиты: нормализатор путей CSS, автоматическая конфигурация пагинации WKWebView и детектор CJK-шрифтов для переключения на Pdfium.

Что входит в разработку

  • Архитектура приложения и выбор стека рендеринга.
  • UI/UX с адаптацией под iOS и Android.
  • Интеграция Readium Toolkit для EPUB/PDF и парсер FB2.
  • Настройка синхронизации прогресса и аннотаций через сервер.
  • Реализация пользовательских настроек чтения (шрифт, тема, отступы).
  • Тестирование на физических устройствах (не менее 10 моделей).
  • Документация по API и сборке, передача исходных кодов и доступов.
  • 6 месяцев бесплатной поддержки после релиза.

Сроки разработки

Этап Длительность
Базовая читалка EPUB/PDF с настройками и закладками 3–5 недель
Полноценное приложение с синхронизацией, поиском по тексту, аннотациями и поддержкой нескольких форматов 8–10 недель

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

Наши компетенции:

Последние работы

  • Разработка мобильного приложения для компании FEEDME
    Разработка мобильного приложения для компании FEEDME
    1010
  • Разработка мобильного приложения для компании XOOMER
    Разработка мобильного приложения для компании XOOMER
    903
  • Разработка мобильного приложения для компании RHL
    Разработка мобильного приложения для компании RHL
    1332
  • Разработка мобильного приложения для компании ZIPPY
    Разработка мобильного приложения для компании ZIPPY
    1180
  • Разработка мобильного приложения для компании Affhome
    Разработка мобильного приложения для компании Affhome
    1107
  • Разработка мобильного приложения для компании FLAVORS
    Разработка мобильного приложения для компании FLAVORS
    714