Quiero construir una aplicación de chat para Android. ¿Cómo se vería el esquema de diseño de software para una aplicación como esta (qué clases deben implementarse)?

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.

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.

More Interesting

Tengo una aplicación de Android y 100 $ para promocionarla. ¿Qué debo hacer para obtener la mayor cantidad de instalaciones?

Quiero desarrollar una aplicación de compras como Flipkart en Android. ¿Cómo debo comenzar?

Estoy a punto de escribir una nueva aplicación para Android. ¿Qué quieren que escriba?

Quiero un software como cam-scanner (Android) para PC con Windows 7. ¿Cuáles son algunos softwares similares compatibles con Windows 7?

Quiero implementar la función de deslizamiento con transición para mis actividades en mi aplicación de Android. ¿Cómo debería hacer esto?

Tengo una idea de desarrollar aplicaciones de Android o iOS para móviles. ¿Cuánto costará esto y por dónde puedo comenzar?

Contraté un estudio de desarrollo de aplicaciones móviles en alta mar para crear una aplicación. Durante los últimos 2 meses sigo recibiendo excusas sobre por qué el desarrollo no progresa tan rápido como se estimó originalmente. En esta etapa, el presupuesto estimado será 2x-3x más. ¿Es esto normal o debería buscar sacar el proyecto?

Tengo una idea para una aplicación móvil con la perspectiva de hacer una gran explosión. ¿Qué pasos debo seguir para resolver la idea una vez que se haya creado la aplicación móvil para que se ajuste al plan?

Quiero crear una aplicación de Android que también reciba reseñas de libros de Goodreads. ¿Cómo puedo codificar esto? ¿Cómo puedo obtener solo las reseñas sobre los libros y también dejar que el usuario comente sobre las reseñas?

Sé WordPress pero no las cosas de programación. ¿Cómo debo desarrollar el sitio web de mis sueños y cómo puedo hacer una aplicación para Android o Apple para manejar mi negocio?

Quiero aprender a desarrollar aplicaciones de Android desde cero. ¿Dónde y cómo empiezo?

Tengo 1 año de experiencia como desarrollador de Android. ¿Debo aprender la tecnología Xamarin para desarrollar aplicaciones de Android, iPhone y Windows? ¿Hay posibilidades futuras para la tecnología Xamarin?

Soy un novato en Android. Quiero crear una página de inicio / cierre de sesión en una aplicación de Android. ¿Cómo funcionan los inicios y cierres de sesión? ¿Van a un servidor o un sitio web para su validación, obtienen los datos de una base de datos y luego se autentican?

Estoy creando una aplicación de Android antirrobo. ¿Cuáles son las sugerencias sobre las características especiales que se necesitarían en una aplicación antirrobo?

Tengo una idea para un juego de Android que quiero desarrollar. ¿Alguien puede sugerir algunas cosas como cómo puedo comenzar y aprender caminos?