Mes: febrero 2012

Hello world desde c# a iOS [MonoTouch I]

 

Hola a todos. Esta es la primera de una serie de entradas que tengo preparadas de MonoTouch, además de la serie MonoTouch, adelanto que habrá serie MonoDroid. Sí, todo muy «mono». En esta entrada vamos a aprender a hacer una aplicación HelloWorld con iOS en c#.

 

Para MonoTouch en particular, se necesitarán los siguientes requisitos:

-Sistema operativo mac.

-Tener instalado XCode 4

-Tener instalado MonoDevelop

-Framework MonoTouch. En este punto, comentar que hay varias licencias, desde 79$ (estudiantes, con tener cuenta .edu debería valer)  o profesional (equivalente a la anterior pero por 300$). Se puede trabajar desde una versión de evaluación, que tiene por limitación que sólo se puede depurar en emulador, además de que no se pueden distribuir las apps. Por lo demás, es plenamente funcional y se puede encontrar aquí.

-Comenzando:

Una vez se haya instalado todo el software necesario, procedemos a abrir MonoDevelop y vamos a

File->New Solution -> C# ->MonoTouch->SingleViewApplication y ponemos un nombre a la solución, por ejemplo: «HelloWorldMonoTouch»

Pulsamos Ok y veremos que MonoDevelop habrá creado una serie de archivos:

  1. AppDelegate.cs Contiene la clase responsable de crear nuestra ventana y los listeners de iOS.
  2. HelloWorldMonoTouchViewControllew Contiene el controlador para la vista (MVC) principal.
  3. HelloWorldMonoTouchViewControllew.designer Está vacío en un principio, pero mono lo rellenará automáticamente con nuestra vista.
  4. HelloWorldMonoTouchViewController.xib Contiene el XML de nuestra interfaz.
  5. Main.cs La ignoramos totalmente.

Una vez definidos los archivos, procedemos a diseñar la interfaz desde XCode.

Diseñando la interfaz

Para mí, una de las mayores ventajas de mono sobre otras soluciones multiplataforma, es que podemos usar las herramientas de Apple a la hora de diseñar nuestras interfaces, y sin saber prácticamente nada de Objective-C. Que no es que tenga nada en contra de este lenguaje, es que decido usar Mono, porque conozco c# y además, me permite desarrollar para otras plataformas con la lógica de negocio intacta.

Bien, una vez que tenemos una idea general de para qué es cada fichero, procedemos a realizar nuestra primera interfaz, para ello, hacemos doble click, sobre el fichero HelloWorldMonoTouchViewController.xib, y se abrirá XCode.

 

 

Como se puede observar en la imagen, el aspecto de nuestra pantalla ocupa el centro, añadiremos dos controles, un label y un botón, para ello clickamos en el penúltimo botón de la barra de título (hay tres unidos, el de la derecha). y se abrirá una columna a la derecha llamada «Utility Area»

 

 

Bien, desde esta ventana, nos fijamos en el último grupo de controles, y hacemos click en el icono que tiene forma de caja. Si está seleccionado «Objects» en la lista, veremos todos los controles de los que disponemos, arrastramos un Label y un botón a nuestro formulario y ya tendremos el formulario tal y como lo queremos.

Antes de continuar, me gustaría definir dos conceptos brevemente:

-Outlet: Resumiendo, es el equivalente a las Propiedades en .NET

-Action: Equivalente a los eventos en .NET

Siguiendo con el ejemplo, pulsamos sobre el botón que se encuentra, el 5º empezando por el final de la barra de título, el que está en el medio del primer grupo de tres.

Al pulsar sobre ese botón, se abrirá un bloque de código, bien pulsando control arrastramos el label hacia el editor y lo soltamos, nos sadra un pop-up, en el que definiremos el nombre que le queremos dar, lo nombramos  Label1 y así, se define un Outlet (Propiedad), si nos fijamos está seleccionada la Connection Outlet. Hacemos lo mismo para el botón, y lo llamamos Button1. Por último, lo volvemos a hacer, y seleccionamos en el combo Action en lugar de Outlet, y escribimos Button1Click.

Ya podemos guardar y volver a MonoDevelop.

Dándole vida a la interfaz y terminando el proyecto.

Una vez en mono, abrimos el fichero HelloWorldMonoTouchViewController.cs y escribimos un nuevo método, si escibimos partial y pulsamos espacio, automáticamente nos querrá autocompletar, lo dejamos y dentro de las llaves escribimos this.Label1=»Hello World»;

Debería quedar algo así el código:

partial void Button1Click (MonoTouch.Foundation.NSObject sender)
{
Label1.Text=»Hello world»;
}

Finalmente, ejecutamos y nos saldrá el emulador con nuestra aplicación.

En próximas entradas hablaré de cómo navegar entre pantallas, de hacer aplicaciones universales (ipad&iphone), y otras cosas!

Saludos

 

 

Hello World Geeks.ms!

En primer lugar, me gustaría agradecer a Rodrigo Corral la oportunidad que me ha brindado para poder formar parte de la comunidad geeks.

En cuanto al blog, la idea es publicar entradas del mundo .NET en general, y de las tecnologías móviles en particular. Desde Windows Phone hasta MonoTouch & MonoDroid. También me interesa bastante el campo de la IA, así que seguramente se me escape algún algoritmo escrito en C#, además de entradas de interés general.

En los siguientes días iré migrando algunas entradas de mi otro blog a éste, y posteriormente comenzaré a escribir con una periodicidad mínima de un post a la semana.

Sin más, me despido ilusionado por este nuevo proyecto.