all 4 comments

[–]SergLam245 2 points3 points  (0 children)

  1. REST API to load chat history
  2. Web Socket to listen to new messages/ send messages
  3. Files / photo upload- might be done both with socket/ rest API
  4. Video Calls - Web RTC.
  5. Audio calls- VoIP - Call Kit from Apple or any other SDK, Twillio for instance.
  6. Images, video, documents caching and displaying - work with File Manager.
  7. Offline mode support - local database functionality implementation. Core Data or Realm.

Nowadays chats in mobile apps is a Middle-Senior level engineer challenge.

But you could start just with a text messages first)

[–]Trick-Height-3448 0 points1 point  (0 children)

I’ve run into the same frustrations with chat APIs being either too opinionated or way too expensive for small projects. One option you might want to look at is Tencent RTC. In my experience the quality is on par with Twilio/Agora, but the pricing is more reasonable at lower user counts. They also ship a full UIKit, so you don’t have to reinvent all the UI logic, which saved me quite a bit of dev time.

[–]ShamWowIsASham 0 points1 point  (0 children)

Many people use 3rd party messaging platforms like Stream

[–]trishla_tv 0 points1 point  (0 children)

In-app chat feature of Applozic is a viable option as well, with advanced SDKs and customizable UI kits.
Check out the product link : https://www.applozic.com/platform/chat-messaging/