Flutter 最近很火呀 用 Flutter 写了个 人人影视 的小 demo

2018-07-30 21:49:56 +08:00
 PopeyeLau

GitHub 地址

不得不说有 Hot Reload 写起来真是太爽了.

部分截图:

参考资料: 官方文档

Flutter 中文网

Flutter 跨平台移动应用开发实战

16295 次点击
所在节点    程序员
48 条回复
HuHui
2018-07-30 22:51:10 +08:00
:strong
WildCat
2018-07-30 22:51:37 +08:00
不错,最近要准备开发 wetoo 第二版了。
jowuIM
2018-07-30 22:57:16 +08:00
dart 跟 js 写起来差别大吗?最近也想写几个 demo,感觉 flutter 很简洁
PopeyeLau
2018-07-30 23:02:35 +08:00
@jowuIM 差别不太 可以直接上手
Zzdex
2018-07-30 23:04:02 +08:00
好火啊,,,想接触一下
WildCat
2018-07-30 23:05:33 +08:00
Crash 挺多的,我 run 了下你的有个 nosuchmethod error
PopeyeLau
2018-07-30 23:07:25 +08:00
@WildCat 麻烦 贴一下 error 信息
PopeyeLau
2018-07-30 23:15:18 +08:00
WildCat
2018-07-30 23:18:30 +08:00
@PopeyeLau =。=
我更新了下我的 flutter sdk,结果直接无法启动了: https://github.com/flutter/flutter/issues/19618
WildCat
2018-07-31 01:01:52 +08:00
还是有 Error:

the right.
[VERBOSE-2:dart_error.cc(16)] Unhandled exception:
type 'String' is not a subtype of type 'List<dynamic>'
#0 Networking.fetchVideoComments (package:yyets/api/api.dart:162:42)
<asynchronous suspension>
#1 _VideoPageState.initState (package:yyets/pages/video.dart:40:10)
#2 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3764:58)
#3 ComponentElement.mount (package:flutter/src/widgets/framework.dart:3630:5)
#4 Element.inflateWidget (package:flutter/src/widgets/framework.dart:2920:14)
#5 Element.updateChild (package:flutter/src/widgets/framework.dart:2723:12)
#6 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4667:14)
#7 Element.inflateWidget (package:flutter/src/widgets/framework.dart:2920:14)
#8 Element.updateChild (package:flutter/src/widgets/framework.dart:2723:12)
#9 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3666:16)
#10 Element.rebuild (package:flutter/src/<…>
flutter: Another exception was thrown: A RenderFlex overflowed by 4.5 pixels on the right.
flutter: Another exception was thrown: A RenderFlex overflowed by 4.5 pixels on the right.
flutter: Another exception was thrown: A RenderFlex overflowed by 4.5 pixels on the right.
WildCat
2018-07-31 01:12:43 +08:00
整体可以运行,估计你的 flutter 分支是 master,我的是 dev,不是很兼容。

poster 的 magic move 效果很赞,能介绍下是怎么实现的吗?简单读了下代码没理解。

代码很强大,star 下。
debuggerx
2018-07-31 04:50:37 +08:00
@WildCat 典型的 json 映射解析错误,按照官网文档推荐的写法确实容易报这种类型错误……可以试试我的解析工具自动生成 bean 代码:
https://juejin.im/post/5b4e04bbe51d45198c018e6e

你说的 magic move 估计是 MD 里的 Hero,Flutter 的 SDK 里自带了 Hero 的实现:
https://flutter.io/animations/hero-animations/
WildCat
2018-07-31 04:55:17 +08:00
@debuggerx 太感谢了,专业!
目前有个问题,似乎 flutter master 分支上没法跑这个项目了,提示 JSON 不存在。似乎在 convert 这个包里,但是新版 dart language 似乎没有这个了?
ericgui
2018-07-31 06:26:08 +08:00
非常困惑的第一个地方:yyets 开放了 api ?
ericgui
2018-07-31 06:33:51 +08:00
哦,看来是抓包
PopeyeLau
2018-07-31 06:43:37 +08:00
@WildCat 回头用 json_serializable 重新写一下。
WildCat
2018-07-31 06:47:53 +08:00
@PopeyeLau 你的电脑上 flutter 可以用 IntelliJ 调试么?我这里只能 vscode 调试,IntelliJ 的插件调试失败。好多坑。
PopeyeLau
2018-07-31 06:50:31 +08:00
@WildCat #17 我一直用 VSCode , 还没遇到什么大坑
debuggerx
2018-07-31 06:52:24 +08:00
@WildCat 我一直用的推荐的 beta 分支。。具体没查证,不过看你说的估计是因为 convert 包里的 JSON 解析器彻底删除了,beta 版本则是"过时的"状态。。dart2.0 以后 sdk 里大量的静态工具对象名都从大写改成了小写,并把大写的版本标记为过时,可能最新的 master 全给删了吧。。

我当时也是为这事给自己的工具专门更新了个版本……:
https://github.com/debuggerx01/JSONFormat4Flutter/commit/ad5fc83d066933a906967cf4543ef9944f278ae8
debuggerx
2018-07-31 07:16:42 +08:00
@PopeyeLau 确认了下,确实时删了。。
beta 分支使用的 SDK 源码,第 68 ~ 70 行还有标记为删除的 JSON 静态对象:
https://github.com/dart-lang/sdk/blob/2.0.0-dev.58.0/sdk/lib/convert/json.dart
到了最新的版本,在同样位置已经只剩 json 了:
https://github.com/dart-lang/sdk/blob/master/sdk/lib/convert/json.dart

可以批量替换更新下工程了。
类似的可能还有,比如类似 double.infinity 和 double.INFINITY,math 包里的 pi 和 PI 等……

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/475487

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX