Hace tiempo que hablé de Xcode 4  y prometí terminar aquel producto cuando debiera trasteado un escaso más con este IDE de Apple para sus herramientas y equipos. Aunque posiblemente me queda aún mucho que aprender voy a terminar lo que empecé. Tras crecer mis conocimientos en el desarrollo de aplicaciones para iOS y OS X pude iniciar a colocar en uso las dispositivos que Apple provee en su IDE, Xcode 4. Y aunque en la mayoría de mis tareas me ha sido de mayor utilidad haciendo mi esfuerzo muy sencillo de llevar haciendo que me concentrara en tareas más concretas, tiene algunos detalles que desde mi experiencia en IDEs de Java como son Eclipse, se podrían mejorar. ProsAl estar extendido para OS X se nota la velocidad con la que funciona el IDE, sin ralentizaciones ni esperas a las que me tiene acostumbrado el desarrollo en Java ya que el consumo de memoria RAM es escaso comparado con otros IDEs (además de que el sistema OS X funciona a las mil maravillas Un constructor de interfaces magnífico. Con escasos clicks puedes tener una pantalla perfectamente construída que funciona y se presenta tal y como quieres. Además tiene muchas facilidades para unir el código y los ficheros de descripción de la interfaz. Permite dentro del propio constructor, aunque sea un poco, adaptar la aspecto de los controles, colores, formas, etc. Para los cambios más bruscos hay que recurrir al código. El autocompletado me tiene enamorado. Es veloz y bastante certero de lo que busco, asimismo al seleccionar un método a llamar me informa del número de parámetros y  tipos de estos que debo de pasarle como argumentos. Permite crear varios esquemas con los que compilar una aplicación con diferentes parámetros, versiones de SDKs, etc. Aunque en esto no he profundizado mucho. Te avisa de muchos yerros ANTES de compilar tu código. Recordemos que Objective-C es un superconjunto de C, y en C para poder detectar yerros debemos compilar vuestro código y estos se iban mostrando. Con el compilador LLVM 2.0 de Xcode se muestran estos yerros conforme desarrollamos y evitamos así compilar para poder darnos cuentas de estos. En aplicaciones chiquitas el tiempo de compilación es irrisorio, pero en aplicaciones más significativos este tiempo puede ser una molestia cada vez que deseamos detectar yerros que hemos pasado por alto. Tenemos la mayoría de ayudas que nos facilitan IDEs como Eclipse y Netbeans (en Java se entiende) como la encapsulación de atributos en métodos get y set, renombrar clases, métodos, atributos y que las referencias a estos cambien también, etc. Un depurador muy veloz y que te faculta entrada a un montón de información de las variables en cada momento. No he trasteado aún mucho con él así que no se si faculta cierta de las funcionalidades que puedo descubrir en los IDE de java. Aunque esto no es un pro como tal respecto a otros IDE, pero si respecto a la versión 3 de Xcode y es la unificación en una misma ventana. Aunque para construir con comodidad lo mejor es disponer de una buena pantalla, mínimo 21 pulgadas, para poder articular tu lugar de esfuerzo a gusto y a la vez poder visualizar en un solo vistazo toda la información que necesitas, era un engorro el tener 80 ventanas abiertas a a vez y tener que rearticularlas porque habéis abierto una nueva. Entre las propiedades, articula de fundamentos y maquetador en el constructor de interfaces, la ventana principal del IDE, las que abrías sucesivamente para codificar el código, etc. se convertía en algo un tanto desorganizado, y si asimismo tenías una pantalla pequeña no parabas de mover las ventanas para poder ver otras. Como digo con una pantalla en cláusulas esto era difícil que ocurriera, pero seguía siendo un engorro. Ahora en la versión 4 se ha unificado todo el IDE en una sola ventana, y la realidad que bastante bien, al menos para mí. Por supuesto puedes seguir abriendo diferentes ventanas según tus necesidades. La documentación está perfectamente integrada y muy bien mostrada, como en la web de Apple Developer. Tanto la manera de mostrar la descripción de un método, atributo, clase, etc. concreta, como de manera más extendida, ya que no solo se detalla de manera común la funcionalidad de la clase y sus métodos públicos, si no que asimismo da ejemplos y casos de uso comunes en manera de snippets de código (no siempre). En este apariencia mejora a los IDEs que he utilizado en Java. Por último decir que la interfaz es clara y no te agobia mostrándote mil cosas y mil alternativas a la vez, presenta las que requieres en cada momento y de manera limpia y ordenada. Contras La granía de ?contras? que he encontrado no eran tales, si no más bien mi desconocimiento de la herramienta. Aunque sí hay una gran pega respecto a IDEs como Eclipse y Netbeans y es en el control de versiones. En gran o menor medida, los IDEs para Java mencionados traen dispositivos para el control de versiones mucho más capacitadas y profesionales que Xcode 4, y su integración con el IDE es gran, lo que faculta comparar, sustituir, revertir, etc con versiones previos de una manera más sencillo y natural que como lo hace Xcode. Además estoy teniendo bastante dificultades al conectar con un repositorio Git que creé, y en todos los tutoriales que encuentro se recurre a la terminal para hacer las operaciones contra el servidor, cosa que no me parece bien. Ha algo que aunque no echo tanto en falta pero que no dispone Xcode es poder personalizar la interfaz cambiando la disposición de los fundamentos según tus necesidades como lo hacen los IDEs de Java, y ya de manera más avanzada como hace Eclipse en manera de Workspaces. Y aunque lo incluyo como contra, yo aún no lo he echado en falta. Pero sí hay algo que echo mucho en falta y es la capacidad de incluir plugins al IDE como sí lo hacen Eclipse y Netbeans en Java, asimismo de manera centralizada. Estoy seguro de que hay gente con masivos ideas para agregar funcionalidades interesantes y útiles a Xcode. Como se puede ver, los contras que he comentado se pueden mejorar y estoy seguro que se hará en actualizaciones posteriores de Xcode, pero no dejan de ser contras desde mi punto de vista de la versión actual de Xcode 4 que poseo en mi equipo instalada. Cuando hago referencia a los IDEs de Java, aunque no lo ponga de manera explícita siempre, me refiero a los IDEs que yo he utilizado para construir en Java que son Eclipse y Netbeans. Respecto a Instruments, las dispositivos de testeo, depuración y puesta a punto para los desarrollos, no comento nada ya que aún no he tenido la oportunidad de utilizarlas, si las he visto por arriba en diversos tutoriales pero no he ya que en práctica. Dejaré estas para un futuro post cuando pueda tener una opinión formada. Con esto creo que he cumplido mi fracción al considerar muy por arriba el IDE de Apple, Xcode 4. Como indiqué al principio, aún soy novato y habrá cosas que iré aprendiendo y perfeccionando con el uso y conforme vaya madurando conocimientos, quizás entonces escriba una tercera fracción de este post para corregir, crecer y contrastar la nueva información que haya adquirido, o quizás escriba un post nuevo. Espero que el post os haya servido, aunque sea un poco.