Sugerencia para escribir aplicaciones iOS más modulares y comprobables usando el Objetivo C

Estoy escribiendo una aplicación para dispositivos iOS usando Objective C.

Parece que el código escrito está estrechamente acoplado y la reutilización es muy difícil.

¿Alguna sugerencia para escribir una aplicación de iOS más modular usando Objective C? Especialmente fácil de probar.

algunas sugerencias más, que veo como problemas comunes en los progtwigs objc:

  • favor de los protocolos sobre las subclasificaciones más que el desarrollador promedio del objc (muy importante)

  • favorecen objects más pequeños, que son más especializados

  • minimizar los objects globales (por ejemplo, singletons)

  • reutilizar y probar a menudo

  • darse count y aceptar la naturaleza dinámica de objc types / runtime. no solo aplique / aproxime los idiomas de su idioma más familiar a objc. lo más probable es que sus progtwigs sufran.

  • para reutilización / backend de código: favor de C, C ++, types distribuidos de apple y protocolos

  • Suprima packages / subbibliotecas en progtwigs no triviales. estos deberían build de forma independiente.

  • tenga en count lo que está volviendo a implementar y mueva la implementación común a una biblioteca

  • Mantenga las bibliotecas pequeñas, enfocadas y tenga en count sus dependencies. También escribe con la expectativa de que la biblioteca se pueda usar en muchos contexts. mantener bajas las advertencias, las interfaces públicas simples y usar nombres y prefijos descriptivos extensos y agradables para evitar enfrentamientos en el espacio de nombres plano.

Debería estar escribiendo un código orientado a objects; todas las mejores prácticas estándar para escribir objects modulares, reutilizables y comprobables se aplican tanto en el Objetivo C como en cualquier otro idioma.

¿Hay alguna razón por la que crees que el Objetivo C es diferente en este sentido?

Aquí hay algunas sugerencias:

  • Intente colocar componentes reutilizables como subproyectos de biblioteca independientes. XCode puede manejar proyectos dentro de proyectos.
  • Use categorías para extender o modificar el comportamiento de las classs incorporadas. Los componentes están aislados del rest de su código y son muy fáciles de probar.
  • Asegúrese de seguir el patrón MVC y no hinche los controlleres. Ponga la lógica de la aplicación en sus classs model para que no tengan dependencies para las vistas, lo que dificulta la testing.