NSNotifications es una forma muy pública de anunciar que algo sucedió en algún lugar de su aplicación. Muy raramente quieres eso.
Como alguien que desarrolló una aplicación que se comunicó a través de Socket.IO con el back-end de node.js (la aplicación de apuestas recibe probabilidades en tiempo real mientras se juega el juego), puedo darle algunos consejos:
– Usa objetos inmutables. Este es, con mucho, el consejo más importante. Especialmente cuando se trata de comunicación en tiempo real. Cuando espera cambios de alta frecuencia de datos en ciertos / todos los objetos, el estado mutable puede ser una bazuca apuntada a su pie. En este caso, cada controlador de vista que muestra datos en tiempo real debe administrar su propio suscriptor al socket web. RAC ayuda aquí mediante el uso de métodos de mapa / filtro / reducción para masticar sus colecciones json sin procesar en instancias DAO para su aplicación.
– Al transferir cambios de datos a través de sockets web, no envíe solo deltas. Enviar cargas completas. Esto parece un tráfico pesado, pero no lo es. Especialmente cuando gzip está involucrado. El envío de deltas requiere que desarrolle reglas / protocolos personalizados sobre cómo va a formatearlos y procesarlos (qué objetos / atributos se han agregado / actualizado / eliminado). Nuevamente, las instancias DAO ayudan aquí. Si llegaron nuevos datos: deseche los datos antiguos, cree un nuevo conjunto de objetos. Simple como eso. No hay dudas ni piedad para los objetos viejos.
– Valide cada carga útil que se envía y rechazarla si no es válida (mejor hacerlo en el lado del servidor). Si los datos se envían usando json, puede intentar usar json-schema (JSON Schema and Hyper-Schema). También tiene una biblioteca para node.js. Y escribir un esquema para sus datos no es realmente difícil. Este no es un estándar ampliamente aceptado, sin embargo, lo ayudará a mantener su cordura bajo control. Una vez tuve un golpe de pelo cuando la aplicación funcionaría durante un período de tiempo aleatorio y se bloqueaba porque no podía prever que me enviarían algún formato de datos y no estaba listo para esto. Esto también ayuda con las implementaciones: implementar una nueva versión con nuevos datos compatibles es mucho más fácil que lanzar la aplicación iOS mientras que sus clientes lo maldicen por bloquear una aplicación.
– Controle su conectividad como si la vida dependiera de ello. Web-socket no es un protocolo de conexión basado en solicitud / respuesta, por lo que puede saber cuándo sus datos se están volviendo obsoletos (después de no recibir algunos mensajes de latido a través de web-socket). El tiempo real generalmente involucra datos importantes, por lo que es muy importante notificar a su usuario cuando su conexión es débil y / o los datos están desactualizados.
- ¿Qué deben saber los desarrolladores de Swift sobre Objective-C?
- ¿Cuáles son los mejores estudios de terceros para el desarrollo de juegos iOS?
- Cómo trabajar con UIAlerts en el desarrollo de iOS
- ¿Cuáles son algunas bibliotecas de código abierto que todo desarrollador de iOS debería saber? Podemos crear una wiki de respuestas con este esfuerzo.
- ¿Cuál es la mejor fuente para aprender a desarrollar aplicaciones para iPhone?