Cómo desarrollar una aplicación de mensajería en tiempo real para iOS

Hola,

Muchas gracias por la pregunta que haces aquí.

Aparentemente, aquí hay un artículo que acabo de publicar sobre el tema de las aplicaciones de mensajería en tiempo real, basado en las aplicaciones similares que ya están presentes en el mercado – Cómo hacer una aplicación de mensajería realmente segura similar a Signal – Mind Studios

Si está dispuesto a desarrollar una aplicación de chat, lo primero que debe pensar es la evaluación de la idea: ¿qué nicho ocupa? ¿Qué demanda del mercado cubre? ¿Cuál es la ventaja competitiva que ofrece?

Existe una amplia variedad de aplicaciones de chat que se ofrecen en el mercado. Los principales jugadores son los siguientes:

  • Skype
  • Telegrama
  • Viber
  • Whatsapp
  • Facebook Messenger
  • Google Allo

WhatsApp lo instaló en 2016, y desde ese momento hay un mensaje en la parte superior de cada chat que abre, que dice que todas sus conversaciones están encriptadas ahora. Aunque WhatsApp no ​​es la solución más segura que se pueda encontrar.

Hay un gran artículo del técnico Romain Aubert: allí explica qué datos recopila WhatsApp de usted; Recopila metadatos. Le invitamos a leer más sobre WhatsApp aquí ¿Cuánto cuesta construir una aplicación de mensajería como WhatsApp? – Mind Studios

Los metadatos son “datos sobre otros datos”, por lo que es básicamente información sobre el tiempo y la duración de sus llamadas, los destinatarios de sus mensajes y el tipo de contenido que envía y recibe. WhatsApp no ​​tendrá acceso a los mensajes, pero comprenderá dónde llama y a quién le envía mensajes de texto. Ahora, no olvidemos que WhatsApp es propiedad de Facebook, una herramienta que recopila datos de usuarios sobre cualquier cosa y todo, por lo que estos “registros de teléfono y mensajes” podrían usarse para diferentes propósitos.

Además, el Messenger de Facebook tampoco es un lugar seguro para tener una conversación privada: los mensajes regulares no se cifran en absoluto, solo si elige la opción “iniciar conversación secreta”, con un cifrado ETE. Aunque, nuevamente, sus metadatos se almacenarán en los servidores de Facebook.

Profundizando, la aplicación de mensajería de Google se basa en el cifrado de extremo a extremo, pero la privacidad de sus usuarios plantea muchas preguntas: Google ha sido muy criticado por almacenar mensajes de usuario y llamadas de voz grabadas en sus servidores.

La misma brecha de seguridad de la aplicación de mensajería tiene Viber popular: a pesar del protocolo de doble trinquete, todos los datos de los usuarios se almacenan de forma segura en sus servicios.

[Spurce: Inclinado]

Otro mensajero popular: Telegram, con su interfaz elegante y sus geniales stickers, es la combinación perfecta para aquellos que buscan privacidad sobre seguridad. Telegram afirma tener su propio protocolo creado en el área de desarrollo de aplicaciones de mensajería segura: usan el protocolo móvil MTProto, aunque nadie sabe realmente cómo funciona, no hay acceso de código abierto.

Sin embargo, MTProto se implementa solo en Chats secretos: los chats predeterminados de Telegram tienen protección cero.

Aunque hay un mensajero que realmente se destaca de la multitud de aplicaciones de mensajería móvil no totalmente seguras, una aplicación clandestina y considerada hippie por muchos de Signal.

Para desarrollar una aplicación de chat, necesitará tener un cifrado de extremo a extremo; lea más sobre cómo se construye en nuestro artículo Cómo hacer una aplicación de mensajería realmente segura similar a Signal – Mind Studios

Desarrollar un protocolo de comunicación en tiempo real es un gran trabajo. Entonces, probablemente la primera pregunta que debe hacer es si realmente necesita reinventar la rueda cuando ya hay varias soluciones disponibles. He estado creando aplicaciones de iOS en tiempo real durante los últimos 5 años, así que te daré algunos consejos basados ​​en lo que he aprendido.

Opción 1: Firebase: la base de datos en tiempo real de Google SaaS

Firebase proporciona una solución alojada para resolver el problema de cómo sincronizar datos en tiempo real en dispositivos móviles. Utilizan websockets combinados con una base de datos MongoDB para proporcionar una base de datos escalable en tiempo real. Ofrecen SDK para muchas plataformas y pueden escalar hasta millones de conexiones concurrentes.

Ayudo a mantener un sistema de mensajería de licencia MIT gratuito que utiliza Firebase como back-end. Puedes verlo aquí: Chat SDK, Github.

La ventaja de usar Firebase es que se encargarán de la implementación del websocket y de los problemas con el escalado.

Opción 2 – XMPP – Protocolo de mensajería estándar de la industria

XMPP es una especificación que se ha desarrollado en los últimos 15 años para abordar exactamente el problema del que está hablando. Es el protocolo estándar de la industria para la mensajería instantánea y lo utilizan Facebook Messenger, WhatsApp, Google Hangouts y Skype.

La ventaja de XMPP es que obtienes mucha funcionalidad gratis:

  • Perfiles de usuario
  • Seguridad
  • Presencia
  • Bloqueo / listas de privacidad
  • Salas de chat multiusuario

Ejabberd es un servidor XMPP escalable de código abierto con un panel web. La empresa que lo mantiene también proporciona servidores alojados.

XMPPFramework para iOS es una biblioteca que se puede utilizar para desarrollar aplicaciones de chat XMPP para iOS.

XMPP Chat SDK para iOS es un paquete comercial de código abierto que proporciona la funcionalidad de chat XMPP lista para usar para iOS.

Opción 3: desarrolle el servidor usted mismo

Desarrollar una pila de mensajes es un trabajo enorme y hacer un servidor de mensajes que sea robusto, escalable y seguro es un trabajo aún más grande. Pero si aún desea desarrollar el servidor usted mismo, puede usar SocketRocket, que está disponible en CocoaPods. Aquí hay un tutorial. También recomendaría usar Symfony 3 con el paquete Websocket en el tamaño del servidor. También podría implementar su propio adaptador para el SDK de Chat, lo que le ahorraría el tiempo necesario para crear la interfaz de usuario.

Use Quickblox para desarrollar aplicaciones sin servidor. API de back-end de comunicación en la nube como un servicio para aplicaciones móviles y web

O utilice el marco XMPP con el servidor ejabberd.

More Interesting

¿Cómo funciona la multitarea en iPhone?

¿Qué software / habilidades necesitaría para diseñar UX y codificar / desarrollar una aplicación de iOS como Tumblr o Snapchat y cuáles son los pasos que tendré que seguir?

¿Cómo ayuda CS107 en Stanford a aprender el material de CS193P? ¿Es posible aprovechar al máximo CS193P completando solo 106A y 106B? ¿Cuáles son las otras habilidades de CS que se exigirán cuando uno ingrese al desarrollo de aplicaciones para iPhone?

¿Cuáles son las técnicas utilizadas en el diseño de aplicaciones iOS como "The Economist" para mostrar párrafos de texto, imágenes y tablas en una sola página (o vista)?

¿Tiene sentido poner el código de mi aplicación iOS en GitHub?

¿Dónde debo usar preconditionFailure vs Assert vs fatalError?

Quiero aprender a programar con el fin de crear aplicaciones simples de iOS, no tengo experiencia previa en programación, ¿dónde debo comenzar?

Cómo contratar a un desarrollador de iOS a un precio razonable

¿Es posible imprimir en iOS sin una red wifi?

¿Es cierto que Apple está desarrollando un iPad compatible con iOS y OS X?

¿Es beneficioso usar Swift en un proyecto pesado de Objective-C? ¿Podría conducir a un tamaño de aplicación más grande o tiempos de carga más largos?

¿Qué es una empresa de desarrollo de aplicaciones para iPhone en Perth?

¿Cuándo saldrá IOS 10 y qué características tendrá?

¿Cuáles son los mejores servicios de pago por instalación (PPI) para descargas de aplicaciones?

¿Hay algún front-end o back-end en el desarrollo de iOS? Si no, ¿es lo suficientemente rápido como para una aplicación iOS completa, incluido el cuidado de los servidores?