移动端动态开发能力的由来和流派

news2024/9/23 11:22:22

移动端动态化的由来

“动态化”并不是最近几年才产生的名词,而是从从互联网诞生的初期,这个词就已经出现了。大家所认知的早期互联网,其实就是各种各类的“动态网站”,内容数据和页面外观都不是固定的,都是随着服务器端的更新而更新的,让用户可以很及时地看到最新的内容。因此,动态化可以说是互联网的标志,是互联网最核心的特性之一。

而移动互联网的普及,移动端被各类原生应用所占据,而这些应用更近似于 Software,依托于应用市场进行更新,只有其中的数据是实时的。这样,每次产品的更新,必须依赖用户的主动更新,从而造成了一定的用户成本,不利于产品的快速迭代,降低应用的试错能力。因此,移动端动态化方案逐渐走进大家的视野,并被大家所关注。

从一开始基于 WebView 的 Hybrid 方案 PhoneGap、Titanium,到现在与原生相结合的 React Native 、Weex,甚至 Flutter,都被或多或少地使用到不同的移动应用中。

 原生开发能不能动态化?准确的说是能的,而且 Android 平台各公司都有很完善的动态化方案,甚至 Google 还提供了 Android App Bundles 让开发者们可以更好地支持动态化。而反观 iOS,由于 Apple 官方担忧动态化的风险,因此并不太支持动态化(去年还封杀了 JSPatch 等一类动态修复方案),因此比较通用的原生动态化方案几乎没有,只有各大厂自己实现的一些动态化框架。

动态能力建设方向流派众多

如何选择动态能力建设的流派,主要从研发成本、兼容性、动态能力、稳定性、操作体验等方面判断,需要根据团队的实际情况来进行选择。

简单叙述一下动态化能力建设的主要流派:

1、React-Native

  • 优点:历史悠久、资料丰富、学习楷模
  • 缺点:兼容性一直被诟病,坑太多玩不动
  • 典型代表:Facebook、Linkedin

2、原生+H5

  • 优点:平衡性佳、研发可控能力好
  • 缺点:原生部分动态能力欠缺
  • 典型代表:Hybrid方式依然占据大部分市场

3、原生+小程序(另一种Hybrid方式)

  • 优点:同样拥有平衡性和研发可控性的优点,体验接近原生,小程序的性能是有目共睹的
  • 缺点:与h5一样原生部分动态能力欠缺
  • 典型代表:依然是Hybrid方式,微信、支付宝、美团、FinClip

4、weex flutter

  • 优点:性能动态能力兼顾
  • 缺点:开发成本高、异构风险大、IDE体系弱
  • 典型代表:阿里系

5、纯H5化

  • 优点:节省开发资源,动态性最好
  • 缺点:兼容性问题多,体验尚与原生有差距
  • 典型代表:腾讯系

当然也有纯原生的,所剩无几就不讨论了。

动态化流派众多,各有利弊,没有最好,各个团队需要根据自己的项目选择最合适的方式。以我们团队为例,目前选择了Native+小程序的结合,通过在APP中引入 FinClip小程序容器技术,让App具备小程序运行的环境。从而实现这种基于小程序的Hybrid的方案。以下简单介绍一下Native+小程序的模式有哪些优点:

首先基于小程序的Hybrid方案,是通过更加定制化的 JSBridge,并使用双 WebView 双线程的模式隔离了JS逻辑与UI渲染,形成了特殊的开发模式,加强了 H5 与 Native 混合程度,提高了页面性能及开发体验。

小程序运行时本质上是一个处理Web页面渲染、数据逻辑交互的虚拟机,这个虚拟机提供了丰富的原生能力供小程序调用(API、组件、AI能力等),极大的拓展了Web应用的能力边界,尤其是在诸如滚动视图(scrool-view)、导航(navigator)、图片预览(cover-image)等组件的提供,使得前端开发人员在使用现有的web前端技术,就可以开发出接近原生体验的应用。

除了体验的大大提升,基于小程序的动态化方案相比其他方案,还有以下优势:

跨平台:小程序可以在微信、支付宝等平台中运行,具有良好的跨平台性,可以在不同的平台上进行应用开发和发布。

无需下载安装:小程序不需要下载和安装,用户可以直接通过扫描二维码或搜索即可进入应用,降低了用户的使用成本和门槛。

快速迭代:小程序可以实现动态更新,开发人员可以随时更新应用的业务逻辑和界面交互逻辑,快速迭代和优化应用,提高用户体验。

灵活性:小程序使用的是基于HTML、CSS和JavaScript的开发方式,支持动态化配置和定制,开发人员可以根据用户需求进行个性化的应用定制。

低成本:小程序的开发成本相对较低,可以通过第三方小程序开发平台或开发工具快速搭建应用,降低了应用开发的成本和门槛。

基于小程序的动态化方案具有跨平台、快速迭代、灵活性、低成本等优势,适用于中小型企业或个人开发者开发轻量级应用的场景。

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

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

相关文章

Bash脚本中的Sleep命令到底有何妙用?

在编写Bash脚本时&#xff0c;有时需要在程序执行过程中加入一些等待时间&#xff0c;例如等待某个操作完成或等待某个进程退出。此时可以使用sleep命令来实现。 sleep命令可以让脚本暂停执行一段时间&#xff0c;其基本语法为&#xff1a; sleep <seconds>其中&#xf…

细数【SD-WEBUI】的模型:谁是最适合的模型从哪里找到它们

文章目录 &#xff08;零&#xff09;前言&#xff08;一&#xff09;基础模型&#xff08;Stable-Diffusion模型&#xff09;&#xff08;1.1&#xff09;ChilloutMix&#xff08;仿真&#xff09;&#xff08;1.2&#xff09;BasilMix&#xff08;仿真&#xff09;&#xff0…

如何使用 Linux Cron Job 优化WP-Cron以获得更好的性能

在本教程中&#xff0c;我将向您展示如何通过在 Linux 上用 Crontab 替换默认的 WP-Cron 触发机制来优化 WordPress 性能。 WordPress 使用 WP-Cron 来运行计划任务&#xff0c;许多用户已经在使用。 但它的工作方式并不理想。 在每次页面加载时&#xff0c;WP-Cron 检查计划…

在Centos7上安装和配置canal

1. 在 MySQL 数据库中创建 Canal 账户并为其授权 在安装 Canal 前&#xff0c;你需要在 MySQL 数据库中创建一个用于 Canal 连接的账户&#xff0c;并为该账户授予必要的权限。 以下是在 MySQL 数据库中创建 Canal 账户并为其授权的步骤&#xff1a; 登录 MySQL 使用以下命令…

B019_子查询篇

2022-4-30 18:11:32 通过本章学习,您将可以: 描述子查询可以解决的问题。 定义子查询。 列出子查询的类型。 书写单行子查询和多行子查询 MEGER INTO的使用 WITH 子句🏆CHAPTER 12 Subqueries & Merge Statements子查询和合并语句 子查询——嵌套在另一个查询中的查…

MyBatis:使用代码整合

文章目录 MyBatis&#xff1a;Day 04框架1. 依赖&#xff1a;pom.xml2. 外部配置文件&#xff1a;db.properties3. 核心配置文件&#xff1a;mybatis-config.xml4. 实体类5. 接口&#xff1a;xxxMapper.java6. 实现类&#xff1a;xxxMapper.xml7. 测试 MyBatis&#xff1a;Day …

DTC 2023回顾丨基于数据复制技术的多写多读数据库集群解决方案

在不久前结束的2023 DTC数据技术嘉年华中国数据库创新论坛上&#xff0c;GBASE南大通用8s产品经理郭茁老师分享了GBase 8s《基于数据复制技术的多写多读数据库集群解决方案》。 今天带大家一同回顾下本次演讲。 海量数据的存储和运算是目前行业内面临的一个重要问题&#xff0…

真实logging的构建

import logging import os.path import timeimport colorlog from logging.handlers import RotatingFileHandlerdefault_formats {# 终端输出格式color_format: %(log_color)s%(asctime)s-%(name)s-%(filename)s-[line:%(lineno)d]-%(levelname)s-[log-messge]: %(message)s,…

【Hydro】半图解法调洪演算步骤,附Python代码

说明 半图解法计算步骤如下: (1)根据水位&#xff5e;库容关系、水位&#xff5e;泄流关系以及计算时段等绘制辅助曲线&#xff1b; (2)确定起调水位 Z 1 Z_1 Z1​及相应的 q 1 q_1 q1​、 V 1 V_1 V1​计算各时段平均入库流量 Q p Q_p Qp​&#xff1b; (3)在水位坐标轴上确定…

使OpenGauss支持Python3存储过程

目录 一、概述 二、编译opengauss支持Python3存储过程 三、还有问题 一、概述 OpenGauss是可以支持以Python2、3编写存储过程的&#xff0c;但是这个功能默认不开启&#xff0c;想要这个功能要自己编译源码&#xff0c;目前这部分源码感觉不够成熟&#xff0c;还有一些问题&…

Linux必会100个命令(六十)curl

在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具&#xff0c;可以说是一款很强大的http命令行工具。它支持文件的上传和下载&#xff0c;是综合传输工具。 curl选项比较多&#xff0c;使用man curl或者curl -h获取帮助信息。 -a/--append …

ClickHouse学习笔记(五):ClickHouse 副本与分片

文章目录 1、概述2、数据副本2.1、副本的特点2.2、副本的定义形式 3、ReplicatedMergeTree 原理解析3.1、数据结构3.1.1 ZooKeeper 内的节点结构3.1.2 Entry 日志对象的数据结构 3.2、副本协同的核心流程3.2.1、INSERT 的核心执行流程3.2.2、MERGE 的核心执行流程3.2.3、MUTATI…

【LeetCode股票买卖系列:714. 买卖股票的最佳时机含手续费 | 暴力递归=>记忆化搜索=>动态规划】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

【Vue 基础】尚品汇项目-07-动态展示三级联动数据

由于TypeNav是全局组件&#xff0c;因此将“src/pages/Home”中的“TypeNav”文件夹移动到“src/components”文件夹中 在main.js中修改TypeNav的路径 删除测试请求部分代码 当组件挂载完毕&#xff0c;可以向服务器发请求&#xff0c;然后获取数据&#xff0c;显示数据了。在“…

maven从入门到精通 第二章 Maven中运行Java与Web项目

这里写自定义目录标题 一 maven中运行Java项目1.新建项目2. 运行项目2.1查看当前目录2.2 编译项目2.3测试当前项目2.4 生成jar包2.5 迁移数据位置 二 MAVEN中执行Web项目1.配置项目1.1 配置 web.html1.2 配置index.jsp1.3 注册servlet1.4 直接编译运行&#xff0c;发现配置失败…

机器人工程学习和研究的结构性失衡

结论&#xff1a;无解&#xff0c;谁是那屈指可数的幸运者/(ㄒoㄒ)/~~ 供给&#xff1a;培养的机器人工程专业人才 需求&#xff1a;市场企业主体招聘的相关人才 不匹配&#xff0c;错配&#xff0c;导致供给无效。 机器人工程学习和研究的结构性失衡可能是由多种原因导致的…

Java学习-MySQL-备份

Java学习-MySQL-备份 为什么要备份&#xff1a; 1.保证重要的数据不丢失 2.数据转移 MySQL数据库备份的方式&#xff1a; 1.直接拷贝物理文件 2.在Sqlyog 这种可视化工具中导出 3.使用命令行导出&#xff0c;mysqldump&#xff0c;命令行使用 Sqlyog导出表 1.右键表 → 备…

智慧畜牧三维可视化,图扑数字孪生赋能现代农业

前言 "畜牧业是我国重要的农业产业之一&#xff0c;对于国民经济的发展和人民群众的生活具有重要的意义。智慧畜牧作为现代畜牧业的发展方向之一&#xff0c;将信息技术和现代管理相结合&#xff0c;提高养殖效率和品质&#xff0c;为行业的可持续发展注入新的动力。智慧…

PySpark基础入门(5):Spark 内核调度

目录 Spark 内核调度 DAG 内存迭代计算 Spark并行度 Spark任务调度流程 Spark 内核调度 Spark任务调度&#xff1a;如何组织任务去处理RDD中每个分区的数据&#xff0c;根据RDD的依赖关系构建DAG&#xff0c;基于DAG划分Stage&#xff0c;将每个Stage中的任务发到指定节…

盘点那些免费开源、无比精致的图标库,无论是设计还是开发,都很好用

之前分享过很多好看精致的图标库&#xff0c;这对日常设计和开发工作&#xff0c;都很方便&#xff0c;欢迎大家尝试。 css.gg 详细介绍&#xff1a;https://www.thosefree.com/css-gg 一套漂亮的纯 CSS 实现的免费开源图标库&#xff0c;700多个时尚漂亮的 css 图标库&…