До сих пор, несмотря на то, что 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