¿Cómo se crean comúnmente las aplicaciones de chat en Android?

Cuando hablamos de la pila de tecnología utilizada por las aplicaciones de chat móvil, es importante hablar sobre el cliente y el servidor por separado.

Servidor

Hay varias tecnologías de servidor disponibles para crear una aplicación de chat.

Jabber / XMPP

XMPP es un protocolo de mensajería que se desarrolló a finales de los 90. Funciona con muchas aplicaciones de mensajería populares, como WhatsApp, Skype y Facebook Messenger.

Hay varios servidores XMPP de código abierto populares:

  • ejabberd
  • Prosodia
  • Abran fuego

Backend como servicio

Más recientemente, los desarrolladores han comenzado a usar backends en tiempo real para crear aplicaciones móviles. Esto es bueno porque reduce la complejidad tecnológica del proyecto y permite construir un MVP más rápidamente. Esto es útil para las startups que quieren moverse rápidamente.

Algunos servicios de backend populares son:

  • Firebase
  • PubNub
  • Arribista
  • Capa
  • Quickblox

Puede ver una comparación de precios de estos servicios aquí.

Pila personalizada

También sería posible construir una pila de servidor personalizada usando WebSockets. Un ejemplo podría ser el uso de Symfony con el paquete WebSocket.

Cliente

El cliente se escribirá utilizando Java en Android Studio o utilizando un sistema de desarrollo multiplataforma como Ionic, PhoneGap, Titanium, etc. En este último caso, la aplicación generalmente se escribe en JavaScript y luego se ejecuta en una vista web.

XMPP

Para construir un cliente XMPP, recomendaría usar la biblioteca de código abierto Smack.

Backend como servicio

Cada servicio tiene su propio SDK que puede usarse para acceder a sus servidores. Puede ver un ejemplo de código abierto completo de un cliente de mensajería que usa Firebase en Github.

WebSockets

Para crear una aplicación de Android basada en WebSockets, recomendaría Android WebSockets.

Yo … no entiendo la pregunta: ¿se pregunta cómo funcionan generalmente los chats en los teléfonos Android?
Básicamente, todos los chats funcionan igual: hay un servidor (una computadora en Internet que recibe solicitudes) al que los clientes (teléfonos Android) envían mensajes, los mensajes se dividen en 2 partes.
1. ¿A quién debo enviar el mensaje?
2. ¿Qué contiene el mensaje?

el servidor que decodifica el mensaje y reenvía el texto a los destinatarios (puede ser una sola persona, un grupo o una transmisión para todos), la idea ha existido mucho antes de Android y probablemente sobrevivirá cuando desaparezca 🙂

El sitio web de Xamarin tiene buenos materiales sobre esto.