flutter 自定义键盘_掘金 AMA:听闲鱼客户端架构师邬吉风聊 Flutter 和移动端开发那些事...

第二十一期 AMA 掘金团队请来了闲鱼客户端架构师,《Fish-Redux》作者-- 邬吉风做了为期三天的 Ask Me Anything (AMA) 活动(活动已结束)。我们在此精选了一些来自用户的提问及邬吉风的回答。

关于 邬吉风

阿里花名吉丰, 《Fish-Redux》作者。现任闲鱼客户端架构师,负责研发效能 & 高可用相关工作。

3f2cd7c0461b3ec6c8ae0a47cefe8ca7.png

14aa911312639197dfaacb072df58bab.png

社区小伙伴精选提问--技术相关

用 Flutter 的过程中遇到几点问题?-@恋猫de小郭

  1. 没找到普通意义上的文本行间距设置方式,基本上都是leadind和height等参数而不是两行之间间隔大小。

  2. 在Refresh控件刷新过程中,除了等待Future之外,貌似没有办法直接打断刷新状态。

  3. Flutter的热更新方案除了闲鱼提出的模板json外,对于ios还有其他可行方案吗?

  4. Flutter状态管理fish redux和google的provide优劣?

  1. flutter目前是没有line-space的选项,但是我们可以通过换算得到相同的结果。

  2. 自定义Refresh控件的原理和native基本相同,是可以完全控制的。Future是一个对异步的封装,在刷新过程中,使用Future是一种实现手段。

  3. Flutter的热更新方案除了闲鱼提出的模板json外,建议是跟随Google的官方方案。

  4. provide方案目前已经不再建议使用,它的替代者是 scoped_model。

抛开场景直接做比较是不合理的,scoped_model和fish-redux,在各自的场景下有各自的优势。

相对而言,fish-redux 更适合有一定复杂度的中大型的项目。它核心解决了状态集中管理和组件分治管理的关系,所以一方面我们能享受到Redux集中管理的巨大好处,另一方面我们也能享受到组件化分治的能力。同时对移动应用中最常见的ListView场景对了做了上层抽象,得到最佳的性能和最佳的分治模型。

Dart会替代js吗?─ @A小恐龙

Dart会替代js吗?

我认为dart不会完全替代js,但是会作为一种对js的补充存在。同时dart语法上有非常多的对js的继承,对js的同学在语法上算是友好的。

你们是如何解决TextField Widget 的光标高度问题的?-@掘金社区首席装逼CTO

你们是如何解决TextField Widget 的光标高度问题的?flutter环境Flutter (Channel beta, v1.3.8, on Mac OS X 10.14.3 18D109, locale zh-Hans-CN) 左边是咸鱼,右边是我做的

6fb4a5d5e2b835d2249e5ca1c1dd0b1d.png

你截图里的闲鱼页面是用的native的输入法,不过我们目前已经在将它变成flutter的实现了(内部对flutter的patch)。

而你的右截图是flutter的实现,其实是一个flutter的bug,它将空格符的高度作为光标的高度和所有textfield文本内容的高度,这导致了一系列的问题。

https://github.com/flutter/flutter/issues/24182 https://github.com/flutter/flutter/issues/23433

好消息是flutter团队正在处理这个问题,相信不久后,这个问题将得到彻底解决。

对Provide状态管理怎么看?可以直接在fish_redux里面用吗?-@洺鱼

对Provide状态管理怎么看?可以直接在fish_redux里面用吗

Provide状态管理目前已经不再推荐了,它可以在fishredux内使用,但并不推荐这样做。fishredux更加强调的是单一数据源驱动。当然如果有更加具体的case的话,欢迎去https://github.com/alibaba/fish-redux/issues 给我们issue。

widget嵌套太不方便阅读了,有什么解决的办法?-@caiweijian

widget嵌套太不方便阅读了,有什么解决的办法

可以通过IDE的重构能力,拆分成若干小的函数,一定程度上会让可读性提高。

非技术相关-- 技术观点

如何让我能够在redux的世界里能够杀出一条血路?-@正楷

你好,我也是redux爱好者,不过基于对redux的不满重新写了一个flux架构的实现:react-control-center, counter实例:https://stackblitz.com/edit/cc-counter,funny-counter:https://stackblitz.com/edit/funny-counter, cc-antd-pro: https://github.com/fantasticsoul/rcc-antd-pro, 我自己认为这样的方式是最接近react的方式去管理react状态,但是苦于redux生态已经做大做强,不知道你cc有何看法,或者建议,让我能够在redux的世界里能够杀出一条血路。

redux爱好者和强烈的不满似乎是个矛盾体。我简单看了你给的链接,看上去是个不错的设计。开源本身是成就你我,普惠众人,没有那么强的对立性,建议是拥抱redux社区,做出更好的作品。

关于移动端和大前端的未来?-@hanliuxin5

  1. 在目前大前端浪潮越刮越涌的情况下,原生开发的优势和劣势何在。

  2. 小公司如何更有效的开展大前端技术的布道。

  3. 对移动端开发未来的展望。

在当下,原生开发的优势依然存在,但从软件架构分层看,它更加适合往下层发展。而对于广大的软件开发者而言,日常最多的往往是上层的具体业务需求,受效率和成本的驱动,将越来越趋向统一的跨端解决方案。

大前端是一种解决方案,flutter也是,它们有各自适合的场景,在这个基础上,我相信它们都会成为下一代的主流的跨平台解决方案。

而在这个过程中,小公司反而是更加容易拥抱变化,成为这个技术领域的先驱。

关于 Flutter 的几个问题 -@Vadaski

  1. 客户端新手直接学习Flutter来入门可以吗,对于新手来讲学习Flutter难点有哪些呢,在了解Flutter之后如果想要进一步拓展,下一步的技术学习方向定哪些会比较好呢。现在Fish Redux的学习成本相对还比较高,未来有没有计划对这个进行优化呢,例如详细教程等。

  2. Flutter目前生态中有没有硬伤的部分,前两天在图文混排上遇到了坑,文字自动填充图片右边和下面空间这样的排版,暂时还没有踩过去,闲鱼有相关解决方案么。还有其他哪些不太好踩的坑需要注意呢。

  3. 目前看到有在用TensorFlow自动生成UI代码,三端一体化,组件化,确实很有吸引力,您认为客户端开发的理想状态是什么。问题比较多,嘿嘿。? 期待吉丰老师答复。

  1. Flutter,就上层应用开发而言,对于新同学是非常友好的一个框架。我建议在有实践的场景学以致用,是比较有效的学习方式。选择技术方向也是类似,只有在对的场景才有用。

  2. Fish Redux 是通过大量实践检验的项目,但在文档方面仅仅是满足最基础的要求,后面我们会对文档整理和细化,也非常欢迎更多的社区同学加入进来,一起让它变得更好,让它慢慢演进成一个有影响力的flutter应用框架。

  3. 从闲鱼的实践来看,flutter的问题已经很少了,目前在键盘、输入法相关场景下,flutter比native稍差些。图文混排可以自定义,一般是将图片转化为一个宽度为0字符,然后给它设置宽高。

  4. Ui2code也是闲鱼技术团队在做的一个技术项目,我自己也曾参与其中, 我相信它是未来终端技术的一部分,并且在不远的将来,就会变为一种通用的能力。

我是一名安卓研发,现在在考虑接下来学习rn还是flutter,能给个建议么?-@啃手指的大笨熊

现在闲鱼ios版本也使用了flutter么?选用flutter而不是rn的考虑是什么?混合开发的情况下,为了部分页面而引入flutter的sdk,导致安装包大小变大,会不会得不偿失?我是一名安卓研发,现在在考虑接下来学习rn还是flutter,能给个建议么?

是的,目前闲鱼的Flutter是运行在两个平台上的。引入Flutter,在Android端大致增加了6M大小,并不是特别大,是可接受的范围。

RN和Flutter之间的比较,应该有非常多的文章。以我浅见看,RN是一种中间妥协方案,它会被浏览器技术的进步而取代,而Flutter是更加面向未来的一种彻底的跨平台渲染框架。

对使用flutter与其他语言混合开发比较感兴趣(比如用flutter构建用户界面,用rust/kotlin写业务逻辑),能否讲讲?-@VitalyR

对使用flutter与其他语言混合开发比较感兴趣(比如用flutter构建用户界面,用rust/kotlin写业务逻辑),能否讲讲?想这样做是因为不太喜欢dart的语法,以及希望用rust可以提高性能。

选择任何技术都有它对应的场景,抛开具体场景谈技术是不合适的。

比如使用rust来编写业务逻辑,它适合什么场景,解决了什么问题?

如果比较性能,dart 代码AOT下会被编译成机器码,它的性能不可能会比rust低。

如果是语法问题的话,我建议是更加开发的姿态去接受新鲜技术的挑战。

我自己过去对dart也会存在疑问,但是随着深入使用,会渐渐喜欢上dart。它使用友好,产物小,性能高,同时拥有AOT和JIT,支持毫秒级的hot-reload等等特性,这样你也能更加深入的理解为什么Google选择dart作为flutter的开发语言,它几乎就是最佳的终端语言选择。

福利篇-闲鱼招人

闲鱼作为阿里巴巴在闲置流通领域的战略产品,是业内第一的闲置交易社区。

闲鱼技术团队推行打破技术栈分工限制(Android/iOS/HTML5/Server 编程模型和语言的统一), 以及计算机视觉技术在移动终端上的前沿实践工作。致力于利用先进技术推动业务发展。特别的是,我们在 Flutter 和 Tensorflow Lite 等新技术的研发及应用处于行业领先位置,加入我们,一起用技术让生活变得更加美好!

闲鱼团队现面向各大高校诚招 客户端/服务端Java/前端/测试 实习生,base杭州阿里巴巴西溪园区 特别的我们非常欢迎有算法经验的工程同学加入我们的团队,一起完成深度学习在UI识别、商品内容理解、视频图片分类和质量检测等领域的应用落地,让算法的价值普惠闲鱼亿级用户。欢迎各位投递简历,详询 tino.wjf@alibaba-inc.com


由于篇幅原因,本期只摘录了部分问题,邬吉风 也回答了很多其他的技术、非技术问题,欢迎去他的 AMA 下面交流技术哟,传送门。

往期 AMA

  • 掘金 AMA:腾讯 Omi 框架作者--dntzhang 聊前端开发、谈学习路径和技术进阶

  • 掘金 AMA:听奇舞团团长--月影谈论他对技术 & 个人成长看法

  • 掘金 AMA:听《React 状态管理和同构实战》作者--LucasHC 说 React 和前端那些事

  • 2018 年掘金 AMA 年度总结:16 位技术大牛他们的技术事

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/521106.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站常见问题1分钟定位(三)| 如何使用阿里云ARMS轻松重现用户浏览器问题

这是阿里中间件 ARMS 团队推出的 “网站常见问题1分钟定位”系列文章的第三篇,作者慕扉。 第一篇传送门 第二篇传送门 一、客户投诉不断,本地却无法重现? 页面加载较慢是用户经常会反馈的问题,也是前端非常关注的问题之一。…

国内首家!平头哥宣布开源RISC-V内核MCU芯片设计平台;IBM驳斥谷歌量子霸权主张;Facebook将赔偿350亿美元……...

关注并标星星CSDN云计算极客头条:速递、最新、绝对有料。这里有企业新动、这里有业界要闻,打起十二分精神,紧跟fashion你可以的!每周两次,打卡即read更快、更全了解泛云圈精彩newsgo go go 小米 MIX4 概念图&#xff0…

把百度网站设为首页_大仙SEO:如何解决网站首页百度收录后被删除?【SEO案例】...

前天(5/20)看数据的时候,发现5118数据直线下降,跌的有些厉害,猜测网站应该出问题了。这个时候不要慌(内心实则慌的一批),在等等看,会不会是百度自身的一些调整。算了分析分析网站吧!site看网站数据&#xf…

技术选型:Sentinel vs Hystrix

这是围绕 Sentinel 的使用场景、技术对比和实现、开发者实践等维度推出的系列文章的第三篇。 第一篇回顾: Dubbo 的流量防卫兵 | Sentinel如何通过限流实现服务的高可用性 - 传送门 第二篇回顾: RocketMQ 的保险丝| Sentinel 如何通过匀速请求和冷…

“熬夜导致秃头”,因果关系推断说这话有问题!

扫码了解2019中国大数据技术大会(https://t.csdnimg.cn/7yMh )更多详情。“因果”,顾名思义,即“原因与结果”。“推理”则指“根据某个事件推导其他事件,即经过推测和推断得出结论的过程”。换句话说,就是…

大数据可视化html模板开源_8个可靠好用的开源数据可视化工具推荐

数据可视化在数据科学领域中发挥着重要的作用。在不清楚数据的情况下,要监视和调整数据以使其按照应有的方式执行并不容易。这就是数据可视化发挥作用的地方,它把收集到的数据放到一个可视的上下文中,使数据更容易找出模式、跟踪趋势等。但是…

MaxCompute - ODPS重装上阵 第五弹 - SELECT TRANSFORM

MaxCompute(原ODPS)是阿里云自主研发的具有业界领先水平的分布式大数据处理平台, 尤其在集团内部得到广泛应用,支撑了多个BU的核心业务。 MaxCompute除了持续优化性能外,也致力于提升SQL语言的用户体验和表达能力,提高…

RabbitMQ 最新版本 下载、部署 _rpm版本(CentOS7环境)

文章目录1. 安装rabbitmq前要准备的基础环境2. wget 远程下载安装包2. rpm安装软件3. 编辑配置文件修改密码4. 启动RabbitMQ5. 查看RabbitMQ是否启动6. 安装RabbitMQ 管控台7. 浏览器访问:8. 登录1. 安装rabbitmq前要准备的基础环境 yum install build-essential o…

MaxCompute存储力持续升级,每年节省不止一个亿

数据是开启全新洞察和机器智能创新的基础,拥有高性能、稳定、可扩展性强的存储能力和充沛的计算力,才能全面释放数据价值。 阿里巴巴大数据计算平台MaxCompute,作为阿里巴巴统一的计算平台,支持了整个阿里巴巴集团内部几乎99%的数…

【10.23头条】阿里云存储负责人吴结生:安全可靠是云存储立身之本, 智能技术将激活存储技术新变革...

戳蓝字“CSDN云计算”关注我们哦!作者 | 刘丹责编 | 阿秃人类以日新月异的速度刷新着科技的成果,其中存储的发展历史尤其悠久,堪称万年进化史。自文明诞生以来,我们就一直在寻求能够更有效存储信息的方式,从4万年前的…

专访20年技术老兵云郎:16年峰回路,每一步都是更好的沉淀

从技术研发到产品经理 3次峰回路转 这条路,他走了16年 一个懂技术的产品 更有底气和研发“叫板” 一个具备产品思维的技术 更明白未来的方向 张良模,花名云郎。1997年入行做通信软件研发;8年后转型IT行业,曾任Oracle(甲…

子网规划与组网实验_【干货】从0到1,“大型WLAN组网”基础知识分享~

点击蓝字 关注我们 目前,大多数企业办公环境同时使用有线和无线网络来支撑业务。办公区在提供有线网口的同时,也采用全Wi-Fi覆盖,办公环境更为开放和智能。未来,企业云桌面办公、智真会议、4K视频等大带宽业务将从有线网络迁移至无…

搭建集群 RabbitMQ SHELL脚本实战_03

接上一篇: (企业级) 搭建集群RabbitMQ 快速下载、安装、配置、部署_02 文章目录一、shell脚本说明1. 选择脚本的原因2. 脚本总览二、脚本实战2.1. 工具依赖包2.2. wget 远程下载安装包2.3. rpm安装软件2.4. 编辑配置文件修改密码2.5. 启动RabbitMQ2.6. 查看RabbitMQ…

欧洲为何没有牛逼的互联网公司

戳蓝字“CSDN云计算”关注我们哦!作者 | 挖数责编 | 阿秃截至2018年底,全球市值最大的21家互联网科技公司里边,美国有12家,中国有9家,没有一家欧洲公司。在国内BAT搅动风云,美国亚马逊的贝索斯坐上全球首富…

混合云存储开启企业上云新路径--阿里云混合云备份容灾方案发布

当前,数据已经成为了企业的核心资产。而如果数据中心发生故障不仅会给企业带来巨大损失,甚至会直接迫使企业走向倒闭。对于企业而言,每一字节业务数据的丢失都是一场重大的灾难!那么,如何保证企业的核心数据资产不丢失…

java导出pdf_一张PDF了解JDK11 GC调优秘籍-附PDF下载

简介JDK11相比JDK10,添加了一个新的Source-File Mode,可以直接通过java来运行单个java源文件,而不需要进行编译。同时还提供了新的HTTP API,支持响应性stream。当然上面的都不是重点,重点的是JDK11是一个LTS版本&#…

RabbitMQ 普通集群配置_04

接上一篇:(企业级) 搭建集群 RabbitMQ SHELL脚本实战_03 文章目录RabbiMQ简介RabbiMQ模式RabbiMQ特点环境部署总览一、基础配置及RabbitMQ 安装1. 配置hosts文件2. 安装配置RabbitMQ3. 思路分析二、RabiitMQ 集群配置同步2.1. 拷贝erlang.cookie2.2. 同步.erlang.co…

java 百度api接口开发_百度熊掌号使用Java工具类对接API推送接口进行文章推送实例详解...

对于java程序员来说,自己运维的百度熊掌号当然得使用java的方式去每天推送文章了。目前,百度推出了百度熊掌号服务。旨在更好的为站长服务。那么百度熊掌号如何通过推送API接口实现自动文章推送呢?第一步:注册注册百度熊掌号&…

RabbitMQ 集群搭建_02_rpm版本(linux环境)

接上一篇:(企业级) CentOS7 安装 RabbitMQ最新版本 下载、安装、配置、运行、部署_01 文章目录一、SHELL脚本说明1. 选择脚本的原因2. 脚本总览二、脚本实战2.1. 安装rabbitmq前要准备的基础环境2.2. wget 远程下载安装包2.3. rpm安装软件2.4. 编辑配置文件修改密码…

力荐联邦学习系统,据说英伟达Clara“上架”新进展!

戳蓝字“CSDN云计算”关注我们哦!作者 | 晶少责编 | 阿秃这是晶少本年度第二次面访Kimberly Powell,这位英伟达医疗领域的美女副总裁。除了一贯的nice之外,更重要的一点,在深圳MICCAI 2019期间,英伟达医疗团队还带来了…