Sviluppo rapido dell'interfaccia utente con Flutter per Windows

C'è molto da dire per gli strumenti che semplificano il targeting di più piattaforme da una singola base di codice, riducendo il carico sugli sviluppatori e aumentando la portata delle tue applicazioni. Xamarin di Microsoft ne è un eccellente esempio, estendendo .NET a iOS e Android. Ma che dire dell'altra direzione, in cui uno strumento di sviluppo mobile affermato aggiunge Windows come nuova piattaforma?

Non accade spesso, ma sorprendentemente l'ambiente di sviluppo mobile Flutter di Google sta aggiungendo un nuovo obiettivo di build in Windows, insieme al supporto esistente per Android, iOS, macOS, Linux e Web. Con le ultime versioni di sviluppo, ora puoi creare app Flutter per Win32, utilizzando gli stessi controlli e strumenti di progettazione per fornire codice desktop nello stesso momento in cui crei app mobili.

Scegliere come target Windows ha senso per Google, poiché il post sul blog di rilascio rileva che più della metà degli sviluppatori Flutter utilizza strumenti di sviluppo Windows. Gli strumenti dell'interfaccia utente di Flutter sono codice nativo e poiché funziona con le chiamate API standard di Windows, puoi usarlo con codice nuovo o esistente.

Utilizzo di Flutter su Windows

Flutter è basato sull'ultima versione del linguaggio Dart di Google. È un linguaggio simile al C con una struttura che ricorda sia JavaScript che C #. Se ci si arriva da un background .NET non c'è molto di nuovo da imparare; i costrutti del linguaggio saranno familiari. Una bassa barriera all'ingresso è una buona cosa, poiché dovresti essere pronto per iniziare a scrivere codice molto rapidamente.

Il supporto di Flutter per Windows è sperimentale, quindi devi apportare alcune modifiche a un'installazione standard dalla riga di comando. Passa prima al canale dev e poi esegui l'upgrade per assicurarti di eseguire l'ultima build del canale dev. Infine, utilizza gli strumenti Flutter della riga di comando per abilitare il supporto desktop di Windows. Fatto ciò, riavvia tutti gli editor aperti. Puoi verificare che il supporto di Windows sia abilitato verificando la presenza di dispositivi collegati; Windows verrà visualizzato qui. È una buona idea eseguire l'utilità Flutter Doctor per verificare che tutte le dipendenze appropriate siano installate, poiché ciò installerà le funzionalità mancanti, se necessario.

A differenza delle versioni per dispositivi mobili di Flutter, la versione desktop richiede Visual Studio 2019, con i suoi strumenti di sviluppo desktop C ++. Puoi ancora lavorare in Visual Studio Code se hai app Flutter mobili esistenti che desideri portare sul desktop, ma Flutter desktop deve usare il compilatore Windows C ++ per creare app Windows con tutte le librerie di supporto richieste.

Scrittura di applicazioni Flutter su Windows

Anche se hai bisogno degli strumenti C ++ di Visual Studio, puoi comunque modificare e creare gran parte delle tue applicazioni desktop Flutter in Visual Studio Code con il plug-in Flutter, passando a Visual Studio quando devi modificare C ++ o utilizzare Windows SDK. La creazione di un nuovo progetto genererà automaticamente lo scaffolding necessario per creare un'applicazione desktop Windows insieme alle versioni Android e iOS predefinite. È quindi possibile modificare il codice dell'applicazione nel file main.dart comune, che verrà compilato nelle versioni appropriate al momento della compilazione.

Il codice comune Dart rimane nella cartella lib. La cartella Windows è dove scrivi il codice specifico della piattaforma, mantenendolo separato da qualsiasi funzione multipiattaforma. Questo approccio consente di sfruttare gli investimenti esistenti in codice Windows e API utilizzando i canali della piattaforma di Flutter per garantire l'interoperabilità tra il codice C ++ di Windows e Dart di Flutter.

Gli strumenti Visual Studio Code Flutter e Dart richiedono ancora l'installazione di Android Studio, poiché sono necessari per creare versioni Android delle tue applicazioni. Se stai lavorando su un'app multipiattaforma, è meglio scrivere qualsiasi codice Android in Android Studio, salvando il codice Kotlin nell'albero del codice Android della tua app Flutter. La condivisione di una struttura di codice in questo modo ha senso; Sebbene tu abbia la possibilità di utilizzare Visual Studio Code per modificare il codice di Windows C ++, l'IDE di Visual Studio completo ha molti più vantaggi e un migliore supporto per le librerie, rendendolo un ambiente di sviluppo preferibile per il codice che deve utilizzare Win32 SDK e le librerie.

Utilizzo di Windows SDK, API e librerie con Flutter

Flutter è progettato per funzionare su più stack di sviluppo e offre due percorsi diversi per lavorare con le API native di Windows. Il primo, i canali della piattaforma, fornisce un modo per passare messaggi da un'interfaccia utente di Flutter a un'API nativa utilizzando un plug-in della piattaforma come wrapper per l'API. Sebbene questo sia il metodo approvato per lavorare oltre i limiti dello stack, è basato su messaggi e asincrono, quindi non adatto a tutte le API di Windows.

In alternativa, puoi utilizzare la sua interfaccia di funzioni esterne per collegarti direttamente a una libreria nativa e utilizzare le sue chiamate API. Questo approccio è probabilmente il modo migliore per fornire funzionalità di Windows a un'app Flutter, poiché puoi collegarti direttamente al codice esistente o nuovo, con collegamenti statici o dinamici. Il codice nativo deve avere simboli C disponibili in modo che il codice Flutter possa collegarsi ad essi; qualsiasi codice C ++ dovrà esportarli in formato C tramite l' externopzione.

La maggior parte delle librerie di Windows SDK sono già compilate, quindi è necessario utilizzare il collegamento dinamico per importarle nelle applicazioni Flutter. Usa la DynamicLibrary.openfunzione Flutter per aggiungerli alla tua applicazione, quindi trattali come faresti con un plug-in Flutter. In effetti il ​​team di Flutter sta già lavorando a un plug-in Win32 che fornirà l'accesso alla maggior parte delle API di Windows, pronte per l'uso nel codice.

Uno strumento per lo sviluppo dell'interfaccia utente rapido e collaborativo

Uno dei vantaggi degli strumenti di sviluppo di Flutter è la sua opzione di ricarica a caldo. È possibile avere una copia del codice in esecuzione e allegata a un debugger, apportare una modifica al codice e premere il tasto di ricarica rapida nel terminale di Visual Studio Code per ricaricare l'applicazione senza modificarne lo stato. C'è un'opzione di riavvio a caldo se preferisci iniziare con uno stato nuovo.

La possibilità di modificare rapidamente l'interfaccia utente o la logica aziendale senza riavviare un'app è una funzionalità davvero utile per Flutter. La programmazione diventa più interattiva, soprattutto se lavori a fianco di un designer o di un utente finale. Puoi chiedere cosa funziona, apportare rapidamente le modifiche suggerite e ottenere una risposta immediata dai tuoi partner di sviluppo. Una volta che sei pronto per pubblicare e distribuire il tuo codice, esegui una build per generare un file exe con tutte le DLL di supporto appropriate, pronto per il pacchetto con il programma di installazione scelto.

Non sei limitato a Win32, poiché una shell Flutter UWP è attualmente in fase di sviluppo (ed è già stata utilizzata per le app dello Store). Il risultato è un livello dell'interfaccia utente multipiattaforma flessibile e potente che funzionerà con codice nativo su una vasta gamma di piattaforme, che si adatta agli schermi più grandi dei PC, funziona con Windows SDK sia moderni che legacy e dovrebbe essere pronto per lavorare con Project Riunione mentre inizia.