这篇文章最近很火,我也有一些自己的看法:现在去很多公司面试,除了你具备基本的能够写一个高性能app的能力后,一般都会在自己的app里面加一些现有的相对较666的技术,这些技术我们称之为开源框架。
比如,我们以前木匠做一个桌子,我们需要把木头削成木板,然后把木板拼成桌面,然后再去用同样的方式做桌子的腿;现在,我们只需要买做好的桌子板和做好的桌子腿,然后我们就可以用他们拼接就可以自己做一个桌子了。
所以,现在开放代码已经不再需要你去锯木头了,你只需要拿着一个SDK就可以实现一个功能了,那么这个就是我们的开源技术。
那么,这些技术一般包含热升级,热修复,AppInstant,强制更新,组件化路由架构Arouter,RxJava,IOC架构方法,Hook技术,图片加载(Glide),网络访问(Retrofit,okHttp)等等,当然,这些技术你不能只会用,你需要知道他的原理,有时候,你还需要知道如何对这些架构进行改进。
另外,非常重要的一点,Android开发者不愿意接受新知识,所以对于现在Google推出的新的技术方案毫无感觉,这些都是被controlC和controlV所毒害,开源让开发者失去了自我,失去了基本的编码能力,失去了深入学习的信心和毅力,所以对于很多google推出的新技术好组件(GoogleI/O大会新技术),好框架已经很多人不愿意去学习了这是不应该的,我们需要好好学习啊。
FLutter的优势
(1)在所有的平台下,都可以保持同样UI样式,同样的业务逻辑
大多数跨平台框架中的UI呈现如下图所示:
而Flutter是直接画在画布上:
(2)减少开发所需的时间
- Flutter的热重载可以高效快速的看到改变,甚至保留应用状态;
- 官方提供的各种现成的组件(Material和Cupertino)。
(3)快速迭代上线
不需要单独适配 iOS、Android 双端的 UI 层面。
(4)更接近native的性能表现
Flutter不依赖任何中间代码,最终直接构建成机器码,提高了性能。
(5)自定义复杂动画
Flutter最大的优势之一就是可以定制你在屏幕上看到的任何东西,不管它有多复杂。
(6)有自己的渲染引擎
Flutter使用Skia将界面渲染到平台提供的画布上,意味着不需调整,即可迁移到其他平台。
(7)更方便调用native api
获取GPS坐标、蓝牙通信、收集传感器数据、权限处理等,未支持的也可通过platform channel 。
(8)更高的潜力
iOS、Android、Web、Desktop…
三、Flutter 与 React Native (Hippy)
1. UI方面
在新旧设备上也能保持一致
Flutter动画效果:
学习路线+知识梳理
花了很长时间,就为了整理这张详细的知识路线脑图。当然由于时间有限、能力也都有限,毕竟嵌入式全体系实在太庞大了,包括我那做嵌入式的同学,也不可能什么都懂,有些东西可能没覆盖到,不足之处,还希望小伙伴们一起交流补充,一起完善进步。