До сих пор, несмотря на то, что Flutter не предпринимал никаких усилий на стороне рабочего стола, он по-прежнему предоставляет способ напрямую упаковать проект приложения Flutter на сторону рабочего стола. На наш взгляд, это скорее экспериментальная попытка. В любом случае, я по-прежнему считаю отличную производительность Flutter в кроссплатформенном пользовательском интерфейсе, теперь давайте испытаем производительность Flutter на рабочем столе.
Использовать напрямуюflutter-desktop-embeddingОпыт упаковки не является дружественным.Как и многие другие фреймворки, нам нужен каркас для помощи, который рекомендуется здесь.go-flutter-desktopProject — библиотека, разработанная на языке Go для упаковки приложения Flutter в виде настольной программы. Go также является моим любимым языком!
О среде Flutter для сборки не говорю, поэтому на основе читалки по умолчанию есть возможности разработки Flutter, подробно рассмотрим на следующем шаге.
-
flutterокружающая обстановка
-
golangсреда разработки языка go
-
hover go-flutter-desktopПредоставление строительных инструментов
Первый взгляд на подготовку языковой среды Go
- доступПерейти на китайский языкЗагрузите соответствующий пакет, не забудьте загрузить последнюю версию, в этой статье в качестве примера используется Windows, загрузите
go1.12.5.windows-amd64.msi. Если у вас локально установлена старая версия Go, обязательно обновите ее до последней. - Укажите каталог установки и нажмите «Установить».
- Настройте переменные среды. После завершения установки каталог установки будет
binКаталог добавляется в системную переменную окружения Path, т.е.go.exeПуть, по которому он находится, добавляется в переменную среды Path. - Проверьте окружающую среду. Откройте командную строку cmd и введите
go env, путь среды Go успешно выводится, и среда Go завершена.
Обратите внимание: если вы все еще заинтересованы в изучении разработки на языке Go, вам также необходимо настроитьGOPATHпеременные окружения.
Загрузить и установитьhoverбиблиотека. Это языковая библиотека Go Выполните следующую команду в командной строке cmd для установки, если сеть нестабильна, это может занять некоторое время.
go get -u github.com/go-flutter-desktop/hover
Шаг 2: Создайте проект
Если существующего проекта Flutter нет, сначала создайте его. Убедитесь, что среда Flutter доступна в обычном режиме.
flutter create myapp
cd для флаттерного пути проекта, а именноmyappВниз. Здесь возьмите в качестве примера созданный тестовый проект, введитеmyappвнизlibпапка, будетmain.dartудалять. Из-за особых требований проекта рабочего стола флаттера здесь необходимо настроить два входных файла для проекта и создать их отдельно.main.dart,main_desktop.dartфайл, обратите внимание, что имя файла является фиксированным и не может быть изменено по желанию. Затем создайтеapp.dartФайл, здесь действует как конкретный код нашего тестового приложения, требования к именованию отсутствуют.
main.dartКод выглядит следующим образом, это код входа, который должен использовать мобильное приложение.
import 'package:flutter/material.dart';
import 'app.dart';
void main() => runApp(MyApp());
main_desktop.dartСодержание выглядит следующим образом, это код входа, необходимый для рабочего стола.
import 'package:flutter/material.dart';
import 'package:flutter/foundation.dart' show debugDefaultTargetPlatformOverride;
import 'app.dart';
void main() {
debugDefaultTargetPlatformOverride = TargetPlatform.fuchsia;
runApp(MyApp());
}
app.dartСодержание выглядит следующим образом: фактический код пользовательского интерфейса, то есть отображениеHello World!
import 'package:flutter/material.dart';
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: HomePage(),
);
}
}
class HomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(appBar: AppBar(title: Text("Demo")),
body: Center(child: Text('Hello World!'),),
);
}
}
Шаг 3: Инициализируйте как настольный проект
В корневом пути проекта Flutter есть каталог android и каталог ios, но на рабочем столе нет каталога компиляции.Этот шаг заключается в использовании помощиhoverАвтоматическая генерация Desktop Library Library Directory Directory
Убедитесь, что текущая среда командной строкиmyappВ пути к проекту, в противном случае cd к прошлому, а затем выполните следующую команду
hover init github.com/my-organization/myapp
Если у вас есть соответствующий путь к проекту github, измените его на свой собственный, в противном случае вы можете написать его, как вам нравится выше. В этом примере это тестовый проект, который не был загружен на GitHub, поэтому я просто написал его здесь. Обратите внимание на пит здесь, этот путь GitHub должен быть прописан, иначе его нельзя будет нормально запаковать, что может быть ошибкой инструмента скаффолдинга
Шаг 4: Запуск и упаковка
Если вам нужно запустить приложение с горячей перезагрузкой, выполните в текущей командной строкеhover run, Обратите внимание, что некоторые зависимости будут загружены онлайн в это время, что займет некоторое время, и это также зависит от персонажа.В зависимости от вашей собственной сетевой ситуации очень возможно быть окруженным стеной. если вы используете его в фоновом режимеSocks5прокси, будет ошибка, что удаленный сервер закрыл соединение, пожалуйста, закройтеSocks5прокси, наHttp代理
После того, как зависимости будут готовы, приложение будет запущено
desktopПодачаassetsОперации каталога
Упакована как исполняемая программатакже можно использоватьhover buildКоманды упакованы какexeИсполняемый файл, перейдите в проект подdesktop\build\outputs\windowsвид пути
Проблемы все еще существуют
Если у вас есть готовое приложение Flutter, вы можете попробовать упаковать его в программу для рабочего стола, следуя описанным выше шагам, вам нужно только обратить внимание на разделение файла входа на стороне рабочего стола.main_desktop.dartВ настоящее время, если приложение Flutter непосредственно упаковано как настольная программа, все еще могут возникнуть некоторые возможные проблемы с совместимостью.go-flutter-desktopПроект еще не поддерживает режим выпуска, только режим отладки, что означает, что скомпилированная настольная программа всегда имеет консоль Black Box, а журнал постоянно выводится.
Ссылаться на:GitHub.com/go-flutter-…
видео уроки
Похожие видеокурсы, размещенные блогерами
Руководство по программированию Dart для полной разработки Flutter
Руководство разработчика полного стека Flutter