Бързо разработване на потребителски интерфейс с Flutter за Windows

Много може да се каже за инструменти, които улесняват насочването към множество платформи от една кодова база, намалявайки натоварването на разработчиците и увеличавайки обхвата на вашите приложения. Xamarin на Microsoft е отличен пример за това, разширявайки .NET до iOS и Android. Но какво ще кажете за другата посока, когато утвърден инструмент за мобилно развитие добавя Windows като нова платформа?

Това не се случва често, но изненадващо мобилната среда за разработка на Google Flutter добавя нова цел за изграждане в Windows, заедно със съществуващата си поддръжка за Android, iOS, macOS, Linux и мрежата. С най-новите версии за разработка, вече можете да създавате приложения на Flutter за Win32, като използвате същите контроли и инструменти за проектиране, за да доставяте десктоп код едновременно с изграждането на мобилни приложения.

Насочването към Windows има смисъл за Google, тъй като публикацията в блога на изданието отбелязва, че повече от половината разработчици на Flutter използват инструменти за разработка на Windows. Потребителският интерфейс на Flutter е естествен код и тъй като работи със стандартни Windows API извиквания, можете да го използвате с нов или съществуващ код.

Използване на Flutter в Windows

Flutter е изграден около най-новата версия на езика Dart на Google. Това е език, подобен на C, със структура, напомняща както на JavaScript, така и на C #. Ако идвате към него от .NET фон, няма много нови неща за учене; езиковите конструкции ще са познати. Ниската бариера за влизане е нещо добро, тъй като трябва да сте готови да започнете да кодирате много бързо.

Поддръжката на Flutter за Windows е експериментална, така че трябва да направите някои промени в стандартната инсталация от командния ред. Първо преминете към канала за разработчици и след това надстройте, за да сте сигурни, че изпълнявате най-новата версия на канала за разработчици. И накрая, използвайте инструментите на командния ред Flutter, за да активирате поддръжката на работния плот на Windows. След като приключите, рестартирайте всички отворени редактори. Можете да проверите дали поддръжката на Windows е активирана, като проверите за свързани устройства; Windows ще се появи тук. Добра идея е да стартирате помощната програма Flutter doctor, за да проверите дали са инсталирани всички подходящи зависимости, тъй като това ще инсталира липсващите функции, ако е необходимо.

За разлика от версиите на мобилни устройства на Flutter, версията за настолни компютри се нуждае от Visual Studio 2019 със своите инструменти за разработка на десктоп C ++. Все още можете да работите в Visual Studio Code, ако имате съществуващи мобилни приложения на Flutter, които искате да въведете на работния плот, но Desktop Flutter трябва да използва компилатора на Windows C ++, за да създаде приложения за Windows с всички необходими поддържащи библиотеки.

Писане на приложения на Flutter в Windows

Въпреки че се нуждаете от инструментите на C ++ на Visual Studio, все още редактирате и изграждате голяма част от настолните си приложения на Flutter в Visual Studio Code с приставката Flutter, превключвайки се за Visual Studio, когато трябва да редактирате C ++ или да използвате Windows SDK. Създаването на нов проект автоматично ще генерира скеле, необходимо за изграждане на десктоп приложение за Windows заедно с версиите за Android и iOS по подразбиране. След това можете да редактирате кода на приложението си в общия файл main.dart, който ще бъде компилиран в съответните версии по време на изграждането.

Общият Dart код остава в папката lib. Папката на Windows е мястото, където пишете вашия специфичен за платформата код, като го държите отделно от всички междуплатформени функции. Този подход ви позволява да надграждате върху съществуващите си инвестиции в Windows код и API, използвайки платформените канали на Flutter, за да осигурите оперативна съвместимост между Windows C ++ кода и Flutter's Dart.

Инструментите Visual Studio Code Flutter и Dart все още се нуждаят от Android Studio, за да бъдат инсталирани, тъй като са необходими за изграждане на Android версии на вашите приложения. Ако работите върху крос-платформено приложение, най-добре е да напишете който и да е Android код в Android Studio, като запазите кода на Kotlin в кодовото дърво на вашето приложение Flutter Споделянето на кодова структура по този начин има смисъл; докато имате възможност да използвате Visual Studio Code за редактиране на код на Windows C ++, пълната Visual Studio IDE има много повече възможности и по-добра библиотечна поддръжка, което го прави предпочитана среда за разработка на код, който трябва да използва Win32 SDK и библиотеки.

Използване на Windows SDK, API и библиотеки с Flutter

Flutter е проектиран да работи в различни стекове за развитие и предлага два различни маршрута за работа с API-та на родния Windows. Първият, каналите на платформата, осигурява начин за предаване на съобщения от потребителския интерфейс на Flutter към роден API, използвайки приставка за платформа като обвивка за API. Въпреки че това е одобреният метод за работа през границите на стека, той е базиран на съобщения и е асинхронен, така че не е подходящ за всички API на Windows.

Като алтернатива можете да използвате неговия интерфейс за външни функции, за да се свържете директно с родна библиотека и да използвате нейните API извиквания. Този подход вероятно ще бъде най-добрият начин за предоставяне на функционалността на Windows на приложението Flutter, тъй като можете да свържете директно към съществуващ или нов код, чрез статични или динамични връзки. Родният код трябва да има налични символи C, за да може вашият Flutter код да се свързва с тях; всеки C ++ код ще трябва да ги експортира във формат C чрез externопцията.

Повечето Windows SDK библиотеки вече са компилирани, така че трябва да използвате динамично свързване, за да ги въведете във вашите приложения на Flutter. Използвайте функцията Flutter, DynamicLibrary.openза да ги добавите към приложението си, и след това се отнасяйте с тях, както бихте правили приставка Flutter. Всъщност екипът на Flutter вече работи по приставка за Win32, която ще осигури достъп до повечето API на Windows, готови за използване във вашия код.

Инструмент за бързо, съвместно разработване на потребителски интерфейс

Едно от предимствата на инструмента за разработка на Flutter е неговата опция за горещо презареждане. Можете да стартирате копие на вашия код и да го прикачите към дебъгер, да направите промяна в кода и да натиснете клавиша за горещо презареждане в терминала на Visual Studio Code, за да презаредите приложението, без да променяте състоянието му. Има опция за горещо рестартиране, ако предпочитате да започнете с ново състояние.

Възможността за бърза промяна на потребителския интерфейс или бизнес логиката без рестартиране на приложение е наистина полезна функция за Flutter. Програмирането става по-интерактивно, особено ако работите до дизайнер или краен потребител. Можете да попитате какво работи, да направите бързи предложени промени и да получите незабавен отговор от вашите партньори за разработка. След като сте готови да публикувате и внедрите кода си, стартирате компилация, за да генерирате exe файл с всички подходящи DLL за поддръжка, готови за опаковане с вашия избор на инсталатор.

Не сте ограничени и до Win32, тъй като в момента е в процес на разработка черупка на UWP Flutter (и вече е била използвана за приложенията на Store). Резултатът е гъвкав и мощен крос-платформен потребителски интерфейс, който ще работи с естествен код на редица платформи, който се мащабира към по-големите екрани на персонални компютри, работи както с модерни, така и с наследени Windows SDK и трябва да бъде готов за работа с Project Съединението, докато се разгръща.