项目地址: https://github.com/onlynight/v2ex_flutter_demo
该 Demo 旨在学习 flutter,以及研究 flutter 的实用性。
从学习 flutter 到编写完该 demo 总计耗时 3 天,易上手。
设计理念优秀,UI 组建全部以 widget 形式呈现,非 UI 组建也可以是 widget,API 设计规范统一,优秀。
下载最新的 release https://github.com/onlynight/v2ex_flutter_demo/releases
使用 V2EX 接口项目地址: https://github.com/djyde/V2EX-API
之前写的一个 MVVM 模式的 V2EX android demo 项目地址: https://github.com/onlynight/V2EX
这是一个用 flutter
写的 V2EX 客户端 app。旨在学习 flutter,以及研究 flutter 的实用性。对比了 React Native,Weex 和 Flutter,Flutter 优势很明显,具体有以下几点:
很多小伙伴说图没了,之前用的csdn的图,现在换成github的希望能好点。
![]() | 1 chenjian026 2018-07-26 18:03:36 +08:00 图好像挂了 |
2 wyndamlion OP @chenjian026 github 嘛,还是这个帖子? |
![]() | 3 ss098 2018-07-26 18:05:47 +08:00 ![]() 厉害,Flutter 确实非常值得学习。 “组件”,“高效”错别字。 |
4 wyndamlion OP @ss098 哈哈,看的很仔细,优秀。 |
![]() | 5 CloudnuY 2018-07-26 18:10:45 +08:00 |
![]() | 6 kera0a 2018-07-26 18:16:56 +08:00 via iPhone |
![]() | 7 fish267 2018-07-26 18:18:30 +08:00 via Android 这错别字简直了! |
8 jiangnanyanyu 2018-07-26 18:37:27 +08:00 via Android ![]() 我觉得嵌套一点都不优雅 |
9 wyndamlion OP @kera0a 写起来真的很爽,我刚开始看的时候也很头疼,写起来真的开心。 |
![]() | 10 my101du 2018-07-26 21:38:45 +08:00 操作流畅得飞起! 比之前用过的 Ionic 什么的完全不是一个感觉。 甚至有切换 tab 的触摸动画还没结束,数据就已经加载完毕并且转场进入了下一个界面的错觉。 |
11 wyndamlion OP ![]() @my101du 是的,我也觉得性能很优秀,同样是虚拟机,dart 的比 js 的性能要好不少。 |
![]() | 12 jerrry 2018-07-26 23:02:26 +08:00 via Android 教程文全中文?我看的是假的文 |
![]() | 14 Natumsol 2018-07-26 23:32:50 +08:00 via Android 楼主错别字好多。。 |
![]() | 15 chenglu 2018-07-26 23:45:48 +08:00 via Android 赞! |
![]() | 16 azhangbing 2018-07-27 00:36:20 +08:00 via iPhone 可以 最近也在学 flutter |
![]() | 17 chmlai 2018-07-27 01:48:48 +08:00 这种级别的 demo 怎么看能看出优不优秀 |
![]() | 18 kingcos 2018-07-27 01:54:37 +08:00 via iPhone Mark 一下,准备看看 |
![]() | 19 swkl86 2018-07-27 03:21:47 +08:00 via Android 求中文文档链接 |
![]() | 20 chengluyu 2018-07-27 05:25:51 +08:00 楼主的 GitHub 头像怎么看着那么眼熟呢……我总觉得在其它的论坛上见过。 |
![]() | 21 GG668v26Fd55CP5W 2018-07-27 08:10:30 +08:00 via iPhone 楼主用 Android studio 还是 vscode? |
![]() | 22 chenglu 2018-07-27 08:22:54 +08:00 via Android @swkl86 可以看一下这里 https://flutter-io.cn/ |
![]() | 23 learnshare 2018-07-27 08:54:32 +08:00 就是写起 UI 比较麻烦 |
24 wyndamlion OP @chengluyu 偷的别人的头像哇,哈哈哈哈哈 |
25 wyndamlion OP @jerrry 有官方中文文档啦,还专门针对国内有专有的包管理服务器 https://flutterchina.club/ |
![]() | 26 PopeyeLau 2018-07-27 09:12:59 +08:00 via iPhone 最近也在学。「 Hot reload 」太爽了。 |
27 chinagxwei 2018-07-27 09:15:47 +08:00 有不少可以优化提高可读性的地方 |
28 wyndamlion OP @falcon05 AS 和 VSCode 我都用了下,VScode 的 hot reload 感觉老是出问题,其他都差不多,最后换 AS 了。 |
29 wyndamlion OP @chinagxwei 初学,也是看了别人写的 demo,稍微优化了下,写得不好,献丑了。 |
31 nicevar 2018-07-27 09:35:29 +08:00 写了个 helloworld,哇 RN 真的很优秀,我们采用 RN 开发吧! 过了段时间,哎呀,怎么这么多坑啊! 不行,这个问题解决不了,要等官方修复! 来不及了,还是用原生开发吧。。。 |
32 wyndamlion OP @nicevar 坑肯定是有的,就我写这个简单的 demo 都遇到不少坑,但是不影响它优秀的设计,和优秀的体验。api 设计的拓展性都比较好,遇到坑可以曲线救国。 |
![]() | 33 lizhenda 2018-07-27 09:42:30 +08:00 其它都蛮好,但是目前还未找到直接封装原生组件结合开发的途径,这样直接断送了比如接入视频播放、地图等其它第三方组件的路。这一点是比不上 RN 的 |
![]() | 34 erDaren 2018-07-27 09:42:54 +08:00 赞! 不过错别字多的有点不能忍了 |
![]() | 35 artandlol 2018-07-27 09:48:24 +08:00 前段时间就看到咸鱼的 leader 在掘金分享这框架 |
36 rocbomb 2018-07-27 09:57:40 +08:00 高校 UI 编写 哈哈哈,学院派 UI 编写 |
37 chinagxwei 2018-07-27 10:01:38 +08:00 @wyndamlion 没有没有我也在学习当中,加油 |
![]() | 38 JRay 2018-07-27 10:38:03 +08:00 感觉 UI 那块看得头大 |
![]() | 39 misaka20 2018-07-27 10:39:49 +08:00 最起码 2 年之内,没有学习的必要。 |
![]() | 40 CommandZi 2018-07-27 14:25:17 +08:00 虽然我还没了解过,但从闲鱼 iOS 的那个详情页来看,滑动的细节跟原生的不太一样,有点不爽 |
![]() | 41 lynan 2018-07-27 14:47:10 +08:00 前端狗,这两天才了解到 flutter,跟着教程敲完 demo,嵌套真的晕了。 |
42 wyndamlion OP @lynan 嵌套粒度稍微拆分一下,按照模块分,然后独立一个 widget 这样看着会好很多。 |
43 Totato5749 2018-07-27 16:30:49 +08:00 我觉得 po 吹的过头了。。。。。 |
44 cc128 2018-07-27 20:21:36 +08:00 via Android 最近也在学习。flutter 是直接使用 skia 渲染。所以性能上相当 rn 还要好一些。不过确实不管是 rn 还是 flutter。这种响应式编程还是看着不舒服。 目前也是刚开始看,还不太清楚到底有多少坑。不过看有朋友说 2 年内没必要学,这个不能赞同。国内一些互联网公司已经开始小范围学习和实验了。 而去是 google 搞了个新的系统 fuchsia,并且 android art 虚拟机里已经增加了对他的支持。所以后续 2 各系统定位怎么样先不管。先了解学习下 dart 和 flutter 应该是很好的时机。 |
![]() | 45 WildCat 2018-07-27 20:23:04 +08:00 via iPhone 生态有点差,轮子是不少了,就是功能都太简陋。 react native 还有个巨大的好处就是可以热更新。 |
46 xiuscong 2018-07-27 20:35:24 +08:00 via Android 性能一点都不优异。列表滑动掉帧卡顿,之前 flutter 官方的 demo 也是各种掉帧 |
![]() | 47 hyyou2010 2018-07-27 20:40:10 +08:00 |
48 lneoi 2018-07-27 21:33:40 +08:00 三天时间,楼主之前是做什么的?也是 app 开发吗 |
49 luvxy 2018-07-28 16:19:06 +08:00 via iPhone 这个是什么能解释下吗,我第一次听说以为是原生的写安卓的东西,现在看你说好像安卓 ios 都能? |
50 wyndamlion OP @cc128 赞同 |
51 wyndamlion OP @lneoi 厚着脸皮,四年 Android 开发 |
52 wyndamlion OP @luvxy 你懂 React Native 嘛,还有 Weex,这两个都是通过写 Javascript 然后通过虚拟机解释脚本调用原生( android/ios/web )的大前端框架。Flutter 的不同就是它不是使用 Javascript 而是使用 google 自己的 dart 语言,可以实现一套代码三端复用,就是说可以开发 android、ios 和 h5。 |
53 wyndamlion OP @xiuscong debug 的版本性能确实差,有很多 debug 的库没有移除,还有就是我猜 debug 时代码没有优化,release 后性能提升很多,和原生差不远了。有些地方需要优化一下,比如我写的 demo 中 tab 切换就要优化,不然每次切换页面都会卡顿,优化过后和原生体验差不太多。大前端时代要来了,我以前也很抵触这些东西,flutter 改变了我的想法,该学了兄弟。 |
![]() | 54 deathscythe 2018-08-01 17:40:34 +08:00 跑了一个简单的列表 20 条数据,好卡,滑动一点都不顺畅 |
![]() | 55 tongyang 2018-08-08 14:24:11 +08:00 你有米有遇到过 new text 出来的字体是红色的还有两条黄线?。。 |
![]() | 56 39499740 2018-08-13 12:30:32 +08:00 @tongyang 我猜 你用的是 CupertinoPageScaffold Text 默认就是带红色字体带两个黄线,你必须自己改 比如 style: TextStyle( color: Color(0xff333333), fontSize: 15.0, decoration: TextDecoration.none, fontWeight: FontWeight.normal) 另外,如果你使用的是 MD,就不会出这个问题,因为 MD 默认有字体的 style,覆盖了原来的默认 style |
![]() | 57 39499740 2018-08-13 12:33:25 +08:00 @wyndamlion 不是 debug 没优化的问题,主要是为了 JIT 模式,所以 DEBUG 会卡,release 只有 AOT 模式了,删除了 JIT 模式,效率就上去了 |
![]() | 60 39499740 2018-08-13 14:08:18 +08:00 @tongyang Text 支持富文本,只不过用起来貌似麻烦点,你可以看看这个 https://www.aliyun.com/jiaocheng/20152.html?spm=5176.100033.2.11.hWOSsB |
![]() | 61 tongyang 2018-08-13 14:19:08 +08:00 @39499740 ==我的意思是类似那种像 Android 的 textview 可以直接解析 HTML 或者 markdown 网页的控件。。这种的即使显示了对内部的链接之类的也无法控制。。 |
![]() | 62 39499740 2018-08-13 14:23:23 +08:00 @tongyang 因为现在没有相关方面的需求,所以没去了解。 你可以去 https://github.com/memspace/zefyr 了解一下。这是个富文本编辑器,但是编辑器里面好像有个页面是展示的,你可以翻翻 demo |
![]() | 64 pythonee 2018-09-10 10:33:34 +08:00 不错,准备开始学习 |
65 bbinchina 2019-10-23 23:02:22 +08:00 via Android 楼主对 flutter 的工作感兴趣吗?我司正在招人,地点成都上海可选() |
![]() | 66 jemygraw 2020-01-03 14:06:09 +08:00 不错,不错,稍微修修就能跑。 |
![]() | 67 cooaer 2023-05-22 19:49:52 +08:00 via Android @hyyou2010 #47 官方明确说了,不会有热更新功能,理由是苹果应用商店不允许二进制代码更新! |
![]() | 68 cooaer 2023-05-22 19:53:45 +08:00 via Android @deathscythe #54 你试试 release 模式! debug 和 release 包的代码运行模式不一样,debug 用的是 jit 模式,release 是 aot ,性能有很大提升! |