Start with Xamarin

In quest'articolo vedremo come realizzare la nostra prima App Android con Xamarin. Prima di cominciare vi rimando alcune linee guida sulla configurazione di questo framework.

Il tutorial Xamarin spiega in pochi semplici passi come ottenere il nostro ambiente Xamarin, quindi una volta preparato il nostro pc potremmo continuare la nostra prima esperienza Android su Xamarin

Per scrivere un semplice programma "Hello World!" con Xamarin scegliamo File -> Nuovo -> Soluzione

In questa sezione dobbiamo inserire il nome del progetto che andremo a realizzare, facendo attenzione ad usare solo caratteri, numeri, ". " e " _"

Il nostro semplice progetto che viene fuori dal setup, di default in Xamarin crea una semplice App con un Button che conta i nostri click. Il layout usato è Main.axml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <Button
        android:id="@+id/myButton"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />
</LinearLayout>

 Il file Android Manifest risulta essere molto semplice e simile a quello creato da Eclipse

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
 android:versionCode="1"
 android:versionName="1.0" 
 package="Hello_World.Hello_World">
	<uses-sdk />
	<application android:label="Hello_World">
	</application>
</manifest>

 per vedere le differenze potete dare un'occhiata qui

Fin qui tutto sommato non si può dire che ci siano grosse differenze o difficoltà. Come tutti sappiamo le applicazioni per Android sono native .java quindi il passo più difficile per chi non ha una buona dimestichezza con C# , sarà capire le differenze tra i linguaggi, anche se molto simili.

Il MainActivity in Xamarin è un file .cs, scritto in C#

using System;
using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;

namespace Hello_World
{
	[Activity (Label = "Hello_World", MainLauncher = true)]
	public class MainActivity : Activity
	{
		int count = 1;

		protected override void OnCreate (Bundle bundle)
		{
			base.OnCreate (bundle);

			// Set our view from the "main" layout resource
			SetContentView (Resource.Layout.Main);

			// Get our button from the layout resource,
			// and attach an event to it
			Button button = FindViewById<Button> (Resource.Id.myButton);
			
			button.Click += delegate {
				button.Text = string.Format ("{0} clicks!", count++);
			};
		}
	}
}

 La prima cosa che bisogna capire è il concetto dello spazio delle classi. In Java tale concetto è supportato dalla parola chiave package, mentre in C# si usa la parola chiave namespace.

package com.ldl.example;
import java.io.*;
class Example
{
    //...
}

 

using System.IO;

namespace com.ldl.example
{
    class Example
    {
        // ...
    }
}

Per utlizzare le classi di altri package o namespace si usa la parola chiave using, relativa ad import per java. Per il resto la programmazione è molto simile, da notare la key super che in C# è sostituita da base. 

Nei porssimi tutorial ci concentreremo essenzialmente su come usare le GUI in C# per capire le differenze con Java.

 

Ben tornato