2010-05-31 10 views
5

Mi piacerebbe sapere di più sui pro e contro dell'uso del generatore di interfacce durante lo sviluppo di app per iPhone/iPad.Devo utilizzare il generatore di interfacce o no?

Ho scritto un'applicazione abbastanza complessa e personalizzata che si trova nell'app store in questo momento, ma tutte le interfacce sono codificate a mano in quanto sono piuttosto complesse. Ho personalizzato la navigazione e le barre delle schede con gli sfondi, le celle di visualizzazione tabella sono disegnate manualmente per la velocità e alcune viste sono complesse e scalabili con molte visualizzazioni secondarie.

Sto riflettendo sull'opportunità o meno di utilizzare il generatore di interfacce, ma non sono sicuro di quanto lo userò e se ne valga la pena. È più veloce? Le cose possono ancora essere facilmente personalizzate?

Qualsiasi consiglio sarebbe il benvenuto!

risposta

3

Non c'è assolutamente alcun motivo per non usarlo. Una cosa che spaventa le persone è la loro esperienza con altri strumenti della GUI, cose che hanno generato codice per loro o qualche altro pasticcio. Quindi il problema diventa che è difficile fare il giro dell'interfaccia, non è possibile modificare facilmente le cose una volta generate a causa della complessità di reinserire tali modifiche nel codice emesso.

Interface Builder non genera codice, utilizza NSArchiver per leggere e scrivere un grafico di oggetto reale per la GUI. Questo ha molti vantaggi, a partire dal fatto che puoi facilmente effettuare il round-trip dell'interfaccia e apportare modifiche incrementali. Va tutto bene, usalo. :-)

+0

Se dovessi generare dinamicamente le tue visualizzazioni, come trarrai vantaggio da IB? –

+1

@ pgpb.padilla Spesso è possibile comporre i componenti che si stanno utilizzando per costruire la vista in IB e quindi istanziarli come necessario per la generazione dinamica. Un esempio comune di questo è una tabella in cui ogni riga è una vista indipendente che viene generata al volo. Gli elementi più piccoli sono costruiti in IB mentre la configurazione più grande è gestita dinamicamente. Che tipo di generazione dinamica hai in mente? – Ukko

+0

Penso di ottenere quello che stai dicendo, lo scenario che sto pensando è questo: supponi di consumare un servizio JSON che ha le specifiche UI: identificatore di controllo, tipo (data, input, etichetta, ecc.). Il numero di controlli è variabile in base ai parametri passati al servizio. –

0

Non ci sono svantaggi. Perché non lo uso? Rende tutto più facile :)

1

Personalmente ho trovato abbastanza complicato da installare su Builder di interfaccia e, a volte, non espone tutte le proprietà che voglio modificare (anche se questo potrebbe essere cambiato nelle versioni più recenti), quindi in genere io Ho avuto la tendenza a creare le mie interfacce utente in codice.

Se si utilizza Interface Builder, assicurarsi di prendere in considerazione la localizzazione. Lo iPhone Developer docs di Apple consiglia che la NIB sia una risorsa localizzata che viene tradotta. In questo modo il traduttore può vedere se il nuovo testo si adatta alla vista. Sfortunatamente questo significa che il traduttore deve essere in grado di aprire file NIB e modificarli (o uno sviluppatore deve essere coinvolto nel processo di traduzione).

Personalmente, preferisco fornire risorse di testo localizzate e impostare il testo nell'interfaccia utente nel codice. Fornisco quindi commenti nel file Localizable.strings per sapere quanto può durare il testo e fornire qualsiasi contesto di cui il traduttore possa aver bisogno.

Problemi correlati