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.
- ¿Cuánto dinero gana monetizando su aplicación? Además, ¿Apple / Android toma algún porcentaje de ese dinero?
- Después de 8 años en la industria de desarrollo de software, he terminado con Java. ¿Qué debería aprender a continuación para mantenerme interesado en la programación, Python, Ruby, Go o el desarrollo de aplicaciones iOS?
- ¿Tener muchos 'literales de imagen' en un código ralentiza Xcode?
- ¿Cuál es la mejor manera de instalar una aplicación casera de iPhone en un iPod touch con cárcel?
- ¿Puede una persona usar el nuevo lenguaje de programación Swift de Apple para desarrollar un nuevo sistema operativo, lejos del sistema operativo de Apple? ¿O solo puedes hacer aplicaciones?