Linux安装go-flutter将现有手机应用迁移到桌面

Linux安装go-flutter将现有手机应用迁移到桌面

参考文献:Go Flutter Desktop (一) 初探

futter开发的应用支持安卓与ios系统,但是要是想同样实现桌面版,就得利用别的工具来实现全平台。目前在github上有两个方案来实现全平台,一个是flutter官方的方案flutter-desktop-embedding,还有一个是使用go和glfw开发的go-flutter。

Flutter Desktop Embedding的话需要开发者会Windows、macOS、Linux三个平台的原生开发,而go-flutter只需要你会go语言,不会再学也比较简单省时,基本上不需要开发插件的话,就用不到go语言来编程。所以我就选择了go-flutter。

1.安装GO

1.1 下载go

golang的官网是打不开的,下载go得去golang国内镜像站在这里插入图片描述在这里插入图片描述选择Linux的下载。点进去就有教程告诉你怎么安。
下载完后,把它提取到home里。

1.2 配置环境变量

这里我按它的教程来做的时候出了很多问题,自己摸索着,最终成功的方法如下:
配置两个地方的环境变量:一个是在profile里,一个是在bash_profile里。

这一步查看ububtu添加环境变量GOPATH这篇文章

这一步若是配置成功的话,在终端运行go version会显示你下载的go的版本号;运行echo $GOPATH会出现工作空间目录路径,我的是home里的goproject。

1.3 测试go是否安装成功

在goproject里新建空白文档,命名为hello.go。在其中输入以下代码:
package main

import “fmt”

func main() {
fmt.Printf(“hello, world\n”)
}
保存后,在终端输入:

cd $HOME/goproject
go build
./hello

显示hello, world就说明go安装成功了。

2.安装hover

hover是由 go 编写的, 专门来创建flutter桌面应用的工具,编译、打包、运行都得依靠这个工具。
官网的安装教程

运行以下命令来安装hover:

go get -u github.com/go-flutter-desktop/hover

终端什么都没出现的话,就表明安装成功了。通过hover -h检查是否安装成功,出现以下内容即可:在这里插入图片描述
有看到有的教程说,hover是安到$GOPATH/bin里了,但是我的没在这个路径里,我也不知道安到哪去了,反正能用就行

这一步我遇到的问题就是,go get安装hover,显示打不开github.com/go-flutter-desktop/hover这个网站,遇到这种情况的话,把go卸载,重新安就行,注意要卸载干净。怎么卸载,可参考Linux下Go的安装、配置 、升级和卸载
不记得放哪了的话,可用which go找到

3.运行example

这一步可有可无,我是用来实验的,看前面所做的准备工作是不是都能生效。
步骤:
1)下载例子
go-flutter-desktop/examples
里面有好几个例程,随便哪个都可以。我选的pointer_demo

2)把Flutter的环境准备好

export PATH='pwd'/flutter/bin:$PATH

再用Android studio打开例程,能正常打开没有错误的话就可以直接进行下一步。
要是打开显示没有配置dart SDK的话,到设置里去设置dart SDK的路径在这里插入图片描述
3)运行
终端输入:
cd example/pointer_demo
hover run在这里插入图片描述
运行出来的结果:
在这里插入图片描述
这个例程是记录鼠标移入或移出中间那个蓝框框(容器container)的次数。

4.迁移应用

1)初始化桌面应用

我要迁移的应用是之前按照Flutter中文网创建的start_up namer
编写您的第一个 Flutter App

cd /flutterProject/startup_namer
hover init github.com/startup_namer

2)添加main_desktop.dart文件在start_up namer/lib里

这一步若是不做,在hover run的时候会出现如下错误:
在这里插入图片描述main_desktop.dart里写入以下代码:
import ‘package:flutter/foundation.dart’;
import ‘package:flutter/widgets.dart’;

import ‘main.dart’;

void main() {
debugDefaultTargetPlatformOverride = TargetPlatform.fuchsia;
runApp(MyApp());
}
运行出来如下图:
在这里插入图片描述
而手机版的有显示单词,如下:
在这里插入图片描述
所以说,单纯添加以上代码还不够,有的包没有导得进去。
以后再更新解决这个问题

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值