nativo vs xamarin: pro e contro
TRANSCRIPT
Nativo vs Xamarin pro e contro
Tipologie di app
Nativo “classico”
Ibride e Web app
Nativo “cross-platform”
Tools a confronto Android iOS Xamarin
IDE Android Studio XcodeVisual Studio
/Xamarin Studio
Linguaggio Java Swift / Objective-C C#
Package / Dependency Manager Gradle CocoaPods, Carthage NuGet
Grafica Xml Storyboard, Xib XAML
XAMARIN
Xamarin- Fondata nel 2011 dagli ingegneri di Mono
- Common Language Runtime su GNU/Linux, Unix, MacOS, Windows
- Acquisita nel 2016 da Microsoft - Visual Studio Community Edition gratis per studenti, singoli developer e piccoli team
Xamarin Platform
Creare Testare Monitorare
Xamarin
~ 85 % riuso del codice
Xamarin
100 % api native
Xamarin
Mono affianca l’Android RunTimeper eseguire il codice .NET
Binding 1:1 delle API native Android.* e Java.*
Xamarin
100 % supporto
Android 7
Android Wear
iOS 10
Apple Watch
...
DEMO TIME
Xamarin Forms
Più codice condiviso
Xamarin Forms
Pagine
Xamarin Forms
Layout
Xamarin Forms
Controlli
Xamarin Label
AndroidTextView
iOSUILabel
WindowsTextBlock
Xamarin Forms
La “magia” della traduzione viene fatta dai Renderer
● Customizzabili● Estendibili
Xamarin Label
TextView UILabelhttps://developer.xamarin.com/guides/xamarin-forms/custom-renderer/renderers/
AndroidLabelRenderer
iOSLabelRenderer
Xamarin Forms
DEMO TIME
XamarinPRO
● Unico linguaggio (C#)
● LINQ, Async/Await, Eventi, Delegati
● Codice condiviso ~85%
● Riduzione dei tempi/costi di sviluppo
● Molte librerie .NET
CONTRO
● Mono: overhead a runtime e dimensioni del pacchetto
● Poche librerie specifiche (Android / iOS)
● Xamarin Forms: tempi di avvio
Xamarin FormsPRO
● UI condivisa-> codice condiviso ~95%
● XAML, Binding, DataTemplate
● Soddisfa il ~90% delle necessità delle app comuni
CONTRO
● Tempi di avvio dell’app
● Limitate capacità di customizzazione grafica (scrittura dei Renderer)
Nativo Android / iOSPRO
● 100% delle performance ottenibili
● Tools di sviluppo Ad-Hoc
● Maggior controllo a basso livello
● Moltissime librerie specifiche: community, SDK, ecc...
CONTRO
● Maggiori tempi/costi di sviluppo
● Diversi linguaggi da apprendere
● Molto codice duplicato: manutenibilità, bug-fixing, ecc...
COME SCEGLIERE
Come scegliere
Premesso che…
● Si può fare (quasi) tutto con tutto
● Se si hanno tempo e budget il nativo classico è sempre la scelta migliore
Ricapitolando...REQUISITI Android / iOS Xamarin Xamarin Forms
Grafica semplice(basata su componenti esistenti su entrambe le piattaforme) X
Grafica custom(es: griglia tipo pinterest, animazioni complesse) X X
Librerie di terze parti sviluppate per l’apposita piattaforma(componenti grafici, SDK per interazione con hardware esterno, ecc…)
X
Business logic prevalentemente sul client (es. software gestionale) X X
100% performance native X