2010-03-18 15 views
6

¿Hay alguna razón para no escribir aplicaciones de iphone sin utilizar el constructor de interfaz?Aplicación de iPhone sin usar Interface Builder

(o en otras palabras, ¿Está bien para escribir aplicaciones sin el constructor?)

+0

Ojalá alguien hubiera hecho esta pregunta en la charla técnica de iPhone a la que asistí, me habría ahorrado mucho tiempo hurgando con IB –

Respuesta

4

nunca he escrito una aplicación de iPhone que utiliza el Interface Builder (archivos .xib), pero eso es solo el gusto personal: como aplicaciones para ser código 100%.

La razón es que no me gustan las aplicaciones que requieren herramientas de tiempo de diseño si necesita cambiar algo más adelante. Crea una dependencia que puede no ser un problema hoy o el próximo mes, pero puede convertirse en un problema dentro de 3 años.

Entonces, la respuesta es: sí, está bien escribir aplicaciones para iPhone sin usar el Interface Builder.

+1

Entonces, ¿cómo evitar esto no crear una dependencia aún más arcaica en el código? –

1

Claro, está absolutamente bien escribir aplicaciones sin IB. Se necesita un poco más de configuración (creo que hay algunas modificaciones que tiene que hacer en su archivo Info.plist), pero ciertamente es posible, y la gente lo hace todo el tiempo.

Personalmente, prefiero usar Interface Builder para la mayoría de las tareas, pero generalmente solo para obtener el diseño básico en su lugar (para no tener que lidiar con el cálculo de rects, etc.). Cualquier otra personalización que prefiera hacer en el código.

0

Puede editar archivos .XIB a mano si lo desea. Ellos son XML, después de todo. No puedo evitar tener al menos uno de ellos en el proyecto. Alternativamente, puede crear todos sus controles desde el código. Este último toma menos tipeo, por lo que yo sé.

Luego, hay algunas aplicaciones donde un archivo XIB no sería de ninguna utilidad. Estoy hablando de juegos, donde las consideraciones artísticas/de diseño vencieron la conveniencia de tener widgets nativos.

Así que sí, está bien tanto en el nivel de diseño (sin widgets nativos) y el nivel de implementación (sí widgets nativos, pero sans IB).

+0

Sí, * puede *, pero los archivos .xib son un formato no documentado. Son XML, así que juegan bien con los sistemas de control de versiones. –

+0

¿Realmente indocumentado? Tonto de mí. De todos modos, la creación de widgets en el código es una gran opción. –

+0

"no puedo evitar tener al menos uno de ellos en el proyecto"; en realidad, puedes eliminar totalmente los archivos xib de tu aplicación y no es demasiado difícil. echa un vistazo a http://vimeo.com/3363949 – Yetanotherjosh

9

Personalmente, mis aplicaciones no usan NIB dentro de ellas, pero eso es más una cuestión de cómo comencé a hacer el desarrollo que cualquier otra cosa. Pasé de hacer el desarrollo de Mac (donde uso Interface Builder casi todos los días) al iPhone desde que se lanzaron los primeros SDK beta. Inicialmente, no existía Interface Builder, e incluso cuando llegaba no podías hacer muchas cosas con él, así que nunca me tomé el tiempo para realmente conocerlo en el iPhone. Es más una cuestión de hacer lo que estoy familiarizado.

Jeff LaMarche hace un argumento convincente en su artículo "Don't Fear the Interface Builder" para que pueda usar Interface Builder siempre que sea posible, y animo a los nuevos desarrolladores a aprender a utilizarlo antes de pasar a la generación de interfaz de usuario programática. Le ahorra una gran cantidad de tiempo para las interfaces que utilizan elementos estándar.

Algunas personas han argumentado que hay un beneficio de rendimiento con las interfaces puramente programáticas, pero Matt Gallagher ran a series of benchmarks y encontraron que esta aceleración es típicamente del orden del 5-10%. Si realmente desea afeitarse en el último momento de inicio de su aplicación, es posible que pueda obtener lo mejor de ambos mundos con nib2objc de Adrian Kosmaczewski, que genera Objective-C de sus archivos NIB.

Sin embargo, hay muchas veces que necesitará manipular las interfaces mediante programación, como para vistas personalizadas y animaciones. Este código puede existir en paralelo con Interface Builder sin demasiada confusión.De nuevo, es más una cuestión de preferencia personal en este punto, pero mi recomendación es usar Interface Builder debido al tiempo que puede ahorrarle.

Cuestiones relacionadas