Condividi tramite


Riepilogo del capitolo 1. Xamarin.Forms In che modo rientra?

Nota

Questo libro è stato pubblicato nella primavera del 2016, e non è stato aggiornato da allora. C'è molto nel libro che rimane prezioso, ma alcuni materiali sono obsoleti, e alcuni argomenti non sono più completamente corretti o completi.

Uno dei processi più spiacevoli nella programmazione è la conversione di una codebase da una piattaforma a un'altra, in particolare se tale piattaforma implica un linguaggio di programmazione diverso. C'è una tentazione quando si effettua il refactoring del codice anche per eseguirne il refactoring, ma se entrambe le piattaforme devono essere mantenute in parallelo, le differenze tra le due codebase renderanno più difficile la manutenzione futura.

Sviluppo di app per dispositivi mobili multipiattaforma

Questo problema è comune quando si punta alle piattaforme per dispositivi mobili. Esistono attualmente due principali piattaforme mobili, la famiglia Apple di i Telefono s e iPad che eseguono il sistema operativo iOS e il sistema operativo Android che viene eseguito su un'ampia gamma di telefoni e tablet. Un'altra piattaforma significativa è la piattaforma UWP (Universal Windows Platform) (UWP) di Microsoft, che consente a un singolo programma di scegliere sia Windows 10.

Un fornitore di software che desidera destinare queste piattaforme deve gestire paradigmi di interfaccia utente diversi, tre diversi ambienti di sviluppo, tre diverse interfacce di programmazione e, forse, più imbarazzante, tre diversi linguaggi di programmazione: Objective-C per i Telefono e iPad, Java per Android e C# per Windows.

Soluzione C# e .NET

Anche se Objective-C, Java e C# sono tutti derivati dal linguaggio di programmazione C, si sono evoluti da percorsi molto diversi. C# è il linguaggio più recente ed è stato maturo in modi molto utili. C# è inoltre strettamente associato a un'intera infrastruttura di programmazione denominata .NET, che fornisce supporto per la matematica, il debug, la reflection, le raccolte, la globalizzazione, l'I/O dei file, la rete, la sicurezza, il threading, i servizi Web, la gestione dei dati e la lettura e la scrittura DI DATI e JSON.

Xamarin offre attualmente strumenti per usare le API Mac, iOS e Android native con C# e .NET. Questi strumenti sono denominati Xamarin.Mac, Xamarin.iOS e Xamarin.Android, noti collettivamente come piattaforma Xamarin. Si tratta di librerie e associazioni che esprimono le API native di queste piattaforme con idiomi .NET.

Gli sviluppatori possono usare la piattaforma Xamarin per scrivere applicazioni in C# destinate a Mac, iOS o Android. Tuttavia, quando la destinazione è più di una piattaforma, è molto utile condividere parte del codice tra le piattaforme di destinazione. Ciò comporta la separazione del programma in codice dipendente dalla piattaforma (in genere che coinvolge l'interfaccia utente) e codice indipendente dalla piattaforma, che in genere richiede solo il framework .NET di base. Questo codice indipendente dalla piattaforma può risiedere in una libreria di classi portabile (PCL) o in un progetto condiviso, spesso denominato progetto di asset condiviso o SAP.

Nota

Le librerie di classi portabili sono state sostituite da librerie .NET Standard. Tutto il codice di esempio del libro è stato convertito per l'uso di librerie .NET Standard.

Introduzione Xamarin.Forms

Quando la destinazione è più piattaforme per dispositivi mobili, Xamarin.Forms consente una maggiore condivisione del codice. Un singolo programma scritto per può essere destinato a Xamarin.Forms queste piattaforme:

  • iOS per i programmi eseguiti su i Telefono, iPad e iPod touch
  • Android per programmi eseguiti su telefoni e tablet Android
  • il piattaforma UWP (Universal Windows Platform) di destinazione di Windows 10

Nota

Xamarin.Formsnon supporta più Windows 8.1, Windows Telefono 8.1 o Windows 10 Mobile, ma Xamarin.Forms le applicazioni vengono eseguite sul desktop di Windows 10. È disponibile anche il supporto in anteprima per le piattaforme Mac, WPF, GTK#e Tizen .

La maggior parte di un Xamarin.Forms programma esiste in una libreria o in un SAP. Ognuna delle piattaforme è costituita da uno stub di applicazioni di piccole dimensioni che chiama in questo codice condiviso.

Le API eseguono il Xamarin.Forms mapping ai controlli nativi in ogni piattaforma, in modo che ogni piattaforma mantenga l'aspetto caratteristico:

Screenshot triplo della condivisione degli oggetti visivi della piattaforma

Gli screenshot da sinistra a destra mostrano un i Telefono e un telefono Android:

In ogni schermata la pagina contiene un oggetto Xamarin.FormsLabel per la visualizzazione di testo, un Button oggetto per l'avvio di azioni, un Switch oggetto per la scelta di un valore on/off e un oggetto Slider per specificare un valore all'interno di un intervallo continuo. Tutte e quattro le visualizzazioni sono figli di un StackLayout oggetto in un oggetto ContentPage.

Inoltre, collegato alla pagina è una Xamarin.Forms barra degli strumenti costituita da diversi ToolbarItem oggetti. Sono visibili come icone nella parte superiore delle schermate iOS e Android e nella parte inferiore della schermata di Windows 10 Mobile.

Xamarin.Forms supporta anche XAML, extensible application markup language sviluppato in Microsoft per diverse piattaforme applicative. Tutti gli oggetti visivi del programma illustrati in precedenza sono definiti in XAML, come illustrato nell'esempio PlatformVisuals .

Un Xamarin.Forms programma può determinare la piattaforma in cui è in esecuzione ed eseguire di conseguenza codice diverso. Più potentemente, gli sviluppatori possono scrivere codice personalizzato per le varie piattaforme ed eseguire tale codice da un Xamarin.Forms programma in modo indipendente dalla piattaforma. Gli sviluppatori possono anche creare controlli aggiuntivi scrivendo renderer per ogni piattaforma.

Sebbene Xamarin.Forms sia una buona soluzione per applicazioni line-of-business o per la creazione di prototipi o la dimostrazione rapida del modello di verifica, è meno ideale per le applicazioni che richiedono grafica vettoriale o interazione tocco complessa.

Ambiente di sviluppo

L'ambiente di sviluppo dipende dalle piattaforme di destinazione e dai computer da usare.

Se si vuole usare come destinazione iOS, è necessario un Mac con Xcode e la piattaforma Xamarin installata. Il supporto di Android richiede anche l'installazione di Java e degli SDK necessari. È quindi possibile usare sia iOS che Android usando Visual Studio per Mac.

L'installazione di Visual Studio consente al PC di scegliere come destinazione iOS, Android e tutte le piattaforme Windows. Tuttavia, la destinazione di iOS da Visual Studio richiede ancora un Mac con Xcode e la piattaforma Xamarin installata.

È possibile testare i programmi in un dispositivo effettivo connesso tramite USB al computer o in un simulatore.

Installazione

Prima di creare e compilare un'applicazione Xamarin.Forms , è consigliabile provare a creare e compilare separatamente un'applicazione iOS, un'applicazione Android e un'applicazione UWP, a seconda delle piattaforme di destinazione e dell'ambiente di sviluppo.

I siti Web Xamarin e Microsoft contengono informazioni su come eseguire questa operazione:

Dopo aver creato ed eseguito progetti per queste singole piattaforme, non è necessario creare ed eseguire un'applicazione Xamarin.Forms .