当前位置: 首页 > 科技观察

移动应用程序开发有哪些框架?

时间:2023-03-20 19:25:16 科技观察

移动APP开发框架盘点总览目前流行的移动APP开发框架有六种:网页式、混合式、不仅如此、原生式、桥接式、自绘式。前三种体验类似于web,后三种类似于nativeapp。这六种框架形式各有适用范围。无所谓好坏,只要适用就是好。Web应用适用于淘宝、京东等传统网站,APP中嵌入了大量的WEB页面。混合应用适用于低成本的应用开发。所有代码均基于网络。优点是开发速度快,成本低。渐进式应用适用于机会成本高的场合。它们可以同时下载和使用,可以快速获取和快速体验。原生应用适用于对体验要求高的大型应用,能够产生满意的体验效果。桥接类应用适用于高速迭代的创意类应用,将体验和成本保持在可接受的范围内。自绘应用适用于游戏和有特效的应用。最大的优势是没有平台限制和表达瓶颈。1、网页WebAppWebApp与传统Web的主要区别在于前端框架,尤其是V-DOM框架的应用。这种前端框架在机制上与WebApp和NativeApp没有区别。在众多前端框架中,React、Vue和Angular是最具竞争力的选择。ReactV-Dom技术的先驱,主流框架NO.1。React的贡献是开创性的,基于它也有很多兼容的框架,比如Anu和Nerv。用于解决React的性能或IE兼容性问题。主流技术方案:React+Redux+ReactRouter+Material-UI/AntD/Semantic-UIVue是中国人创造的,在中国有大量的用户,有很多配套的开源项目。它的主要特点是学习成本低,简单易用。主流技术方案:Vue+Vuex+Vue-Router+Vuetify/Quasar/vux/Mint-UIAngular大而全的框架,大型项目强烈推荐,深度集成Typescript和Rxjs。主流技术方案:Angular+Typescript2.NativeApp由于操作系统的限制,nativeapp只有几种。对于原生应用来说,架构是基础,框架是核心,加入了大量的UI组件。IOSiOS开发已经从OC全面转向Swift,最新的架构VIPER基本可以看成是MMVPP。主流技术方案:VIPER+RxSwift+Moya+Alamofire+SwiftyJSON/ObjectMapperAndroidAndroid开发语言由Java改为Kotlin。编译时依赖注入框架Dagger也成为了法宝。主流技术方案:MVP+Dagger+RxKotlin+Retrofit+OkHttp+Kotson(Gson)3.HybridHybridAppHybridApp的关键不在它本身,而在于WebApp。将一个好的WebApp更改为HybridApp很容易。所以混合应用框架其实就是指WebApp的基础库,Cordova(PhoneGap)就够了。CordovaPhoneGap是开源的。4.BridgingBridgeApp桥接应用的特点是使用原生接口,但应用逻辑是用脚本语言编写的,原生接口由万能桥控制。这样就达到了使用脚本编写原生应用的目的,甚至网页和原生应用使用同一套代码,节省了大量的开发成本。但是操作手感比web应用要强很多。ReactNative和Weex代表了两种不同的思想。ReactNative提供了打通平台差异化的工具(LearnOnce,WriteAnywhere);而Weex提供了一个框架来屏蔽平台差异化(WriteOnce,RunEverywhere)。因此,ReactNative最大的痛点是难上手,必须熟悉所有平台;Weex注定在功能上比较弱,坑也很多。ReactNativeReact的流行其实是从ReactNative的发布开始的。Weex的小众框架能否成长,取决于学习者能否高效地编写应用。所以很多人认为文档是决定一个开源框架生死存亡的关键。事实上,有几个使用框架的开源应用程序,框架比文档更关键。因为这些应用是活着的,间接证明了这个框架还有生存的价值和能力,也可以成为更好的文档教材。Weex号称拥有一堆知名应用,但开源项目却乏善可陈。Xamarin(C#)Xamarin在IOS和Android的实现不一致。IOS中直接编译AOT,Android中使用桥接技术。用RubyMotion(Ruby)动态语言编写移动应用程序是语言社区的能力问题,需要证明语言的优越性和万能性。但除了爱好者之外,正确的做法是使用最高效的平台和语言。Ruby的强项在于web后端,所以在写APP上没有太多的继承性,写效率也因为太小而有丢失的风险。有一个免费版本,但它只支持最新的操作系统版本。Titanium框架的核心是使用JavaScript开发应用程序,这在形式上与Web开发有很大不同。所以从根本上说,这是一个脚本语言框架,与RubyMotion完全一样。5、自绘OwndrawApp自绘一直是游戏界面的势力范围。其实除了Flutter,其他框架都是偏向于游戏开发的。因此,Flutter的出现引起了很多人的关注。毕竟,这是真正跨平台的唯一可行方案。Flutter(Dart)除了使用Dart语言有点争议之外,Flutter是一个真正值得关注的跨平台解决方案,没有之一。最近,它的目标平台除了iOS和Android之外。FlutterDesktopEmbedding项目将Flutter引入桌面操作系统,Hummingbird项目将Flutter应用引入浏览器。它利用Dart平台的特性,不仅可以编译原生ARM代码,还可以编译JavaScript。这允许Flutter代码无需任何更改即可在基于标准的Web上运行。CrossApp(C++)CrossApp基于Cocos2d-x引擎,而Cocos2d-x基于OpenGL。9秒俱乐部由手游社区发展而来。由此可见CrossApp的背景,还有一些使用C++开发的忠实粉丝。Corona(Lua)更适合做游戏,不适合做应用,主要是界面部分,官方的UI代码非常难用,自己实现费时费力。Kivy(Python)是另一种动态语言开发框架,它与游戏引擎的结合使其在特定领域非常有市场。而且它跨windows平台,可以直接在windows下运行,可以真正实现跨平台运行。6、ProgressiveApp不仅有边下载边用的意思,还有下载完成后不依赖网络的意思。从类型上看,有谷歌主导的PWA(ProgressiveWebApp),也有微信主导的小程序。相比于PWA一统天下的野心,小程序显然是实用主义导向的,只要能用上就行,没有长远的布局。百度、支付宝、急于与微信竞争的快应用也复制了这种风格。随着各种跨平台翻译工具(比如Taro)的兴起,各个小程序平台也成为了专有的浏览器实现,成为前端千帧大战中的一个小小的注脚。PWA的全称是ProgressiveWebApp,即渐进式网页应用。与国内厂商的私有平台相比,谷歌主导的PWA从一开始就瞄准了下一代浏览器标准。与传统网页最大的区别在于引入了ServiceWorker,相当于一个本地服务器,离线时可以代替网站服务器继续工作。另外,PWA大致就是一个SPA(singlepagewebapp),对开放标准的继承性比较高。但由于各平台厂商(如微软、苹果)对PWA的态度不明朗,导致PWA的推广进展缓慢。MiniProgram微信小程序,由于微信的体积和使用频率,小程序可以承载足够的野心。但从技术上讲,它是一个拥有大量用户的浏览器实现。小程序和大量的追随者促使了多端统一框架的发展。TaroReact兼容跨平台多终端统一开发框架。一键生成代码,可运行在微信/百度/支付宝/字节跳动小程序、H5、ReactNative等,多端统一框架虽然貌似可以运行在不同类型的平台上,但还是要看那些平台工具,它只是一个生活在它之上的小程序。Nanachi司徒正妹开发的React兼容Anu框架的多端翻译脚手架。不过和塞满一堆工具的太郎相比,那那知只是个脚手架,实在是寒酸。不包起来?Chameleon-likeVue-like跨平台多终端统一开发框架。专门看了昨天发布的《Chameleon原理详解:其它跨多端统一框架都是假的?》。它有神奇的多态组件,就是重新定义一个组件声明框架;严格而全面的检查不会阻止您的代码跨平台;自适应代码比较多,听说有统一的后台接口,还有后台管理系统。好吧,玩得开心。趋势分析在国内,微信打通了小程序流量主的广告收入,点燃了小程序的热潮,进一步催生了多端翻译框架。但是这些框架做的不多。引擎还是React/Vue,他们只是针对各个平台做了一套统一的UI组件。由于个性化的原因,UI组件是大家一直想要统一,却又无法实现的目标。Taro框架只是在销售自己的一套UI组件。在我看来,最好提供一套允许和鼓励用户自己实施的组件“标准”。