Hola Mundo MonoMac

MonoMac es un pequeño framework de enlace para que sea posible escribir aplicaciones hechas con Cocoa y C#, pudiendo de esta manera tener las ventajas de las librerías nativas de OSX junto con el poder del Framework .NET, consiguiendo que de esta manera el desarrollo de aplicaciones nativas para Mac OS X sea mucho más fácil, para los programadores del mundo .NET.

Al día de hoy existen 2 versiones de MonoMac, una es de código abierto que es distribuida junto con MonoDevelop para Mac y la otra es el producto ofrecido por Xamarin, llamado Xamarin.Mac que tiene un número mayor de funcionalidades y mejoras con respecto a la versión gratuita. Pero a pesar de las diferencias entre ambas versiones, lo principal es que con ambas se pueden hacer aplicaciones 100% funcionales, aunque claro, siempre es mejor adquirir la versión completa, al menos para aplicaciones que van de medianas a grandes.

Para efectos prácticos y para que los ejemplos que publique en este blog sean para el mayor número de desarrolladores posible, utilizare la versión gratuita de MonoMac.

El tradicional ¡Hola Mundo!

Al igual que para IOS, debemos tener instalado en nuestra maquina los siguientes paquetes:

-    MonoDevelop 3.x ( http://monodevelop.com/Download )
-    Mono Runtime SDK 2.10 o Superior (http://www.go-mono.com/mono-downloads/download.html)
-    XCode 4.X

Ya con todo instalado, nuestro próximo paso es crear un proyecto nuevo, del tipo MonoMac, al que le daremos el nombre de HelloMonoMac, como se ve a continuación (no habilitamos el soporte para GTK#):

Ya con el proyecto creado, procedemos a editar el archivo MainWindow.xib, haciendo doble click sobre él, de tal manera que se abra el editor de interfaces de XCode, donde agregaremos un botón:




Nuestro siguiente pasó, será crear un enlace desde la interface a nuestro controlador, a través de los Outlets; esto lo hacemos  usando el Assistan Editor que nos proporciona XCode. El proceso para agregar un Outlet, es sencillo, ya que solo se necesita presionar Control y luego hacer click sobre el objeto que deseamos enlazar, luego simplemente arrastramos el puntero de mouse hacia el código.
Cuando estemos en posición, solamos el mouse y nos aparecerá un dialogo, preguntándonos un nombre para el objeto, en nuestro caso lo llamaremos btnHello:


Después guardamos el archivo y cerramos XCode, lo que generara que MonoDevelop actualice algunos archivos, para que después de actualizarlos, nos vayamos al archivo MainWindowController.cs. Ahí agregaremos el siguiente método:

        private string GetCountries()
        {
            string [] countries = new string[6];

            countries[0] = "Bolivia";
            countries[1] = "Colombia";
            countries[2] = "Espania";
            countries[3] = "Mexico";
            countries[4] = "Argentina";
            countries[5] = "Chile";

            Random r = new Random();
            return countries[r.Next(0,5)];
        }

Ya con el método creado, lo único que se necesita ahora, es permitir que nuestro botón escuche eventos, para tal propósito agregamos el siguiente código, dentro del método AwakeFromNib:

        public override void AwakeFromNib ()
        {
            base.AwakeFromNib ();
            btnHello.Activated += (sender, e)=>
            {
                this.btnHello.Title= "Hello World from " + this.GetCountries();
            };
        }

Con todo en su lugar, pones en marcha nuestra aplicación y listo:


Saludos!

Publicar un comentario en la entrada