2019 Google I/O 之行

2,686 阅读6分钟

2019的四月的一天,现在的老板在某次晨会结束之后叫上了我,吩咐我一定要注册2019年的Google I/O,本来不想去的我一想反正公司报销,去一去也无妨就顺手报名了,没想到运气不错还真的抽中了门票。今天是IO的第三天,也是最后一天,反正也好久没有更新技术博客了,就用一篇文章的篇幅来介绍一下这次Google I/O还有一些心得体会吧。

这次Google I/O的一些重点

第一天一不小心起晚了,赶到会场的时候KeyNote已经开始了

IMG_2145.JPG

劈柴哥正在兴致勃勃的介绍着今年Google 在人工智能方面的进步。

  1. Google的人工智能mobile的google assistant今年已经正式做到不需要唤醒词 "Hey Google",就可以自动通过用户对话的上下文自动给出用户的需求答案了。
  2. Google Lens可以自动分析账单,自动做结算。拍照分析食物,自动搜索出网上的菜谱还有制作工序视频

IMG_2147.JPG

同时,全球注册安卓设备正式突破二十五亿个。

IMG_2161.JPG

Android ART可以通过Google Playstore提取用户的profile,上传之后,后续用户可以利用profile文件加速app启动。

Google AR/VR也有新的进步,但是令我感到奇怪的是2016的project tango项目已经做了很多VR上面的实现和尝试,比如今年的这个鲨鱼的舞台VR效果(图片摘自网络,当时我忘记照相了。。。)

googleioshark_supplied_738x410.jpg

在我2016年来的时候,已经完全可以做到了。不知道算不算是炒冷饭。

还有我比较感兴趣的Android Auto,刚好我一个朋友最近准备去

IMG_2168.JPG

之前呼声和质疑声都很多的云游戏平台,反而只有一个小小的摊位。。。。我记得当时Google宣布要做Stadia的时候还是吸引了不少热度的,今年Google I/O的keynote上连提都没提一下,这么低调着实令人摸不着头脑。

IMG_2177.JPG

这次Google IO 感悟

安卓开发方面的Session,说实话今年我是颇感失望的。作为一个安卓开发,这次Google I/O 能提供给开发者的一些新的东西其实已经很少了。很多东西都是换汤不换药。

比如今年的一个Modular APP的构建session,其实就是把去年的Dynamic Feature给重新过了一遍。(谁说Google不允许安卓插件化的,只不过收归国有罢了。只需州官放火不许百姓点灯,可惜的是应该只有通过Google Playstore才能生效),感兴趣的可以看看这个文章:

Android动态化框架App Bundles

我能记得的重点大概就是Kotlin First,这么个空洞的口号。。。至于ConstraintLayout也已经不算是什么新鲜的知识点了。

不过玩笑归玩笑,这次关于Coroutine的Session,也开始让我重新审视RxJava这个能力爆炸的框架到底还是不是解决异步问题的定海神针了。Google自从发布architecture component 之后,LiveData和Kotlin的Coroutine已经可以很好的解决大部分的代码隔离,异步处理,生命周期处理等等的问题了。RxJava固然好用,但是学习曲线过高和太过复杂(我现在的团队有些朋友就是怎么也理解不来flatmap。。。),有点大炮打蚊子的感觉。

我与大厂同行对安卓开发前景的一些看法,安卓开发的一些感想

当然来参加I/O,也不是说真的需要学习什么,还有的目的也是为了见见一些旧朋友。前东家今年发展不错,把整个安卓团队都拍过来参加这次大会了。我也毫不犹豫的做了一次东,请大家吃了饭。许久不见,旧金山已经成了我的主场,新加坡的朋友们成了客人。

59318014_2274887929241779_7169921410695954432_n.jpg

IMG_2191.JPG

而且趁这次机会,也和Google还有Uber的朋友们交流了一下安卓开发的前景问题,还有接下来大家专注的一些点。

先说结论:

移动开发,绝对不会被淘汰,淘汰的只有不合格的开发而已。

移动开发在2014-2015年进入爆炸的时代,传说中的北大青鸟毕业一万月薪的确是事实。在那个安卓iOS做一个app就可以创业的年代,催生了很多移动开发的就业岗位。而且移动开发当时的不成熟,早就了很多开发框架的诞生,光是图片下载读取的框架就数不胜数,ImageLoader,Picasso,Glide,甚至Volley都有image loading的代码。移动开发的开源社区也蓬勃的不行,在野蛮生长的年代,英雄辈出。

然而等到几年过去,市场再也不需要那么多创业公司的时候,自然就淘汰了一大部分人,甚至开源社区也冷静了下来。原因很简单,我举个栗子。

Uber的朋友说,Uber开源了一个UI框架叫Ribs,大概很多人都没听过也没用过。为什么?因为它不合适。Uber是一个90%功能集中在10%的页面上的App,简单的说就是一个单页面的app,所以它的UI设计思路不适用于大部分app,Ribs的UI设计理念也是这样。正因为如此,大部分公司都不会采用这个.甚至他自己本人刚刚开始在Uber工作的时候也很疑惑,有时候只不过是想加个TextView而已,在Ribs的设计下要新建很多个Class。想通单页面app的复杂度和功能隔离的原因之后,才能彻底理解为什么。

说了这么多,我想表达的重点是。我们移动开发已经过了那个新技术一出,大家都开始疯狂关注的年代,当然本身因为移动开发以及趋于稳定,新技术的迭代速度也明显变慢, 大公司都开始专注于自己的业务,当然结果就是开发或者技术,也要以业务为导向了。不管是移动开发也好,后端也好,不能给公司的产品添砖加瓦,那就需要被淘汰。能不能通过现有的技术,去完善产品,是现在的移动开发工程师们应该集中思考的问题。安卓开发也是一样的。大公司还是在持续招人,招高质量的软件工程师,能给产品,给公司解决实际问题的软件工程师。

这也是我一直想说给所有移动开发从业人员的话,你首先是一个软件工程师,其次你的专业是移动开发

IMG_2202.JPG

2016年,正是我第一次来美国,参与到Google I/O中才萌生了要来美国的念头,这次的I/O同样给了我很大的感触,都说每三年要有一个小目标。我的前三年为了来美国花了不少功夫,下一个三年我给自己定的目标是早日当上我司安卓组的tech lead,我相信我一定可以做到!