Brzi razvoj korisničkog sučelja s Flutterom za Windows

Mnogo se toga može reći o alatima koji olakšavaju ciljanje više platformi iz jedne baze koda, smanjujući opterećenje za programere i povećavajući doseg vaših aplikacija. Microsoftov Xamarin izvrstan je primjer za to, proširujući .NET na iOS i Android. Ali što je s drugim smjerom, gdje uspostavljeni alat za razvoj mobilnih uređaja dodaje Windows kao novu platformu?

To se ne događa često, ali iznenađujuće Googleovo okruženje za razvoj mobilnih uređaja Flutter dodaje novi cilj izrade u sustavu Windows, zajedno sa postojećom podrškom za Android, iOS, macOS, Linux i web. Uz najnovija razvojna izdanja, sada možete izrađivati ​​Flutter aplikacije za Win32, koristeći iste kontrole i alate za dizajn za isporuku radnog koda istovremeno s izradom mobilnih aplikacija.

Ciljanje sustava Windows logično je za Google, jer objava na blogu objavljuje da više od polovice programera Fluttera koristi alate za razvoj sustava Windows. Flutterovo korisničko sučelje je izvorni kôd i kako radi sa standardnim Windows API pozivima, možete ga koristiti s novim ili postojećim kodom.

Korištenje Fluttera u sustavu Windows

Flutter se temelji na najnovijoj verziji Googleovog Dart jezika. To je jezik sličan C-u, a strukturom podsjeća na JavaScript i C #. Ako mu pristupate iz .NET pozadine, nema previše novog za naučiti; jezične konstrukcije će biti poznate. Niska barijera za ulazak je dobra stvar, jer biste trebali biti vrlo brzo spremni za kodiranje.

Podrška za Flutter Windows je eksperimentalna, tako da morate unijeti neke promjene u standardnu ​​instalaciju iz naredbenog retka. Prvo se prebacite na razvojni kanal, a zatim nadogradite kako biste osigurali da imate najnoviju verziju razvojnog kanala. Napokon, upotrijebite alate Flutter naredbenog retka da omogućite podršku za Windows radnu površinu. Kad je to gotovo, ponovo pokrenite sve otvorene uređivače. Možete provjeriti je li podrška za Windows omogućena provjerom povezanih uređaja; Ovdje će se prikazati Windows. Dobro je pokrenuti uslužni program Flutter doctor kako biste provjerili jesu li instalirane sve odgovarajuće ovisnosti, jer će se po potrebi instalirati sve nedostajuće značajke.

Za razliku od verzija Fluttera za mobilne uređaje, za stolnu verziju potreban je Visual Studio 2019 sa svojim alatima za razvoj radne površine C ++. I dalje možete raditi u Visual Studio Codeu ako imate bilo koju postojeću mobilnu aplikaciju Flutter koju želite dovesti na radnu površinu, ali radna površina Flutter mora koristiti Windows C ++ kompajler za stvaranje Windows aplikacija sa svim potrebnim pratećim knjižnicama.

Pisanje Flutter aplikacija na Windowsima

Iako su vam potrebni alati C ++ Visual Studija, i dalje uređujete i gradite velik dio svojih aplikacija za radnu površinu Flutter u Visual Studio Codeu pomoću dodatka Flutter, prebacujući se na Visual Studio kada trebate uređivati ​​C ++ ili koristiti Windows SDK-ove. Stvaranje novog projekta automatski će generirati skelu potrebnu za izgradnju Windows radne površine uz zadane verzije Androida i iOS-a. Zatim možete urediti kod aplikacije u zajedničkoj datoteci main.dart, koja će se u vrijeme izrade kompajlirati u odgovarajuće verzije.

Uobičajeni Dart kod ostaje u mapi lib. Mapa Windows je mjesto u kojem pišete svoj kôd specifičan za platformu, čuvajući ga odvojeno od bilo koje funkcije više platformi. Ovaj vam pristup omogućuje nadogradnju na vaše postojeće ulaganje u Windows kod i API-je koristeći Flutter's Platform Channels za isporuku interoperabilnosti između Windows C ++ koda i Flutter's Dart-a.

Alati Visual Studio Code Flutter i Dart i dalje trebaju instalirati Android Studio jer su potrebni za izradu Android verzija vaših aplikacija. Ako radite na aplikaciji na više platformi, najbolje je da napišete bilo koji Android kôd u Android Studio, spremajući Kotlin kôd u stablo Android koda svoje aplikacije Flutter. Dijeljenje strukture koda na ovaj način ima smisla; dok imate mogućnost korištenja Visual Studio Code-a za uređivanje Windows C ++ koda, cjeloviti Visual Studio IDE ima mnogo više mogućnosti i bolju podršku za knjižnice, što ga čini poželjnim razvojnim okruženjem za kôd koji treba koristiti Win32 SDK i knjižnice.

Korištenje Windows SDK-ova, API-ja i knjižnica s Flutterom

Flutter je dizajniran za rad na svim razvojnim stogovima i nudi dvije različite rute za rad s API-jevima izvornim za Windows. Prvi, platforma kanali, pruža način prosljeđivanja poruka iz korisničkog sučelja Fluttera na izvorni API koristeći dodatak platforme kao omot za API. Iako je ovo odobrena metoda rada preko granica stoga, ona se temelji na porukama i asinkrono je, pa nije prikladna za sve Windows API-je.

Alternativno, možete koristiti njegovo sučelje stranih funkcija za izravno povezivanje s matičnom knjižnicom i korištenje njezinih API poziva. Ovaj će pristup vjerojatno biti najbolji način za isporuku Windows funkcionalnosti aplikaciji Flutter, jer se možete izravno povezati s postojećim ili novim kodom, bilo statičkim ili dinamičkim vezama. Izvorni kôd mora imati dostupne C simbole kako bi se vaš Flutter kôd mogao povezati s njima; bilo koji C ++ kôd trebat će ih izvesti u C formatu putem externopcije.

Većina Windows SDK knjižnica već je kompilirana, pa morate koristiti dinamičko povezivanje da biste ih unijeli u svoje aplikacije Flutter. Upotrijebite DynamicLibrary.openfunkciju Flutter da biste ih dodali u svoju aplikaciju, a zatim se prema njima ponašajte kao s dodatkom Flutter. Zapravo tim Fluttera već radi na dodatku Win32 koji će pružiti pristup većini Windows API-ja, spreman za upotrebu u vašem kodu.

Alat za brzi, suradnički razvoj korisničkog sučelja

Jedna od prednosti Flutterovog razvojnog alata je njegova opcija ponovnog punjenja. Možete imati pokrenutu kopiju koda i priključenu na program za ispravljanje pogrešaka, izvršiti promjenu koda i pritisnuti tipku za vruće ponovno učitavanje na terminalu Visual Studio Code da biste ponovo učitali aplikaciju bez mijenjanja stanja. Postoji opcija vrućeg ponovnog pokretanja ako želite započeti s novim stanjem.

Mogućnost brze promjene korisničkog sučelja ili poslovne logike bez ponovnog pokretanja aplikacije zaista je korisna značajka za Flutter. Programiranje postaje interaktivnije, pogotovo ako radite s dizajnerom ili krajnjim korisnikom. Možete pitati što funkcionira, brzo uvesti predložene promjene i dobiti trenutni odgovor od svojih razvojnih partnera. Jednom kada budete spremni za objavljivanje i postavljanje koda, izvodite izgradnju za generiranje exe datoteke sa svim odgovarajućim DLL-ovima za podršku, spremne za pakiranje po vašem izboru instalacijskog programa.

Ni vi niste ograničeni na Win32, jer je UWP Flutter ljuska trenutno u fazi izrade (i već je korištena za aplikacije Store). Rezultat je fleksibilan i moćan sloj korisničkog sučelja na više platformi koji će raditi s izvornim kodom na čitavom nizu platformi, koji se skalira na veće zaslone računala, radi s modernim i naslijeđenim Windows SDK-ovima i trebao bi biti spreman za rad s Projectom Okupljanje dok se kotrlja.