Hola Mundo en IPhone con Monotouch
El hola mundo es el
programa básico por excelencia para empezar a programar en un nuevo lenguaje o
plataforma. Por lo tanto vamos a crear este ejemplo para el IPhone pero en vez
de usar Objective-C vamos a usar C# con Monotouch, un excelente Framework
provisto por Xamarin.
Para empezar a trabajar
con Monotouch deberemos de conseguir las siguientes aplicaciones:
–
Xcode 4
–
Monotouch en
su última versión (http://xamarin.com/trial)
–
MonoDevelop 2.8 o superior
(http://monodevelop.com/Download)
–
Mono
Framework 2.6 o Superior
(http://download.mono-project.com/archive/2.10.6/macos-10-x86/1/MonoFramework-MDK-2.10.6_1.macos10.xamarin.x86.dmg)
El orden de la instalación
es la siguiente:
1.
Instalar Xcode 4
2.
Instalar Mono Framework 2.6
3.
Instalar MonoDevelop 2.8
4.
Instalar Monotouch
Si no seguimos este orden
tendremos algunos problemas más adelante.
Ya instalados todos los
paquetes abrimos el MonoDevelop a través del lanzador de aplicaciones o como en
mi caso desde el dock de aplicaciones:
La interfaz de MonoDevelop
es muy parecida a la de Visual Studio, por lo que si trabajaste con este IDE
antes, MonoDevelop te resultara muy fácil de utilizar.
Nuestro primer paso para
crear nuestra aplicación HolaMundo, es crear una nueva solución y elegir el
tipo “Single View Application”:
Luego de crear nuestra solución
con el nombre IphoneHelloWorld, el IDE nos mostrara la siguiente pantalla:
Si vemos la estructura del
proyecto tendremos los siguientes archivos
–
Main.cs que
es donde se encuentra el punto de inicio de la aplicación
–
Info.plist
que es un archivo XML (aunque no lo crean) que guarda la configuración de
nuestra aplicación.
–
ViewController.cs
que contiene los métodos para el manejo de la aplicación.
–
ViewController.designer.cs
que contiene los métodos y propiedades necesarias para la integración de la
vista con la vista.
–
ViewController.xib
es un archivo XML que almacena la información necesaria para la definición de
las vistas.
Como una Nota, hay que tomar en cuenta que las aplicaciones
para IPhone, IPod Touch y IPad usan el patrón Modelo-Vista-Controlador, por lo
cual si trabajaste con este patron para Web, te sera familiar cómo funcionan
las aplicaciones para estos dispositivos móviles.
Como paso dos, haremos
doble click sobre el archivo viewController.xib, para que se abra el editor de
interfaces de Xcode, como en la siguiente imagen:
Nota, si tienen MonoDevelop en una versión superior a 2.8.2,
deberán de tener instalado como mínimo Xcode 4.2, si no tendrán una serie de
errores que no los dejaran trabajar normalmente. Esto es muy importante para
los desarrolladores que trabajan en Snow Leopard ya que la máxima versión de
Xocde que pueden instalar es la 4.0
Nuestro siguiente paso es
agregar un control del tipo Button en nuestra aplicación, que lo arrastraremos
desde la barra izquierda, en la sección objects. El nombre del control es Round
Rect Button:
Luego de ponerlo el botón
al centro de la aplicación y después de cambiarle de tamaño, hacemos doble
click sobre este para poder agregarle un texto:
Nuestro próximo paso es ir
a la vista doble llamada Assistan Editor que se la acciona pulsando sobre sobre
el icono del medio de la barra superior:
Con esta vista podremos
ver el código de la aplicación junto con el diseñador de interfaces, ahora para
agregar un outlet (lo explico en un momento que es) debemos de pulsar control y
hacer click sobre el botón y arrastrar hasta la penúltima línea de código justo
antes de @end y darle a Connect.
Ahora guardamos el
proyecto, cerramos Xcode y volvemos a MonoDevelop y nos dirigimos al archivo
ViewController.cs y agregamos la siguiente función:
public static String
paises()
{
String []vec=new
String[6];
vec[0] = "Bolivia";
vec[1] = "Mexico";
vec[2] = "Colombia";
vec[3] = "Espania";
vec[4] = "Argentina";
vec[5] = "Peru";
Random rnd = new Random();
return
vec[rnd.Next(0,5)];
}
Esta función es
simplemente para devolver el nombre de un país al azar de una lista de 5 países.
Después agregamos en la función ViewDidLoad, las siguientes líneas de código:
base.ViewDidLoad
();
//any additional setup after loading the view, typically
from a nib.
this.hola.TouchUpInside+=(sender, e) => {
this.hola.SetTitle("Hola Mundo desde " + paises(),UIControlState.Normal) ;
} ;
Ahora si lo hacemos correr
el sistema, se verá así:
Ahora después de haber
terminado el ejemplo se estarán preguntando que es un outlet. Pues bueno verán
en .NET estamos acostumbrados a que cuando agregamos un control, este está
expuesto automáticamente en la clase del formulario, pues bueno en Monotouch (en
Cocoa/CocoaTouch – Objective-C se presenta el mismo escenario) no es así y
deberemos de agregar una propiedad que exponga al control, dentro de la clase
de controlador, como lo hicimos hace un rato.
Ahora también existe otra
manera de manejar el evento de un control, este se llama Actions que es muy
parecido a lo que sería el patrón de comandos para WPF (aquí hay una pequeña guía
para aprender sobre el patrón http://www.codeproject.com/KB/WPF/WpfCommandPatternApplied.aspx). Para usar este método modificaremos nuestra
interface agregando un nuevo botón para que se vea así:
Y agregaremos una acción
como lo hicimos con el outlet, teniendo en cuenta que cuando nos pregunte por
el nombre del control, en la parte superior cambiemos Outlet por Action,:
Después agregamos para el
mismo botón un outlet y guardamos, luego volvemos a MonoDevelop y en el mismo
archivo ViewController.cs que modificamos hace un rato agregamos el siguiente código:
partial void
btnActionHola (MonoTouch.Foundation.NSObject sender)
{
this.btnHolaAction.SetTitle("Hola Mundo desde " + paises(),UIControlState.Normal) ;
}
btnHolaAction es nuestro
Outlet y btnActionHola es nuestra acción, esta forma de trabajar es un poco más
parecida a la de los eventos de .NET.
Con eso me despido
esperando que les sirva.
Comentarios
Publicar un comentario