+ All Categories
Home > Mobile > Nativo vs Xamarin: pro e contro

Nativo vs Xamarin: pro e contro

Date post: 15-Apr-2017
Category:
Upload: marco-rinaldi
View: 298 times
Download: 1 times
Share this document with a friend
30
Nativo vs Xamarin pro e contro
Transcript
Page 1: Nativo vs Xamarin: pro e contro

Nativo vs Xamarin pro e contro

Page 2: Nativo vs Xamarin: pro e contro

Tipologie di app

Nativo “classico”

Ibride e Web app

Nativo “cross-platform”

Page 3: Nativo vs Xamarin: pro e contro

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

Page 4: Nativo vs Xamarin: pro e contro

XAMARIN

Page 5: Nativo vs Xamarin: pro e contro

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

Page 6: Nativo vs Xamarin: pro e contro

Xamarin Platform

Creare Testare Monitorare

Page 7: Nativo vs Xamarin: pro e contro

Xamarin

~ 85 % riuso del codice

Page 8: Nativo vs Xamarin: pro e contro

Xamarin

100 % api native

Page 9: Nativo vs Xamarin: pro e contro

Xamarin

Mono affianca l’Android RunTimeper eseguire il codice .NET

Binding 1:1 delle API native Android.* e Java.*

Page 10: Nativo vs Xamarin: pro e contro

Xamarin

100 % supporto

Android 7

Android Wear

iOS 10

Apple Watch

...

Page 11: Nativo vs Xamarin: pro e contro

DEMO TIME

Page 12: Nativo vs Xamarin: pro e contro

Xamarin Forms

Più codice condiviso

Page 13: Nativo vs Xamarin: pro e contro

Xamarin Forms

Pagine

Page 14: Nativo vs Xamarin: pro e contro

Xamarin Forms

Layout

Page 15: Nativo vs Xamarin: pro e contro

Xamarin Forms

Controlli

Xamarin Label

AndroidTextView

iOSUILabel

WindowsTextBlock

Page 16: Nativo vs Xamarin: pro e contro

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

Page 17: Nativo vs Xamarin: pro e contro

Xamarin Forms

Page 18: Nativo vs Xamarin: pro e contro

DEMO TIME

Page 19: Nativo vs Xamarin: pro e contro

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

Page 20: Nativo vs Xamarin: pro e contro

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)

Page 21: Nativo vs Xamarin: pro e contro

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...

Page 22: Nativo vs Xamarin: pro e contro

COME SCEGLIERE

Page 23: Nativo vs Xamarin: pro e contro

Come scegliere

Premesso che…

● Si può fare (quasi) tutto con tutto

● Se si hanno tempo e budget il nativo classico è sempre la scelta migliore

Page 24: Nativo vs Xamarin: pro e contro
Page 25: Nativo vs Xamarin: pro e contro
Page 26: Nativo vs Xamarin: pro e contro
Page 28: Nativo vs Xamarin: pro e contro
Page 29: Nativo vs Xamarin: pro e contro

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


Recommended