Programmering

Rask UI-utvikling med Flutter for Windows

Det er mye å si for verktøy som gjør det enkelt å målrette mot flere plattformer fra en enkelt kodebase, noe som reduserer belastningen på utviklere og øker rekkevidden til applikasjonene dine. Microsofts Xamarin er et utmerket eksempel på dette, og utvider .NET til iOS og Android. Men hva med den andre retningen, der et etablert verktøy for mobilutvikling legger til Windows som en ny plattform?

Det skjer ikke ofte, men overraskende nok legger Googles Flutter-mobilutviklingsmiljø til et nytt byggemål i Windows, sammen med den eksisterende støtten for Android, iOS, macOS, Linux og nettet. Med de siste utviklingsutgivelsene kan du nå bygge Flutter-apper for Win32 ved å bruke de samme kontrollene og designverktøyene for å levere skrivebordskode samtidig som du bygger mobilapper.

Å målrette Windows er fornuftig for Google, ettersom utgivelsen blogginnlegg bemerker mer enn halvparten av Flutter-utviklerne bruker Windows utviklingsverktøy. Flutter's UI-verktøy er naturlig kode, og siden det fungerer med standard Windows API-samtaler, kan du bruke det med ny eller eksisterende kode.

Bruke Flutter på Windows

Flutter er bygget rundt den nyeste versjonen av Googles Dart-språk. Det er et C-lignende språk med en struktur som minner om både JavaScript og C #. Hvis du kommer til det fra en .NET-bakgrunn, er det ikke så mye nytt å lære; språkkonstruksjonene vil være kjent. En lav inngangshindring er en god ting, da du bør være klar til å begynne å kode veldig raskt.

Flutter's Windows-støtte er eksperimentell, så du må gjøre noen endringer i en standardinstallasjon fra kommandolinjen. Bytt først til dev-kanalen, og oppgrader deretter for å sikre at du kjører den siste utviklingen av dev-kanaler. Til slutt, bruk kommandolinjens Flutter-verktøy for å aktivere Windows desktop-støtte. Når det er gjort, start alle åpne redaktører på nytt. Du kan sjekke at Windows-støtte er aktivert ved å se etter tilkoblede enheter; Windows vises her. Det er en god ide å kjøre legeverktøyet Flutter for å kontrollere at alle relevante avhengigheter er installert, da dette vil installere eventuelle manglende funksjoner etter behov.

I motsetning til mobile enhetsversjoner av Flutter, trenger desktopversjonen Visual Studio 2019, med C ++ desktop-utviklingsverktøy. Du kan fortsatt jobbe i Visual Studio Code hvis du har noen eksisterende mobile Flutter-apper du vil ta med på skrivebordet, men desktop Flutter må bruke Windows C ++ - kompilatoren til å lage Windows-apper med alle nødvendige støttebiblioteker.

Skrive Flutter-applikasjoner på Windows

Selv om du trenger C ++ -verktøy for Visual Studio, redigerer og bygger du fremdeles mye av Flutter-skrivebordsprogrammene dine i Visual Studio Code med Flutter-plugin-modulen, og bytter ut for Visual Studio når du trenger å redigere C ++ eller bruke Windows SDK-er. Å lage et nytt prosjekt vil automatisk generere stillaset som trengs for å bygge et Windows-skrivebordsprogram sammen med standard Android- og iOS-versjoner. Deretter kan du redigere applikasjonskoden i den vanlige main.dart-filen, som blir samlet inn i de aktuelle versjonene ved byggetidspunktet.

Vanlig Dart-kode forblir i lib-mappen. Windows-mappen er der du skriver den plattformsspesifikke koden din, og holder den atskilt fra alle plattformfunksjoner. Denne tilnærmingen lar deg bygge på dine eksisterende investeringer i Windows-kode og API-er ved å bruke Flutter's Platform Channels for å levere interoperabilitet mellom Windows C ++ -kode og Flutter's Dart.

Visual Studio Code Flutter og Dart-verktøyene trenger fortsatt Android Studio for å være installert, ettersom de er nødvendige for å bygge Android-versjoner av applikasjonene dine. Hvis du jobber med en plattformapp, er det best å skrive hvilken som helst Android-kode i Android Studio, og lagre Kotlin-koden i Flutter-appens Android-kodetre. Å dele en kodestruktur på denne måten er fornuftig; mens du har muligheten til å bruke Visual Studio Code for å redigere Windows C ++ - kode, har hele Visual Studio IDE mange flere overkommelser og bedre biblioteksstøtte, noe som gjør det til et foretrukket utviklingsmiljø for kode som trenger å bruke Win32 SDK og biblioteker.

Bruker Windows SDK-er, API-er og biblioteker med Flutter

Flutter er designet for å fungere på tvers av utviklingsstabler og tilbyr to forskjellige ruter for å jobbe med Windows-native API-er. Den første, plattformkanaler, gir en måte å overføre meldinger fra en Flutter UI til en innfødt API ved hjelp av en plattformtilleggsprogram som en innpakning for API. Selv om dette er den godkjente metoden for å jobbe over stabelgrenser, er den meldingsbasert og asynkron, så den er ikke egnet for alle Windows API-er.

Alternativt kan du bruke dets utenlandske funksjonsgrensesnitt for å koble direkte til et eget bibliotek og bruke dets API-samtaler. Denne tilnærmingen er sannsynligvis den beste måten å levere Windows-funksjonalitet til en Flutter-app, ettersom du kan koble til eksisterende eller ny kode direkte, med enten statiske eller dynamiske lenker. Innfødt kode må ha tilgjengelige C-symboler slik at din Flutter-kode kan lenke til dem; hvilken som helst C ++ - kode må eksportere dem i C-format via ekstern alternativ.

De fleste Windows SDK-biblioteker er allerede samlet, så du må bruke dynamisk kobling for å bringe dem inn i Flutter-applikasjonene dine. Bruk Flutter DynamicLibrary.open funksjon for å legge dem til i applikasjonen din, og behandle dem så mye som en Flutter-plugin-modul. Faktisk jobber Flutter-teamet allerede med en Win32-plugin-modul som gir tilgang til de fleste av Windows API-er, klar til bruk i koden din.

Et verktøy for rask, samarbeidende UI-utvikling

En av fordelene med Flutter's utviklingsverktøy er alternativet hot reload. Du kan få en kopi av koden din til å kjøres og festes til en feilsøkingsprogram, gjøre en endring i koden og trykke på hurtiginnlastingstasten i Visual Studio Code-terminalen for å laste applikasjonen på nytt uten å endre tilstanden. Det er et varmt omstartalternativ hvis du foretrekker å starte med en ny tilstand.

Å kunne endre brukergrensesnitt eller forretningslogikk raskt uten å starte en app på nytt er en veldig nyttig funksjon for Flutter. Programmering blir mer interaktiv, spesielt hvis du jobber ved siden av en designer eller en sluttbruker. Du kan spørre hva som fungerer, gjøre forslag til endringer raskt og få et øyeblikkelig svar fra utviklingspartnerne dine. Når du er klar til å publisere og distribuere koden din, kjører du en build for å generere en exe-fil med alle de aktuelle støtte-DLL-ene, klar for pakking med ditt valg av installatør.

Du er heller ikke begrenset til Win32, et UWP Flutter-skall er for tiden under utvikling (og har allerede blitt brukt til Store-apper). Resultatet er et fleksibelt og kraftig brukergrensesnittlag på tvers av plattformer som vil fungere med innfødt kode på tvers av en rekke plattformer, som skalerer til større skjermer på PC-er, fungerer med både moderne og eldre Windows SDK-er, og skal være klar til å jobbe med Project Gjenforening når den ruller ut.

$config[zx-auto] not found$config[zx-overlay] not found