查看原文
其他

我们和 Flutter Create 全球大奖得主喝了一杯功夫茶

Flutter 谷歌开发者 2019-11-01

自 Flutter Create 大赛开展以来,获得了全球开发者的关注。最终,中国开发者胡泽标摘得了 Flutter Create 大赛的全球大奖。同时,我们也在第一时间跟他本人取得了联系,并马不停蹄地安排了见面及采访事宜。


  • Flutter Create 大赛

    https://flutter.dev/create


坐标: 深圳华强北。这里由于天然的软硬件条件,诞生过数不清的技术都市传说。

△ 华强北聚集着大量的软硬件资源以及开发者

我们做好准备和这位神秘的开发者展开一次赛博朋克之旅。和泽标见面之后,发现他是个非常安静,不怎么爱表达的人,但对于他喜欢的事情充满了纯粹的热忱和想法。

△ 屋子里一度安静到只能听见茶水撞击茶盅的声音

“好了。” 泽标放下茶壶,示意我们可以自取。


—— 茶的飘香立马让我们在南方闷热的夏季感到一丝清爽......


“所以你算是茶派,不是咖啡派?” 我们问道。


嗯,茶派吧”,泽标腼腆地笑笑。这次采访也算是正式开始了。



始于游戏玩家的好奇心


胡泽标,85 后,来自汕头。说起与开发结缘的理由,泽标只能摊摊手: “因为喜欢玩游戏”。高中时候的他一度沉迷电脑机房里的即时战略游戏,在玩得颇有水平后开始琢磨 “这些游戏是怎么做的,我要不要也做一个”。


在当时,网络条件其实远不如现在。而且对一个高中生来说,系统地了解开发知识也是一件颇为艰巨的课题,但一个具有时代特征的载体在一定程度上解决了问题: 光碟。


“那么多光碟放在盒子里,其中一叠旁边写着 ‘编程’ 两个字。” 与泽标年龄相仿的开发者看到这里可能会会心一笑 —— 和如今便利的网络环境不同,当年不少编程少年就是这样 “淘金” 式地打造着自己的编程工具箱。


一转眼,泽标成为开发者已经进入第 15 个年头了。由于在开发软件的能力上 “出名” 较早,所以一直有项目找上门来,泽标也就索性一直没有去其他公司上班,而是埋头开发,顾客变熟客,熟客变朋友,然后朋友介绍更多项目给自己。就这样,直到现在他都在坚持做着且热爱着自己的开发事业。后来,他组建了家庭,成为了两个孩子的父亲。每天送孩子上学后就开始工作,晚上 6 点雷打不动收工,迎接孩子回家。


“跑跑步、喝喝茶,周末陪孩子逛游乐园”,泽标轻描淡写地说着自己的生活 (也是工作) 节奏,说完补充了一句: “现在我还是很喜欢玩 20 年前的老游戏,算是挺复古的爱好。

△ 胡泽标在自己常跑步的小公园



从出世到入世


我们和泽标的太太聊了几句。“他这人话很少,但在心里装着很多事情。他得了大奖,拿到了你们发的奖品,都没有告诉我,我看他朋友圈才知道的。”

△ 大中华区平台与生态 (Platforms & Ecosystems) 开发者市场负责人黄继佳和 Flutter Create 大奖获得者胡泽标 (本次全球大奖的奖品为 iMac Pro 5K)

但这不表示泽标不善于与人交流。他的身边总是有开发者的朋友,互相交流着开发的技巧和知识。泽标的工作项目有不少是企业内部的管理软件,但在如今不少产品 “移动优先” 的趋势下,他也决定提前掌握移动平台的开发知识 —— 最好是平台无关的,因为他不知道客户会要求发布在什么平台。虽然在现实生活中不常说话,但泽标用自己的方式和技术圈,和这个世界保持着同步。


就是在这个环境下,他从朋友那里听说了 Flutter,知道了它的跨平台能力,知道了它的高速界面渲染能力,知道了它 “不是学一次到处写,而是写一次到处跑” 的代码复用能力,还知道了 Flutter 在 Web 平台上的动向,以及可能覆盖的其他新兴平台。


于是他买到了手边能买到的关于 Flutter 和 Dart 的书籍*,开始学习 Flutter。

*《Flutter 技术入门与实践》和《Dart 编程语言》


这时已经是 2019 年春节。距离 Flutter Create 大赛启动只有不到一个月的时间。

△ 开发参赛作品时候,基本上就是手不离书的状态



决定参赛后 20 天才动手开发


除了通过书本获得比较完整的框架性知识外,Flutter 官方网站 (flutter.dev),官方视频频道 (youtube.com/flutterdev),Flutter 中文社区 (flutter.cn),以及掘金 (juejin.im) 上的 Flutter 文章泽标基本上也都照单全收。也就是在观看官方视频频道的时候,泽标知道了 Flutter Create 大赛。


“也不是想得奖吧,毕竟也没学多久”,泽标回忆当时参赛的想法,“就是想检验一下自己学得怎么样了。


虽说心态是很放松,但其实一开始泽标并不知道自己应该开发一个怎样的作品参赛。“5KB 还是很有挑战的,所以我决定拿手机上看着比较紧凑的应用作为参考,做一个精简的跨平台版本。” 最终,泽标选定用 Flutter 做一款罗盘应用。新建项目的时候已经是 3 月 15 日,距离 Flutter Create 要求的提交日期 4 月 7 日仅剩下三周的时间了。


其实纯粹用 Dart 语言写一个罗盘并不难,访问硬件也很轻松。在第一个版本完成后,代码也已经小于 5KB 了,但泽标并不满意: “经纬度只有文字看着太无聊了。” 于是他决定给自己加码,要做一个互动地球仪。

△ 参赛作品 Compass 一开始并没有下面的地球仪

很好,现在只需要解决一个小问题 —— 他还从来没做过动画。


“其实,从用 After Effects 做动画,到用 Flare 导出 Flutter 能用的动画序列,全部都是现学的,毕竟之前工作中不太需要用到这些工具。” 回想起开发参赛作品的日子,泽标倒是觉得有个 deadline (截止日期) 挺好,这样能逼迫自己努力按时抵达一个个里程碑。


  • 了解 Flare

    https://www.2dimensions.com/about-flare

△ 在 After Effects 里做动画,用 Flare 导入 Flutter,全部现学

随着地球仪的完工,两个新问题又冒了出来: 一是地球仪的经纬度显示数值错误;另一个问题更关键: 代码超过了 5KB。


于是,泽标通过谷歌搜索,查到维基百科等资源获得很多地理数据的知识,而且 Dart 在更新了语法之后可以省略一些关键字 (如 new),正好也借这个机会学会了很多方法的嵌套写法,这样就大大压缩了代码量,Compass 应用也终于赶在比赛截止前两天顺利提交了。

△ Flutter “写一次到处跑” 的测试场景

在寻找学习资料方面,泽标说: “我现在每天也背单词,查资料,虽然我的英文表达还是不太行。不过现在很多英文的资料很快就在国内有中文介绍了。包括谷歌开发者的微信公众号,我也一直有看。”


现在的很多开发知识往往会涉及到很多其他领域的小知识点,所以活用搜索引擎快速找到答案,并继续回到开发的轨道上十分重要。从工具的角度考虑,也不应该只把 IDE、编程语言、开发文档等作为开发者的工具,而是应该把整个互联网纳入自己的工具箱。



好茶要请大家共饮



当我们希望泽标给 Flutter 初学者提一些建议时,泽标很是谦虚地以自己也是初学者为由婉拒了。但他从自己的经历出发,给出了一些心得:


  1. 掌握足够的英语知识,这样可以帮助自己尽可能多渠道地了解知识点,而且谷歌搜索在寻找编程解决方案时很好用;

  2. 先行一步学习,比如自己现在的项目其实还没有用到 Flutter,但要为将来做好准备;

  3. 多看官方资料,多练习;

  4. 尝试融入社区,自己在开发时就接触了很多其他开发者写的 widget,自己也希望将来能写一些东西回馈这个帮助过自己的社区;

  5. 不要嫌麻烦,既然想到了就开发出来。你也许会碰到现有的技能暂时解决不了的问题,但只要你多多搜索、多多动手就没有学不会的技能。很多开发时的 “坑”,不亲自上手写写是不知道的;

  6. 常备一个记事本,平常自己做项目或者思考的时候,如果有什么问题就记下来,回头有空一定要验证或者解决它。


“希望 Flutter 能尽快覆盖更多的平台吧,这样我们开发者就省事了。包括 Web 版本,也希望早日推出正式版。” 泽标也很直率地给出对 Flutter 的期待,“另外,线上线下的中文资料还有课程再丰富些,而且能让各个学习阶段的开发者都能很方便地找到学习目标和资料。”


这直率的期待让我们听得很真切,也会努力回应泽标还有中国开发者们的期待。


一杯功夫茶下肚,满口余香,但只有一杯是不够的。在拿下 Flutter Create 全球大奖后,泽标希望更多的人也能方便地学习 Flutter,感受到 Flutter 的便利与潜力。


正如泽标一开始泡茶时就认真洗好了那么多杯子一样。好茶,要让大家都喝到。

△ 与其自斟自饮,不如与众同饮



 点击屏末 |  | 即刻开启 Flutter 跨平台开发之旅



推荐阅读




    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存