Quali sono i pro e i contro dell’uso di Xamarin per lo sviluppo di iOS?

Pro:

  • C# può essere usato per codificare tutte le piattaforme.
  • Le prestazioni sono abbastanza buone e paragonabili a quelle native. Molto più veloce di qualcosa come PhoneGap.
  • Personalizzabile per permettere agli utenti di creare un look and feel nativo per ogni piattaforma dato che Xamarin usa componenti UI nativi di ogni piattaforma, quindi può essere fatto per sembrare un'app nativa iOS.
  • Supporto completo per le caratteristiche hardware come fotocamera, accelerometro, gps
  • Codifica per iOS / Android può essere fatto su un IDE: Xamarin IDE o Visual Studio.

Consigli:

  • Il costo della licenza Xamarin non è economico ($1000 per piattaforma / per dev).
  • Il supporto più recente per ogni piattaforma (iOS / Android) dipenderà da quanto velocemente Xamarin aprirà queste API ai dev. I.E nuovi SDK iOS / Andriod vengono rilasciati e Xamarin dovrà aggiornare le proprie API per supportare i nuovi SDK iOS / Android
  • C'è una curva di apprendimento coinvolto nell'utilizzo di Xamarin. I Dev devono ancora conoscere C# / .NET e anche la piattaforma (iOS / Android) framework / UI / cicli di vita per cui stanno sviluppando, oltre a imparare l'IDE / Framework di Xamarin.
  • Non può essere utilizzato per creare applicazioni per Windows xp+ (desktop). Xamarin è principalmente per le applicazioni Windows Phone e Windows 8 (Metro). Anche se l'applicazione desktop può ancora essere codificata in C# /.Net normalmente.
  • Non può usare librerie open source che sono popolari su iOS / Android. Anche se .NET ha la sua parte di supporto open source
  • Ecosistema più piccolo quindi più difficile trovare problemi di supporto dal momento che questo è un prodotto a pagamento. Dovrà fare affidamento sul supporto Xamarin se il problema dev / bug viene fuori con i loro strumenti.

Per riassumere e chiarire i punti: Xamarin non è una piattaforma "Write once run anywhere". Fondamentalmente permette agli sviluppatori di codificare le applicazioni in un unico linguaggio C#, che permette la condivisione del codice attraverso le piattaforme. Il lato positivo è la buona performance e l'UI personalizzabile per sembrare nativa. Il lato negativo è che richiede un codice UI unico per ogni piattaforma e familiarità con ogni piattaforma poiché utilizza componenti UI nativi. Cose come la sicurezza dei dati / crittografia, il codice di rete possono essere fatte in C# / .Net e condivise tra le piattaforme.