Reading time: 16 minutes
Quando si considera lo sviluppo di app iOS o Android, la maggior parte di noi pensa a Objective-C vs Swift e Java prima di tutto. Essendo considerati stack tecnologici nativi, sono naturalmente più spesso utilizzati strumenti di sviluppo mobile quando si tratta di sviluppo di app iOS e Android. Tuttavia, ci sono più modi per creare applicazioni mobili performanti e user-friendly. E Xamarin è uno di loro. In questo articolo, conduciamo una recensione approfondita di Xamarin e la confrontiamo con soluzioni di sviluppo mobile native e multipiattaforma sul mercato. Se conosci le basi, considera di saltare alle sezioni che ti interessano.
- Che cos’è Xamarin?
- Pro dell’utilizzo di Xamarin per lo sviluppo
- Stack Uno stack tecnologico per codificare tutte le piattaforme
- Performance Prestazioni vicine al nativo
- Experiences Esperienze utente native
- Support Supporto hardware completo
- Technology Tecnologia open Source con un forte supporto aziendale
- Maintenance Manutenzione semplificata
- Ecosystem Ecosistema di sviluppo completo
- X Xamarin.Forms: un framework per la creazione di layout UI nativi
- X Xamarin.Forms XAML Hot Reload
- Building creazione di app per Mac con Xamarin.Strumento Mac
- Resources Xamarin Learning Resources
- support Supporto Xamarin di TV, wearables e IoT
- Xamarin Contro da considerare
- Θ Supporto leggermente ritardato per gli ultimi aggiornamenti della piattaforma
- Θ Accesso limitato alle librerie Open Source
- Θ Costo elevato per uso professionale ed aziendale
- Θ Xamarin Talent Pool and Community Constraints
- Θ Conoscenza di base delle lingue native
- Θ Dimensioni app più grandi
- θxamarina.I moduli cesseranno presto di esistere
- Θ Problemi di compatibilità con librerie e strumenti di terze parti
- Xamarin Visual Studio IDE
- Passaggio da Android Studio o Xcode a Visual Studio
- Considerando altre opzioni: Xamarin vs Hybrid Development vs Native iOS/Android vs Other Cross-Platform Frameworks
- Consiglio
Che cos’è Xamarin?
È impossibile ignorare Xamarin quando si parla degli approcci chiave allo sviluppo di applicazioni mobili. Xamarin è uno strumento utilizzato per lo sviluppo di app mobili multipiattaforma che consente agli ingegneri di condividere fino al 90% del codice tra le principali piattaforme. Essendo uno strumento relativamente nuovo, si basa sullo stack tecnologico Microsoft e ha già una comunità di oltre 1,4 milioni di sviluppatori.
La piattaforma è stata costruita dagli sviluppatori dietro Mono, una piattaforma di sviluppo open source basata su.NET Framework, guidata da Miguel de Icaza e introdotta per la prima volta nel 2001. La società Xamarin è stata fondata il 16 maggio 2011.
Tuttavia, a differenza del suo predecessore, Xamarin è stato creato come progetto commerciale fino a quando la società è stata acquisita da Microsoft nel 2016. Xamarin è diventato un popolare prodotto multipiattaforma per lo sviluppo di app mobili all’interno dell’ecosistema Microsoft. Questa acquisizione ha rotto la barriera finanziaria per l’utilizzo di Xamarin. Poiché Microsoft ha reso Xamarin SDK open-source, è diventato parte dell’ambiente di sviluppo integrato di Xamarin Visual Studio (di seguito discutiamo i migliori IDE da utilizzare per lo sviluppo di Xamarin). Quali sono le caratteristiche principali di Xamarin?
Linguaggio C#. Xamarin utilizza un unico linguaggio, C#, per creare applicazioni per tutte le piattaforme mobili. A differenza delle soluzioni interpretate, come Appcelerator Titanium, Xamarin è compilato in modo nativo, il che lo rende un’opzione go-to per la creazione di app ad alte prestazioni con aspetto nativo.
Basato su. NET framework. C# è un linguaggio maturo con una forte digitazione di sicurezza che impedisce al codice di comportamenti imprevisti. Poiché C # è uno dei linguaggi. NET framework, può essere utilizzato con una serie di utili funzionalità. NET come Lambda, LINQ e programmazione asincrona (async/await).
Tecnicamente parlando, Xamarin utilizza c # e librerie native avvolte nel .Strato netto per lo sviluppo di app multipiattaforma. Tali applicazioni sono spesso paragonate a native per piattaforme di sviluppo mobili sia iOS che Android in termini di prestazioni e esperienza utente. Inoltre, Xamarin può sfruttare tutti gli accessi API nativi e più recenti per utilizzare le funzionalità della piattaforma sottostante nelle app Xamarin come ARKit su iOS o Android Multi-Window.
Mentre il codice relativo alla logica di business, accesso a database, e la comunicazione in rete possono essere condivisi tra tutte le piattaforme, Xamarin, permette di creare una piattaforma-specifiche di interfaccia utente strato di codice. Pertanto, le app multipiattaforma Xamarin sembrano native al 100% su qualsiasi dispositivo, offrendo un’esperienza utente migliore rispetto alle app ibride generiche.
Compilazione. La piattaforma ha due prodotti principali: Xamarin.Ios e Xamarin.Android. Nel caso di iOS, il codice sorgente viene compilato direttamente nel codice assembly ARM nativo (compilazione anticipata), mentre le app Android Xamarin vengono prima compilate fino al linguaggio intermedio e quindi nel codice assembly nativo in fase di runtime (compilazione Just-in-Time). Tuttavia, in entrambi i casi il processo è automatizzato e adattato per gestire problemi come l’allocazione della memoria, la garbage collection e l’interoperabilità della piattaforma per impostazione predefinita.
Xamarin.Forma. Xamarina.Forms è un prodotto separato progettato per creare prototipi o app mobili che condividono fino al 100% del codice su iOS e Android.
Xamarin.Mac. Inoltre, gli ingegneri possono utilizzare Xamarin.Mac per creare applicazioni per Mac OS. Questi e alcuni altri prodotti dello stack Xamarin saranno discussi tra un po’.
SDK della piattaforma. Xamarin fornisce l’accesso a SDK specifici della piattaforma (Cocoa Touch per iOS e Android SDK) tramite semplice sintassi c#.
Associazioni di codice specifiche della piattaforma. Nella maggior parte dei casi gli ingegneri saranno in grado di gestire lo sviluppo mantenendo l’aspetto nativo delle rispettive piattaforme all’interno dell’ambiente Xamarin. Tuttavia, Xamarin ti consente di chiamare il codice della piattaforma esistente (ad esempio Swift per iOS) se devi riutilizzare alcuni moduli o realizzare alcune funzioni specifiche della piattaforma come la scansione di codici a barre, l’integrazione di PayPal o Google Analytics.
Supporto di indossabili. Xamarin supporta la creazione di app per dispositivi Apple e Android Watch. Gli ingegneri possono utilizzare Visual Studio sia per Mac che per Windows per creare app Apple Watch iOS. Inoltre, Xamarin supporta pienamente Android Wear.
Struttura del progetto Xamarin. La maggior parte del lavoro relativo a Xamarin dovrebbe essere eseguito tramite un computer di sviluppo Windows con Visual Studio e Xamarin installati. Le applicazioni possono essere debug direttamente dal desktop o su dispositivi ed emulatori. Se hai intenzione di sviluppare app iOS su Windows, è anche possibile che Visual Studio si colleghi a iOS storyboard designer e iOS simulator. C’è anche Visual Studio per Mac che consente di eseguire un simulatore sul Mac o direttamente su un iPhone collegato. Il debug viene eseguito tramite Visual Studio.
Xamarin project structure. Image source: Developer Support Blog
To get a more in-depth understanding of Xamarin engineering aspects consider checking these resources:
Main Xamarin Documentation Hub
Xamarin.Android Documentation
Xamarin.iOS Documentation
Xamarin.Documentazione dei moduli
Visual Studio for Xamarin
Xamarin Studio App Center
Xamarin Community Forum
Come qualsiasi altra tecnologia, Xamarin ha i suoi vantaggi e svantaggi, che sono stati oggetto di un’accesa discussione di recente. Per prendere una decisione informata sullo sviluppo nativo di Xamarin vs, valutiamo tutti i pro e i contro dello sviluppo di app con Xamarin. Se hai davvero poco tempo, ti consigliamo di guardare questo video che fornisce una panoramica di alto livello dei punti di forza e di debolezza della piattaforma Xamarin in meno di 6 minuti.
Se vuoi scendere ai dettagli, continua a leggere.
Pro dell’utilizzo di Xamarin per lo sviluppo
Ci sono buone ragioni per cui Xamarin è utilizzato da numerose aziende, tra cui Trello, Slack e GitHub.
Stack Uno stack tecnologico per codificare tutte le piattaforme
Xamarin utilizza c# integrato con.Net framework per creare app per qualsiasi piattaforma mobile. Così, è possibile condividere una media di 80-90 per cento del codice tra le piattaforme accelerando il ciclo di ingegneria. Xamarin inoltre non richiede il passaggio tra gli ambienti di sviluppo: è possibile creare tutte le applicazioni Xamarin in Visual Studio o Visual Studio Code. Gli strumenti di sviluppo multipiattaforma sono forniti come parte integrata dell’IDE senza costi aggiuntivi.
Performance Prestazioni vicine al nativo
A differenza delle soluzioni ibride tradizionali basate su tecnologie web, un’app multipiattaforma costruita con Xamarin può ancora essere classificata come nativa. Man mano che la piattaforma si sviluppa, le prestazioni di Xamarin vengono costantemente migliorate per soddisfare pienamente gli standard di sviluppo nativo, con Microsoft che fornisce consigli sulle tecniche di ottimizzazione. Visual Studio offre anche una soluzione completa per la creazione, il test e il monitoraggio delle prestazioni dell’app: Visual Studio App Center consente di eseguire test dell’interfaccia utente automatizzati e identificare i problemi prima del rilascio. Tuttavia, questo servizio è fornito a un costo aggiuntivo.
In precedenza, abbiamo testato e confrontato le prestazioni di Xamarin e applicazioni native. I risultati potrebbero essere un po obsoleti; tuttavia, dimostrano chiaramente il livello decente delle prestazioni delle app Xamarin.
Experiences Esperienze utente native
Xamarin consente di creare esperienze impeccabili utilizzando elementi dell’interfaccia utente specifici della piattaforma. È anche possibile creare app multipiattaforma per iOS, Android o Windows utilizzando Xamarin.Strumento Forms, che converte i componenti dell’interfaccia utente dell’app negli elementi dell’interfaccia specifici della piattaforma in fase di runtime. Come l’uso di Xamarin.Forms aumenta significativamente la velocità di sviluppo di app, è una grande opzione per progetti orientati al business. Tuttavia, potrebbe esserci un leggero calo delle prestazioni a causa del livello di astrazione extra. Per l’interfaccia utente dell’app personalizzata e prestazioni più elevate, puoi comunque utilizzare Xamarin.Ios e Xamarin.Android separatamente per garantire risultati eccellenti.
Tradizionalmente, Xamarin non è creduto di essere l’opzione migliore per le applicazioni con grafica pesante. Detto questo, ci sono un certo numero di librerie come OpenGL ES e framework come SkiaSharp e Urho che rendono possibile lo sviluppo di app con un’interfaccia utente personalizzata, animazioni complesse o giochi anche in Xamarin.
Support Supporto hardware completo
Con Xamarin, la soluzione ottiene funzionalità app a livello nativo. Elimina tutti i problemi di compatibilità hardware, utilizzando plug-in e API specifiche, per lavorare con funzionalità comuni dei dispositivi tra le piattaforme. Insieme all’accesso alle API specifiche della piattaforma, Xamarin supporta il collegamento con le librerie native. Ciò consente una migliore personalizzazione e funzionalità a livello nativo con un piccolo sovraccarico.
Technology Tecnologia open Source con un forte supporto aziendale
Dopo che la società è stata acquisita da Microsoft nel febbraio 2016, le politiche di licenza di Xamarin hanno subito cambiamenti radicali. Xamarin SDK, inclusi runtime, librerie e strumenti da riga di comando, è diventato open source e disponibile per tutti sotto la licenza MIT come parte di Visual Studio. Eliminando la barriera principale, il costo della licenza, Microsoft ha aperto la strada per l’ulteriore crescita della piattaforma. Più, guidato da Microsoft, e supportato da Unity, JetBrains, e Red Hat, il .NET Foundation in generale e Xamarin in particolare è diventato uno stack tecnologico affidabile e potente.
Maintenance Manutenzione semplificata
Grazie alla sua applicazione multipiattaforma, Xamarin semplifica la manutenzione e gli aggiornamenti. Puoi semplicemente distribuire le modifiche o gli aggiornamenti al file sorgente e verranno applicati alle app iOS e Android. Pertanto, ti aiuta a risparmiare tempo e denaro mantenendo aggiornate le tue app.
Ecosystem Ecosistema di sviluppo completo
Xamarin viene fornito in un unico pacchetto con un set di strumenti di sviluppo completo, incluso il proprio IDE. Ad aprile 2018, molti strumenti di sviluppo Xamarin precedentemente noti come funzionalità separate sono diventati parte di Visual Studio App Center. È inclusa la piattaforma stessa (Xamarin SDK), testing (ex Xamarin Test Cloud), distribuzione e analisi (ex Xamarin.Insights) piattaforme, e molti altri. Poiché il toolkit rimane gratuito, non è necessario investire in strumenti aggiuntivi o integrare app di terze parti per creare, testare e distribuire le app Xamarin.
X Xamarin.Forms: un framework per la creazione di layout UI nativi
Xamarin suggerisce agli sviluppatori di creare app mobili in due modi. Il primo è usare Xamarin.Ios e Xamarin.Android, che è apparso in precedenza e sono stati originariamente considerati più capaci. Usando Xamarin.Forms è il secondo approccio. È una versione più avanzata che consente la prototipazione rapida o la produzione di app con funzionalità meno specifiche della piattaforma. Ecco perché Xamarin.Forms è la soluzione migliore per le app in cui la condivisione del codice è più importante dell’interfaccia utente personalizzata. Ti consentirebbe di riutilizzare fino al 99% del codice, il che significa che sarai in grado di creare una singola interfaccia e condividerla su piattaforme senza progettare individualmente per ciascuna piattaforma. È inoltre possibile creare applicazioni in cui alcune parti delle loro interfacce utente sono realizzate con Xamarin.I moduli e gli altri sono progettati utilizzando il toolkit UI nativo.
Come Xamarin.Forme sviluppate nel corso degli anni, è diventato uno strumento universale e ha acquisito una comunità vibrante che presta attenzione ad esso. Ad esempio, alcuni fornitori di tecnologia contribuiscono con le loro librerie come Telerik UI che arricchiscono le capacità ingegneristiche fornendo componenti UI preconfigurati.
X Xamarin.Forms XAML Hot Reload
Come Xamarin.Forms è finalizzato allo sviluppo veloce e privo di attrito, Microsoft suggerisce di utilizzare uno strumento di ricarica a caldo XAML. Accelera lo sviluppo consentendo di modificare XAML durante il debug e di vedere immediatamente tali modifiche nell’app in esecuzione, senza richiedere l’arresto e la ricostruzione. Inoltre, lo stato di navigazione e i dati verranno mantenuti, in modo da poter iterare rapidamente sull’interfaccia utente. In questo modo, XAML Hot Reload consente di ricostruire e distribuire più velocemente le tue app per convalidare le modifiche dell’interfaccia utente.
Building creazione di app per Mac con Xamarin.Strumento Mac
Xamarin.Mac consente lo sviluppo di app Mac completamente native utilizzando c # e. NET.Si integra con le stesse librerie utilizzate per lo sviluppo in Objective-C con Xcode. Usando Xamarin.Mac combinato con Xamarin.Ios e Xamarin.Android, gli sviluppatori possono condividere fino al 90 per cento del codice nativo su Android, iOS e Mac OS. Inoltre, Xamarin.Mac si integra con Xcode, quindi uno sviluppatore può utilizzare il generatore di interfacce di Xcode per creare le interfacce utente di un’app.
Resources Xamarin Learning Resources
Microsoft Learn è un portale educativo online che aiuta le persone a sviluppare competenze tecniche relative ai prodotti Microsoft, tra cui Xamarin. La piattaforma offre corsi sia per principianti che per ingegneri esperti, consentendo agli studenti di prepararsi per le certificazioni Microsoft. Le risorse educative includono l’apprendimento auto-guidato gratuito, lezioni online dal vivo, conferenze in ufficio e conferenze per gli ospiti.
support Supporto Xamarin di TV, wearables e IoT
Il framework Xamarin, grazie al suo Xamarin.Moduli, consente di creare versioni portatili per molte piattaforme. Oltre a iOS, Android, Windows Phone e Mac, puoi sviluppare applicazioni per Tizen, un sistema operativo utilizzato su alcuni dispositivi Samsung, per dispositivi indossabili, TV e IoT. Oltre a questo, Xamarin.iOS consente di creare applicazioni per tvOS per Apple e watchOS.
Xamarin Contro da considerare
Tuttavia, ci sono ancora alcuni inconvenienti che possono gettare un’ombra sulla piattaforma. Quindi, perché non usare Xamarin?
Θ Supporto leggermente ritardato per gli ultimi aggiornamenti della piattaforma
Questo dipende completamente dal team di sviluppatori Xamarin. È impossibile per gli strumenti di terze parti fornire supporto immediato per le ultime versioni iOS e Android in quanto richiede del tempo per implementare le modifiche e/o introdurre nuovi plugin, ecc
Θ Accesso limitato alle librerie Open Source
Lo sviluppo nativo fa ampio uso di tecnologie open source. Con Xamarin, è necessario utilizzare gli elementi forniti dalla piattaforma e alcune risorse open source.NET, di fronte sia agli sviluppatori che ai consumatori. Mentre la scelta non è così ricca come lo è per lo sviluppo di app mobili Android e iOS, è possibile utilizzare i pacchetti NuGet che ora contengono tutto ciò che era nei componenti Xamarin in pensione.
Θ Costo elevato per uso professionale ed aziendale
Sebbene Xamarin sia una piattaforma open source gratuita per singoli sviluppatori, il framework potrebbe costare un bel penny per le esigenze aziendali. Spenderai molto per acquistare una licenza per Visual Studio. Ad esempio, Visual Studio Professional con il set principale di strumenti di sviluppo costa $1.199 per il primo anno e $799 per il rinnovo. Allo stesso tempo, un’impresa di Visual Studio, che consente di sperimentare strumenti aggiuntivi, costerà $5.999 per il primo anno e $2.569 per il rinnovo. Le caratteristiche per entrambi copriamo qui sotto.
Θ Xamarin Talent Pool and Community Constraints
Ovviamente, la comunità Xamarin è significativamente più piccola di quelle di iOS o Android nativi. È anche più piccolo delle comunità React e Ionic. Pertanto, trovare uno sviluppatore Xamarin esperto potrebbe essere una sfida.
Secondo lo Stack Overflow survey del 2020, solo 5.l ‘8% ha utilizzato il framework Xamarin a partire dal 2020, rispetto all’ 11,5% di React Native e al 7,2% di Flutter.
Utilizzo di Xamarin rispetto ad altri framework. Fonte immagine: Stack Overflow
Nonostante il numero di ingegneri Xamarin non sia paragonabile alle comunità native iOS o Android, la piattaforma fornisce un ampio supporto ai suoi sviluppatori. Come accennato in precedenza, Microsoft Learn offre risorse e formazione pratica per coloro che sono nuovi a questa tecnologia. Utilizzando questo supporto, la curva di apprendimento per un tecnico esperto di c#/. Net è minima.
Un altro problema che alcuni sviluppatori sperimentano è la frammentazione e la mancanza di standard nelle risorse di apprendimento e sviluppo, inclusi i documenti. Questo ha un impatto sulla qualità del supporto che si sta per ottenere.
Θ Conoscenza di base delle lingue native
Quando si utilizza Xamarin.Ios e Xamarin.Android per creare app mobili con un aspetto davvero nativo, dovrai comunque scrivere un livello di codice specifico della piattaforma utilizzando le API native di ciascuna piattaforma. Quindi, anche se non è obbligatorio come una volta, sarebbe utile avere almeno una conoscenza di base delle tecnologie native (Java/Kotlin per Android e Objective-C/Swift per iOS) per essere in grado di comprendere e ottenere il massimo dalla documentazione specifica della piattaforma. Inoltre, Xamarin.La libreria Essentials fornisce più API multipiattaforma e può essere utilizzata per accedere alle funzionalità native. Questo, tuttavia, non si applica a Xamarin.Forma.
Θ Dimensioni app più grandi
A seconda del tipo e della complessità, le app Xamarin sono in genere più grandi di quelle native (quest’ultima potrebbe essere la metà delle dimensioni di un’app Xamarin). Una semplice app “hello, world” per Android potrebbe richiedere fino a 16 MB, gran parte utilizzata dagli assembly librerie, contenuti, runtime Mono e libreria di classi base (BCL) associati.
Dimensione app Xamarin. Fonte immagine: developer.xamarin.com
Quindi, le app Xamarin di solito richiedono un’ottimizzazione aggiuntiva come il collegamento per rimuovere il codice inutilizzato dalle librerie incluse e mantenere ragionevoli le dimensioni del file dell’app.
θxamarina.I moduli cesseranno presto di esistere
A maggio 2020 si è tenuta la conferenza annuale Microsoft Build. Tra le altre notizie, è stato annunciato che Xamarin.Forms si fonderà con. NET e si evolverà in un nuovo framework multipiattaforma chiamato.NET Multi-platform App UI, o MAUI. MAUI avrà tutta l’interfaccia utente nativa e fornirà l’accesso a tutte le API native.
Anche, come parte del graduale .Unificazione NETTA, Xamarin.Android e Xamarin.iOS finirà per diventare parte di. NET 6 come. NET per iOS e. NET per Android e verrà aggiornato per abbinare altri carichi di lavoro. NET. La timeline per questo è ancora sconosciuta, quindi rimanete sintonizzati per gli aggiornamenti futuri.
Nel frattempo, lo Xamarin.Forme migrazione dovrebbe avvenire nel mese di novembre 2021. Una volta rilasciato MAUI, Xamarin sarà supportato per altri 12 mesi. Quindi, se al momento stai lavorando con Xamarin o se hai intenzione di creare nuove app Xamarin, vale la pena tenere d’occhio le date e cercare le guide Microsoft per una transizione fluida.
Θ Problemi di compatibilità con librerie e strumenti di terze parti
Potrebbero esserci alcuni problemi quando si integrano risorse di terze parti con l’app Xamarin. Mentre la maggior parte degli strumenti e delle librerie offre supporto completo per le tecnologie native, il supporto Xamarin potrebbe non essere fornito da un fornitore. Sebbene Xamarin abbia il proprio negozio di componenti, c’è sempre la possibilità che tu abbia bisogno di una capacità o integrazione specifica all’interno della tua app che non è fornita dalla piattaforma. Quindi, per sfruttare altri pacchetti di terze parti devi usare i wrapper.
Xamarin Visual Studio IDE
Se hai la sensazione che Xamarin sia giusto per te, sarai interessato a conoscere i principali IDE Xamarin che possono essere utilizzati e come si confrontano tra loro.
Visual Studio (VS) è un ambiente di sviluppo integrato Microsoft, o IDE, software utilizzato per la creazione, il debug e la pubblicazione di applicazioni su tutte le piattaforme e dispositivi. Esistono tre versioni principali di Visual Studio per Xamarin: Visual Studio Community, Visual Studio Professional e Visual Studio Enterprise. I fattori chiave per la scelta di una versione accettabile sono l’esperienza degli sviluppatori (studenti o ingegneri professionisti) e la loro dimensione del team. I programmatori possono sviluppare software per Web, mobile, server e desktop con tutte le versioni. Ulteriori informazioni su Visual Studio nel nostro articolo sugli strumenti utilizzati per lo sviluppo.NET.
L’ultima versione è Visual Studio 2019. Rispetto a VS 2017, contiene numerosi miglioramenti che accelerano lo sviluppo di applicazioni, dalla collaborazione in tempo reale con Visual Studio Live Share alla nuova finestra di avvio di Visual Studio. Inoltre, supporta DPI per monitor e funzionalità di debug migliorate.
Il carico di lavoro Xamarin è ora ridotto di circa 3 volte rispetto alle versioni precedenti, il che significa ridotto da 23 GB a 7 GB. Riduce drasticamente l’impatto del disco e accelera l’installazione. Inoltre, la nuova versione ha apportato notevoli miglioramenti per Android SDK e la gestione degli emulatori. Ha anche fatto grandi sforzi nel rafforzare l’authoring dell’interfaccia utente. Questo include Xamarin.Forme miglioramenti con IntelliCode per XAML, AXML-miglioramenti per Android, aggiornato Xamarin iOS Spedizione, e molte altre caratteristiche.
Visual Studio Community è una buona misura per gli studenti, progetti open-source, piccoli team di sviluppo con un massimo di 5 utenti. Il pacchetto Comunità è anche un bene per i team che sono nuovi a Visual Studio. Questa versione è gratuita per l’uso.
Visual Studio Professional è un insieme di strumenti e servizi creati per sviluppatori professionisti, piccoli team e uso aziendale. Questa versione fornisce potenti funzionalità per comprendere rapidamente il codice: mostrando riferimenti al codice, modifiche al codice, la visualizzazione che ha modificato l’ultima volta un metodo, o scoprire se i test vengono superati. La versione Professional include Azure DevOps, una raccolta di funzionalità come strumenti di pianificazione e test agile del progetto, pipeline CI/CD, soluzioni di reporting e altro ancora. Il prezzo annuale per questa versione è $ 1.199.
Visual Studio Enterprise ha strumenti e servizi di supporto più potenti. Consentono di gestire processi più complessi tra lo sviluppo e le operazioni IT; monitorare la qualità con strumenti di test manuali e automatizzati; ottenere l’accesso alla formazione professionale e all’intero ecosistema Microsoft engineering and Testing. La versione Enterprise ha anche il supporto prioritario, offerte partner, e molto altro ancora. Il prezzo annuale per Enterprise Studio è di Enterprise 5.999.
Per l’uso aziendale, si consiglia inoltre di controllare il Visual Studio App Center. È uno strumento che organizza il flusso di lavoro di sviluppo di app tra diverse tecnologie mobili, tra cui Xamarin. Qui, i team di progettazione che lavorano su più app possono riunire il loro set di strumenti. Automatizza il packaging delle app tramite GitHub o Bitbucket, fornisce integrazione per diversi servizi di test, consente la distribuzione di app e-mail per i test, esegue il crash tracking e l’analisi.
Visual Studio Code, o VS Code, si è classificato come l’ambiente di sviluppo più popolare nel 2019 con il 50,7% degli sviluppatori che ha segnalato di usarlo. VS Code è un editor di codice open source gratuito e leggero che fornisce tutti gli strumenti principali necessari per un semplice ciclo di modifica, creazione e debug del codice, ma manca delle funzionalità degli IDE completi che consentono di gestire flussi di lavoro più complessi. Funziona su Mac, Linux e Windows e supporta operazioni di sviluppo di base come l’esecuzione di attività, la risoluzione dei problemi e il controllo della versione. Ha anche IntelliSense per lo sviluppo assistito dall’IA, funziona con GitHub e ha un ricco ecosistema di estensioni. VS Code è veloce, semplice da usare, altamente configurabile e può essere una buona scelta se hai bisogno di qualcosa di leggero, ma con una buona funzionalità
Visual Studio Online, o GitHub Cloudspaces, è un ambiente di sviluppo basato su browser che supporta VS 2019 e VS Code. Ora è disponibile solo in versione beta e ha funzionalità limitate
Passaggio da Android Studio o Xcode a Visual Studio
Se il tuo team di sviluppo considera la transizione da Android Studio (AS) o Xcode a Visual Studio, la curva di apprendimento non sarà così ripida. I confronti feature-to-feature mostrano che gli IDE sono molto simili in termini di flussi di sviluppo con poche sfumature per ciascuno degli ambienti.
Da Android Studio a Visual Studio. Mentre il supporto ufficiale di Android Studio è focalizzato su Java, C / C++, Kotlin e linguaggi XML, VS supporta tutti i principali linguaggi di programmazione, inclusi quelli di AS. Ciò è dovuto all’ampio spettro di piattaforme a cui si rivolge IDE. VS offre maggiore libertà ingegneristica e consente di lavorare con progetti diversi da un ambiente. Se hai utilizzato Google Cloud Platform integrato con AS per eseguire macchine virtuali o semplicemente gestire progetti, Google è così gentile da fornire anche la sua estensione cloud platform per VS. Fondamentalmente, è possibile utilizzare sia l’ecosistema cloud di Microsoft che Google Cloud direttamente da VS. Visual Studio può essere installato su tutte le principali piattaforme: Windows, Android, Mac OS e Linux.
Da Xcode a Visual Studio. Xcode IDE, simile a VS, supporta il codice sorgente per tutti i principali linguaggi di programmazione. Quindi, non ci sarà alcuna sorpresa dopo la transizione. Ancora una volta, se sei stato legato a Mac OS durante l’utilizzo di Xcode, l’hardware Apple non è necessario per VS. Per coloro che utilizzano CloudKit per l’archiviazione lato server, Visual Studio e Xamarin consentono una semplice integrazione di CloudKit. Lo svantaggio principale dell’utilizzo di VS rispetto a Xcode è il suo prezzo: sia Android Studio che Xcode sono liberi di utilizzare mentre VS richiede una quota di abbonamento piuttosto elevata.
Secondo le stime degli sviluppatori, Visual Studio e Android Studio, entrambi, hanno per lo più lo stesso livello di facilità d’uso e la qualità del supporto. Confrontando gli stessi indici con VS e Xcode, possiamo dire che le stime VS sono un po ‘ migliori. Inoltre, Visual Studio è più popolare tra le imprese (>1000 dipendenti) mentre circa il 50% degli utenti di Android Studio e Xcode sono piccole imprese (50 o meno dipendenti).
Considerando i ranghi di Strategy Analytics negli ambienti di sviluppo mobile, Xcode ha raggiunto il più alto ranking sulle capacità di test come ha fatto Visual Studio. Android Studio è rimasto indietro. I punteggi totali sono stati: Xcode-22; Visual Studio -21; e Android Studio -13.
Considerando altre opzioni: Xamarin vs Hybrid Development vs Native iOS/Android vs Other Cross-Platform Frameworks
Recentemente, molti sviluppatori tendono ad essere d’accordo sul fatto che Xamarin possa essere considerato uno strumento di sviluppo “nativo”. In effetti, c’è un’opinione secondo cui “tutto ciò che può essere fatto in un’applicazione iOS usando Objective-C o Swift, e tutto ciò che può essere fatto in un’app Android usando Java, può essere fatto in C# usando Xamarin.”
Tuttavia, ci sono molte insidie nel dibattito nativo vs Xamarin. Vediamo come Xamarin si confronta con gli strumenti di sviluppo nativi e le piattaforme di sviluppo ibride (Ionic, PhoneGap/Cordova).
Xamarin vs ibrido vs lo sviluppo nativo in sintesi
anche se ibrido mobile di strumenti di sviluppo, in rapida evoluzione, non hanno ancora le prestazioni e le funzionalità native che Xamarin offre a circa lo stesso costo. Tuttavia, il più breve time to market rimane il loro principale vantaggio.
Per quanto riguarda la scelta tra Xamarin o iOS/Android nativi, devi considerare il tempo e il budget disponibili (lo sviluppo nativo è solitamente più costoso e richiede più tempo) e il tipo di app. Se hai bisogno di prestazioni di fascia alta e un’interfaccia utente perfettamente adattata, vale la pena optare per le app native.
Man mano che emergono e si sviluppano più framework multipiattaforma, diventa più difficile per Xamarin mantenere la sua posizione nel mercato. Oggi, un certo numero di framework ha già superato Xamarin in termini di popolarità e prestazioni. React Native è stata votata la prima scelta del 2020, seguita da vicino da Flutter.
Dinamiche di utilizzo di framework mobili multipiattaforma. Fonte: Statista
Ogni framework di app multipiattaforma presenta funzionalità e struttura diverse. Per avere un’immagine migliore, controlla i nostri articoli di confronto: Xamarin vs Flutter e Xamarin vs React Native vs Ionic vs NativeScript. Quest’ultimo, ad esempio, nonostante sia meno popolare, sarebbe particolarmente prezioso per quegli sviluppatori che usano Angular framework poiché sono strettamente interconnessi.
Consiglio
Quando si confrontano i pro ei contro, gli svantaggi elencati sono generalmente considerati un danno collaterale. La maggior parte dei proprietari di aziende sceglie la piattaforma di sviluppo di app mobili Xamarin in quanto riduce il time-to-market e i costi di progettazione, condividendo il codice e utilizzando un singolo stack tecnologico. Eppure lo scopo della app e il suo target di riferimento potrebbe essere un fattore ancora più importante da considerare.
Sulla base dell’esperienza del nostro team, il miglior caso d’uso per Xamarin è enterprise mobile solutions. Con l’interfaccia utente standard che copre il 90% dei progetti, tutta la logica del prodotto principale può essere facilmente condivisa tra le piattaforme. Quindi, la personalizzazione della piattaforma richiederà solo il 5-10% dello sforzo ingegneristico.
In caso di applicazioni consumer-facing con interfaccia utente pesante, la quantità di codice condiviso diminuisce drasticamente. Pertanto, lo sviluppo multipiattaforma di Xamarin perde il suo principale vantaggio e potrebbe essere uguale in termini di tempo e costi alle soluzioni native.
Questo articolo fa parte della nostra serie “Il buono e il cattivo”. Se sei interessato allo sviluppo web, dai un’occhiata al nostro post sul
Il buono e il cattivo dello sviluppo angolare
Il buono e il cattivo dello sviluppo dello stack completo JavaScript
Il buono e il cattivo del Nodo.js Web App Development
Il bene e il male di ReactJS e React Native
Il bene e il male del linguaggio di programmazione Swift
Il bene e il male di Selenium Test Automation Tool
Il bene e il male di Android App Development
Il bene e il male di .NET Development
Il bene e il male di Ranorex GUI Test Automation Tool
Il bene e il male di Flutter App Development