Esta es una pregunta muy general, así que solo puedo dar una respuesta general. Para crear una aplicación de chat, hay tres partes:
- Interfaz de usuario
- Controlador de red
- Almacenamiento de datos
La interfaz de usuario muestra hilos, mensajes, perfil de usuario, etc. También permite al usuario redactar mensajes.
El controlador de red se comunica con su servidor. Envía y recibe mensajes.
- Cómo aprender a hacer una aplicación de Android como un estudiante de PCB de clase 12 que quiere adoptar la medicina como profesión y desarrollador de aplicaciones como un pasatiempo a tiempo parcial
- Tengo 19 años, cumpliré 20 el próximo año, y deseo crear una aplicación de Android simple, pero no tengo ninguna educación oficial en dichos campos. Entonces, con solo mi computadora portátil delante de mí, ¿por dónde empiezo y qué necesito aprender?
- Mi aplicación de Android en Google Play solo recibe entre 500 y 800 instalaciones diarias por dispositivo cada día. ¿Debería molestarme en monetizarlo a través de anuncios?
- He creado dos aplicaciones de Android con una interfaz rudimentaria solo con elementos básicos de la interfaz de usuario. Ambos obtuvieron 1k + descargas y un par de revisiones + VE en poco tiempo. ¿Hay algún valor en invertir más tiempo para mejorarlo? ¿O las descargas de 1k no son un gran problema y no valen la pena?
- Soy un novato, ¿cuál es la mejor manera de ser un desarrollador de Android? ¿Estoy menos interesado en el desarrollo de aplicaciones y más en el código fuente y el núcleo en sí?
El almacenamiento de datos persiste los hilos, usuarios y mensajes en el dispositivo y le permite recuperarlos más tarde.
Recomendaría dividir estas partes usando interfaces. No querrás agregar código de red o de almacenamiento de datos a la interfaz de usuario.
Para la interfaz de usuario, puede copiar una aplicación como WhatsApp o Facebook Messenger. En general, todas las aplicaciones de mensajería tienen un diseño similar.
Para la interfaz de usuario, recomendaría el SDK de Chat, que es un sistema de mensajería de código abierto para iOS y Android. Es muy modular y contiene una interfaz de usuario de chat completa, así como un controlador de red para Firebase.
El controlador de red dependería en gran medida de la tecnología del servidor que decidió utilizar. Pero deberían los métodos como:
- Enviar mensaje
- Crear hilo con usuarios
- Actualizar perfil de usuario
- Buscar usuario con nombre
etc …
La implementación dependería del servidor que utilizó. Si planea usar XMPP, recomendaría ejabberd y Smack.
Para el almacenamiento de datos tendrá tres entidades principales:
- Usuario (muchos a muchos con hilo)
- Hilo (uno a muchos con mensaje)
- Mensaje
Para la capa de base de datos, recomendaría GreenDAO, que es un poderoso ORM para Android.