Модернизация мобильной платформы для чтения: переход с Xamarin на Flutter

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

О клиенте

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

Для читателей компания разработала мобильные приложения для iOS и Android, объединяющие книжный интернет-магазин, персональную библиотеку и ридер. Приложения позволяли приобретать и скачивать книги, читать их без подключения к интернету, синхронизировать прогресс чтения между устройствами, настраивать шрифты и фон, использовать синтез речи, создавать закладки и заметки, а также взаимодействовать с авторами и другими читателями.

К моменту начала проекта мобильная платформа развивалась более восьми лет. За это время приложения накопили значительный объем бизнес-логики, множество интеграций, платформозависимый код и устаревшие программные компоненты, что усложняло их сопровождение и дальнейшее развитие.

  • Отрасль: Цифровое издательство, электронные книги
  • Платформы: iOS, Android
  • Сроки: Около 18 месяцев

Задача проекта

Мобильные приложения клиента были разработаны на Xamarin, жизненный цикл которого подходил к концу.

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

Основными задачами проекта стали:

  • Миграция с Xamarin на Flutter: Перейти на современную кроссплатформенную технологию до прекращения поддержки Xamarin.
  • Сохранение функциональности: Перенести существующие пользовательские сценарии без потери ключевых возможностей приложения.
  • Модернизация читалки: Заменить устаревший движок для работы с электронными книгами на SDK epuBear.
  • Сокращение технического долга: Переработать архитектуру, упростить сопровождение и повысить тестируемость приложения.
  • Непрерывное развитие продукта: Продолжать выпускать новые функции на протяжении всей миграции.
  • Подготовка к внедрению ИИ: Создать архитектурную основу для рекомендаций, контекстного перевода, кратких пересказов и ИИ-ассистента, работающего непосредственно на устройстве.

Обзор проекта

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

Вместо автоматического переноса кода команда последовательно воссоздавала пользовательские сценарии, повторно используя существующие API, механизмы аутентификации и контракты данных. Для каждого компонента определялась оптимальная стратегия: сохранить, переработать, переписать или заменить.

Устаревший движок для чтения электронных книг заменили на SDK epuBear с поддержкой EPUB. Параллельно проводились автоматизированное тестирование и проверка функционального соответствия. После подтверждения стабильности новой версии приложение на Xamarin вывели из эксплуатации.

Решение

Команда СКЭНД разработала новое мобильное приложение на Flutter для iOS и Android с модульной архитектурой, общей бизнес-логикой и нативными интеграциями. Это позволило сократить дублирование кода и упростить сопровождение продукта.

Устаревший движок для чтения электронных книг заменили на SDK epuBear с поддержкой EPUB, навигации и пагинации. Новая архитектура также подготовлена к внедрению интерактивных книг, мультимедиа, функций сообщества и ИИ-инструментов: рекомендаций, перевода, кратких пересказов и локального ИИ-ассистента.

Основные возможности приложения

  • Кроссплатформенное приложение. Единая кодовая база Flutter для iOS и Android.
  • Электронный ридер. SDK epuBear для отображения EPUB-книг, навигации и пагинации.
  • Книжный магазин и библиотека. Поиск, покупка и организация электронных книг.
  • Офлайн-чтение и синхронизация. Доступ к книгам без интернета и синхронизация прогресса между устройствами.
  • Персонализация чтения. Настройка шрифтов и фона, закладки, заметки и синтез речи.
  • Мультимедийный контент. Подготовка платформы к поддержке интерактивных книг, аудио и видео.
  • Модульная архитектура. Упрощение сопровождения, тестирования и расширения приложения.
  • Нативные интеграции. Использование Swift и Kotlin для платформоспецифичных функций.
  • Поддержка ИИ. Архитектурная основа для рекомендаций, перевода, кратких пересказов и ИИ-ассистента.

Технологический стек

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

  • Мобильная разработка: Flutter, Dart
  • Управление состоянием и навигация: Riverpod, go_router
  • Сетевое взаимодействие и модели данных: Dio, Freezed
  • Локальное хранение данных: Drift, SQLite
  • Ридер и нативные интеграции: epuBear SDK, Swift, Kotlin, Flutter Platform Channels, Dart FFI
  • ИИ и машинное обучение: ONNX Runtime, llama.cpp, LiteRT (ранее TensorFlow Lite), OpenAI API, Python
  • Тестирование: flutter_test, integration_test, Mocktail, Patrol, Firebase Test Lab
  • CI/CD и распространение приложений: GitHub Actions, Fastlane, Firebase App Distribution
  • Мониторинг и отслеживание ошибок: Firebase Crashlytics, Sentry

Результаты

Поэтапная модернизация позволила заменить мобильную платформу на Xamarin до прекращения поддержки технологии и продолжить развитие продукта без остановки разработки.

Ключевые результаты проекта:

  • 100% миграции завершено до окончания поддержки Xamarin.
  • Около 90% общей кодовой базы используется для iOS и Android.
  • На 30% сократился цикл разработки новых функций.
  • На 45% снизились трудозатраты на регрессионное тестирование.
  • Более 99,5% пользовательских сессий проходят без сбоев приложения.
  • На 25% ускорен перенос типовых компонентов благодаря применению ИИ в разработке.

Нуждаетесь в разработке похожего проекта?

Свяжитесь с нами

Мы любим новые проекты! Напишите нам, и мы ответим вам в ближайшее время.

Спасибо, что написали нам! Ваше сообщение было успешно отправлено. Мы обязательно ответим на него в ближайшее время. Пожалуйста, проверьте, получили ли Вы от нас письмо-подтверждение на указанную Вами почту.