Szybki rozwój interfejsu użytkownika z Flutter dla Windows

Wiele można powiedzieć o narzędziach, które ułatwiają kierowanie na wiele platform z jednej bazy kodu, zmniejszając obciążenie programistów i zwiększając zasięg aplikacji. Doskonałym przykładem jest Microsoft Xamarin, rozszerzający .NET na iOS i Android. Ale co z drugim kierunkiem, w którym uznane narzędzie do tworzenia aplikacji mobilnych dodaje system Windows jako nową platformę?

Nie zdarza się to często, ale zaskakująco mobilne środowisko programistyczne Flutter firmy Google dodaje nowy cel kompilacji w systemie Windows, obok istniejącej obsługi systemów Android, iOS, macOS, Linux i sieci. Dzięki najnowszym wersjom programistycznym możesz teraz tworzyć aplikacje Flutter dla Win32, używając tych samych kontrolek i narzędzi projektowych do dostarczania kodu komputerowego w tym samym czasie, gdy tworzysz aplikacje mobilne.

Kierowanie na system Windows ma sens dla Google, ponieważ we wpisie na blogu dotyczącym wydania zauważono, że ponad połowa programistów Flutter używa narzędzi programistycznych Windows. Narzędzia interfejsu użytkownika Fluttera to kod natywny, a ponieważ działa ze standardowymi wywołaniami interfejsu API systemu Windows, można go używać z nowym lub istniejącym kodem.

Korzystanie z Fluttera w systemie Windows

Flutter jest oparty na najnowszej wersji języka Google Dart. Jest to język podobny do języka C o strukturze przypominającej zarówno JavaScript, jak i C #. Jeśli zaczynasz korzystać z platformy .NET, nie ma zbyt wiele nowych do nauczenia; konstrukcje językowe będą znajome. Niska bariera wejścia to dobra rzecz, ponieważ powinieneś być gotowy do bardzo szybkiego rozpoczęcia kodowania.

Obsługa Fluttera dla Windows jest eksperymentalna, więc musisz wprowadzić pewne zmiany w standardowej instalacji z wiersza poleceń. Najpierw przełącz się na kanał deweloperski, a następnie zaktualizuj, aby mieć pewność, że korzystasz z najnowszej wersji kanału deweloperskiego. Na koniec użyj narzędzi Flutter wiersza poleceń, aby włączyć obsługę pulpitu Windows. Gdy to zrobisz, uruchom ponownie wszystkie otwarte edytory. Możesz sprawdzić, czy obsługa systemu Windows jest włączona, sprawdzając podłączone urządzenia; Tutaj pojawią się okna. Dobrym pomysłem jest uruchomienie narzędzia Flutter doctor, aby sprawdzić, czy są zainstalowane wszystkie odpowiednie zależności, ponieważ spowoduje to zainstalowanie brakujących funkcji w razie potrzeby.

W przeciwieństwie do wersji Flutter na urządzenia mobilne, wersja dla komputerów stacjonarnych wymaga programu Visual Studio 2019 z jego narzędziami programistycznymi C ++ dla komputerów stacjonarnych. Nadal możesz pracować w Visual Studio Code, jeśli masz jakiekolwiek istniejące aplikacje mobilne Flutter, które chcesz przenieść na pulpit, ale Flutter na komputery stacjonarne musi używać kompilatora Windows C ++ do tworzenia aplikacji Windows ze wszystkimi wymaganymi bibliotekami pomocniczymi.

Pisanie aplikacji Flutter w systemie Windows

Mimo że potrzebujesz narzędzi Visual Studio C ++, nadal edytujesz i tworzysz wiele aplikacji komputerowych Flutter w Visual Studio Code z wtyczką Flutter, przełączając się na Visual Studio, gdy musisz edytować C ++ lub używać Windows SDK. Utworzenie nowego projektu spowoduje automatyczne wygenerowanie rusztowania potrzebnego do zbudowania aplikacji klasycznej Windows wraz z domyślnymi wersjami Androida i iOS. Następnie możesz edytować kod aplikacji we wspólnym pliku main.dart, który zostanie skompilowany do odpowiednich wersji w czasie kompilacji.

Wspólny kod Dart pozostaje w folderze lib. Folder Windows to miejsce, w którym piszesz kod specyficzny dla platformy, oddzielając go od wszelkich funkcji międzyplatformowych. Takie podejście umożliwia budowanie na istniejących inwestycjach w kod Windows i interfejsy API przy użyciu kanałów platformy Flutter w celu zapewnienia współdziałania między kodem Windows C ++ i Flutter's Dart.

Narzędzia Visual Studio Code Flutter i Dart nadal wymagają zainstalowania Android Studio, ponieważ są potrzebne do tworzenia wersji aplikacji dla systemu Android. Jeśli pracujesz nad aplikacją wieloplatformową, najlepiej napisać dowolny kod Androida w Android Studio, zapisując kod Kotlin w drzewie kodu Androida aplikacji Flutter. Dzielenie się strukturą kodu w ten sposób ma sens; Chociaż masz możliwość używania Visual Studio Code do edytowania kodu Windows C ++, pełne środowisko IDE Visual Studio ma o wiele więcej możliwości i lepszą obsługę bibliotek, co czyni go preferowanym środowiskiem programistycznym dla kodu, który musi używać zestawu Win32 SDK i bibliotek.

Korzystanie z zestawów Windows SDK, interfejsów API i bibliotek z Flutter

Flutter został zaprojektowany do pracy w różnych stosach programistycznych i oferuje dwie różne ścieżki do pracy z natywnymi dla systemu Windows API. Pierwszy, kanały platformy, zapewnia sposób przekazywania komunikatów z interfejsu użytkownika Flutter do natywnego interfejsu API przy użyciu wtyczki platformy jako opakowania dla interfejsu API. Chociaż jest to zatwierdzona metoda pracy w granicach stosu, jest oparta na komunikatach i asynchroniczna, więc nie jest odpowiednia dla wszystkich interfejsów API systemu Windows.

Alternatywnie możesz użyć interfejsu funkcji obcych, aby połączyć się bezpośrednio z biblioteką natywną i użyć jej wywołań API. Takie podejście prawdopodobnie będzie najlepszym sposobem na dostarczenie funkcjonalności systemu Windows do aplikacji Flutter, ponieważ możesz bezpośrednio łączyć się z istniejącym lub nowym kodem, za pomocą łączy statycznych lub dynamicznych. Kod natywny musi mieć dostępne symbole C, aby kod Fluttera mógł się do nich łączyć; każdy kod C ++ będzie musiał wyeksportować je w formacie C za pomocą externopcji.

Większość bibliotek Windows SDK jest już skompilowana, więc musisz użyć dynamicznego łączenia, aby przenieść je do swoich aplikacji Flutter. Użyj DynamicLibrary.openfunkcji Flutter, aby dodać je do swojej aplikacji, a następnie traktuj je tak jak wtyczkę Flutter. W rzeczywistości zespół Flutter pracuje już nad wtyczką Win32, która zapewni dostęp do większości interfejsów API systemu Windows, gotową do użycia w kodzie.

Narzędzie do szybkiego, opartego na współpracy rozwoju interfejsu użytkownika

Jedną z zalet narzędzi programistycznych Flutter jest opcja ponownego ładowania na gorąco. Możesz mieć kopię kodu uruchomioną i dołączoną do debugera, wprowadzić zmianę w kodzie i nacisnąć klawisz ponownego ładowania na gorąco w terminalu Visual Studio Code, aby ponownie załadować aplikację bez zmiany jej stanu. Jeśli wolisz zacząć od nowego stanu, dostępna jest opcja ponownego uruchomienia na gorąco.

Możliwość szybkiej zmiany interfejsu użytkownika lub logiki biznesowej bez ponownego uruchamiania aplikacji jest naprawdę przydatną funkcją dla Fluttera. Programowanie staje się bardziej interaktywne, zwłaszcza jeśli pracujesz obok projektanta lub użytkownika końcowego. Możesz zapytać, co działa, szybko wprowadzić sugerowane zmiany i uzyskać natychmiastową odpowiedź od partnerów programistycznych. Gdy będziesz gotowy do opublikowania i wdrożenia kodu, uruchom kompilację, aby wygenerować plik exe ze wszystkimi odpowiednimi pomocniczymi bibliotekami DLL, gotowy do spakowania z wybranym instalatorem.

Nie jesteś również ograniczony do Win32, ponieważ powłoka UWP Flutter jest obecnie w fazie rozwoju (i była już używana w aplikacjach Sklepu). Rezultatem jest elastyczna i wydajna wieloplatformowa warstwa interfejsu użytkownika, która będzie współpracować z natywnym kodem na wielu platformach, skaluje się do większych ekranów komputerów PC, współpracuje zarówno z nowoczesnymi, jak i starszymi zestawami Windows SDK i powinna być gotowa do pracy z programem Project Spotkanie, gdy się toczy.