Разработка публикации постов с текстом в мобильном приложении

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.
Разработка и поддержка любых видов мобильных приложений:
Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Предлагаемые услуги
Показано 1 из 1 услугВсе 1735 услуг
Разработка публикации постов с текстом в мобильном приложении
Средняя
~2-3 рабочих дня
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    756
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1054
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    862
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    445

Разработка публикации постов с текстом в мобильном приложении

Текстовый пост — самый базовый контент в социальных приложениях. Но «просто TextField + кнопка Отправить» работает плохо: пользователь пишет длинный текст, сворачивает приложение, возвращается — черновик потерян. Или набирает текст с плохим интернетом, жмёт «Опубликовать», получает ошибку — и снова тот же пустой экран. Эти детали и отличают нормальную реализацию от быстрой.

Редактор текста и форматирование

Простой вариант

UITextView (iOS) или BasicTextField/OutlinedTextField (Compose) — если форматирование не нужно. Обязательно: autocorrectionType, spellCheckingType, минимальная высота с авторасширением до максимума (5-6 строк). На iOS авторасширение UITextView — через NSLayoutConstraint на высоту с обновлением в textViewDidChange.

С форматированием (жирный, курсив, списки)

UITextView + NSAttributedString — минимальный вариант для iOS. Для полноценного редактора — RichTextKit (open source, Swift) или кастомная реализация на NSTextStorage. На Android — Spannable/SpannableStringBuilder с EditText, или Markwon если нужен preview Markdown.

В Flutter популярен flutter_quill — Delta-формат, поддерживает вставку изображений, списки, заголовки. Но добавляет ~2 МБ к бинарнику и требует сериализации Delta → backend-формат.

Хранить текст на сервере лучше в нейтральном формате — HTML или Markdown — не в Delta и не в NSAttributedString-blob. Клиент конвертирует при загрузке.

Черновики

Черновик — обязателен. Реализация: при каждом изменении текста сохраняем в UserDefaults (iOS) или DataStore (Android) с дебаунсом 1-2 секунды. Ключ — draft_post или draft_post_{channel_id} если черновик привязан к конкретному контексту.

При открытии экрана создания поста: проверяем наличие черновика → если есть, показываем UIAlertController «Продолжить черновик?» или сразу восстанавливаем текст. После публикации или ручного сброса — очищаем.

На Flutter — SharedPreferences или Hive, обновление через debounceTime(Duration(seconds: 1)) в stream.

Публикация с плохим интернетом

Оптимистичное обновление + очередь повторов — стандарт для социалок. При нажатии «Опубликовать»:

  1. Генерируем локальный client_post_id (UUID).
  2. Сразу добавляем пост в ленту со статусом pending (серый/полупрозрачный индикатор).
  3. Отправляем запрос на сервер. При успехе — заменяем client_post_id на серверный id, убираем индикатор pending.
  4. При ошибке — показываем статус «Не отправлено» с кнопкой «Повторить».

На Android для retry при восстановлении сети используем WorkManager с NetworkConstraint. На iOS — BGTaskScheduler для background retry или повтор при NWPathMonitor event.

Ограничения и валидация

Лимит символов — отображаем счётчик, не блокируем ввод до лимита (Twitter-подход: показываем -20 красным). На сервере всё равно валидируем — клиентская валидация не защита.

Запрет пустой публикации: кнопка активна только при text.trimmingCharacters(in: .whitespacesAndNewlines).count > 0. На Compose — enabled = text.isNotBlank().

Упоминания и хештеги в тексте — отдельная задача (парсинг @username и #tag с подсветкой). Если нужны — реализуем через NSAttributedString/AnnotatedString с regex-паттернами и отдельными tap-хендлерами.

Этапы работы

Проектирование структуры поста и API → UI редактора с черновиком → логика публикации с оптимистичным обновлением → обработка ошибок и retry → тестирование офлайн-сценариев.

Сроки

Простой текстовый редактор с черновиком и retry — 2-3 дня. С форматированием, упоминаниями, хештегами — 5-7 дней. Стоимость рассчитывается индивидуально.