首页 > 其他分享 >移动端跨平台开发框架概览(IOS / 安卓)

移动端跨平台开发框架概览(IOS / 安卓)

时间:2023-02-05 01:22:24浏览次数:57  
标签:APP 框架 安卓 IOS React 跨平台 https Flutter Native

前言

在移动端开发项目中。开发资源不够时,同时由两个团队维护安卓和IOS两套原生APP是成本很高的。此时,就需要选择一个同时支持多平台的客户端开发框架,能够使用一套代码,编译出多平台的APP。

这样一方面能够缩减开发人数,节省开发成本。另一方面由于代码统一,避免了不同平台版本分叉,导致的用户体验差异。

本文简单考察了当前比较主流的客户端跨平台开发框架,我们来一起看看当前的主流框架有哪些。

Flutter

官网地址: https://flutter.dev/
项目地址: https://github.com/flutter/flutter

Flutter是由谷歌推出的多平台开发框架,项目主页对其自己的定义如下:

We think Flutter will help you create beautiful, fast apps, with a productive, extensible and open development model, whether you're targeting iOS or Android, web, Windows, macOS, Linux or embedding it as the UI toolkit for a platform of your choice.

它于2015年4月的Flutter开发者会议上被公布,Flutter是使用Dart语言编写,并利用该语言的许多高级功能。在Windows、macOS和Linux上,Flutter在Dart虚拟机中运行,该虚拟机具有即时编译执行引擎。在编写和调试应用时,Flutter使用即时编译功能进行“热重载”(Hot Reload),可以将对源文件的修改注入正在运行的应用中。Flutter通过支持有状态的热重载来扩展此功能,在大多数情况下,对源代码的更改可以立即在运行的应用中反映出来,而无需重新启动或丢失任何状态。Flutter实现的此功能已广受赞誉。
(引用:https://zh.wikipedia.org/wiki/Flutter)

React Native

官网地址: https://reactnative.dev/
项目地址: https://github.com/facebook/react-native

React Native看姓就知道是谁推出的了,不多说了。官方给的 slogen 是 Learn once, write anywhere. 项目主页对其自己的介绍为:

Create native apps for Android, iOS, and more using React
React Native combines the best parts of native development with React, a best-in-class JavaScript library for building user interfaces.

Use a little—or a lot. You can use React Native today in your existing Android and iOS projects or you can create a whole new app from scratch.

也有一些框架支持代码编译为 React Native, 来提供客户端开发支持,如京东的小程序开发框架 taro https://taro.jd.com/ ,以及 Vue Native

.NET 移动端开发

微软收购了 xamarin 后,也在继续发展基于C#的移动端跨平台开发,不过相较于 React Native 和 Flutter 属于不温不火的状态。xamarin 在这么多年以后,终于迎来了全新替代者,它就是MAUI。

MAUI的官方介绍

.NET Multi-platform App UI (.NET MAUI) is a cross-platform framework for creating native mobile and desktop apps with C# and XAML.

Using .NET MAUI, you can develop apps that can run on Android, iOS, macOS, and Windows from a single shared code-base.

延申对比: https://innowise-group.com/blog/net-maui-vs-xamarin/

UNI-APP / Taro

uni-app 和 taro 都是主打跨平台的小程序开发框架,只不过是一个用Vue2开发,一个使用 React。
uni-app 由 dcloud 开发,大概是国内推出小程序概念的最早公司了,甚至早于微信小程序。官方提供的框架,支持直接编译为安卓和ios应用。
taro 由京东开发,上面提过,是编译为 React Native 来提供移动APP支持。

官方地址:
uni-app https://uniapp.dcloud.net.cn/
taro https://taro.jd.com/

苹果 H5 热更新问题

之前苹果提出过应用市场的APP,不允许H5套壳,管控版本热更新。笔者移动端开发参与较少,一度以为 React Native, UNI-APP 之类的方案已经不能使用。不过今天再看并非如此,从UNI-APP社区讨论来看,正常使用 React Native / UNI-APP / Taro 应该不会遇到太大合规问题。

进一步浏览苹果的 H5 热更新问题:
https://zhuanlan.zhihu.com/p/138243490
https://ask.dcloud.net.cn/question/84952
https://ask.dcloud.net.cn/article/36654

总结

移动端跨平台框架之争,其实主要是 谷歌/微软/脸书 三家争霸。 在技术选型上,如果有前端开发人员参与,且熟悉 React / Vue, 那么可以使用 Taro - React Native / UNI-APP 。
如果前端资源不足,则可以考虑使用 MAUI / Flutter。

(本文内容没有经过详细深入的考察,仅仅是进行了信息收集,文中评判可能存在主观臆断情况,请读者自行评判。本文仅供参考。部分信息可能存在错漏,欢迎在评论区留言指正。)

标签:APP,框架,安卓,IOS,React,跨平台,https,Flutter,Native
From: https://www.cnblogs.com/wswind/p/17092545.html

相关文章

  • 乘风破浪,遇见最佳跨平台跨终端框架.Net Core/.Net生态 - 微软开源组件Open-XML-SDK,解
    Open-XML-SDKhttps://github.com/OfficeDev/Open-XML-SDKOpenXMLSDK提供了用于处理OfficeWord、Excel和PowerPoint文档的工具。它支持以下情况。高性能地生成......
  • vuex,state,mutations,actios,getters,mdoules
    vuex是做什么的vue组件之间进行数据传递还是比较麻烦的,所以我们使用一个vuex仓库,统一管理数据和状态通俗来说vuex就是专门为vue应用程序开发的状态管理模式,采用了集中式......
  • IOS打开对应后缀文件
    IOS打开对应后缀文件通过ShareExtension打开点击文件共享后出现的上方列表,如下图在info.plist中添加Documenttypes<key>CFBundleDocumentTypes</key> <array>......
  • axios二次封装,mock前端模拟后端接口
    axios二次封装封装request,然后不用每次遇到接口就使用axios进行调用接口。封装一个基地址,然后每次调用接口的时候,只用写出来自己的函数方法就好。我们基于脚手架进行封装......
  • axios 请求
    完整文档官网文档html<inputtype="file"multipleid="files"><buttononclick="postAxios()">上传文件s</button><pid="files_progress"style="width:0px;heig......
  • 推荐一个跨平台支持Word, Excel, CSV, Email等30多种格式的操作库
    更多开源项目请查看:一个专注推荐优秀.Net开源项目的榜单在我们日常项目开发中,经常需要解析操作文档,比如Office文档、Email文件、PDF、Xml、图片、Mp3等音频文件,操作Offi......
  • 杂谈-iOS马甲包
    什么是马甲包马甲包一般是主APP的分身或者克隆,也或者说是穿着马甲的一个APP,脱掉马甲,APP将呈现另一种样式,也就是常说的AB面APP。1、主APP的分身或者克隆类型的马甲包先说......
  • Python fir 下载脚本兼容iOS
    思路方法一:类似Android处理,用接口下载文件后,直接通过数据线进行安装方法二:通过服务端返回下载URL,iOS用快捷指令处理 最后选取的第二种方法。对之前脚本做如下修改:1......
  • iOS打IPA包
    <欢迎大家加入iOS开发学习交流群:QQ529560119>1.点击工程Project2.设置自己App的证书[记得这里是设置Target的证书,而不是Project的证书]3.点击Project->Edit-Scheme设置一下......
  • 安卓应用漏洞学习case7
    安卓应用漏洞学习case7前期回顾漏洞免费实战部分-安卓应用层getLastPathSegment函数问题漏洞实战部分2-安卓应用ZipEntry对象问题实战漏洞实战部分3-ContentProvider......