lunes, 23 de noviembre de 2009

XCode vs. Visual Studio


Hace unos días empecé mis primeras pruebas para desarrollar aplicaciones para el iPhone, con lo cual tuve que estudiar un poco de Objective-C (el lenguaje de programación) y XCode (el ambiente de desarrollo).

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...
  1. en el .h, en la definición de la clase
  2. en el .h con una directiva @property
  3. en el .m con una directiva @synthetize
Interfaz de usuario

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.

2 comentarios:

  1. Marcos si apretas la tecla 'esc' aparece el intellitip con todas las opciones.

    Lo de la "incomodidad" del InterfaceBuilder" en cierto modo lo comparto, pero tine sus ventajas a mi parecer. por ej, -te obliga a implementar MVC. -genera la UI en algo que llaman xib que no es otra cosa que los objetos serializados a xml, eso se deserializa en ejecucion y con eso se logra muchisima mejor performance que creandolos como se hace por ej en c#. ( es por eso que se logra tan buena performance en UI en el iphone ).

    ResponderEliminar
  2. Willy, gracias por el tip, voy a probar lo de la tacla ESC.

    El tema del Interface Builder, seguramente tenga sus ventajas, no lo dudo, pero creo que no sería tan difícil hacer algo que genere todo lo que necesita respetando el patrón MVC, y que sirviera en el 90% de los casos.

    ResponderEliminar