¿Cuáles son las herramientas necesarias para crear una aplicación de mensajería simple (Android)?

En primer lugar, haré algunas suposiciones:

  • está familiarizado con conceptos básicos de CS como cliente, servidor, comunicación de red, etc.
  • estás familiarizado con el SDK de Android
  • desea crear una aplicación simple, no una lista para la producción

Los supuestos anteriores son necesarios porque no quiero entrar en detalles técnicos tediosos. Prefiero presentarle los elementos clave para crear su aplicación móvil y darle la oportunidad de explorar todo esto en detalle por su cuenta. ¡Entonces, no perdamos otro momento!

Un flujo simple para enviar un mensaje entre los usuarios:

Cliente1 → Servidor → Firebase Cloud Messaging Service → Cliente2

Client1 y Client2 son instancias de su aplicación, cada una de ellas con un usuario diferente con sesión iniciada. Su aplicación debe proporcionar un mecanismo básico de autenticación para que los usuarios puedan crear cuentas, lo que les permite ser identificados de forma única en el sistema. Su aplicación también debe permitir que el usuario seleccione otro usuario de una lista para iniciar una conversación.

El servidor proporciona la API (digamos que usa REST) ​​necesaria para operaciones como el registro y la autenticación de usuarios, obtener una lista de usuarios, etc. También debe proporcionar un punto final para enviar mensajes, básicamente, un lugar donde el Cliente1 puede decir “¡Yo, usuario 1, quiero enviar este mensaje al usuario2!”. El servidor sabe que ambos usuarios están presentes en el sistema, pero ¿cómo puede encontrar las instancias de aplicación de user2? ¡Aquí es donde funciona el servicio de mensajería en la nube de Google, su magia sucede!

Actualmente conocido como Firebase Cloud Messaging Service , este mecanismo identifica cada instancia de su aplicación con un token único. ¡Tenga en cuenta que primero debe registrar su aplicación para usar este servicio! Su aplicación debe implementar un par de servicios para registrarse con el servicio de mensajería en la nube y para poder recibir mensajes como notificaciones push . Si su registro en el servicio en la nube es exitoso, su instancia de aplicación recibe un token único . Puede vincular estos tokens con la cuenta de su usuario en el lado del servidor. Cómo implementar esta lógica, es su decisión.

Entonces, cuando el servidor recibe una solicitud de mensaje del usuario1 para el usuario2, sabe exactamente dónde encontrar al usuario2 utilizando sus tokens de instancia de aplicación. El servidor ahora puede volver a empaquetar la solicitud de mensaje como una solicitud para el servicio de mensajería en la nube con los tokens de aplicación de user2 como destinos.

¡Espero eso ayude! Aquí hay algunos enlaces para comenzar:
Firebase Cloud Messaging | Firebase
Notificaciones | Desarrolladores de Android
Transmitiendo datos de red usando Volley

Simplemente estoy trabajando en el mismo proyecto, así que te daré una lista de herramientas / protocolos que estoy usando:

  • Firebase: administra la autenticación, la base de datos y la comunicación del servidor a los dispositivos del cliente, a través de firebase.
  • Android Studio: IDE para todo lo relacionado con Android
  • Volley (HTTP): se utiliza para gestionar la realización de solicitudes HTTP desde dispositivos cliente. Utilizado para la comunicación del cliente al servidor.
  • NodeJS: lenguaje y marco del lado del servidor, muy bueno en la gestión eficiente de muchos usuarios concurrentes. También estoy usando varios complementos:
  • Express: se usa para simplificar la configuración del servidor
  • Unirest: contenedor de solicitud HTTP
  • Firebase-admin: permite que el servidor se conecte a firebase para Databasing, con privilegios de administrador.

Si necesita saber algo más, hágamelo saber en los comentarios, ¡me encantaría ayudarlo!

More Interesting

¿Hay algún problema con rootear un teléfono Android?

Cómo eliminar el modo avión en la barra de notificaciones en un Android ZTE

Cómo desarrollar una aplicación de Android de voz a texto de modo que haya un paralelismo entre escuchar la voz e imprimir el texto

¿Cuánto cuesta en general el desarrollo de una aplicación de Android para una aplicación empresarial?

¿Cuáles son algunas buenas aplicaciones de juegos para Android para una adolescente?

¿Qué es una buena aplicación de Android para mejorar la pronunciación del inglés británico?

¿Cómo verificar si mi teléfono Android está siendo rastreado o tocado? Si es así, cifrar el dispositivo ayudará, dañará o no hará ninguna diferencia después del hecho

¿Cuáles son algunas de las mejores aplicaciones de Android para niños de 4 a 8 años?

¿Es la ingeniería inversa una aplicación de Android para aprender cómo se codificó / creó únicamente con fines de aprendizaje legal y éticamente correcto?

¿Qué conceptos de Java debo aprender para comenzar el desarrollo de aplicaciones de Android?

¿Cuánto paga Google por descarga de una aplicación de Android?

¿Cuáles son las mejores prácticas para planificar el desarrollo de una aplicación de Android?

¿Qué redes sociales basadas en la ubicación existen para freelancers, creativos y emprendedores?

Cómo diferenciar desarrolladores y modos de lanzamiento a través de Gradle en Android

Cómo agregar la opción de emoji en mi aplicación de chat de Android