Знакомая ситуация? Вы читаете книгу с экрана смартфона. Внизу надпись — до конца главы осталось 2 страницы. Вы делаете свайп, второй, третий, а предательская цифра «2» даже не думает меняться. Возникает ощущение, что вы читаете бесконечный текст.

Иллюстрация — droidnews.ru
Эта проблема кочует из одного приложения-читалки в другое годами. Я помню её с 2010 года, когда запускал FBreader ещё на HTC Hero. Этим грешат Google Play Книги, FBReader, софт от PocketBook и десятки других программ. Разбираемся, почему разработчики упорно отказываются делать так, чтобы один свайп по экрану равнялся одной странице, и в каких приложениях этот вопрос уже решён.
Главное о зависающих страницах
- Поймёте, почему смартфон упорно считает скрытые байты, а не ваши реальные свайпы;
- Получите список ридеров, где нумерация работает честно и предсказуемо;
- Сможете настроить правильную облачную синхронизацию, хотя ради этого и придётся пожертвовать экосистемой Google.
В материале:
- Анатомия проблемы: байты против пикселей
- Наследие Adobe и проблема цитирования
- Google Play Книги: комфорт принесён в жертву «облаку»
- Где страницы считаются честно?
- Как настроить синхронизацию и честные страницы
Анатомия проблемы. Байты против пикселей
Раздражающее зависание счётчика — это не баг приложения. Это фундаментальное различие между печатным листом и цифровым текстом.
В отличие от формата PDF, который работает как нерушимая фотография листа, форматы EPUB и FB2 — «резиновые». Текст в них динамически перестраивается под диагональ экрана, выбранный шрифт, его размер и межстрочный интервал. И здесь возникает главный конфликт.
Для читателя страница — это объём текста, который поместился на экране смартфона прямо сейчас. Для разработчиков и программного обеспечения страница — это строго фиксированный объём данных. Чаще всего это 1024 или 2048 символов.
Если читаете с крупным шрифтом на небольшом экране, одна программная страница физически не влезет в дисплей. Она растянется на 3–4 свайпа. Счётчик внизу экрана сдвинется с мёртвой точки только тогда, когда проглотите весь заложенный в него норматив символов.
Наследие Adobe и проблема цитирования
Вторая причина кроется в стандартах индустрии. Большинство популярных ридеров используют алгоритм Adobe RMSDK или его аналоги для рендеринга текста.
Этот алгоритм создавался с благой целью — стандартизировать электронные книги. Логика проста. Если в книге 500 страниц, то страница №42 должна содержать один и тот же текст независимо от того, читаете ли вы её на крошечном смартфоне или на 12-дюймовом iPad. Это критически важно для цитирования, написания научных работ и обсуждения книг в книжных клубах.
Алгоритм жестко привязывает номер страницы к конкретному абзацу. Итог закономерен — удобство академического цитирования убило пользовательский опыт для тех, кто просто хочет читать фантастику в метро с телефона.
Чтобы приложение показывало вам честные экранные страницы, ему нужно мгновенно прочитать весь файл от начала до конца, пересчитать все отступы, картинки и размеры шрифтов под текущий дисплей. Многие программы не делают этого ради экономии заряда батареи и для моментального открытия тяжелых книг. Вместо этого они используют приблизительный расчёт на лету на основе веса файла в килобайтах.
Google Play Книги. Комфорт принесён в жертву синхронизации
Один из самых злостных нарушителей — Google Play Books. К сожалению, настроить честный подсчёт страниц там невозможно из-за закрытой архитектуры сервиса.
Причина кроется в главном козыре платформы — бесшовной синхронизации. Google позволяет начать чтение на телефоне, продолжить на планшете и закончить в браузере рабочего ПК. Чтобы вы всегда оказывались на нужном месте, система намертво привязывает прогресс к объёму символов, а не к экранам. Если бы приложение пересчитывало страницы под крупный шрифт на вашем телефоне, то при открытии той же книги на планшете номера страниц не совпали бы, и синхронизация сломалась.
В настройках Google Play Книг можно переключиться на режим «Оригинальные страницы» только для PDF. Номера будут честными, но читать мелкий неадаптивный текст со смартфона — сомнительное удовольствие. Тонких настроек, позволяющих пересчитать книгу под текущий размер экрана, Google не предоставляет, следуя принципу максимальной простоты.
Где страницы считаются честно?
Если залипающий счётчик вас раздражает, придётся отказаться от экосистемы Google в пользу более гибких решений.
- Яндекс Книги (Букмейт). Одно из немногих массовых приложений, где логика работает из коробки. Разработчики Яндекса изначально сделали ставку на мобильное чтение — один свайп здесь всегда равен одной странице. И синхронизация тоже есть;
- Moon+ Reader. Популярнейший комбайн для Android. В последних версиях разработчики наконец-то довели алгоритмы до ума. Даже в базовых настройках при чтении стандартного файла один свайп честно добавляет одну страницу;
- Librera Reader. Ещё одно мощное приложение с огромным количеством тонких настроек, где можно принудительно включить адаптивную нумерацию.
Как настроить синхронизацию и честные страницы
Главный страх при уходе из Google Play Книг — потеря синхронизации между телефоном и планшетом. Однако сторонние ридеры давно научились решать эту задачу, используя ваши личные облачные диски.
Вот как получить и честный счётчик страниц, и рабочую синхронизацию.
Сценарий 1: Moon+ Reader Pro Синхронизация — сильная сторона этого приложения, но полноценно она работает только в платной Pro-версии.
- Программа связывается с вашим Google Drive, Dropbox или WebDAV-сервером;
- В облако сохраняются крошечные системные файлы с вашими закладками, заметками и позицией чтения;
- Важное условие: файлы книг на телефоне и планшете должны иметь абсолютно одинаковое название;
- Для настройки зайдите в раздел «Разное» и поставьте галочку «Синхронизировать позицию чтения». Приложение само выгрузит данные при закрытии книги и скачает их при открытии на другом устройстве.

Иллюстрация — droidnews.ru
Сценарий 2: Librera Reader Здесь синхронизация доступна даже в бесплатных версиях программы. Основным хабом выступает Google Drive.
- Помимо позиции чтения и закладок, Librera умеет синхронизировать профили настроек. Если вы час подбирали идеальный шрифт и фон на телефоне, эти же параметры можно за пару кликов перенести на планшет;
- Для запуска откройте боковое меню, выберите вкладку «Синхронизация» и авторизуйтесь через аккаунт Google. Поддерживается как ручное обновление свайпом, так и автоматический фоновый режим;
- Обязательно зайдите в настройки отображения и выберите параметр «Пересчитывать страницы».

Иллюстрация — droidnews.ru
Итог прост. Если вы хотите читать без раздражения, уходите от закрытых сервисов с жесткими алгоритмами к профильному софту. Вы потратите 10 минут на первичную настройку синхронизации через Google Drive, зато получите систему, которая работает по вашим правилам.
Часто задаваемые вопросы
- Почему в Google Play Книгах нельзя сделать так, чтобы 1 свайп равнялся 1 странице?
- Проблема кроется в жесткой привязке к облачной синхронизации. Google считает страницы по фиксированному объему символов, чтобы позиция чтения оставалась неизменной при переходе со смартфона на планшет или монитор компьютера.
- Зависит ли эта проблема от формата скачанной электронной книги?
- Да. В фиксированных форматах (например, PDF) страница всегда равна одному листу. В «резиновых» форматах (EPUB, FB2) текст подстраивается под экран, поэтому и возникает рассинхрон между физическим перелистыванием и программной страницей.
- Можно ли исправить залипание счетчика без смены приложения?
- В закрытых экосистемах вроде Google Books — нет. Для честного подсчета страниц придется перейти на профильные сторонние ридеры (Moon+ Reader, Librera, Яндекс Книги), где в настройках предусмотрена функция адаптивной нумерации.




Обсуждение
Пока тишина. Станьте первым!