Android 工程师的选择
从事 Android 开发已经有几年的时光了,随着移动互联网、智能手机红利期的渐渐退去,移动端市场趋于饱和,又受到人工智能、大数据和大前端趋势的影响,再加上网上各种对移动端不利的言论,网上的自媒体就爱制造焦虑博取眼球,年年唱衰 Android,2018年的 Google 大会中,Google 对 Android 更是只字不提,力推 Flutter。塞班系统的前车之鉴,让我感到很焦虑。可怕的不是你的工作没了,而是你的行业没了。那么该如何选择 Android 工程师的未来呢?
选择方向
- 转后端
后端开发,经久不衰,注重深度,并且 Android 与 Java 后端都是同使用 Java 语言,但转后端开发等于彻底的转行,资深的 Android 开发转到后端,只会成为初级工程师,需要从头开始,那么这几年的努力岂不是白费了?需要考虑到事件的成本。
- 转人工智能
对于人工智能来说,近几年新闻媒体大力宣传、网上自媒体的过渡评价,几乎成为最热门的岗位。但是人工智能不仅仅是学习一个 Python 语言那么简单。目前人工智能还没有全面普及,还只是大公司的玩物,过几年泡沫会不会破灭还难说,而且目前算法岗也开始慢慢饱和了,已经不是可以无脑学 AI 的时候了。同时,我了解了下人工智能岗位的要求,基本都要求名校硕士,学历的问题是制约很多人搞 AI 的最重要因素。
- 转(大)前端
同样的趋势选择,最终我选择大前端,那么什么是大前端?我为什么要转大前端呢?
什么是大前端
2017年,以饿了么为代表的一些企业开始提出大前端的概念。2018年,InfoQ 举办了首届全球大前端技术大会,在大会中将前后端分离、跨平台和 PWA 等技术设立了专场,这次大会具有重要的意义,它预示了大前端时代的到来。
那么大前端是什么呢,直接来说,大前端是所有前端的总称,最接近用户的那一层都叫前端,比如 Android、iOS、Web、Watch、小程序等。
在企业的开发中会遇到这样一个头疼的问题。当企业需要上线一个新产品时,服务端只需要开发一次,但是面向用户的客户端也就是前端却需要开发多个版本,比如 Android 版、iOS 版、H5 版、小程序版等。每一个版本的开发工作量都是无法复用的,这意味企业需要付出更多冗余的人力成本。这个时候问题就来了:有没有一种技术可以同时适用于多个平台呢?这种技术就是跨平台技术。有了跨平台技术,各个平台的差异性就被抹平了,开发者只需要一套技术栈就可以开发出适用于多个平台的客户端,这就是大前端生态中最重要的一环。
主流跨平台方案
截止目前,主流的跨平台方案有:ReactNative、Weex、微信小程序、PWA 和 Flutter
大前端趋势展望
截至目前,跨平台技术虽然已经经历了几年的发展和改进,但是已有的跨平台方案都还有或多或少的不足。
ReactNative 和 Weex:执行效率是硬伤,首页不能用RN已是共识,而且目前在同一 Android 和 iOS 代码方面尚存在不足。
Flutter:不支持线上热修复,和跨平台方案天然的动态化属性不服,目前尚在 preview 阶段,希望能够尽快 release。
PWA:用纯 Web 的方式统一三端,很好的 idea。但是需要借助 Google play Service 和浏览器支持,国外大部分 Android 手机和 iOS 的新版本都可以支持 PWA,但遗憾的是,国内的浏览器很难统一支持 PWA,这还需要时间。
微信小程序:属于微信内的生态闭环,更适合工具类和小游戏,一般都作为原生 APP 的延伸入口。
所以,目前尚不能分析出哪种技术是未来的趋势,未来是否会出现新的跨平台技术也无法得知。因此决定对已有的方案都做一下了解,达到入门水平,等以后某个跨平台技术成熟后再做深入地研究。
总结
虽然跨平台技术还不够完美,但是大前端的趋势是很明确的。对于我来说,需要学习一下 HTML、CSS、JavaScript、ES6、vue 和 react 等前端技术
所以,我选择大前端作为未来三年的学习方向,将自己的学习时间作为划分,七分进阶 Android,三分学习前端知识。只有这样才能更好地适应大前端的变革。