Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Nativo vs Xamarin: pro e contro

Nativo vs Xamarin: pro e contro

Slides del bootcamp tenutosi alla DevFestMed 2016 a Catania in cui sono stati analizzati pro e contro tra l'approccio Xamarin cross-platform e lo sviluppo nativo sulle singole piattaforme (Android/iOS)

Avatar for Carmelo Ruota

Carmelo Ruota

November 06, 2016

Other Decks in Programming

Transcript

  1. Tools a confronto Android iOS Xamarin IDE Android Studio Xcode

    Visual Studio / Xamarin Studio Linguaggio Java Swift / Objective-C C# Package / Dependency Manager Gradle CocoaPods, Carthage NuGet Grafica Xml Storyboard, Xib XAML
  2. 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
  3. Xamarin Mono affianca l’Android RunTime per eseguire il codice .NET

    Binding 1:1 delle API native Android.* e Java.*
  4. Xamarin Forms La “magia” della traduzione viene fatta dai Renderer

    • Customizzabili • Estendibili Xamarin Label TextView UILabel https://developer.xamarin.com/guides/xamarin-forms/custom-renderer/renderers/ Android LabelRenderer iOS LabelRenderer
  5. Xamarin PRO • 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
  6. Xamarin Forms PRO • 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)
  7. Nativo Android / iOS PRO • 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...
  8. Come scegliere Premesso che… • Si può fare (quasi) tutto

    con tutto • Se si hanno tempo e budget il nativo classico è sempre la scelta migliore
  9. 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