Social Features, Chats & Real-Time Functionality in Mobile Apps

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 30 of 32 servicesAll 1735 services
Medium
~5 business days
Complex
from 1 week to 3 months
Medium
from 1 business day to 3 business days
Medium
from 1 business day to 3 business days
Simple
from 1 business day to 3 business days
Medium
~2-3 business days
Simple
from 4 hours to 2 business days
Medium
~2-3 business days
Medium
from 1 business day to 3 business days
Medium
from 1 business day to 3 business days
Medium
~2-3 business days
Medium
from 1 business day to 3 business days
Medium
from 1 business day to 3 business days
Simple
from 1 business day to 3 business days
Complex
from 2 weeks to 3 months
Medium
from 2 weeks to 3 months
Medium
from 1 week to 3 months
Simple
from 1 week to 3 months
Simple
from 1 week to 3 months
Simple
from 1 week to 3 months
Simple
from 1 week to 3 months
Medium
from 1 week to 3 months
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
    1050
  • 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

Social Features in Mobile Applications: Chat, VoIP, Feed and Reactions

Adding chat to application — this is not "use Socket.io and display messages". This is offline access, history display on poor connection, typing indicators, read statuses, push notifications when app closed, and all this must work on Android 8 with 512MB RAM without ANR.

Chat Architecture: WebSocket, XMPP, or Ready SDK

WebSocket — protocol, not architecture. Bare WebSocket without protocol on top — this is reinventing wheel. Minimum: define message format, heartbeat mechanism, reconnection strategy, queue of unsent messages on connection loss.

In practice for product chats we use one of three solutions:

Ready-made chat SDK — SendBird, Stream Chat, Cometchat. Provide UI components, server infrastructure, push notifications, moderation. Fast, reliable, but vendor lock-in and recurring costs.

Firebase Realtime Database / Firestore — for simple chats without >100K concurrent users scalability requirements. Realtime Database better for chat (ordered message lists), Firestore — for more structured data. Limitation: no built-in typing indicators and presence — implemented separately via onDisconnect().

Own backend with WebSocket — full control, maximum customization. Tech stack: WebSocket via socket.io (Node.js) or Phoenix Channels (Elixir) + PostgreSQL + Redis for pub/sub. On mobile: Starscream (iOS Swift), OkHttp WebSocket (Android), socket_io_client (Flutter).

Offline mode — most labor-intensive part. Messages saved in SQLite (iOS: GRDB, Android: Room) with local ID, synchronized on connection restore. Conflicts on simultaneous sending resolved via vector clock or server-timestamp ordering.

VoIP: CallKit, ConnectionService and WebRTC

VoIP in mobile application — two different scenarios: look like phone call (system call UI) or just audio/video call inside app.

CallKit (iOS) allows integrating VoIP call into system interface: application appears on Lock Screen as regular call, works with Bluetooth headsets, interrupts other audio. Implemented via CXProvider + CXCallController. Plus: application launches via VoIP push (PKPushKit) even when killed — mandatory for receiving incoming calls.

On Android equivalent — ConnectionService API. More complex integration, behavior varies between manufacturers (Xiaomi, Samsung with their battery optimization aggressively kill background processes).

WebRTC — transport protocol for peer-to-peer media. WebRTC on iOS via GoogleWebRTC pod or native RTCPeerConnection. On Flutter — flutter_webrtc. Signaling server (SDP, ICE candidates exchange) — usually via same WebSocket channel as chat.

STUN/TURN servers — mandatory infrastructure. Without TURN ~15-20% users behind symmetric NAT cannot establish P2P connection. coturn — open source TURN server, Twilio NTS and Metered TURN — managed options.

Feed and Reactions

Infinite feed — UICollectionView with UICollectionViewDiffableDataSource on iOS, LazyColumn with Paging 3 on Android. Pagination via cursor-based approach (not offset) — on new elements insertion cursor doesn't shift, offset shifts, user sees duplicate content.

Reactions (emoji on messages) — technically: each reaction — separate DB record (message_id, user_id, emoji). Aggregation on server: GROUP BY emoji. WebSocket event reaction_added updates counter in real-time. Reaction appearance animation — via withSpring (Reanimated) or Core Animation spring on iOS.

Push notifications for social events: @mention, reply to comment, new follower — all via APNs (iOS) and FCM (Android). For rich notifications (with media preview) on iOS — Notification Service Extension loading media before display.

Feature Ready-Made SDK Custom Implementation
Basic chat SendBird, Stream WebSocket + Room/GRDB
VoIP Twilio, Agora WebRTC + CallKit
Feed Paging 3 / DiffableDataSource
Push for social events Firebase FCM/APNs APNs direct

Timeline: basic chat with history and push — 4-6 weeks. VoIP calls with CallKit/ConnectionService — 3-5 weeks. Full-featured social feed with reactions, comments and notifications — from 3 months.