我的个人博客:www.moonkite.cn
大家好,我是风筝。
上一篇介绍了独立开发者都用什么框架开发客户端产品(PC客户端篇),这次来说一说移动端开发都有哪些方式。
真的说来,移动端开发要比 PC 端开发更麻烦,除了有苹果、ios 外,现在又多了个鸿蒙,而且每一个平台都有多种型号的设备要兼容,并且最终上架的时候,还要考虑众多的安卓应用商店。10天搞开发,一个月搞上架,一点儿也不夸张。
那抛开上架的事儿不谈,如果要开发一款移动端应用,可用的技术框架有哪些呢?
ios原生
ios 的原生开发占据苹果应用的比例还是占绝大多数的,使用 Objective-C 或 Swift 开发,目前官方首推 SwiftUI。使用原生开发,能够得到最优的性能和更好的用户体验。
而且在苹果生态下,开发好应用只要上架了苹果商店,就是全平台上架了,只需要一个账号就可以了。前提是你花钱就可以了,个人账号每年99刀,企业账号每年299刀。
如果只做苹果生态,那必须首选原生开发。
安卓原生
安卓生态下呢,追求性能和原生体验的话,肯定也是选择原生开发了。
刚毕业的时候有好几个同学都去做安卓开发了,那时候移动开发正火,那工资水平让人一个羡慕。不过后来渐渐不太行了,我有同事就是做了好几年安卓开发,后来转到 Java 了。
最开始写安卓其实就是画界面 + 写Java,后来Android 拥抱 Kotlin,官网上说,在排名前 1,000 位的 Android 应用中,有超过95% 使用 Kotlin 提高了工作效率、开发者满意度和代码安全性。
最近 Rust 不是很火吗,主打一个性能好,用来写客户端非常合适,有人说,能用 Rust 写的客户端最终都会被用 Rust 重写,前面介绍的 Tauri 那个跨平台的PC端框架的后端不就是用 Rust 实现的吗。
安卓也支持用 Rust 开发了,看来一直在寻求进步啊。
鸿蒙原生
自从华为推出鸿蒙后,安卓原生开发者们多少有点儿焦虑了,以后不光是要兼容不同的手机型号了,直接就跨系统兼容了。
鸿蒙提供的开发工具叫做 DevEco Studio,名字和 Android Studio 有点儿像,实际的 IDE 本身和 JetBrains IDE 一模一样,听说是和 JetBrains 团队合作的。
下面是几个跨平台框架
Flutter
Google 的作品,凭借着漂亮的UI组件和流畅的性能,迅速成为跨平台框架中的佼佼者。
使用 Dart语言,也就是说你要用 Flutter,要专门学 Dark 语言,这倒没什么,因为你要用ios 原生和安卓原生的话,要学至少两门语言。而且 Dark 简单易学,上手速度比较快。
缺点就是包体积偏大,可能会劝退一些对APP大小斤斤计较的用户。跨平台框架大部分都有这个毛病,这倒可以理解。
闲鱼就是用 Flutter 开发的。
React Native
Facebook 出品的 React Native,一听名字就知道是用 React 开发,如果你恰好熟悉 React 技术栈,那用它就再合适不过了。
做前端的开发者基本上可以无缝使用 React Native,并且性能也是相当不错,接近原生应用的体验。
Facebook 的很多产品都是用它写的,就比如 Facebook 自己,还有Instagram 。
.NET MAUI
微软的跨平台开发框架,之前叫做Xamarin,如果是做C# 的开发者,首选 .NET MAUI。
要说的话,C# 这语言其实真的不错,比起 Java ,写来要舒服的多。而且你用 C#写的话,还能用到宇宙第一强大 IDE:Visual Studio
但是在国内来说,用的还是比较少的。
最后
看完这些框架,你可能会问:"我到底该选哪个呢?"这就像在问"哪个编程语言最好"一样,没有标准答案。
还是要看你产品的侧重点和开发人员本身的技能点,例如你是要做安卓系统相关的功能,比如系统主题、桌面组件,还是用原生的更合适。如果是做一些完全独立的服务型应用,就看你熟悉哪个技术栈了。
还可以看看风筝往期文章
古时的风筝,一个程序员,一个写作者。