Cómo construir una aplicación de chat en tiempo real que sea nativa para Andriod, iOS, Windows y Mac

Supongo que así es como lo haría:

  1. Decide si el mundo realmente necesita otra aplicación de chat. ¿Qué valor ofrecerá sobre todas las otras aplicaciones más establecidas? ¿Hay alguna manera de integrarse en uno y enfocarse en lo que ES increiblemente valioso sobre la comunidad que espera construir?
  2. Configurar un servidor y una base de datos. Esto es básicamente el esqueleto, los órganos principales y el sistema nervioso de cualquier aplicación de chat, y debería obtener la mayor inversión en rendimiento que pueda pagar. Considere el equilibrio de carga global si desea que la gente chatee en todo el mundo y elija la aplicación de base de datos adecuada para esta necesidad. Una búsqueda en Google de la “mejor base de datos para chatear” le dirá más de lo que podría sobre esto.
  3. Asegúrese de que le guste el modelo de datos resultante, las características de rendimiento, etc. ya que de ahora en adelante, será mucho más difícil cambiar cualquiera de los anteriores.
  4. Finalizar bases de datos de usuarios y autenticación. Asegúrese de anticipar cada caso de uso eventual de sus aplicaciones cliente para configurarlas, organizarlas y reorganizarlas hasta que tenga la combinación óptima de tablas, combinaciones, índices, claves, etc. Esto será importante cuando desee que sus usuarios administren sus propias aplicaciones. perfiles y conectarse entre sí. Considere la autenticación con terceros (Facebook, LinkedIn, Google, etc.) para que sea más fácil para todos.
  5. Crea tu primer cliente. Comenzaría con una aplicación web, ya que es donde me siento más cómodo haciendo y probando cambios rápidos, sin la necesidad de volver a compilar, ejecutar simuladores, etc. Sus aplicaciones cliente son realmente una máscara en la parte superior del servidor y base de datos, por lo que este paso será más sobre la creación de una interfaz de usuario impresionante que permita a los usuarios lograr lo que sea que necesiten para chatear entre ellos.
  6. Considere las pruebas beta después de que su primer cliente sea satisfactorio. Si las personas tienen problemas con su aplicación, deciden que no quieren usarla / adoptarla, etc., querrán saber esto antes de invertir en muchas más aplicaciones de clientes, miles de horas de codificación, etc.
  7. Prueba, prueba, prueba. Intenta romper cosas.
  8. Construye los otros clientes.
  9. Prueba, prueba, prueba.

Firebase