Marco Neรจ, programmatore di Softfour, ci racconta la sua esperienza maturata nello sviluppo di applicazioni mobileย cross-platform con Xamarin e Flutter. Leggi l’intervista e scopri perchรฉ il framework di casa Google lo ha conquistato.
Ciao Marco, ci racconti il tuo background e come ti sei approccito a Xamarin?
Essendo prevalentemente uno sviluppatore C# la scelta รจ subito ricaduta su Xamarin quando, nelย 2018, si รจ presentata la necessitร di sviluppare unโapp mobile (solo android) con limitate richiesteย grafiche e necessitร di consegna in breve tempo.ย Abbiamo poi affrontato unโapp piรน complessa (questa volta Xamarin.Forms, ma solo android) conย una serie di funzionalitร specifiche della piattaforma – accelerometro, giroscopio, fotocamera – e conย relativa scrittura di codice specifico per android.
La scelta di optare per Xamarin.Forms fu dovuta alla disponibilitร di kit grafici da usare come baseย di partenza, ottima cosa per un developer senza esperienza di design.
Quali difficoltร hai incontrato?
Premetto innanzitutto che sono un Mac user e ho sviluppato in Xamarin usando Visual Studio for Mac.
Avendo sviluppato web app in asp.net non ero nuovo al pattern MVC per cui il passaggioย allโMVVM di Xamarin รจ stato abbastanza indolore… almeno fino allo scontro con XAML.
XAML รจ stato difficile da digerire su piรน livelli, non tanto dal punto di vista logico quanto da quelloย di IDE. Tra le maggiori criticitร ย code completion zoppicante (o assente), errori in fase di build che scompaiono dopo un riavvio,ย lentezza incredibile durante il disegno dellโinterfaccia nonostante l’aver tentato vari strumentiย tra cui Gorilla Player.
Far dialogare view e viewmodel quando lo XAML non risponde come ti aspetteresti รจ aย dir poco frustrante.
Quando hai avuto a che fare con Flutter per la prima volta?
Lโopportunitร di testare Flutter si รจ presentata in occasione dello sviluppo di unโaltra app Xamarin. Un progetto interno in cui ho dovuto mettere le mani ad un sample abbastanzaย complesso per capire eventuali tempi di sviluppo o scogli.
Lo smarrimento iniziale (Streams, BloCs eccโฆ sono molto distanti dal mondo .NET) รจ statoย superato abbastanza velocemente: la struttura ad โalberoโ degli widget era facilmenteย comprensibile dopo piรน di un anno passato a lavorare con lo XAML, e i suoi Stacks e il linguaggioย dart si sono dimostrati sorprendentemente semplici.
Come ti sei trovato con il pattern BLoC?
Con questo pattern mi sono trovato subito a mio agio.ย Cosรฌ diverso dallโMVC al punto che pensavo mi avrebbe fatto perdere una marea di ore, si รจ invece rivelatoย straordinariamente intuitivo.
Nessuna gestione della navigazione tramite routes, nessun push o pop (a meno che non lo si vogliaย specificatamente), nessun binding DA o VERSO il viewmodel, bensรฌ stati ed eventi che rebuildanoย la porzione di codice interessata. Cosa volere di piรน!
Come รจ stato lo sviluppo con questo nuovo linguaggio?
Uno dei vantaggi piรน grossi dello sviluppare con Flutter รจ cheโฆ non stai sviluppando con Xamarin.
Seriamente, sganciarsi da Microsoft significa poter optare per tutta una serie di IDE (VS Code,ย IntelliJ eccโฆ), e per un Mac user รจ un bel passo avanti.ย Io ho scelto IntelliJ ed รจ stato una boccata dโaria fresca.ย A migliorare ulteriormente lโesperienza di sviluppo si aggiunge il fantastico Hot Reload di Flutter.
Inoltre fatta la build una prima volta non รจ piรน necessario il rebuild, se non dopo lโaggiunta di assets o diย dart packages.ย Un enorme risparmio di tempo, e non solo per quanto riguarda lโinterfaccia grafica: qualsiasi rigaย di codice viene recepita istantaneamente, giusto il tempo di premere cmd+s.ย Unโesperienza di sviluppo piรน immediata rispetto a quella desktop non me lโaspettavo proprio,ย sono rimasto meravigliato.
Altri motivi per cui scegliere Flutter, secondo la tua esperienza
Oltre ai giร citati HotReload, IntelliJ e BLoC puntando su Flutter posso contare sulle componentiย Material.
Lโapp ha un aspetto passabile fin da subito, nessun paragone con Xamarin.ย Widget di ogni tipo su FlutterGems aiutano a realizzare unโapp gradevole e dal look professionaleย anche senza passare per UI Kit di terze parti, questo anche grazie allโhot reload che rende fattibileย dedicare del tempo al design dellโinterfaccia.ย Prestazioni elevate e un UI molto piรน smooth chiudono il cerchio.
Sono sicuro che tutto quello che ho realizzato con Flutter si possa ottenere anche con Xamarin. Tuttavia laย rapiditร con cui sono riuscito a ottenere risultati soddisfacenti col primo paragonata al tempoย dedicato al secondo mi fanno propendere decisamente per Flutter.
Marco e tutto il team Softfour sono a tua disposizione per il servizio di sviluppo software in outsourcing. Hai bisogno?ย Contattaci senza impegno.