使用场景
任何技术都不能脱离使用场景而存在,当前的移动端使用场景一般是 iOS Android 小程序 移动web端(手机浏览器)四个使用场景。
原生开发
iOS和Android 使用最多的开发场景,性能最好,可以给用户完整流畅的系统体验。
缺点:
1.更新需要上架应用市场。
2.开发成本较高
iOS:
目前使用Objective-C,swift开发:
swift相比Objective-C开发出的App体积较大, 因为 swift版本还在变化,Apple 没有在 iOS 系统里放入 Swift 的运行库,swift开发出的App体积增大5-8M,对体积敏感的App慎用,不过当前手机硬件更新较快,本人用的 iPhone xs max 亮光下拍摄的一张图片大小就有10M左右,所以人们对app大小的敏感度已经越来越低了。
Android:
原生开发用java,kotlin开发:
相对于apple自己推出的swift,google自2017年宣布对kotlin提供一等支持,至今只能说是不温不火,潜龙在渊,还没有出现大批量替代java的现象出现。
知名大厂的kotlin产品一般还没有放在生产环境,小体量的开发团队已经有很多上线的kotlin项目了。
混合开发
目前市场上混合开发前景晦暗难明,一开始的Hybrid就是指原生app中嵌入webview的开发方式,但是近几年的出现的意图统一的势力也出现很多。
google的flutter,已经从Android,iOS平台延伸到web端,macOS,不过目前还没有大型的商业化应用。
RN,现在大公司招聘iOS要求会RN,Android要求会RN,将RN作为H5的替代;小公司为了节省成本将RN作为原生的替代。
swiftUI跨平台了,但是跨的是自家的全家桶。
weex感觉没啥人在用了,之前uniapp还支持weex现在uniapp官方关于weex的页面都消失了。
uniapp,本人最近用了一段时间uniapp开发,一开始开发的微信小程序,还算比较友好;
之后用开发了跨Android和iOS的应用,感受确实方便一些,使用vue不用写两套代码。
说一下缺点吧
1.性能问题,有个别时候滑动会不灵敏
2.使用云打包有高峰期速度过慢,需要等半个小时以上甚至有一次将近一个小时。
3.自定义基座调试,使用了云插件之后,需要打自定义基座包才能调试开发,而且不能保存,过一段时间官方的云端满了之后,自定义基座包就会消失,需要重新打自定义基座包。
4.付费插件,使用付费插件之后不支持本地打包,只能云打包,需要紧急上线的时候严重影响上线进度。
小程序
小程序市场微信是领头羊,其后支付宝、百度、360、头条小程序、抖音小程序等
首先都有自己的开发工具,跨端开发目前支持的有uniapp和Taro;
uniapp对vue框架支持优先、taro对React native支持优先。
移动web端H5
目前使用较多的框架有:
MUI:和uniapp同样是dcloud推出的前端框架,比较友好,不过过分强调追求原生样式,重新定义的form表单里的input,select,textarea所有样式,让想要自定义的用户感觉不方便。
Bootstrap:推出较早,兼容PC和手机,PC端样式优秀,手机端中规中矩。
Framework7:看着不错,没用过。