从 Flutter Go 到 Flutter Go web - 手把手带你轻松玩转 Flutter-web(一)

flutter_web_ui: any

dev_dependencies:
build_runner: any
build_web_compilers: any
build_daemon: any

dependency_overrides 优先直接引用github上的packages

dependency_overrides:
flutter_web:
git:
url: https://github.com/flutter/flutter_web
path: packages/flutter_web
flutter_web_test:
git:
url: https://github.com/flutter/flutter_web
path: packages/flutter_web_test
flutter_web_ui:
git:
url: https://github.com/flutter/flutter_web
path: packages/flutter_web_ui

当然 dependency_overrides 你也可以配置成本地路径,但是为了保证依赖库的最新,还是用git上的比较好, 下面是本地路径的配置。

dependency_overrides:
flutter_web:
path: ./packages/flutter_web
flutter_web_test:
path: ./packages/flutter_web_test
flutter_web_ui:
path: ./packages/flutter_web_ui

5. 更新 packages

$ flutter pub upgrade
! flutter_web 0.0.0 from path packages/flutter_web
! flutter_web_ui 0.0.0 from path packages/flutter_web_ui
Running “flutter pub upgrade” in hello_world… 5.0s

6. 拷贝 Flutter-go 项目下的 libs 到Flutter_go_web 目录下

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

7. 现在就可以使用 webdev 构建并启动开发服务器

$ webdev serve
或者 webdev 与热重载一起使用
$ webdev serve --auto restart

[INFO] Reading cached asset graph completed, took 598ms
[INFO] Checking for updates since last build completed, took 2.1s
[INFO] Starting resource servers…

之后提示一直在连接中, 说明 缺少 resource 资源文件,继续下面操作

8. 创建 web 入口

手动创建 web 文件夹,里面创建两个文件: index.html 为入口 html 页面 main.darthtml 引用文件

/// main.dart
import ‘package:flutter_web_ui/ui.dart’ as ui;
/// flutter_go 是项目名称,在pubspec.yaml 里已经设置
import ‘package:flutter_go/main.dart’ as app;
main() async {
await ui.webOnlyInitializePlatform();
app.main();
}

文件目录结构基本已经成型,如下:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

9. 再次运行 webdev 编译并启动开发服务器

$ webdev serve --auto restart

本地服务器这样就能跑起来了!?先别忙,接下来报了如下一堆错误 …

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

package:flutter/material.dart -> package:flutter_web/material.dart
package:flutter/widgets.dart -> package:flutter_web/widgets.dart
package:flutter/cupertino.dart -> package:flutter_web/cupertino.dart
package:flutter/services.dart -> package:flutter_web/services.dart
package:flutter/rendering.dart -> package:flutter_web/rendering.dart
package:flutter/gestures.dart -> package:flutter_web/gestures.dart
dart:ui -> package:flutter_web_ui/ui.dart

你可以一个个文件替换,不过笔者写了一个转换库trans2fw小工具,用一个命令就可以对【官方常用的代码库】转换成web版本,减少大家的开发成本。 trans2fw 是笔者开发的一个 自动化 flutter native 项目转化成 flutter-web 项目的工具,已经提交到 pub 镜像上。github 地址>>>

  • 安装 trans2fw 工具, 并注册程序

$ pub global activate trans2fw
$ pub global run trans2fw

  • 运行 trans2fw 工具,根据提示输入,安装完成后,基本按提示输入转换目录就可以了

$ trans2fw
[✓] 请输入需要转换的文件目录(相对于项目目录): lib
[✓] 是否覆盖原有文件 ? (y/N) y
{path: lib, cover: true}
使用输入文件目录:lib
被转换的文件::lib/routers/application.dart::4
被转换的文件::lib/routers/routers.dart::4
被转换的文件::lib/routers/router_handler.dart::4
被转换的文件::lib/resources/icon_names.dart::3
被转换的文件::lib/resources/shared_preferences_keys.dart::3
被转换的文件::lib/resources/widget_name_to_icon.dart::3
被转换的文件::lib/standard_pages/index.dart::6

稍等片刻 … 见证奇迹

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

10. 再次运行 webdev 编译并启动开发服务器

$ webdev serve --auto restart

what c… is your problem ?! 还有这么多… 别着急再仔细看,剩下的都是第三方库的依赖问题! 如果你自己的项目没有过大量的第三方库,也许已经运行起来了。 不要紧,咱们逐个解决。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

解决第三方库

总结一下都有哪些第三方库需要搞定:

  • fluro
  • flutter_jpush
  • flutter_spinkit
  • event_bus
  • share
  • shared_preferences
  • zefyr
  • image_picker
  • sqflite
  • url_launcher
  • flutter/foundation
  • flutter_webview_plugin
  • flutter_bloc
  • bloc
  • dio
  • city_pickers
  • markdown
  • path_provider
  • cookie_jar
  • sqflite

真的好多,怎么办,Google 大法 留的坑,目前只能自力更生了。 写到这里一看 iwatch ⌚️,已经凌晨了,一声感叹 “哎我去” … 篇幅有限,这些个问题我会在《从 Flutter Go 到 Flutter Go web - 手把手带你轻松玩转 Flutter-web(二)》做解答,如有兴趣想知道我如何解决的,敬请继续关注。

以上的案例的github地址>>>

最后

沉淀了数月,FlutterGo 终于迎来了第二次迭代更新!不仅新增个人中心的概念,还提供了第三方共建工具、并且,我们还完成了 FlutterGo web 版的开发。而这些~都在我们FlutterGo官网可见!!!

相关介绍

🔥 Flutter Go 2.0 即将发布

Flutter Go 2.0 秉承年初发布的 The Flutter-Go Roadmap(路线图) for 2019 已经做了新版本的迭代,新版本如下新功能:

注:✔是本次发布内容

三方共建说明

由于 flutter 内容更新较快. 我们无法更快的丰富项目的内容. 如果您愿意为国内flutter的发展与学习贡献自己的力量, 请参考我们的 共建说明, 我们会将共建者的头像姓名贡献至我们的官网.

此处再次感谢所有已经提交 pr 的小伙伴

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

FlutterGo 期待你我共建~

具体 pr 细节和流程可参看 FlutterGo README 或 直接钉钉扫码入群
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

前端面试题汇总


前端面试题是我面试过程中遇到的面试题,每一次面试后我都会复盘总结。我做了一个整理,并且在技术博客找到了专业的解答,大家可以参考下:

由于篇幅有限,只能分享部分面试题,完整版面试题及答案可以【点击我】阅读下载哦~

感悟

d0bfa8c.png)

由于篇幅有限,只能分享部分面试题,完整版面试题及答案可以【点击我】阅读下载哦~

感悟

春招面试的后期,运气和实力都很重要,自己也是运气比较好,为了回馈粉丝朋友们(毕竟自己也玩了这么久哈哈哈),整理个人感悟和总结以上。最后祝愿大家能够收获理想offer!!

  • 8
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值