¿Qué herramientas de desarrollo utilizó el equipo de WhatsApp para crear la aplicación de mensajería?

Para crear una aplicación de mensajería, el equipo de WhatsApp ha utilizado las siguientes tecnologías. A continuación he mencionado la arquitectura de WhatsApp

  • El servidor utilizado es Ejabberd
  • El lenguaje de programación utilizado es Erlang
  • Protocolo – XMPP
  • Para la gestión de bases de datos – Mnesia y Mysql
  • Almacenamiento de archivos multimedia usando el servidor de almacenamiento YAWS
  • Sistema operativo – FreeBSD

Han utilizado el servidor Ejabberd que facilita la transferencia instantánea de mensajes entre dos o muchos usuarios en un segundo dado. Luego viene el lenguaje de programación Erlang, donde el servidor jabber de código abierto está escrito usando este lenguaje y es el preferido por los técnicos de WhatsApp, ya que puede acomodar un gran sistema de comunicación con alta sostenibilidad.

Luego, el protocolo XMPP llamado como Protocolo de presencia y mensajería extensible entra en escena y se usa DSL para garantizar la seguridad de la red. Mnesia DB se utiliza para la gestión de bases de datos, que es un DBMS distribuido de usos múltiples que resulta ser el DB predeterminado de ERLANG. El servidor web exclusivo YAWS se utiliza para el almacenamiento de archivos multimedia. Obtenga una idea clara sobre la funcionalidad de Whatsapp y cree una aplicación de clonación de Whatsapp

Herramientas y marcos utilizados en WhatsApp
A continuación se incluye una lista de herramientas y marcos que se utilizaron en la versión más reciente de la aplicación móvil WhatsApp. Grita si no estás de acuerdo con una o más entradas que se enumeran a continuación.

  1. Centrado en la interfaz de usuario
    • ActionBarSherlock: ActionBarSherlock es una extensión de la biblioteca de soporte de Android diseñada para facilitar el uso del patrón de diseño de la barra de acción en todas las versiones de Android con una sola API. La biblioteca se usó en componentes como GalleryPicker, ImageGallery, etc.
    • StickyGridHeaders: una biblioteca de Android que proporciona un GridView que muestra elementos en secciones con encabezados. Por defecto, los encabezados de sección se pegan en la parte superior como la aplicación People en Android 4.x, pero esto se puede desactivar. StickyGridHeaders también ajusta automáticamente sus filas al elemento más grande de la fila.
  2. Integración con Google Maps, Google+
    • SDK de servicios de Google Play: ayudó a WhatsApp a aprovechar las funciones de Google , como Google Maps , Google+.
  3. Distribución de actualizaciones de plataforma
    • SDK de servicios de Google Play: ayudó a distribuir actualizaciones automáticas de la plataforma como APK a través de la tienda Google Play. Esto hizo que los usuarios recibieran las actualizaciones más rápido
  4. Medios de comunicación
    • Mp4Parser: Como parte de Mp4Parser, ISOParser e ISOViewer se acostumbraron a leer y escribir la estructura del archivo MP4 y visualizar la estructura del cuadro MP4 respectivamente.
  5. Mensajería
    • Marco de mensajería de nube a dispositivo: Android Cloud to Device Messaging (C2DM) es un servicio que ayuda a enviar datos desde servidores a la aplicación WhatsApp en dispositivos Android. El servicio proporciona un mecanismo simple y liviano que los servidores pueden usar para decirle a las aplicaciones móviles que contacten al servidor directamente, para obtener datos actualizados de la aplicación o del usuario. El servicio C2DM maneja todos los aspectos de la cola de mensajes y la entrega a la aplicación de destino que se ejecuta en la página de destino en el dispositivo. En la aplicación, hay dos componentes clave. Son C2DMBroadcastReceiver y C2DMRegistrar .
  6. Base de datos
    • SQLite: SQLite es una base de datos de código abierto que admite características de base de datos relacionales estándar como sintaxis SQL, transacciones y declaraciones preparadas. La base de datos requiere memoria limitada en tiempo de ejecución (aproximadamente 250 KByte), lo que la convierte en un buen candidato para integrarse en otros tiempos de ejecución.
  7. Plataforma
    • SDK de Android
    • AspectJ: una extensión transparente orientada a los aspectos del lenguaje de programación Java que se utiliza para la modularización de problemas transversales, como la verificación y el manejo de errores, la sincronización, el comportamiento sensible al contexto, las optimizaciones de rendimiento, el monitoreo y el registro, el soporte de depuración y la multiabjeto protocolos

ERLANG es el lenguaje de programación utilizado en la codificación de WhatsApp. La reestructuración del código y algunos cambios importantes se realizaron en el servidor Ejabberd para lograr un rendimiento óptimo del servidor.

Además, Erlang está dispuesto a adaptarse a actualizaciones instantáneas y correcciones urgentes. Esto es lo que ayuda a WhatsApp a impulsar rápidamente los cambios a la implementación en vivo sin necesidad de reiniciar.

WhatsApp Messenger utiliza el servidor Ejabberd (XMPP) que ayuda a la transferencia de mensajes instantáneos entre dos o muchos usuarios en tiempo real. La alta confiabilidad y sostenibilidad incluso bajo tráfico pico son las razones por las cuales los desarrolladores de WhatsApp eligieron Ejabberd por encima de cualquier otra cosa.

WhatsApp, el gigante de la mensajería instantánea se basa en una arquitectura compleja. Las herramientas de desarrollo son las siguientes:

  • Servidor utilizado – Ejabberd
  • Lenguaje de programación utilizado – Erlang
  • Protocolo – XMPP
  • Gestión de bases de datos – Mnesia y Mysql
  • Almacenamiento de archivos multimedia usando el servidor de almacenamiento YAWS
  • Sistema operativo – FreeBSD

Algunas herramientas de la versión web están aquí. ¿Cómo funciona el nuevo cliente web de WhatsApp? Es necesario tener el teléfono conectado a Internet mientras usa el cliente web. ¿Qué tecnología se está utilizando aquí? ¿Cómo explica las limitaciones de iOS?

En el lado del servidor, utilizaron el servidor enjabberd XMPP y algo de programación Erlang.

More Interesting

¿Cuál es el software más difícil de programar?

¿Debo tomar las pruebas de software como especialidad en informática, o es algo que acabas de aprender en la industria?

¿Debería un aspirante a desarrollador de software centrarse solo en el lenguaje de programación?

¿Estudiar mecatrónica e ingeniería de software juntos te convierte en un talentoso diseñador y programador de robótica?

¿Qué ensayos me recomendarías leer si quiero ampliar mis conocimientos fuera de la escuela?

¿Cuál es la mejor manera para que un profesional de TI migre a los Estados Unidos?

¿Cómo puedo ingresar a la gestión de productos cuando tengo 3 años de experiencia en la industria como desarrollo de software? ¿Quiero saber los conceptos básicos / cursos / certificaciones que tendré que hacer para al menos unirme como Gerente de Producto Asociado?

¿Por qué las licencias de software necesitan mantenerse actualizadas?

¿Los empleadores evalúan a los probadores de software cuando el cliente / cliente detecta un error válido? ¿Con qué frecuencia ocurre esto?

¿Existe una relación entre el aprendizaje automático y la programación concurrente?

¿Qué es el 'marco' en ingeniería de software?

¿Qué piensan las empresas y los ingenieros de software que experimentan con Redis?

¿Es necesario aprender a programar muy bien para desarrollar software y sistemas de TI?

¿Cuáles son algunos buenos tutoriales en video sobre patrones de diseño en C ++, Java y Python?

¿Cuál es la mejor manera de distribuir el software Python?