¿Qué necesito para crear una aplicación como WhatsApp?

Para crear una aplicación como WhatsApp, primero debe comprender sus características principales que son:

Lo siguiente que debes saber es la tecnología que se utilizó para construir WhatsApp:

Tecnología para hacer una aplicación como WhatsApp

El lado del servidor de WhatsApp está escrito en lenguaje Erlang , ya que es sostenible y capaz de manejar grandes cantidades de datos. Aunque otros, como PHP o Java , también podrían ser buenas opciones.

La pila tecnológica de WhatsApp también incluye la versión personalizada de XMPP (mensajería extensible y protocolo de presencia). Un número de teléfono para iniciar sesión en la cuenta de usuario, con contraseña aleatoria para el primer inicio de sesión. Luego, la aplicación escanea el libro de contactos y crea una lista de contactos para uso en la aplicación.

Con respecto a otras herramientas y tecnologías:

  • FreeBSD como sistema operativo de la aplicación,
  • Mnesia como la base de datos
  • YAWS como servidor web (también de Erlang)
  • Obective-C / Java / C # para desarrollo nativo

Tenga en cuenta que los desarrolladores también pueden usar otras herramientas que, a su vez, podrían afectar el costo de hacer una aplicación como WhatsApp también.

El proceso de construcción real consiste en:

  • Backend
  • QA
  • Desarrollo iOS / Android
  • Diseño
  • Interfaz

Y aquí hay un gráfico circular que muestra el porcentaje de todo el desarrollo dividido en diferentes etapas:

Backend

Construir el esqueleto en el que se ejecuta toda la funcionalidad de una aplicación de mensajería como WhatsApp es la primera responsabilidad de cualquier equipo de desarrollo. La arquitectura aproximada de la aplicación se parecería a nuestro cuadro explicativo a continuación. En primer lugar, Mnesia DB y MySQL (o PostgreSQL) y los almacenes de medios en la nube se pueden usar como marcos de bases de datos.

El servidor de aplicaciones XMPP , nuevamente, es perfectamente adecuado para implementar y mantener llamadas de voz, videollamadas y mensajes. Una API Rest para enviar solicitudes desde la interfaz de usuario a la aplicación para obtener, publicar o eliminar datos. Para las notificaciones dentro de la aplicación, los desarrolladores pueden usar servicios en la nube como Google Cloud Messaging ( GCM ) o Firebase Cloud Messaging ( FCM ).

Todo el backend para aplicaciones como WhatsApp con todas las características críticas tomaría un mínimo de 500 horas, como estima nuestro equipo de desarrollo.

IOS / Android nativo

El presupuesto mínimo para crear una aplicación como WhatsApp sugeriría una sola plataforma. iOS, Android, BlackBerry o Windows … depende de usted decidir, teniendo en cuenta la audiencia o región objetivo. Claramente, iOS y Android son las dos opciones más populares, y encontrar desarrolladores que trabajen en Objective-C, Swift, C # o Java no debería ser un problema.

Por supuesto, hay peculiaridades en el desarrollo nativo: varios SDK de chat para crear una aplicación de mensajería, servicios en la nube de Google y Apple, bibliotecas, etc. Pero uno no tiene que profundizar tanto si contrata una agencia de desarrollo: esos tipos saben lo que hacen. comercio. Tomaría más de 200 horas para una plataforma.

Diseño

Por lo general, el diseñador produce 3 pantallas, es decir, 3 versiones de la aplicación buscan que usted elija llamado concepto visual. Según la pantalla elegida del concepto visual, se crean todas las demás pantallas. No te olvides del logotipo: la cara de tu aplicación. Apple tiene un logotipo simple, ¡pero es el logotipo más reconocible entre otros! Además del color de la aplicación: las principales aplicaciones están hechas en una gama de colores azul-verde (Skype, Twitter, WhatsApp, VK, Shazzam).

QA

Después de que los desarrolladores completan el primer alcance del trabajo, llega el turno de un ingeniero de control de calidad. Los probadores de software desempeñan un papel considerable en mejorar la aplicación durante todo el proceso de desarrollo que realiza pruebas Alpha todo el tiempo. Él / ella es responsable de garantizar que el producto esté bien hecho y, si no, sus deberes incluyen informar sobre la existencia de errores.

Puede solicitar trabajadores independientes, compañías de control de calidad o un equipo interno de evaluadores, pero los dos últimos son mejores para acelerar la comunicación dentro del equipo.

Si está interesado en el precio real de ese tipo de desarrollo, le recomiendo que lea este artículo:

¿Cuánto cuesta hacer una aplicación como WhatsApp?

El problema con la creación de una aplicación como Whatsapp es que es muy difícil. Si desea codificarlo usted mismo desde cero, le tomaría alrededor de 6 meses de trabajo a tiempo completo. Pagarle a alguien para que lo codifique costará alrededor de $ 30k +. El chat instantáneo es un proyecto que muchos desarrolladores analizan pero muy pocos terminan realmente. Es mucho más fácil planificar que codificar.

Por esta razón, siempre recomiendo usar un componente de chat listo si desea implementar el chat en su aplicación. Hay muchas razones por las cuales esta es la mejor opción, a continuación se encuentran solo las principales:

Tiempo: al desarrollar un producto, una de las cosas más importantes es minimizar el tiempo de concepción para el lanzamiento. Una vez que se lanza una aplicación y muestra éxito, se puede invertir dinero, pero inicialmente desea que los usuarios puedan probar su aplicación sin grandes inversiones de dinero. El uso de un producto de chat le permite obtener rápidamente un chat funcional en su aplicación, lo que significa que puede enfocar su tiempo en modificaciones, marketing y lanzamiento.

Dinero: el viejo dicho es que “el tiempo es dinero”. La programación no es diferente. Podrías pagarle a alguien para que desarrolle una aplicación de chat como Whatsapp o desarrollarla tú mismo. Ambas toman mucho tiempo o mucho dinero. Construir su aplicación de chat sobre un producto de chat le ahorra una gran cantidad de ambos.

Producto mínimo viable : un producto mínimo viable es una versión de su aplicación que muestra su funcionalidad pero sin invertir en la finalización de un producto final. El siguiente gráfico ilustra esto excelentemente. Es posible que eventualmente desee desarrollar su propio componente de chat, pero comenzar usando uno disponible le permitirá lanzar un MVP de alta calidad al mercado lo antes posible.

Calidad: el uso de un chat que ha sido probado y mejorado durante años significará que su chat es de mucha mayor calidad. Las aplicaciones requieren una gran cantidad de pruebas para encontrar cada error y también mejorar la estructura de la aplicación. El uso de una aplicación de chat popular le permitirá ahorrar tiempo creando su aplicación en lugar de solucionar los problemas que aparecen al desarrollarla.

¿Entonces qué debo hacer?

Si desea crear una aplicación como Whatsapp, los pasos son los siguientes:

  1. Desarrollar un chat (85%)
  2. Agregar funciones a ese chat (8%)
  3. Personaliza el estilo del chat (3%)
  4. Comercializa y lanza tu aplicación (4%)

He agregado el tiempo aproximado para cada parte durante la vida del proyecto. Como puede ver, el desarrollo del chat es la mayoría de las veces. Minimizar este paso le permitirá ahorrar tiempo y dinero y también mejorar su producto a través de pruebas de usuario.

Chat de código abierto:

Recomendaría revisar el SDK de Chat. Este es un componente de chat de código abierto que hemos lanzado en Github con una licencia MIT. Esto significa que es gratis descargar, modificar y lanzar a la tienda de aplicaciones. Chat SDK tiene productos iOS y Android totalmente compatibles que se pueden descargar y ejecutar, en nuestras cuentas de prueba, en menos de 5 minutos. Esto le permite ver rápidamente el chat en acción y también ver si es adecuado para su proyecto.

La ventaja de un producto de chat como este es que le permite poner su aplicación en funcionamiento de manera muy rápida y económica. Luego puede hacer modificaciones para agregar su propia funcionalidad personalizada antes de lanzarla a la tienda.

Chat pagado:

Hay muchos productos diferentes de chat pago que ofrecen diferentes servicios. Layer, Pubnub, QuickBlox son algunos de los más populares. Si decide utilizar uno de estos, le recomendaría leer este artículo que analiza el costo real de agregar chat a su aplicación móvil al observar los precios durante toda la vida útil de su aplicación.

Para crear una aplicación como WhatsApp, deberá codificar el lado del cliente y el servidor de la aplicación. Este tipo de aplicación también debería tener consultas en vivo. Para el lado del cliente, deberá decidir si su aplicación se ejecutará con iOS o Android o ambos. El tiempo que necesitará para desarrollar una aplicación depende de cuán complejo desee que sea la aplicación y si usará marcos para acelerar el desarrollo de software. Una aplicación consta de 02 capas de programación diferentes:

Backend: Back-end significa las partes que hacen el trabajo, pero el usuario final desconoce o no puede ver. Representa el 80% del trabajo total y contiene API, bases de datos, servicios, etc. Existen varios proveedores de BaaS – Backend as a Service para acelerar el desarrollo del backend. Back4app puede acelerar hasta un 80% el desarrollo del backend y es una buena opción para los desarrolladores que buscan flexibilidad y control sobre el código fuente. Firebase proporciona resultados similares, pero los usuarios no tienen acceso al código fuente y están bloqueados en la plataforma.

Frontend: Front end normalmente significa las partes del proyecto con las que un usuario interactúa. La interfaz puede ser móvil (Android, IOS, Windows, etc.) o web. Una buena plataforma para acelerar el desarrollo de la interfaz móvil es Xamarin y puede reducir hasta un 70% el tiempo total para desarrollar aplicaciones de Android e iOS.

Este tutorial detallará los pasos de cómo crear una aplicación similar a WhatsApp y proporcionará una muestra del código fuente de la aplicación final.

Mensajero simple

Después de este tutorial, podrá crear una aplicación como esta:

Antes de entrar en la acción, asegúrese de tener un proyecto que esté configurado para usar la API Live Query de Back4App. Puede consultar el siguiente enlace a la guía de Live Query:

En este proyecto, crearemos una aplicación simple que funcionará como un cliente de intercambio de mensajes. Siga los pasos y consulte el código fuente al final de la página.

Paso 1 – Crear clase de mensaje

Tenemos que crear una clase llamada Mensaje en el Panel de control de Parse con los campos contenido, remitente y mensaje. El resultado se muestra en la imagen:

Además, no olvide seguir los pasos descritos en el artículo de Live Query. Después de eso, ya está todo listo en el backend. Ahora a la aplicación.

Paso 2 – Crea el proyecto

En Android Studio, cree un nuevo proyecto, como se muestra a continuación:

Seleccione los factores de forma que se muestran en la imagen a continuación:

Seleccione el modelo de actividad básica:

Y llámalo MessageBoardActivity:

Ahora es el momento de agregar elementos a la aplicación.

Paso 3: agrega elementos a la aplicación

Tan pronto como abra el proyecto, vaya a la carpeta res y busque la carpeta de diseño. Allí, busque el archivo “activity_message_board.xml” y haga doble clic para abrir la parte del diseño. Tenga en cuenta que la plantilla comienza con un FloatingActionButton llamado “fab”. Primero cambiemos el nombre de este botón, haciendo clic una vez en su nombre en el Árbol de componentes:

Y luego cambie su ID a “enviar”, como se muestra en las imágenes a continuación:

Ahora, tenemos que agregar los elementos a la aplicación. En este mismo diseño, agregue un RelativeLayout al CoordinatorLayout existente, y luego agregue un Texto sin formato al Diseño recién creado. El árbol de componentes debería ser así:

Cambie la ID del Texto sin formato que acaba de agregar a “mensaje” y cambie su campo “pista” a “Escriba su mensaje” y deje en blanco su campo “texto”. Además, marque su campo “singleLine” (verdadero) y su “inputType” a “textShortMessage”. Todos estos ajustes se pueden hacer en la pestaña Propiedades, como se muestra:

Alinee el elemento “mensaje” con el botón “enviar” y estará listo en este archivo. Ahora, dirígete al archivo llamado “content_message_board.xml” y haz doble clic para abrirlo.

Verás otra parte del diseño. Este diseño se incluirá en el que se modificó antes, automáticamente, tan pronto como la aplicación muestre su contenido. Primero cambiemos la ID de TextView que ya está en RelativeLayout existente a “messageBoard”.

Luego, deje en blanco su campo de “texto” y marque el campo “layout_alignParentBottom”, que le permitirá cambiar el tamaño del campo de texto al tamaño deseado, lo que debe hacer. En este ejemplo, el campo “layout_marginBottom” se configuró en “50 dp”, lo que le da un buen tamaño: esta opción está dentro de las opciones de “Layout_Margin”.

Además, deberá establecer el campo “gravedad” en “abajo”, de modo que el texto llegue de abajo hacia arriba y sea necesario establecer el campo “maxLines” en “20”, de modo que tan pronto como el chat está lleno, no pasa por encima del “mensaje” o los elementos “enviar”. A continuación se muestra una imagen con algunas de las propiedades que se han establecido:

Ahora, solo tenemos que tener en cuenta que también hay un diseño para el pequeño menú que aparece en la esquina superior derecha: el menú de configuración. No hay nada que hacer en este diseño, pero saber que su ID es “action_settings”. Es necesario programar cada elemento que se ha cambiado o agregado a los diseños.

Paso 4: agrega el código de trabajo a la aplicación

Cada pieza de código que hace alguna funcionalidad aquí debe agregarse dentro del método “onCreate”, en MessageBoardActivity. Primero, declaremos los elementos que usaremos:

// Elementos que vamos a usarFloatingActionButton sendButton = (FloatingActionButton) findViewById (R.id.send); final TextView messageBoard = (TextView) findViewById (R.id.messageBoard); messageBoard.setMovementMethod (new ScrollingMovementMethod ()); final Edit mensaje = (EditText) findViewById (R.id.message);

Ahora, tenemos que agregar la inicialización de la API Parse de Back4App, que se puede ver en el Tutorial de Live Query. A continuación, tenemos que suscribirnos al canal y agregar el texto al “tablero de mensajes” tan pronto como se cree:

// Se realiza una suscripción que recibe todos los mensajes final Subscription sub = new BaseQuery.Builder (“Message”) .where (“type”, “message”) .addField (“sender”) .addField (“content”) .addField (” escriba “) .build () .subscribe (); // Si se crea un mensaje, agregamos al texto fieldsub.on (LiveQueryEvent.CREATE, nuevo OnListener () {@Override public void on (JSONObject object) {try {String message = (String) ((JSONObject) object. get (“object”)). get (“content”); String sender = (String) ((JSONObject) object.get (“object”)). get (“objectder”); String toBeAdded = sender + “:” + mensaje; Cadena final updatedText = ‘\ n’ + toBeAdded; runOnUiThread (new Runnable () {@Override public void run () {messageBoard.append (updatedText);}});} catch (JSONException e) {e.printStackTrace ();}}});

Luego, tenemos que agregar funcionalidad al botón “enviar”. Primero, necesitamos crear un campo de cadena llamado “remitente”, que en este ejemplo tiene un valor predeterminado de “Back4User” en esta misma clase en la que estamos agregando la funcionalidad. Luego, debemos agregar el siguiente código para que, tan pronto como se haga clic, se envíe el mensaje:

// Implementando las acciones que tendrá nuestra aplicación // Comenzando con la funcionalidad sendButtonsendButton.setOnClickListener (nueva View.OnClickListener () {@Override public void onClick (vista de vista final) {String messageToSend = message.getText (). ToString (). ; Log.i (“Mensaje”, “creado correctamente,” + messageToSend); // Crear y enviar el mensaje ParseObject click = new ParseObject (“Message”); click.put (“content”, messageToSend); click.put (“remitente”, remitente); click.put (“tipo”, “mensaje”); click.saveInBackground (nuevo SaveCallback () {@Override public void done (ParseException e) {Log.i (“Mensaje”, “Enviado correctamente “);}}); runOnUiThread (new Runnable () {@Override public void run () {// Configurando el texto en blanco nuevamente message.setText (” “);}});}});

El siguiente elemento a configurar es el botón Configuración: el elemento “action_settings”. El diseño de este tipo de menú es tal que tiene sus propios métodos para activar las opciones del menú. Por lo tanto, es imprescindible modificar sus propios métodos, que en este caso es “onOptionsItemSelected”. Busque una declaración “if” que tenga la siguiente condición:

if (id == R.id.action_settings) {…}

Y agregue el siguiente código dentro de él:

// Crea un EditText final txtUrl = new EditText (this); nuevo AlertDialog.Builder (este) .setTitle (“Configuración”) .setMessage (“Escriba el nombre de usuario que desee”) .setView (txtUrl) .setPositiveButton (“Cambiar nombre de usuario”, nuevo DialogInterface.OnClickListener () {public void onClick ( DialogInterface dialog, int whichButton) {// Establece el remitente remitente = txtUrl.getText (). ToString ();}}) .setNegativeButton (“Cancelar”, nuevo DialogInterface.OnClickListener () {public void onClick (DialogInterface dialog, int whichButton ) { } }) .espectáculo();

Entonces, en esta aplicación utilizamos las capacidades de Live Query para crear un mensajero minimalista para Android. Creamos las clases en Back4App que se usaron para enviar los mensajes. Luego, configuramos el proyecto de Android utilizando una bonita plantilla que Google ofrece con Android Studio. Después de eso, agregamos y personalizamos los elementos de la aplicación (botones, campos de texto y diseños). Finalmente, agregamos el código que envía el mensaje al botón que existe en el diseño; agregó un código al menú de configuración, de modo que el nombre del remitente podría cambiarse y agregó un código para recibir mensajes.

Y eso es todo por esta aplicación. Mira el código completo a continuación:

https://github.com/rvitorper/bac

Descargo de responsabilidad, soy fundador de Back4app.

Necesitas una idea, una investigación en primer lugar. Recomendaría descubrir qué haría que su aplicación sea única y destaque, sea mejor que WhatsApp. Cuando apareció WhatsApp, las personas se dieron cuenta de que ya no necesitan pagar por SMS, y eso es lo que hizo que esta aplicación fuera popular. En este momento, debes comenzar con una idea que cambie el juego.

Otra cosa es mejorar la experiencia del usuario de alguna manera, no hacer el clon sino construir algo nuevo desde este punto también.

Nuestro CTO una vez que exploró el tema, puede consultarlo: ¿Cuánto cuesta desarrollar una aplicación de chat como WhatsApp?

Para crear una aplicación de mensajería instantánea como Whatsapp, los desarrolladores y la marca deben centrarse en los aspectos que hacen que la aplicación de clones se destaque de Whatsapp y los otros clones creados. Debe proporcionar una buena experiencia interactiva para sus usuarios al tiempo que presta especial atención a características como seguridad, chats grupales, llamadas de voz y video, compartir ubicación, etc. Zoechat es un ejemplo de una aplicación de Whatsapp Clone que presenta todo lo relacionado con los atributos antes mencionados.