No puedo evitar la comparación con C#/Visual Studio, que es el otro lenguaje de propósito general que manejo... Si bien tal vez la comparación no sea del todo justa, ya que en Visual Studio nunca desarrollé aplicaciones móviles, creo que como ambientes de desarrollo deberían ser bastante comparables.
Intellitips
Se extrañan... En Visual Studio cuando escribo "variable." muestra una lista de todas las propiedades, métodos y eventos que están disponibles para esa variable. Esto es muy útil cuando uno no se acuerda exáctamente el nombre de una función.
En XCode no encontré que tuviera intellitips, lo más parecido que tiene es una especie de "autocomplete", que muestra el primér método que coincide con lo que voy escribiendo.
Por lo tanto, si quiero buscar un método que no me acuerdo exáctamente del nombre, no tengo más remedio que salir del editor y buscarlo en la API en el navegador.
Propiedades "automáticas"
En los dos lenguajes se tienen propiedades automáticas (desde C# 3.0), pero la forma que se definen son distintas.
En C#, es una sola línea de código:
public int Prop { get; set; }En Objective-C, hay que definirla en tres lugares distintos...
- en el .h, en la definición de la clase
- en el .h con una directiva @property
- en el .m con una directiva @synthetize
En Visual Studio al agregar un elemento a la interfaz de usuario de la aplicación, el IDE se encarga de generar todo el código necesario para que ese elemento funcione. Después hay que definir el comportamiento, pero por lo menos el elemento está ahí.
En XCode, la definición de la interfaz se hace en otra aplicación, Interface Builder, y para poder utilizar los componentes que se agregaron con drag&drop, hay que definir outlets, delegates y alguna cosa más, que lo hace bastante complicado para novatos.
Conclusión
Si bien XCode tiene unas cuantas cosas interesantes, creo que como IDE se queda un poco corto. La productividad, al menos para los que recién estamos empezando, es mucho menor que la que se puede lograr con otras herramientas, como ser Visual Studio.
Habrá que seguir experimentando para agarrarle la mano.