背景
如果你是移动应用的开发者你肯定了解一些跨平台的方案。Xamarin,Flutter,ReactNative 等。从开发者的角度谈谈对他们的看法。
谈起移动开发,那么就是iOS和Android以及Web APP(以前还有个Windows退出了历史舞台。下文中不会提及,不代表跨平台不能支持)。
那么作为程序员开发者,要么你学习iOS,要么学习安卓。或者一些程序员两者稍微懂得多点都会,比如我这样的。
那么从公司的角度来说就需要招聘两个团队或者说是两种人。同时有的公司在某个时间段招聘不到这样原生开发人员。公司恰好有两个JS的开发者闲着,这种情况怎么办呢?
跨平台方案就应运而生了
一份代码解决了两个平台的事情,一种程序员就可以搞定mobile的事情既能iOS又能Android。多美好的事情!!!
好吧,我这种原生的开发者就没有了饭碗!
有句话说的好:理想很丰满现实很骨感。
Xamarin
Xamarin是最开始出现的跨平台的方案 。也就是你会C#(sharp)你就可以开发跨屏台了。
Xamarin有缺点,人无完人,跨平台亦是。
比如iOS更新了新的系统添加了新的东西,那么支持完全靠Xamarin团队的维护进度了。同时性能肯定没有原生好,毫无疑问的,生成的应用大小等问题都会逐渐显现。
还有就是你再牛逼的C#开发者同时管两个平台,你都要去了解一些背景知识,懂一些app开发的东西,因为有的东西可能Xamarin还支持不好。
好嘛,这一下子倒是成了C#的人去学习移动开发iOS/Android的知识。不好应付。
或者最后就成了要么iOS也么Android的开发人员去学习C#。爱咋咋地反正你要一端去学习,谁让你是程序员呢!
Reactive Native
facebook推出了这货。你会Javascript你就可以开发两个平台的应用了。
这个生成的还是原生的项目。也就是iOS来说生成XCode项目,Android生成的是AndroidStudio的项目,而且可以独立跑。
好处肯定是有的,这个就跟开发web似的,开发效率肯定是更高毫无疑问的。你改点啥所改即所见。有点和现在的swiftUI和Compose的赶脚。但是RN是运行后的结果。
另还是性能,肯定是没有直接原生的来的快。对于iOS是生成Objective C的代码,对于Android应该是Java。是否能生成swift或者kotlin的?我也不知道。
但是调试的时候你感觉你是快了,实际上,oh my lady gaga,一个错误都弄疯你,那个不好弄哦。
所以终极可能就是Native + RN。也就是iOS/Android/Javascript开发人员你们全来吧。沟通,沟通,沟通!
Flutter
这个玩意又出现了,使用Dart语言,没错你要学一门新的语言。
当然这不是什么难事,因为Dart是面向对象的编程语言,语法风格对于许多现有的开发人员来说都很熟悉。所以,如果有其他语言的基础的话,学习Dart语法,那是非常容易的。
Flutter的优点是能够实现应用的高度自定义界面,提供了多种动画效果,同时具有响应速度快、渲染效果优美等特点。
但是这个框架还很年轻,目前只在一些小型的应用中得到了应用。
Kotlin Multiplatform Mobile (KMM)
是一个跨平台的方案,可以一份代码实现iOS/Android/Web的方案。那么来说安卓开发人员有福气了。直接kotlin就可以开发了不用太复杂学习曲线。
我正在研究。
听到有的公司使用跨平台方案的,要么是写电商之类的热更新的应用吧否则我个人的观点跨平台就是普靠谱的东西。我个人知道的一些大公司已经把跨平台拆分成原生的了。
而且,重点,swift 和kotlin 出来了,你在能打你能干过他们?同时一些新的特性还是基于语言的。
为什么这样说呢?这就聊到了KMM。先说观点就是,如果Flutter那么好google闲的还要推出个KMM?
不过也可能真的是闲,要不马斯克裁员80%的Twitter员工,Twitter照样工作的没什么问题吧。。。
最后说个结论
每种框架都有着其自身的优缺点。因此,在选择跨平台开发框架时,需要综合考虑自身应用的特点、开发时间、开发成本、用户体验等多方面因素,选择最适合自己的框架。
如果你想要学习KMM跨平台,为网上的学习教程太少不全面而感到烦恼,刚好,我在研究KMM的过程中总结了一份《KMM跨平台框架入门教程》
详细关注公众号:Android老皮
还能解锁 《Android十大板块文档》 ,让学习更贴近未来实战。已形成PDF版
内容如下:
1.Android车载应用开发系统学习指南(附项目实战)
2.Android Framework学习指南,助力成为系统级开发高手
3.2023最新Android中高级面试题汇总+解析,告别零offer
4.企业级Android音视频开发学习路线+项目实战(附源码)
5.Android Jetpack从入门到精通,构建高质量UI界面
6.Flutter技术解析与实战,跨平台首要之选
7.Kotlin从入门到实战,全方面提升架构基础
8.高级Android插件化与组件化(含实战教程和源码)
9.Android 性能优化实战+360°全方面性能调优
10.Android零基础入门到精通,高手进阶之路