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