Quando utilizzare Xamarin.Forms vs Xamarin Native? [chiuso]


160

Devo prendere una decisione tra l'utilizzo di Xamarin.Forms e Xamarin nativo per sviluppare un'app.

Voglio andare con Xamarin.Forms come il codice dell'interfaccia utente verrà condiviso anche.

Quindi quali sono gli aspetti positivi e negativi tecnici dell'utilizzo di Xamarin.Forms su Xamarin Native?


1
Dai un'occhiata a The Good and The Bad of Xamarin Mobile Development per un'eccellente discussione a gennaio 2017.
Oliver,

1
In conclusione ... basta andare per Native! Lo dico sulla base della mia esperienza. Ho riscritto moduli app per Native.
Tejasvi Hegde,

2
I commenti del 2015 non riflettono più la realtà di Xamarin Forms. Ha fatto molta strada e sembra esplodere dopo la maturazione di .NET Core \ Standard.
Sean Anderson,

Questa domanda deve essere riaperta. Ora ha 4 anni e ci sono stati enormi sviluppi nel framework Xamarin.Forms per consentire lo sviluppo di applicazioni aziendali.
James Mallon,

Risposte:


144

A parte i punti mostrati nel sito Web Xamarin, dovresti anche considerare:

Il background della tua squadra

Qualcuno nel tuo team ha una precedente esperienza di programmazione nativa per Android o iOS (utilizzando Java o Obj-C / Swift)? Questa esperienza viene riutilizzata in Xamarin nativo, ma dovranno imparare un'altra piattaforma per codificare in Forms.

Lo stesso vale se non sanno nulla di iOS / Android ma conoscono alcuni XAML. Sicuramente Xamarin.Forms è diverso da WPF / Silverlight, ma conoscere XAML mi ha sicuramente aiutato a usare Forms.

Prestazione

Xamarin Forms presenta ancora alcuni problemi, come il tempo di inizializzazione. Dovresti considerare se questo sarà un problema per il tuo utente finale. Non mi preoccuperei di aspettare un po 'per un'app dashboard che utilizzo una volta ogni tanto per aprire, ma sarei arrabbiato se lo stesso accadesse a un'app di messaggistica.

Tempo fino alla consegna

Poiché la condivisione del codice è maggiore quando si utilizzano i moduli, è possibile aspettarsi tempi di consegna più rapidi.

Complessità della tua app

Considerando il punto precedente, usando Forms potresti inciampare in alcuni bug dello stopper dello show (è una tecnologia molto nuova dopo tutto) che annullerà i guadagni di tempo. Considera la complessità della tua applicazione prima di scegliere.


2
Aggiungerò a questo se ti aspetti di avere un'app di bell'aspetto finirai per avere molte interfacce personalizzate con il codice nativo Xamarin per ogni piattaforma
Roman Nazarevych

2
questa risposta e questo commento sono troppo vecchi. Le prestazioni non sono un grosso problema oggi se si abilita AOT. anche per quanto riguarda l'app di bell'aspetto nel commento non è vero. le forme di xamarin sono state migliorate e puoi ottenere facilmente app di bell'aspetto.
Batmaci,

Xamarin Forms non è migliorato molto in termini di ottenere facilmente un'interfaccia utente di bell'aspetto. Xamarin.Shell apporterà notevoli miglioramenti in tal senso, ma per ora Xamarin è ancora difficile ottenere qualcosa di remoto senza scrivere componenti personalizzati per ogni piattaforma.
Alexander,

176

Xamarin.Forms

Professionisti

  • Crea un'interfaccia utente per tutte le piattaforme
  • Utilizzare i componenti di base disponibili su tutte le piattaforme (come pulsanti, campi di testo, filatori ecc.)
  • Non è necessario apprendere tutti i framework nativi dell'interfaccia utente
  • Rapido processo di sviluppo multipiattaforma
  • I renderer nativi personalizzati ti danno la possibilità di regolare l'aspetto e la sensazione dei controlli

Contro

  • È ancora un nuovo framework e contiene ancora bug
  • Soprattutto Windows RT non è ancora stabile
  • A volte è più lento dell'accesso diretto ai controlli nativi
  • I renderer nativi personalizzati hanno dei limiti e sono scarsamente documentati

Xamarin.Android, Xamarin.iOS, Windows Phone, Windows RT

Professionisti

  • Crea un'interfaccia utente per piattaforma
  • Facile capacità di regolare le funzionalità e i componenti dell'interfaccia utente specifici della piattaforma
  • Ottieni il massimo dalla tua interfaccia utente

Contro

  • Il processo di sviluppo multipiattaforma è molto più lento
  • Devi imparare tutti i framework nativi dell'interfaccia utente
  • Potresti avere un codice duplicato (mentre descrivi quasi la stessa UI in tre modi specifici della piattaforma)

Inoltre, Xamarin dice su https://xamarin.com/forms :

Quale approccio Xamarin è il migliore per la tua app?

Xamarin.Forms è il migliore per:

  • App per l'immissione dei dati
  • Prototipi e prove di concetto
  • App che richiedono funzionalità specifiche della piattaforma
  • App in cui la condivisione del codice è più importante dell'interfaccia utente personalizzata

Xamarin.iOS e Xamarin.Android sono i migliori per:

  • App che richiedono interazioni specializzate
  • App dal design estremamente raffinato
  • App che utilizzano molte API specifiche della piattaforma
  • App in cui l'interfaccia utente personalizzata è più importante della condivisione del codice

Riguardo alle "app che richiedono poca funzionalità specifica per piattaforma", ci sono esempi per avere un'idea di che tipo di funzionalità stiamo parlando?
NS.X.

La scarsa funzionalità della piattaforma significa che stai eseguendo l'associazione dei dati e altre regole aziendali principalmente come app. Non c'è molto disegno personalizzato, o cercando di rendere tutto perfetto per i pixel. Se stai bene con un layout comune che è reattivo, allora Xamarin.Forms è adatto.
Jason Short

La migliore risposta secondo me. Questo mi ha chiarito: "Xamarin.Forms: Crea una UI per tutte le piattaforme" e "Xamarin.iOS, Xamarin.Android: Crea una UI per piattaforma". Grazie!
Tadej,

1
@Dibzmania Non ho mai detto che è adatto solo per prototipi e app di base. Se vuoi avere un'app multipiattaforma con un'interfaccia utente quasi identica su ogni piattaforma, Xamarin.Forms è fantastico. Se desideri avere un'interfaccia utente personalizzata per piattaforma, probabilmente non trarrai vantaggio da Xamarin.Forms e dovresti invece utilizzare le librerie dell'interfaccia utente nativa.
Wosi,

1
Penso che questo articolo di Nathan Williams sia utile: arctouch.com/blog/xamarin-forms-xamarin-native
Alt-WN

44

Dal sito Web di Xamarin

Xamarin.Forms è il migliore per:

  • App per l'immissione dei dati
  • Prototipi e prove di concetto
  • App che richiedono funzionalità specifiche della piattaforma
  • App in cui la condivisione del codice è più importante dell'interfaccia utente personalizzata

Xamarin.iOS e Xamarin.Android sono i migliori per:

  • App che richiedono interazioni specializzate

  • App dal design estremamente raffinato

  • App che utilizzano molte API specifiche della piattaforma

  • App in cui l'interfaccia utente personalizzata è più importante della condivisione del codice


1
Questa risposta è vecchia / vecchia. Usa forme con prisma. Esperienza piacevole Sono un singolo sviluppatore che costruisce un'app enorme e sono molto produttivo e la mia app funziona solo su tutto. Se desideri app dall'aspetto sorprendente, ci sono varie viste di terze parti come Grial UI Kit (controlla il loro anteprima gratuita XAML live). Ricorda, Xamarin Forms utilizza ancora i controlli nativi per impostazione predefinita.
Sean Anderson,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.