+7 (928) 854-24-62
Isometric Icons (https://www.isocons.app/) ©2026 is licensed under CC BY 4.0(https://creativecommons.org/licenses/by/4.0/?ref=chooser-v1)
Заказать консультацию
Почему мы выбрали Flutter для разработки rich text-редактора?

Почему мы выбрали Flutter для разработки rich text-редактора?

Создание кастомного rich text-редактора — одна из самых ресурсоёмких задач в мобильной разработке. В статье — почему мы выбрали для него Flutter, как прошли все этапы создания и какие стресс-тесты устроили своему редактору.
03.06.2025

Вчемсложности

Чтобы добиться стабильностивысокой производительности и поведения, привычного для пользователей Google Docs или Word, необходимо учитывать множество факторов:

  • работу с текстом на уровне Unicode: составные символы, эмодзи, удаление по графемам;
  • поддержку IME (Input Method Editor — инструмент для ввода символов, отсутствующих на клавиатуре, например, иероглифов или специальных знаков) и многоязычного ввода, особенно для китайского и японского языков;
  • различия в поведении клавиатуры, фокуса и буфера обмена между Android и iOS;
  • архитектуру, способную обрабатывать вложенные структуры и большие объёмы текста без просадок;
  • и, наконец, постоянные затраты на поддержку, обновления и кроссплатформенную совместимость.

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

Но наш проект оказался не из простых. Перед нами стояла задача - разработать мобильное приложение на заказ, которое должно было объединить в себе:

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

Реализовать такой комплекс задач в единстве ни одна из готовых библиотек не способна. Многие из них работают через WebView и JavaScript, что снижает производительность. При тестировании другие оказались нестабильными, не выдерживали нагрузку или не позволяли настроить интерфейс под наши требования. Поэтому мы начали рассматривать альтернативные подходы и технологии, в том числе Flutter как основу для кроссплатформенной разработки мобильного приложения. О том, почему мы выбираем Flutter в качестве основы для серьёзных проектов, подробно рассказали в этой статье.

Похожиестатьи

Как ИИ научился узнавать борщ и оливье и ускорил бизнес в HORECA в 6 раз.
#ИИ
#автоматизацияпроцессов
#фудтех
Как ИИ научился узнавать борщ и оливье и ускорил бизнес в HORECA в 6 раз.
Как выбрать технологии для мобильного приложения и не пожалеть?
#OpenCV
#мобильнаяразработка
Как выбрать технологии для мобильного приложения и не пожалеть?

ПочемуFlutterидеален

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

Мы рассматривали разные технологии, но именно Flutter-разработка дала нам необходимое:

1. Контроль над рендерингом и вводом

  • EditableTextTextPainter и RenderEditable во Flutter предоставляют низкоуровневый доступ к рендерингу текста и управлению курсором.
  • Поддержка TextInputClient позволяет напрямую взаимодействовать с системной клавиатурой, обрабатывать TextEditingValue, в том числе selection и composing — необходимые для работы IME и предиктивного ввода.

2. Полную кастомизацию UI

Flutter не привязан к нативным компонентам — UI можно строить с нуля. Это критично, когда речь идет о вложенных блоках, мультимедийном контенте и rich text с произвольной структурой. Мы получили полный контроль над внешним видом и поведением всех элементов редактора.

3. Производительность на уровне нативной

Один из стресс-тестов — работа с файлами объёмом 180 МБ (для сравнения, “Война и Мир” “весит” 3-4 МБ) производительность оставалась в допустимых пределах. (Да, мы проводили тест с таким объемным текстом и контролировали тайминг выполнения через Stopwatch.)

4. Кроссплатформенность

Один и тот же код обработки текста, структуры документа, рендеринга и взаимодействия с моделью работал на Android и iOS без платформенной адаптации. Это резко сократило время на поддержку и позволило сосредоточиться на продукте, а не на инфраструктуре.

5. Расширяемость и поддержка сообщества

Готовые решения (Fleather, Quill) были полезны на старте как архитектурные ориентиры. Flutter имеет активное сообщество, открытую документацию и доступ к исходникам — что критично при необходимости глубокой кастомизации.

Производительностьистабильность

Итоги разработки:

  • максимальный объем обрабатываемого текста: до 180 МБ без критических просадок производительности;
  • целевое значение производительности: стабильные 60 fps при текстах объёмом до 3 МБ (средние сценарии);
  • время отклика на пользовательские действия — менее 1 мс при текстах до 100 КБ; 3–5 мс при работе с текстами от 3 МБ и выше;
  • задержка рендеринга на кадр (реальное измерение) — чаще всего менее 100 микросекунд;
  • передача больших объёмов текста: возможна, но требует оптимизации — загрузка 180 МБ занимает ~10 секунд при хорошей сети.

content-image

Разработка кастомного rich text-редактора — это проект, который нельзя реализовать шаблонно. Он требует глубокого погружения в архитектуру, умения работать с низкоуровневыми механизмами Flutter и понимания, как обеспечить производительность при сложной структуре данных.

Для нас это был не просто кейс, а инженерный вызов. И его решение стало еще одним подтверждением, что команда ItFox умеет решать задачи за пределами стандартных SDK и готовых библиотек.

Мы подходим к каждому проекту индивидуально, особенно если речь идет о сложной разработке мобильных приложений для бизнеса с нетипичными сценариями использования. Беремся за проекты, где важны точность, гибкость и масштабируемость — и доводим такие решения до результата.

Если Вы ищете команду для реализации сложного мобильного приложения — от MVP до полнофункциональной платформы, — мы готовы помочь.

Оразработке,технологияхибизнесе

Почему компании выбирают Flutter для разработки мобильных приложений?
#flutter
#кроссплатформеннаяразработка
#мобильнаяразработка
Почему компании выбирают Flutter для разработки мобильных приложений?
Почему разработка программного обеспечения стоит дорого?
#e-commerce
Почему разработка программного обеспечения стоит дорого?
Flutter против React Native: подробное сравнение.
#flutter
#кроссплатформеннаяразработка
#reactnative
Flutter против React Native: подробное сравнение.
Смотреть все статьи

Оставитьзаявку

Телефон
Telegram
Max
Почта
Другое
менее 1 млн. ₽
1 млн. - 5 млн. ₽
5 млн - 10 млн. ₽
более 10 млн. ₽
Файл не выбран
Допустимые форматы: jpg, jpeg, png, webp, heif, docx, pdf, txt.
Объем загружаемого файла не должен превышать 5 Мб
Напишите на email
hello@itfox-web.com
Позвоните по номеру
+7 (928) 854-24-62
или расскажите о проекте оставив заявку
Isometric Icons (https://www.isocons.app/) ©2026 is licensed under CC BY 4.0(https://creativecommons.org/licenses/by/4.0/?ref=chooser-v1)
Поможем, даже если у вас нет технического задания
Isometric Icons (https://www.isocons.app/) ©2026 is licensed under CC BY 4.0(https://creativecommons.org/licenses/by/4.0/?ref=chooser-v1)
Определим стоимость разработки
Isometric Icons (https://www.isocons.app/) ©2026 is licensed under CC BY 4.0(https://creativecommons.org/licenses/by/4.0/?ref=chooser-v1)
Предложим способы снижения затрат на проект без потери качества
Isometric Icons (https://www.isocons.app/) ©2026 is licensed under CC BY 4.0(https://creativecommons.org/licenses/by/4.0/?ref=chooser-v1)
Дадим рекомендации по повышению эффективности вашего проекта