2009-12-04 6 views
5

Sono in arrivo da un'organizzazione di sviluppo java aziendale in cui abbiamo sviluppato dei livelli riutilizzabili ben separati. Livelli di persistenza, livelli di servizio, ecc.Architettando un'applicazione complessa per iPhone?

Ora, sto cercando app di esempio per iPhone o documentazione su come architettare progetti iPhone complessi. La maggior parte dei libri con esempi di apple & mostra codice & molto limitato. Non sono utilizzabili.

Quello che sto anche cercando informazioni su come configurare un sistema di compilazione continua integrazione che gestisce tutti i miei test di unità sul codice checkin & riporta i risultati di test unità a un sistema in cui possiamo vedere i risultati. Per i nostri progetti java, usiamo svn, mvn & sonar per questo. Qual è l'equivalente di Apple per questa configurazione? È possibile?

Quindi, per riassumere le mie domande:
D1: Ci sono esempi o libri su architetture di progetti complessi per iPhone?
Q2: Come installiamo un sistema di build con integrazione continua?

risposta

6

Quanto è complesso un esempio?This question collegamenti a un numero di applicazioni iPhone open source non Apple, incluso my own. Alcune delle applicazioni là fuori sono relativamente complesse.

Per quanto riguarda il design, consiglio vivamente il libro Cocoa Design Patterns. Anche se non strettamente per l'iPhone (dato l'inizio di Cocoa a NeXT e la presenza più recente sul Mac), gli schemi di progettazione coperti sono fondamentali per l'architettura delle strutture Cocoa e delle applicazioni Cocoa.

Inoltre, consiglierei di pagare per lo WWDC 2009 videos e di guardare le sessioni "Design dell'interfaccia utente iPhone", "Architettura dell'app iPhone efficace" e "Prototipazione delle interfacce utente iPhone". Ci sono molti buoni suggerimenti per l'architettura delle applicazioni iPhone in queste sessioni.

Ho usato i test di unità con le mie applicazioni, ma non ho fatto alcuna forma di costruzione di integrazione continua. Tuttavia, this question sembra avere molte buone informazioni sull'integrazione continua con Xcode.

5

L'eredità di iPhone risale a OpenStep di NeXT Computer. Da un po 'di tempo, l'attenzione principale di NeXT erano le applicazioni aziendali personalizzate. Le tecnologie che sono in gioco su iPhone sono ben testate negli ambienti aziendali. NeXT era uno dei principali sostenitori della tecnologia degli oggetti, dei modelli e di MVC in particolare.

Detto questo, parte di ciò che era disponibile in Openstep ora non esiste più. NeXT aveva un sistema ORM radicalmente avanzato (Enterprise Objects Framework - http://en.wikipedia.org/wiki/Enterprise_Objects_Framework) che, sebbene sia ancora in uso internamente ad Apple e alimenta iTunes/etc, è ora deprecato per i clienti che usano Objective-C (esiste ancora una versione Java). Un ORM Lite, Core Data (http://developer.apple.com/macosx/coredata.html), ha preso il suo posto ed è ora disponibile su iPhone. SQLite (che è fantastico) è anche in bundle su iPhone e disponibile per gli sviluppatori.

Un altro neo è che la versione corrente di XCode per iPhone ha una conoscenza limitata di sottoprogetti/framework, quindi è più difficile partizionare il codice riutilizzabile di quanto non fosse una volta. Tim Wood, di Omni, fornisce alcuni dettagli su come gestire i framework all'interno di XCode su iPhone (http://blog.omnigroup.com/2008/10/01/using-frameworks-in-iphone-applications/) Sfortunatamente, il processo non è così facile come dovrebbe essere.

Non sono sicuro di quali libri siano disponibili, ma quasi tutti gli sviluppatori di Openstep avranno competenze di sviluppo aziendale. Potresti considerare di inserirne uno nel tuo progetto per aiutare le cose insieme.

svn e mvn sono disponibili/bundle su OS X. Ci sono anche opzioni per tirare in altri pacchetti open source, attraverso sistemi come Fink o MacPorts:

Ci sono anche diverse opzioni di framework che supportano TDD. Test Driven Design for iPhone Native apps

Non sembra il sonar groys Objective-C in questo momento. A seconda delle opzioni, potresti sviluppare un modulo per questo?

Problemi correlati