Text Post Publishing in Mobile App

NOVASOLUTIONS.TECHNOLOGY is engaged in the development, support and maintenance of iOS, Android, PWA mobile applications. We have extensive experience and expertise in publishing mobile applications in popular markets like Google Play, App Store, Amazon, AppGallery and others.
Development and support of all types of mobile applications:
Information and entertainment mobile applications
News apps, games, reference guides, online catalogs, weather apps, fitness and health apps, travel apps, educational apps, social networks and messengers, quizzes, blogs and podcasts, forums, aggregators
E-commerce mobile applications
Online stores, B2B apps, marketplaces, online exchanges, cashback services, exchanges, dropshipping platforms, loyalty programs, food and goods delivery, payment systems.
Business process management mobile applications
CRM systems, ERP systems, project management, sales team tools, financial management, production management, logistics and delivery management, HR management, data monitoring systems
Electronic services mobile applications
Classified ads platforms, online schools, online cinemas, electronic service platforms, cashback platforms, video hosting, thematic portals, online booking and scheduling platforms, online trading platforms

These are just some of the types of mobile applications we work with, and each of them may have its own specific features and functionality, tailored to the specific needs and goals of the client.

Showing 1 of 1 servicesAll 1735 services
Text Post Publishing in Mobile App
Medium
~2-3 business days
FAQ
Our competencies:
Development stages
Latest works
  • image_mobile-applications_feedme_467_0.webp
    Development of a mobile application for FEEDME
    756
  • image_mobile-applications_xoomer_471_0.webp
    Development of a mobile application for XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Development of a mobile application for RHL
    1052
  • image_mobile-applications_zippy_411_0.webp
    Development of a mobile application for ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Development of a mobile application for Affhome
    862
  • image_mobile-applications_flavors_409_0.webp
    Development of a mobile application for the FLAVORS company
    445

Developing Text Post Publishing in a Mobile App

A text post is the most basic content in social apps. But "just TextField + Send button" works poorly: a user writes a long text, minimizes the app, returns — the draft is lost. Or types text with poor internet, hits "Publish," gets an error — and the same empty screen again. These details separate proper implementation from a quick one.

Text Editor and Formatting

Simple Variant

UITextView (iOS) or BasicTextField/OutlinedTextField (Compose) — if formatting is not needed. Must have: autocorrectionType, spellCheckingType, minimum height with auto-expansion up to maximum (5-6 lines). On iOS auto-expansion of UITextView — through NSLayoutConstraint on height with update in textViewDidChange.

With Formatting (bold, italic, lists)

UITextView + NSAttributedString — minimal variant for iOS. For a full-featured editor — RichTextKit (open source, Swift) or custom implementation on NSTextStorage. On Android — Spannable/SpannableStringBuilder with EditText, or Markwon if you need Markdown preview.

In Flutter, flutter_quill is popular — Delta format, supports image insertion, lists, headers. But adds ~2 MB to binary and requires Delta → backend-format serialization.

Store text on server in neutral format — HTML or Markdown — not in Delta and not in NSAttributedString-blob. Client converts when loading.

Drafts

Drafts are mandatory. Implementation: on every text change save to UserDefaults (iOS) or DataStore (Android) with 1-2 second debounce. Key — draft_post or draft_post_{channel_id} if draft is tied to specific context.

When opening post creation screen: check for draft → if exists, show UIAlertController "Continue draft?" or restore text immediately. After publishing or manual reset — clear.

On Flutter — SharedPreferences or Hive, update through debounceTime(Duration(seconds: 1)) in stream.

Publishing with Poor Internet

Optimistic update + retry queue — standard for social apps. When hitting "Publish":

  1. Generate local client_post_id (UUID).
  2. Immediately add post to feed with pending status (gray/semi-transparent indicator).
  3. Send request to server. On success — replace client_post_id with server id, remove pending indicator.
  4. On error — show "Not sent" status with "Retry" button.

On Android for retry on network recovery use WorkManager with NetworkConstraint. On iOS — BGTaskScheduler for background retry or retry on NWPathMonitor event.

Limits and Validation

Character limit — display counter, don't block input until limit (Twitter approach: show -20 in red). Validate on server anyway — client validation is not protection.

Block empty publication: button active only when text.trimmingCharacters(in: .whitespacesAndNewlines).count > 0. On Compose — enabled = text.isNotBlank().

Mentions and hashtags in text — separate task (parsing @username and #tag with highlighting). If needed — implement through NSAttributedString/AnnotatedString with regex patterns and separate tap handlers.

Workflow Stages

Design post structure and API → UI editor with draft → publish logic with optimistic update → error handling and retry → offline scenario testing.

Timeline

Simple text editor with draft and retry — 2-3 days. With formatting, mentions, hashtags — 5-7 days. Cost calculated individually.