阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

对移动端技术发展的一些思考

  • 2020-02-14
  • 本文字数:2295 字

    阅读完需:约 8 分钟

对移动端技术发展的一些思考

这篇文字,希望通过回顾客户端技术的发展历程,尝试对移动端技术的未来发展,来作出一些分析判断。


客户端的职责


如果不考虑单机版的工具类应用,对于客户端来说,无论是 PC 电脑也好,还是移动设备也好,从业务的场景来看,都是一种终端设备,属于整个业务信息流的末端。因此对于大部分客户端来说,其核心的工作内容,就是从服务端获取加工完毕的数据,然后以一种用户友好的方式展现出来。因此,客户端的所有技术,所有的开发工具链条,都应该是为了这个目的而服务,去追求最大的开发效率和最小的开发和实施成本。


移动的兴起和 PC 的衰退


从 2007 年 1 月苹果发布第一台 iphone 开始,移动设备领域有了翻天覆地的变化。随之而来的,移动端的应用场景也如火如荼的发展了起来,对传统的 PC 客户端造成了很大的冲击,许多原来的 PC 应用都纷纷转战到了移动端。从 2007 年到 2017 年,这十年间,客户端计算经历了从 PC 时代向移动设备时代的迁移。


移动端的兴起,随之而来的移动端相关的开发技术也慢慢的从初显头角到今天的风起云涌,百花起放。而反观 PC 端的开发技术则仿佛被打入了冷宫,如今已经少有人问津了,甚至连 PC 端的主场—游戏领域,如今也被手游占据了大半的江山。


PC 端技术的发展演变


回顾 PC 端技术的发展历史,有一个非常明显的脉络,就是 PC 端经历了一个从 C/S 模式向 B/S 模式演变的过程。当时的 C/S 模式已经非常成熟,但是相比较 B/S 模式的一次部署,到处运行的特点来说,C/S 模式的部署和维护成本非常的高昂。因此,当浏览器技术趋于稳定和成熟之后,基于浏览器的 B/S 模式就很快发展起来,取代了 C/S 模式的地位。


在 C/S 和 B/S 模式争锋的那个年代,C/S 模式的拥护者曾认为,C/S 模式能够利用 PC 端强大的本地计算能力,提供更复杂的交互和展现能力,并能够为服务端分担一定的业务逻辑处理,减轻服务器的压力。由此而引出了著名的胖客户端和瘦客户端理念的争论。


但是,从现在再回头看过去,历史早已做出了选择。B/S 模式的兴起,一方面是由于 B/S 天生所具有的客户端零部署免维护的优势,另一方面,也证明了瘦客户端理念在这一场交锋中的胜利。也正是从这个时期开始,业务逻辑的处理更多的下沉到了服务端,客户端从此更专注于数据的展现。而随着硬件的更新换代,浏览器技术的迅速发展,浏览器的各方面能力也得到了极大的加强,很多当时认为无法在浏览器上做到的事情,现在也都在浏览器上一一的实现。


移动端技术的发展演变


1505804323698088584.png


移动端从 2007 年的兴起,到今天也已经经历了十年的发展。虽然到今天,Native App 的开发方式依然是主流,但是混合式的开发模式(Hybrid App)也占据了应有的一席之地。现在移动端的整个生态环境,虽然是繁花似锦,但在背后也隐藏着很多的问题。


首先,由于 iOS 和 Android 两大阵营的割裂,导致了每一款 App 都需要维护两支单独的研发队伍。为了解决这个问题,微软提供了 Xamarin 技术,Facebook 提供了 React Native 技术,两者一方面可以帮助有经验的后台/前端开发人员迅速平滑的利用现有的知识切入到移动端的开发工作中,另一方面也在一定程度上解决跨平台的问题。但是,两家的技术方案依然存在很多的瑕疵和各自本身的限制,从整体上来看,跨平台是移动端目前很难以圆满解决的一大问题。


其次,从本质来看 Native App 开发模式,与 PC 时代的 C/S 开发模式非常类似,同样也存在着部署和维护成本高昂的问题。当下的一些混合了 H5 页面/框架的混合式(Hybrid)编程,也只能说是一种过渡方案,可以解决一部分的问题。而面对 App 的大版本更迭变动,依然要解决发布新版和通知用户更新的的问题。


对未来的思考,WebView App?


对于移动端来说,对比同样是客户端的 PC 端来看,我们是否会有以下的这些问题浮现而出:


移动端的未来是否也会向着基于浏览器的技术体系迁移?目前 Native App 模式所面对的问题和所存在的缺陷,不正如当初 PC 客户端一样吗?而 Native App 的模式是否也会因此被淘汰?


资治通鉴说,以史为鉴,可以知兴衰。历史也总是惊人的相似,从我个人的角度来说,我认为最终基于浏览器内核的 App 开发方式会成为移动端开发模式的主流(为了方便称呼,对于这种模式,且暂称之为 WebView App),而这其中,混合模式(Hybrid App),恰好是一个非常好的过渡。


那么未来的移动端会成为什么样子,WebView App 的开发模式会是什么样子?结合当前的技术趋势,让我来做一些大胆的猜想:


1.网速的不断提升,硬件机能的不断提升,浏览器真正成为系统核心的一部分。


2.一个 APP 就是一个网络资源(URI)的入口,Hybrid 模式宣告消亡。


3.APP 的分发机制,会从传统的提交 APP 文件到应用商店,变成到应用商店注册 APP 的 URI 地址。


4.Native App 的方式依然会存在,但使用场景仅限于一些有着特殊要求的应用之中(游戏,本地工具等)。


5.JavaScript 将成为打通前端,移动端,后端的强势语言,依托类似 TypeScript 这样的强大工具,开发工具链条无缝衔接在一起。


6.客户端开发者的核心工具将会以 HTML/CSS/JS 为主


7.OC/Swift 这一类平台相关性较强的语言将慢慢式微,最终可能消亡。


8.跨平台可以成为现实,移动端的研发团队也不再需要区分 Android 和 iOS。


所欠缺的只是时间


以上的猜想,只是我个人的一点思考。可能有幸言中,也可能差之千里。未来是未知的,有着无数种可能,而变化总是在不知不觉中一点点的发生,希望这篇小文章,对于热爱移动端开发的朋友们有所帮助。


而对于未来的变化和发展,只有不断的学习,不断的充实自己,才能够更好的面对。也许三年,也许五年,一定会有新的技术浪潮到来,所欠缺的,只是时间。


本文转载自宜信技术学院网站。


原文链接:http://college.creditease.cn/detail/142


2020-02-14 18:472048

评论 1 条评论

发布
用户头像
Your idea is too ideal
2021-07-05 17:12
回复
没有更多了
发现更多内容

Prometheus Exporter (十三)Elasticsearch Exporter

耳东@Erdong

elasticsearch Prometheus exporter 11月日更

Flutter 2.5 的新特性【Flutter专题12】

坚果

flutter 签约计划第二季

盘点Flutter领域的点点滴滴 【专题合集】

坚果

flutter 内容合集 签约计划第二季 技术专题合集

深入学习 SAP UI5 框架代码系列之一:UI5 Module 的懒加载机制

Jerry Wang

JavaScript SAP 签约计划第二季 ui5 技术专题合集

【高并发】如何使用Java7提供的Fork/Join框架实现高并发程序?

冰河

Java 并发编程 多线程 高并发 异步编程

[Pulsar] 消息从Producer到Broker的历程

Zike Yang

Apache Pulsar 11月日更

URL URI傻傻分不清楚,dart告诉你该怎么用

程序那些事

flutter dart 程序那些事 11月日更

为什么我的 C4C Service Request 没办法 Release 到 ERP?

Jerry Wang

Cloud SAP abap C4C 11月日更

跟小师妹一起学JVM-系列文章

程序那些事

Java JVM JIT 内容合集 签约计划第二季

新成就!OceanBase 入选 Forrester 首份分布式数据库报告

OceanBase 数据库

数据库 开源 新闻 oceanbase 荣誉

CSS之盒模型

Augus

CSS 11月日更

k8s statefulset controller源码分析

良凯尔

源码 Kubernetes 源码分析 #Kubernetes#

转型中的学习型组织 ——阅读《第五项修炼》有感

研发管理Jojo

系统性思考 企业转型

Flutter自定义日历【Flutter 专题 11】

坚果

flutter 签约计划第二季

深入学习 SAP UI5 框架代码系列之三:HTML 原生事件 VS UI5 Semantic 事件

Jerry Wang

JavaScript SAP 签约计划第二季 HTML原生事件 技术专题合集

Skip List(跳跃列表)它到底好在哪?今天我们不仅只聊为什么,还手写一个玩玩

李子捌

redis skiplist 签约计划第二季

限流系列文章——滑动窗口限流

李子捌

redis 限流 签约计划第二季

Linux 调优之:调整 bond hash 策略提升网络吞吐能力

卫智雄

SAP Cloud for Customer Price 计价简介

Jerry Wang

Cloud SAP C4C 11月日更 pricing

JSON 数据格式

大数据技术指南

11月日更

限流系列文章——漏斗限流

李子捌

redis 限流 签约计划第二季

2021年大数据开发发展趋势

五分钟学大数据

11月日更

Flutter 中的手势【Flutter 专题10】

坚果

flutter 签约计划第二季

CloudPosse 的 Terraform 最佳实践

大可不加冰

DevOps 基础设施即代码 IaC Terraform HashiCorp

音视频理论(1)- 音频格式之 Monkeys Audio(APE)

liuzhen007

签约计划第二季

限流系列文章——令牌桶限流

李子捌

redis 限流 签约计划第二季

李子捌 Redis精通系列文章 研究分享| 内容合集

李子捌

redis 内容合集 签约计划第二季 技术专题合集

数据分析从零开始实战,Pandas读写Excel/XML数据

老表

Python 数据分析 Excel pandas 11月日更

云原生训练营作业--部署k8s集群

好吃不贵

深入学习 SAP UI5 框架代码系列之二:UI5 控件的渲染器

Jerry Wang

SAP 签约计划第二季 ui5 渲染器 技术专题合集

畅聊分布式体系架构

DisonTangor

分布式架构

对移动端技术发展的一些思考_文化 & 方法_无线研发部_InfoQ精选文章