一些跨平台技术方案的经验参考

news2024/11/26 9:31:11

今天就站在一个小开发的视角分享一下一个小项目是如何进行跨平台方案选型的

本系列文章先站在公司的的角度对产品技术选型进行分析,然后再根据我们项目实际开发经验进行汇总,供大家参考。

目前大前端技术也非常丰富,可以实现,一次开发,打包多个平台。

团队针对几个不同技术方案里进行了讨论:有比较老牌的Cordova、Xamarin、NativeScript,也有近几年比较火:React Native、Flutter、FinClip、Election

Xamarin

Xamarin是一个支持跨平台的框架,包括Web,iOS和Android。 它与单一编程语言c#集成在一起。 它有助于减少移动应用程序开发的时间和成本。 因此,简单来说,使用.NET和C#构建Android和iOS应用也是众所周知的

amarin.Mobile有很多优点。在这一框架内,开发 Android 和 iOS 应用可以不用转到 Eclipse 或者额外购买 Mac 并使用 Xcode,而继续在Visual Studio之中使用 C# 与 .NET Framework 进行。

而且性能性能接近原生、内置功能丰富(数千个自定义UI控件)。
缺点:稍微延迟支持最新的平台更新、对开源库的访问受限、Xamarin生态系统不大、与第三方库和工具的兼容性问题等等

Cordova

是使用HTML,CSS和JavaScript构建混合移动应用程序的平台。

官方文档给了我们Cordova的定义:

“Apache Cordova是一个开源移动开发框架,它允许您使用标准的Web技术,如HTML5,CSS3和JavaScript进行跨平台开发,避免每个移动平台本机开发语言。应用程序在针对每个平台的包装内执行,并依靠符合标准的API绑定来访问每个设备的传感器,数据和网络状态。"

Cordova的优势

Cordova为构建混合移动应用程序提供了一个平台,因此我们可以开发一个应用程序,将在不同的移动平台IOS,Android,Windows Phone,Amazon-fireos,黑莓,Firefox OS,Ubuntu和tizien上使用。

开发混合应用程序然后原生应用程序更快,所以Cordova可以节省大量的开发时间

由于我们在使用Cordova时使用JavaScript,我们不需要学习平台特定的编程语言。

Cordova(Ionic)缺点也明显,终究是个Web,性能体验太差了!

Flutter

Flutter由Google开发,它是一个牛逼的开源平台,可用于跨平台应用程序开发。

它具有吸引力的原因是:快速的开发,富有表现力的精美UI和类似本机的性能。

使用Flutter的一些公司是Google,eBay,宝马等。

选择Flutter框架进行跨平台应用程序开发的主要原因:

  • 高度稳定、平稳的开发周期、强大的热加载功能、DART,AOT编译语言、满足各种需求的UI套件

团队没有选择Flutter 的主要原因是Flutter on desktop也还是beta版本。

Windows PC和linux平台的兼容支持官方正在持续研发中。

FinClip

与上面Flutter、Cordova、Xamarin这些框架技术比起来 FinClip实在是一款轻便简洁的小工具,我们惊叹于它的灵活性!整体灵活又体积小巧(大概3M)。

FinClip 是一套小程序容器技术,也可以说是小程序SDK Runtime/Engine,提供 Runtime 基于浏览器内核,采用动态语言(JS)和声明式 View 构建(XML),并且兼容互联网主流小程序技术,可采用 vue、react 基础上的 DSL 框架。

这种容器技术与上述的跨端技术不仅不冲突,还可以兼容。不管是通过Flutter、Reactive Native、uni 、Taro等开发出来的小程序都可以通过FinClip运行。

小程序运行时方案的高性价比,主要体现在应用框架支持、应用体验以及宿主环境结合等方面。

应用框架支持方面
运行时方案不仅支持纯 wxml 微信小程序运行,还支持包括Flutter、Reactive Native、 uniapp等第三方框架集成的小程序。
应用体验方面
小程序技术是前端容器技术的一种应用,其组件及UI都有明确的规范,开发者不用考虑兼容性及类似H5开发时复杂工具及框架的选择。同时,由于组件及UI都是预设的,展示体验也会更佳。
宿主环境结合方面
小程序是基于App端实现的应用,其获取系统(App)的权限也会多于H5;目前小程序技术的发展已经趋于成熟,市面上小程序以运行时已经开始出现多智能终端设备的适配(基于Andriod系统的多终端屏幕适配)。

FinClip 的技术方案,目的就是要让任何行业的任何企业,均可以拥有自主打造小程序生态、发布管理小程序内容、在自己的各终端App中运行小程序的能力。

相信随着互联网浪潮的不断向前,会有越来越多的解决方案、框架会被提出,让我们拭目以待!

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/48275.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Shader中需要数学知识

在Shader的学习中,我们可能需要一些数学知识,我也是学习了一段时间,之前数学的知识都忘了,重新来一遍吧,我把学习的点分享一下。 向量: 点乘: 向量A向量B A向量的模 * B向量的模 * cosθ 一般…

深度学习与总结JVM专辑(五):类加载机制

类加载机制前言什么是类加载机制类的生命周期类的加载:查找并加载类的二进制数据链接验证:确保被加载的类的正确性验证?有必要吗准备:为类的静态变量分配内存,并将其初始化为默认值解析:把类中的符号引用转…

ZooKeeper 避坑实践:如何调优 jute.maxbuffer

作者:子葵 背景 在日常运维 ZooKeeper 中,经常会遇到长时间无法选主,恢复时进程启动又退出,进而导致内存暴涨,CPU飙升,GC频繁,影响业务可用性,这些问题有可能和 jute.maxbuffer 的…

Kotlin高仿微信-第17篇-单聊-转账

Kotlin高仿微信-项目实践58篇详细讲解了各个功能点,包括:注册、登录、主页、单聊(文本、表情、语音、图片、小视频、视频通话、语音通话、红包、转账)、群聊、个人信息、朋友圈、支付服务、扫一扫、搜索好友、添加好友、开通VIP等众多功能。 Kotlin高仿…

深度学习基础知识回顾

1. Dataset调用了什么接口? 回答应该是__len__方法和__getitem__方法。 之前写过一篇关于Dataset和Dataloader的介绍: http://t.csdn.cn/b4x0hhttp://t.csdn.cn/b4x0h 2. 目标检测里面用了哪些损失函数? 我的回答是Focal Lo…

【Linux】权限讲解

一、什么是权限 1、权限概念 权限随处可见,在生活中,腾讯非VIP用户不能观看VIP视频,看小说也需要会员,所以权限是限制人的,一件事是否允许被谁做。在Linux系统中也有许多权限,访问文件需要权限&#xff0c…

Kafka: Windows环境-单机部署和伪集群、集群部署

1. kafka 单机版部署 1.1 zookeeper 安装 (1)下载安装包 官网:Apache ZooKeeper 我用的是 apache-zookeeper-3.7.1-bin.tar.gz 注意:zookeeper的安装路径不要有中文,建议也不要有空格,比如Program Files这样的路径…

移动跨平台技术方案浅析

随着互联网产品逐渐兴起,越来越多产品体验从线下搬到了线上,尤其是移动互联网产品相关,所以很多企业就会更加重视降本增效,以最快的速度推出质量满意度高、用户体验性好的产品,那么就顺势催生了很多跨端跨平台方案。 …

并发编程九 线程池Executor框架

一 线程 线程是调度CPU资源的最小单位,线程模型分为KLT模型与ULT模型,JVM使用的KLT模型; Java线程与OS线程保持1:1的映射关系,也就是说有一个java线程也会在操作系统里有一个对应的线程。Java线程有多种生命状态 NEW,新建 RUNN…

一文带你深入了解Linux IIO 子系统

【推荐阅读】 一文剖析Linux内核中内存管理 分析linux启动内核源码 关于如何快速学好,学懂Linux内核。内含学习路线 工业场合里面也有大量的模拟量和数字量之间的转换,也就是我们常说的 ADC 和 DAC。而且随着手机、物联网、工业物联网和可穿戴设备的…

[第二十二篇]——Docker 安装 MongoDB

Docker 安装 MongoDB MongoDB 是一个免费的开源跨平台面向文档的 NoSQL 数据库程序。 1、查看可用的 MongoDB 版本 访问 MongoDB 镜像库地址: 。 可以通过 Sort by 查看其他版本的 MongoDB,默认是最新版本 mongo:latest。 你也可以在下拉列表中找到…

高校社团管理系统的设计与实现

摘要 随着互联网技术的高速发展,人们生活的各方面都受到互联网技术的影响。现在的社团成员可以通过互联网技术就能实现不在学校,在家也可以查看社团信息并能进行申请加入,简单、快捷的方便了社团成员的社交生活。同样的,在人们的工…

【Spring项目中的统一处理异常】

目录 1. 统一处理异常的机制 2. 关于统一处理异常的方法 3. 关于处理异常的方法的执行特点 1. 统一处理异常的机制 Spring MVC框架提供了统一处理异常的机制!表现为每种类型的异常只需要写一段(写一次)处理此异常的代码即可,项…

需求:针对同一个表格多次导入是否要做判断(此项目是用得若依)

每次上传表时,将上传的表名与以往上传的表名做对比,如果相同,则提示表已经有记录,是否上传相同表并结束此方法。 实现思路: 首先,每次上传表都要把表明记录一下,可以新建一个表(数…

天宇优配|离岸人民币狂拉逾千点!中概股暴涨!B站涨22%

当地时间周二,美股三大指数收盘涨跌纷歧。道指涨0.01%,标普500指数跌0.16%,纳指跌0.59%。 抢手中概股领涨,纳斯达克我国金龙指数大涨5.04%,哔哩哔哩(B站)涨超22%。大型科技股多数跌落&#xff0…

小程序中的confirm-type设置键盘的确认按钮

详情: confirm-type是很多小程序组件中的一种设置,用于改变输入键盘右下角的确认按钮。比如说,正常情况下,键盘上的默认提示可能是完成,但是你可以通过confirm-type将其设置为发送,搜索等,在特…

间隔不到一年开两店,温州鸿雁全屋智能经销商透露了他的生意经

作者 | 牧之 编辑 | 小沐 出品 | 智哪儿 zhinaer.cn编者按:间隔不到一年,连续开设了两家全屋智能体验店。这是发生在温州的渠道商故事。本期专访,「智哪儿」对话浙江林上智能科技有限公司总经理朱飞隆先生。他为何做智能家居?为何…

翻转单词序列、按之字形顺序打印二叉树、二叉搜索树的第k个节点

1、翻转单词序列 本题考点:子串划分,子串逆置 牛客链接 题目描述: 牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻…

Python数据库编程之关系数据库API规范

Python关系数据库API规范 对于关系数据库的访问,Python社区已经制定出一个标准,称为Python Database API Specification。Mysql,Oracal等特定数据库模块遵从这一规范,而且可以添加更多特性。 高级数据库API定义了一组用于连接数…

三十六、Java 泛型

Java 泛型 Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。 泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。 假定我们有这…