От халепа... Ця сторінка ще не має українського перекладу, але ми вже над цим працюємо!

cookies

Привіт! Цей сайт використовує файли cookie. Продовжуючи перегляд або натискаючи «Погоджуюсь», ви погоджуєтесь на їх використання. Для отримання додаткової інформації, будь ласка, перегляньте нашу Політику конфіденційності.

Yakaboo: Перебудова Flutter-застосунку для електронних книг

Україна Жовтень 2025 — триває

Yakaboo – найбільша онлайн-книгарня України з каталогом понад 14 000 електронних книг і аудіокниг. Більшість читачів взаємодіє з платформою саме через мобільний застосунок.

Наша команда NERDZ LAB переписала iOS- і Android-застосунки Yakaboo з нуля на Flutter, переосмислила досвід читання та прослуховування контенту на платформі, реалізувала наскрізний захист контенту та роботу в офлайн-режимі — і випустила нову версію V1 за шість місяців.

header_image

14,000+

лектронних книг і аудіокниг

6 місяців

тривалість розробки

4.7

рейтинг в App Store

Скріншоти продукту

image_screens
image_screens
image_screens

Послуги:

Product design

Design discovery & research

UX design

UI design

Mobile development

iOS

Android

Flutter

Технології:

Figma

Flutter

Команда:

1 Business analyst

1 UI/UX designer

1 Flutter developer

1 QA engineer

1 Project manager

1 Fractional CTO

Виклик_

Мобільний застосунок Yakaboo розвивався роками — функція за функцією, — і до 2025 року оригінальна архітектура вичерпала свій ресурс. iOS- і Android-версії поступово розійшлися, а випуск нових можливостей займав більше часу, ніж мав би. А досвід читання, заради якого продукт і існує, — більше не відповідав рівню провідних міжнародних застосунків у цій категорії.

Завдання було сформульовано чітко: не оновлення, а перебудова. Новий застосунок, що перевершить попередній, витримає конкуренцію й стане фундаментом, на якому команда зможе розвиватися роками.

Три речі перетворили це на серйозне інженерне завдання. По-перше, ключовий досвід читання та прослуховування довелося будувати майже повністю з нуля — наявні Flutter-плагіни давали лише базу, а решту реалізовувалося власноруч відповідно до дизайну. По-друге, контент потрібно було захистити наскрізно — включно з офлайн-режимом, — не роблячи застосунок громіздким чи повільним. По-третє, весь застосунок мав коректно працювати без з’єднання: книги, прогрес читання, позиція в аудіокнизі та аналітичні події — все це мало зберігатися офлайн і синхронізуватися одразу після відновлення мережі.

image_challange

Рішення:

  • Власний рідер електронних книг на основі базового Flutter-плагіна. Типографіка, навігація, виділення тексту, переходи між сторінками та повний набір елементів керування реалізовані власноруч відповідно до дизайну. Готовий плагін забезпечував лише базовий рендеринг — усе, що робить читання приємним, написано з нуля.
  • Наскрізне шифрування контенту. Кожна завантажена книга зберігається на пристрої в зашифрованому вигляді за допомогою file_encrypter, а ключі шифрування зберігаються в системному захищеному сховищі через flutter_secure_storage. Книга розшифровується лише під час активного читання й одразу шифрується знову, щойно користувач закриває її. Файл на пристрої ніколи не доступний у відкритому вигляді.
  • Контроль доступу на рівні пристрою. jailbreak_root_detection блокує доставку контенту на скомпрометованих пристроях, а secure_display забороняє знімки екрана та запис на екранах рідера і плеєра. Разом вони закривають уразливість, яку більшість мобільних застосунків для читання залишають відкритою.
  • Централізований сервіс доступу та управління ліцензіями для офлайн-читання. Коли користувач відкриває завантажену книгу офлайн, сервіс перевіряє його права: активна ліцензія — книга відкривається, невизначений статус — надається пільговий період до 30 днів, прострочена ліцензія — книга видаляється з пристрою і доступ блокується. DRM поводиться однаково онлайн і офлайн і керується єдиним блоком коду.
  • Стабільний фоновий аудіоплеєр для аудіокниг.Плеєр продовжує роботу у згорнутому стані, коректно відновлюється після телефонних дзвінків та інших переривань і надсилає аналітичні події без втрати даних.
  • Шар синхронізації.Будь-яка дія без з’єднання — прогрес читання, закладки, виділення, позиція в аудіокнизі, аналітичні події — зберігається локально й автоматично синхронізується одразу після відновлення мережі. Читач може закінчити довгий переліт і не втратити жодної деталі.
  • Клієнтські міграції даних. Коли між релізами змінюється модель даних, бібліотека та прогрес кожного користувача оновлюються на місці до нової структури. Після оновлення нікому не потрібно повторно завантажувати книги чи синхронізувати виділення.
  • Повноцінний досвід для гостьових користувачів. Локальний сервіс надає незареєстрованим користувачам той самий функціонал, що й авторизованим: прогрес, стан бібліотеки, налаштування — без необхідності створювати акаунт. Якщо гість згодом реєструється, все, що він зробив, зберігається.

  • Проєкт як повний цикл розробки. Усе почалося зі структурованого етапу discovery ще до написання першого рядка production-коду, UI/UX-дизайн розроблявся паралельно з розробкою, а архітектуру від початку до кінця вів фракційний CTO з нашого боку.

Приклади користувацьких шляхів:

image_screens
image_screens
image_screens

Результати

Новий застосунок Yakaboo вийшов на iOS і Android наприкінці березня — через шість місяців після старту проєкту. Єдина Flutter-кодова база тепер присутня на обох платформах, а рідер, аудіоплеєр, бібліотека та магазин вперше об'єднані в єдиний досвід на iOS і Android.

Наша команда NERDZ LAB продовжує підтримувати застосунок і разом із Yakaboo працює над наступними етапами розвитку продукту.

Підсумувати з ШІ