2009-12-04 21 views
5

Vengo de una organización de desarrollo de java empresarial donde realizamos el desarrollo en capas reutilizables bien separadas. capas de persistencia, las capas de servicios, etc, etc¿Diseñar una aplicación de iPhone compleja?

Ahora, estoy buscando por ejemplo, aplicaciones de iPhone o documentación sobre cómo la arquitectura proyectos complejos iPhone. La mayoría de los libros & apple ejemplos muestran un código muy limitado & architecture. No son utilizables imo.

Lo que también estoy buscando es información sobre cómo configurar un sistema de compilación de integración continua que ejecuta todas mis pruebas de unidad en el código checkin & informa los resultados de la prueba unitaria a un sistema donde podemos ver los resultados. Para nuestros proyectos Java, utilizamos sonar svn, mvn & para esto. ¿Cuál es el equivalente de Apple para esta configuración? ¿Es posible?

Por lo tanto, para resumir mis preguntas:
Q1: ¿Hay algún ejemplo o libros en la arquitectura de proyectos complejos de iPhone?
Q2: ¿Cómo configuramos un sistema de compilación de integración continua?

Respuesta

6

¿Qué tan complejo de un ejemplo le gustaría?This question enlaces a varias aplicaciones de iPhone de código abierto que no son de Apple, incluido my own. Algunas de las aplicaciones que existen son relativamente complejas.

En cuanto al diseño, recomiendo encarecidamente el libro Cocoa Design Patterns. Si bien no es estrictamente para el iPhone (dados los inicios de Cocoa en NeXT y la presencia más reciente en la Mac), los patrones de diseño cubiertos son fundamentales para la arquitectura de los marcos de Cocoa y las aplicaciones de Cocoa.

También recomendaría pagar por el WWDC 2009 videos y ver las sesiones "Diseño de interfaz de usuario de iPhone", "Arquitectura de aplicación de iPhone efectiva" y "Interfaces de usuario de prototipos de iPhone". Hay muchas buenas sugerencias para diseñar aplicaciones de iPhone en estas sesiones.

He utilizado pruebas unitarias con mis aplicaciones, pero no he hecho ningún tipo de construcción de integración continua. Sin embargo, this question parece tener mucha información útil para realizar una integración continua con Xcode.

5

El patrimonio del iPhone se remonta a OpenStep por NeXT Computer. Durante algún tiempo, el enfoque principal de NeXT fue personalizado, aplicaciones empresariales. Las tecnologías que están en juego en el iPhone están bien probadas en entornos empresariales. NeXT fue uno de los defensores originales de la tecnología de objetos, patrones y MVC en particular.

Dicho esto, algo de lo que solía estar disponible en Openstep ahora se ha ido. NeXT tenía un sistema ORM radicalmente avanzado (Enterprise Objects Framework - http://en.wikipedia.org/wiki/Enterprise_Objects_Framework) que, aunque aún se usa internamente en Apple y funciona con iTunes/etc., ahora está en desuso para los clientes que usan Objective-C (todavía existe una versión de Java). Un ORM Lite, Core Data (http://developer.apple.com/macosx/coredata.html), ha ocupado su lugar y ahora está disponible en el iPhone. SQLite (que es increíble) también se incluye en el iPhone y está disponible para los desarrolladores.

Otra mosca en la sopa es que la versión actual de XCode para el iPhone tiene una comprensión limitada de los subproyectos/marcos, por lo que es más difícil dividir el código reutilizable de lo que solía ser. Tim Wood, de Omni, proporciona algunos detalles sobre cómo administrar los marcos dentro de XCode en el iPhone (http://blog.omnigroup.com/2008/10/01/using-frameworks-in-iphone-applications/) Desafortunadamente, el proceso no es tan fácil como debería ser.

No estoy seguro de lo que los libros están disponibles, pero casi cualquier ex desarrollador Openstep va a tener experiencia en el desarrollo de la empresa. Puede considerar incluir uno en su proyecto para ayudarlo.

SVN y MVN están disponibles/agrupados en OS X. También hay opciones para tirar en otros paquetes, de código abierto a través de sistemas como Fink o MacPorts:

también hay varias opciones de marco que apoyan TDD. Test Driven Design for iPhone Native apps

No parece que sonar groks Objective-C en este momento. Dependiendo de tus opciones, ¿tal vez podrías desarrollar un módulo para esto?

Cuestiones relacionadas