What is Xamarin? Why should I use it?
This deck will guide you in discovering the Xamarin world and understanding more about building universal apps with C#.
7. Approccio: “scrivi una volta, esegui ovunque”
• Frammentazione dei browser
• Si sviluppo per una piattaforma, le
altre vengono di conseguenza:
nessuna cura dello stile specifico
della piattaforma.
8. Approccio offerto da Xamarin “tradizionale”
• Interfaccia Utente nativa
• Performance native
• Codice condiviso tra le
piattaforme
• C# & .NET Framework
• Supporto completo alle API
11. C# può essere eseguito da
2.5 miliardi di dispositivi.
Scrivi tutto in C#
12. Prima release di
Xamarin.Mac
Lanciato
programma
Partner
200,000
Developers
Xamarin
fondato
Prima release di
Xamarin.Android
Xamarin.iOS lanciato
(inizialmente noto
come MonoTouch)
Ximian
fondato
Oltre un decennio di esperienza e sviluppo
2001 2003 2009 2011 2012 2013
Mono
rilasciato
Ximian acquisito
by Novell
Xamarin 2.0
Component Store
Xamarin Test Cloud
Evolve 2013
Microsoft Partnership
500,000
Developers
100+ Partners
100+ Components
2014
//
Xamarin 3
2000
SAP Partnership
Fire TV Support
Salesforce partnership
Visionary in Gartner
Magic Quadrant
Google Glass Support
Visual Studio Partner
of the Year
Android Wear Support
Xamarin Evolve 2014
800,000
Developers
200+ Partners
200+ Components
18. Qualsiasi cosa si possa fare in Objective-C,
Swift o Java può essere fatta in C#
con Xamarin in Visual Studio
19. Xamarin.iOS sfrutta la compilazione
Ahead Of Time (AOT) per produrre i
pacchetti ARM per l’Apple App Store.
Prestazioni Native
Xamarin.Android sfrutta la
compilazione Just In Time (JIT)
caratteristica del dispositivo Android.
20. Xamarin è sempre aggiornato
Release iOS supportate al day-one:
iOS 5, iOS 6, iOS 7, iOS 7.1, iOS 8, iOS 9, iOS 10
Supporto a:
• Google Glass
• Android Wear
• Amazon Fire TV
• Apple Watch
• Tanto altro!
21. Condivisione del codice: sviluppo accelerato!
• Riutilizzo del codice fino al 90%
• Utilizzo delle stesse librerie di
NuGet
22. • 1 solo Assembly
• Piattaforme Multiple
• Supportano:
• Xamarin.Android
• Xamarin.iOS
• Xamarin.Windows
Portable Class Libraries (PCL)
27. Xamarin Studio
PC o Mac
Plugin Visual Studio
VS 2010 e superiore
Ambienti di Sviluppo
28. Integrazione in Visual Studio
Una soluzione sola per:
• iOS
• Android
• Windows Phone
• Windows Store
Tutti i plugin e le funzioni
di Visual Studio:
• ReSharper
• Team Foundation Server
29. Integrazione in Visual Studio
Debugging su:
• Emulatori
• Dispositivi
Integrati nella toolbar:
• Stato
• Logs
• Lista di dispositivi
30. Xamarin Studio
• Ottimizzato per lo sviluppo
cross-platform
• Accedi alle API native con
l’autocompletamento
• Designer per Android e iOS
• Debugging avanzato su
emulatore o dispositivo
31. Designer per Xamarin Android
• Il migliore designer per Android
• Disponibile per
• Xamarin Studio
• Visual Studio
• Crea facilmente l’interfaccia
utente tramite drag & drop
• Affronta facilmente il problema
del rescaling e della
frammentazione di Android.
• Layout salvati in file XML
Android standard
32. Designer per Xamarin iOS
• Il primo designer iOS
presente in Xamarin Studio e
Visual Studio
• Simile al designer
tradizionale di Visual Studio
• Supporta pienamente l’UIKit
• Modifica i componenti
personalizzati e di terze parti
• Modifiche grafiche applicate
in tempo reale
33. XAML Previewer per Xamarin Forms
• Richiede la versione 2.3 del
package di Xamarin.Forms
• Consente esclusivamente di
“vedere”, non di modificare
• Disponibile per iOS/Android
39. Testa la tua app su centinaia di dispositivi reali
40. 3 versioni del SO
19 dispositivi
20 lingue
35 localizzazioni
6 screen sizes
11 version del SO
6 screen configurations
27 screen sizes
39 lingue
57 localizzazioni
15 produttori
Più di 18,000 diversi
dispositivi
Le combinazioni possibili sono tante...
41.
42. Inizia immediatamente
Il supporto dedicato di aiuterà ad usare
subito Xamarin Test Cloud
Centinaia di dispositivi
Assicurati che la tua app funzioni
correttamente su dispositive fisici
Report dettagliati
Feedback tecnici automatici che ti
consentiranno di capire esattamente dove
la tua app ha riscontrato problemi.
Test anti-frammentazione
Testa automaticamente su centinaia di
combinazioni di sistemi operativi, schermo
e risoluzioni.
Test sulla User Interface
Testa interamente la tua app, dall’interfaccia
grafica al code-behind.
Trova i bug prima che lo facciano i tuoi utenti
43. • Eseguilo direttamente da
Visual Studio o Xamarin Studio
• L’accesso è reso possibile da
un pacchetto NuGet
Usare Xamarin Test Cloud – Xamarin UITest
52. Unrivaled Mobile Development Training
– Live online training from Xamarin experts
– Lectures and labs
– One-on-one with expert Xamarin mobile
developers
What You’ll Learn
• iOS and Android Fundamentals
• Mobile App Lifecycle
• Native UI and Controls
• Cross-platform Architecture
• Mobile Best Practices
• Secure Backend Integration
Positivo = ottime app realizzate secondo i canoni di ogni piattaforma
Utenti non contenti -> sviluppatori non contenti -> vengono abbandonate le app // limiti a quell che si può implementare
Positivo: relativamente rapido e facile
C# + XAML
C# + XML
C# + XIB
Logica dell’app, code behind, condiviso tra tutte le piattaforme
Xamarin ha introdotto di recente una libreria nuova, Xamarin.Forms, che permette la user interface cross platform. Permette di aumentare di molto la produttività, condividere codice ma comunque realizzare l’UI rispettando la piattaforma di appartenenza, e permette l’accesso a tutte le API. Come esattamente usare Xamarin.Forms verrà approfondito nella prossima lezione.
F# is a strongly-typed functional programming language designed to run on .NET. It combines the succinctness, expressivity and composability of type-inferred functional programming, the compile-time safety of strongly-typed code, and the runtime support, libraries, interoperability, tools, and object model of .NET.
F# is now available as a programming language to Xamarin users on all of the Xamarin supported platforms: Android, Mac OS X, and iOS.
Se avete mai sviluppato per Windows Phone, questi namespace .NET vi potranno esssere familiari.
Lo stesso avviene quindi per iOS e Android, mentre si usa Xamarin. Tutte le API native di iOS sono state coperte da Xamarin in C#.
E anche in Android tutte le API sono state coperte.
Grazie alla developer preview di Apple, Xamarin è stata in grado di rilasciare il support fin da subito per queste release di iOS.
Google però non offre una developer preview, e quindi bisogna aspettare circa 4-8 settimane per avere una release stabile.
E’ importante notare come il supporto a dispositivo come Android Wear e Apple Watch si esprima anche con il debugging da appositi emulatori realizzati da Xamarin.
Si può scrivere tutto il codice C# in un unico assembly e condividerlo tra le piattaforme.Prima della partnership tra Xamarin e Microsoft, le PCL erano limitate solo a Windows
Le PCL possono essere aperte indistintamente da Xamarin Studio e Visual Studio
Qui appunto c’è stato il punto di svolta per Xamarin:
Potenziamento alle PCL, che abbiamo menzionato prima
Supporto a Visual Studio 2013
Offerte speciali per gli utenti MSDN
Compila tutto in APK o IPA, che si possono distribuire ovunque!
Xamarin Studio
PC -> Android
Mac -> iOS, Android, Mac
Visual Studio: iOS, Android Windows
Il plugin supporta Visual Studio 2010, 2012, 2013 e 2015
Supporta le desktop app su Windows: WPF, ASP.NET, Silverlight, WinForms
Soluzioni e progetti possono esssere aperti indistintamente in Xamarin Studio e Visual Studio
AGGIORNARE SCREEN
Xamarin Studio su PC consente solamente Android, su Mac Android, iOS e Mac.
Xamarin Studio consente di lavorare con Git e altri sistemi di source control.
Specialmente per quanto riguarda Android, il problema della frammentazione è notevole, e questi numeri riguardano solo i principali produttori di Android
Questi sono solo alcuni del tipi di schermi che la sola Samsung produce.
Test Cloud consente quindi effettivamente di testare la propria app su centinaia di dispositivi fisici reali diversi, il che è utile per vedere se sarà compatibile con le diverse versioni di Android e iOS, nonchè con i vari schermi disponibili etc.
Xamarin UITest è un framework che serve appunto a interfacciarsi in C# a Xamarin Test Cloud