Le basi per lo sviluppo su Windows Phone tool, SDK, il primo progetto
Writing apps for android with .net
1. Writing apps for Android with .NET
Leo Alario
http://dotnetside.org/blogs/leo
http://twitter.com/leo_alario
leo.alario@gmail.com
2. Che cosa è Android?
Android è una piattaforma open source(AOSP) composta da:
• OS di base (Linux like)
• un middleware software
• applicazioni di sistema
• v1.0 10/2008 attualmente v4.2.1 11/2012
• Java: Piattaforma di riferimento
• Android SDK/NDK (strumenti di sviluppo, librerie, un
emulatore) + Eclipse + ADT plugin
3. Che cosa è Android?
Svariati dispositivi supportati:
• Architettura x86 v.2.2 Froyo =>
• Architettura ARM6+
5. Architettura
• Il codice Java (dialetto) viene compilato in
«Dalvik» byte code (.dex)
• La Dalvik «VM» esegue .dex files
• Ogni applicazione viene eseguita in un proprio
processo Linux
• Ogni processo viene eseguito in una propria Dalvik
VM.
7. Application Components
Le Activity
• Sono uno dei 4 elementi di base che possono
costituire un'applicazione Android
• Sono adatte a quelle applicazioni destinate a una
interazione diretta con l'utente
• Vengono create come oggetti di classe Activity da
cui ereditano proprietà e metodi
• Forniscono la UI per una schermata
• L’applicazione può essere composta da una o più
Activity
8. Application Components
Una Activity:
• Contrassegnata come principale diventa punto
d'ingresso dell’applicazione
• Può avviare altre Activity
• Può assumere uno tra i seguenti stati:
Running
Paused
Stopped
• Ha un ciclo di vita simile ad una pagina ASP.NET
10. Application Components
La View
• Una View e’ la classe di base per la definizione
dell’interfaccia grafica (lists, grids, text
boxes, buttons)
• L’interfaccia grafica di una Activity viene in
genere definita da una o più View
• Vari tipi di layout disponibili o layout custom
estendendo uno preesistente
• Può essere definita da codice (procedurale)
oppure tramite un file XML (dichiarativa)
11. Application Components
Intent
• Un Intent rappresenta un meccanismo per
descrivere la richiesta di “un’azione”:
Voglio aprire un link www.dotnetside.org
Voglio aprite l’applicazione «xyz»
• Consente di passare da una Activity ad un’altra
• Consente di avviare componenti di altre
applicazioni
• Puo’ essere avviata senza alcun risultato, oppure
richiedendo il ritorno di un risultato
• Consente di passare dati o parametri tra Activity
12. Application Components
Service
• Simile ai Windows services
• Privo di interfaccia utente
• Rimane attivo anche quando l’applicazione non
è attiva
• Può eseguire lunghi processi in background
senza bloccare altri componente o la UI
• Può comunicare con altre applicazioni tramite
apposite interfacce definite
13. Application Components
Content Provider
Il modello di sicurezza impedisce di leggere o
scrivere i dati (db, file) di un’altra applicazione.
Il Content provider:
• Consente ad una applicazione di rendere
disponibili i propri dati ad altre applizioni
presenti nel sistema
• Queryable application data stores
• Content Provider nativi (android.provider)già pronti
all’uso (REST like content://)
14. Application Components
Broadcast Receivers
Consentono all’applicazione di ricevere segnali dal
sistema o da altre applicazioni in esecuzione
• Privi di interfaccia utente
• Condivisione dati
• Segnali di sistema (batteria scarica, connettività ..)
• Broadcast di messaggi custom
• Può avviare una Activity
17. Che cos’è Mono?
• Implementazione del .NET CLR
• Open source
• Cross platform
• .NET 4.0
No WPF, Entity Framework, WF, subset di WCF
• Attualmente 3.0.x Series (in beta)
.NET 4.5
C# 5.0 - async support
Entity Framework
WinRT compatibility API
Migliorie a vari assembly per la gestione asincrona
18. Mono+Android=Monodroid
Mono for Android
• Applicazione commerciale di Xamarin
Free Emulator only
Professional 399$
Enterprise 999$
Ambienti di sviluppo
• Plugin di Visual Studio 2010 - Visual Studio 2012
(no Express)
• MonoDevelop
Open source Multi-platform Linux, Windows and Mac OSX
19. Mono+Android=Monodroid
Come funziona Mono for Android?
• Mono VM Runs side by side with Dalvik
• Fornisce un interop engine che collega il mondo C#
con il mondo Java e viceversa
Android/Managed Callable Wrappers
21. Mono+Android=Monodroid
MonoDroid API
• Parallel Framework and PLINQ
• LINQ to Objects
• LINQ to XML
• WCF (Silverlight)
• REST Based Web Service
• .NET Web Services (.asmx / SOAP)
• Client-side Odata
• System.Data.SqlClient - System.Data
22. Mono+Android=Monodroid
Perché utilizzare MonoDroid in ambito Enterprise?
• Produttività elevata con Visual Studio
• Riutilizzo delle competenze C# + .NET
• .NET Compact Framework => Monodroid
• Android ottima alternativa a Windows CE
• Piattaforma aperta hardware e driver custom
• Semplicità di distribuzione applicazioni
23. Mono+Android=Monodroid
Perché utilizzare MonoDroid per sviluppare App?
• Produttività elevata con Visual Studio
• Riutilizzo delle competenze C# + .NET
• Riutilizzo del codice e copertura del 100% del mercato: