¿Cuál es la arquitectura de software de las grandes aplicaciones de iOS?

En mi opinión, debe cumplir con las reglas arquitectónicas básicas de cualquier otro software, pero puede haber algunas características específicas particulares para las aplicaciones de iOS.
Principalmente, debe ser impulsado por eventos y sin bloqueo. En otras palabras, NUNCA debe bloquear el subproceso de la interfaz de usuario siempre que realice procesos en segundo plano de larga ejecución, como esperar una respuesta del servidor de fondo.

La aplicación debe tener al menos dos partes principales, una que funcione directamente con el usuario y las partes de la interfaz de usuario y el módulo que se ocupa de la lógica comercial central. Puede usar el patrón MVC para construir la parte de la interfaz de usuario mientras usa una biblioteca estática para desarrollar la parte reutilizable de lógica de negocios.
Utilice bloques y delegados para comunicarse con la biblioteca estática desde el nivel de la interfaz de usuario.
Definitivamente use un sistema de administración de dependencias como Cocoapods para vincular sus bibliotecas de terceros con la aplicación.
Es una buena idea comunicarse con un servidor back-end a través de JSON, y aún mejor si puede usar el búfer de protocolo (de Google), para reducir el tamaño del texto JSON que se comunica de un lado a otro.
Tenga diferentes módulos o bibliotecas estáticas si desea separar las principales funciones de utilidad, como tener una biblioteca estática separada para escanear dispositivos bluetooth que se desarrolla y mantiene internamente.

More Interesting

Utilizando una estación base Airport Express, modelo A1264, ¿cómo puedo configurar los servicios de ubicación entre su iPhone5S y mi iPhone 5S, ambos con iOS 8?

¿Cómo debo reducir el retraso de las llamadas REST en iPhone?

He completado el aprendizaje de Swift, pero no puedo desarrollar aplicaciones por mi cuenta. ¿Qué tengo que hacer?

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

¿Cuáles son algunos consejos y trucos de Xcode que pueden hacer que los desarrolladores de iOS y Mac sean más productivos?

¿Qué tan importante es integrar una plataforma de análisis en una aplicación de iOS?

¿Debo confiar en http://configure.it para desarrollar aplicaciones iOS?

¿Hay alguna empresa que tenga experiencia en el desarrollo de aplicaciones móviles Recipe?

¿Debo usar Swift / Objective C nativo o híbrido si estoy aprendiendo el desarrollo de iOS?

¿Qué son los derechos de Xcode?

Quiero convertirme en un desarrollador de iOS, así que he estado invirtiendo entre seis y ocho horas todos los días. ¿Es una mala idea teniendo en cuenta que puede afectar mis calificaciones como estudiante universitario?

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

¿Cuál es la forma más rápida y fácil de obtener datos meteorológicos con Swift?

¿Por qué Apple introduciría nuevos lenguajes de programación (por ejemplo, Swift) en lugar de adoptar uno existente?

¿Cuántos desarrolladores de iOS están trabajando en la aplicación principal de iOS de Spotify?