
МобильноеприложениедляавторовсмультимедийнымредакторомнаФлаттер
Когда «просто редактор» оказывается сложнее, чем кажется
Заказчик — предприниматель с идеей продукта для авторов и писателей.
Задача — создать мобильное приложение, в котором можно писать длинные тексты и прямо внутри них собирать истории из фото, видео и аудио — без ограничений стандартных платформ.
Сложность — на рынке не оказалось готовых решений, которые одновременно:
- стабильно работают с большими текстами;
- поддерживают гибкую вставку мультимедиа;
- не теряют производительность на мобильных устройствах.
Попытки реализовать продукт через Telegram показали ограничения платформы: невозможно управлять структурой контента и развивать сложный редактор.
Решение — разработали кастомный текстовый редактор с нуля на Flutter, с блочной структурой контента и поддержкой мультимедиа как равноправных элементов.
Результат — заказчик получил приложение, которое не зависит от ограничений платформ, стабильно работает с большими объёмами данных и позволяет развивать продукт без архитектурных ограничений.

Контекстиразвитиеидеи
Летом 2024 года к нам обратился предприниматель с идеей продукта для авторов. Он хотел сделать мобильное приложение, в котором можно писать истории и сразу собирать их из текста, фото, аудио и видео — в одном месте, без переключений и потери структуры.
До этого он пробовал реализовать идею через Telegram. Это позволило быстро проверить гипотезу, но почти сразу стало ограничением. Платформа не позволяет нормально управлять структурой текста, плохо работает с длинными материалами и не подходит для сценария, где история собирается из разных форматов.
В какой-то момент стало понятно: дальше так продукт не вырастет. Потребовалась полноценная разработка мобильного приложения с собственной логикой.
Почемуготовыерешениянеподошли
На старте задача выглядела стандартно: редактор, длинные тексты, медиа, работа с блоками, несколько языков.
Но проверка готовых решений быстро показала ограничения. Редакторы на WebView не держат большие тексты и начинают тормозить. Остальные библиотеки либо нестабильны, либо не дают гибкости для работы с медиа.
Проблема оказалась не в интерфейсе — не было подходящей основы, на которую можно опереться при разработке такого мобильного приложения.
Любая попытка доработать готовое решение означала бы, что ограничения проявятся уже на раннем этапе развития продукта.
Решениеиархитектура
В итоге было принято более сложное, но устойчивое решение — разработка приложения с нуля.
Работу начали не с интерфейса, а с логики. Вместо сплошного текста сделали модель, где всё разбито на блоки. Благодаря этому изменения обрабатываются только в нужной части, без пересчёта всего документа.
Текст, изображения и видео стали равноправными элементами. Их можно перемещать, редактировать отдельно и собирать в любом порядке. Редактор стал инструментом сборки истории, а не просто полем для ввода.
Гдевозниклиосновныесложности
Основные сложности оказались не в архитектуре, а в поведении системы.
Работа с текстом в мобильном приложении сильно зависит от платформы. Клавиатура, автозамена, подсказки — всё это работает на стороне iOS и Android. Если это не учитывать, редактор начинает вести себя нестабильно.
Ситуацию усложняют различия между платформами, работа с эмодзи и сложными символами, а также поведение курсора в разных сценариях.
Чтобы добиться стабильной работы, пришлось отдельно настраивать поведение редактора и синхронизировать его с системными механизмами.
Похожиепроекты


Ограниченияплатформиработасмедиа
В процессе разработки проявляются ограничения, которые неочевидны на старте. Например, на Android есть лимит: между клавиатурой и приложением нельзя передать больше 512 КБ текста. При превышении этого объёма ввод начинает работать с ошибками, поэтому такие ограничения нужно учитывать заранее.
Отдельным блоком стала работа с медиа. Пользователь может добавлять фото, видео и аудио любого объёма, но на практике это десятки форматов и кодеков.
Чтобы избежать проблем, медиа привели к единому формату там, где это возможно, упростили обработку и вынесли тяжёлые операции из пользовательского сценария. Для видео использовали FFmpeg, хранение реализовали через S3, а загрузку сделали отложенной — контент подгружается только в момент просмотра.
Производительностьиустойчивость
Ключевая цель — стабильные 60 fps. Это значит, что на один кадр есть около 16 мс, в которые должны уложиться обработка действий, изменения в тексте и отрисовка интерфейса.
Мы задали чёткие ориентиры и замеряли ключевые операции. В итоге небольшие тексты обрабатываются примерно за 1 мс, крупные — за 3–5 мс, а базовые операции занимают менее 100 микросекунд.
Редактор протестировали на экстремальных сценариях — он выдерживает тексты до 180 МБ. Это не типичное использование, но хороший показатель устойчивости системы
Результатиразвитиепродукта
В итоге получился не просто редактор, а полноценное мобильное приложение для авторов с кастомной логикой.
Оно позволяет:
- писать длинные тексты
- вставлять медиа в любом месте
- свободно управлять структурой
При этом система работает стабильно и предсказуемо.
Приложение вышло в App Store в феврале 2025 года и сейчас развивается на основе пользовательской обратной связи.
Почемутакойподходработает
Такие задачи не решаются готовыми инструментами. Компромиссные решения на старте быстро начинают тормозить развитие продукта.
Поэтому в подобных проектах эффективнее сразу идти в кастомную разработку мобильного приложения и строить архитектуру под задачу. Это позволяет избежать ограничений и спокойно масштабировать продукт.
.
Итог
Разработали мобильное приложение для авторов с кастомным редактором, который позволяет работать с длинными текстами и собирать истории из текста, фото, видео и аудио в одном интерфейсе.
В рамках разработки мобильного приложения мы отказались от готовых решений — они не справлялись с нагрузкой и ограничивали функциональность — и реализовали собственный редактор с нуля. В основе — блочная структура контента, стабильная работа на iOS и Android и контролируемая производительность даже при больших объёмах данных.
В результате заказчик получил мобильное приложение на Flutter с кастомным функционалом, которое не зависит от ограничений платформы и готово к развитию: архитектура позволяет масштабировать продукт, добавлять новые возможности и развивать сервис без пересборки системы.

Технологии
Кейсы,которымимыгордимся


