移动前端开发和Web前端开发的区别是什么?浏览器安卓pc

十多年前的前端,开发者还在为兼容IE6而头疼,框架上jQuery是老大,有追求的前端开发可能会使用Zepto.js以减少网页体积。这个时候,前端页面主要还是以PC为主,这个时候根本没有移动前端的概念,在小小的手机屏幕上流量的页面则是以纯文本为主。

阶段二:工程化

在2011~2014年之间的历史阶段里,模块化的思路占为主导。当时为了进行Assets资源加载器的设计,就制定了模块化的协议规范。当时比较流行的模块化协议就是AMD(RequireJS)、CMD(Seajs为代表)、KMD(Kissy为代表)。在淘宝、天猫,Kissy应用的很火,所以KMD主导天下;在支付宝及外部社区,Seajs应用的很火,所以CMD主导天下,玉伯大大的名气和威望也在前端圈里特别高;而AMD在国外比较流行,但渐渐也被后来出现的CommonJS规范削弱了气势。

阶段三:移动化

随着3G、4G的发展和iOS和Android手机在市场的普及量大增,PC业务主战场也逐渐过渡到移动端。前端的思维模式由PC转向了移动端,并向App的用户体验看齐。移动端的HTML5协议支持不完善,前端的生产配套不全,Android的屏幕碎片化,所以那个时候的前端开发移动端页面适配的痛苦要远远超过PC时代。

阶段四:框架化在前端社区,Angular、React、Vue、RN(ReactNative)这样的MV*框架一个接着一个出现,让前端接受了数据驱动思想的洗礼之外,还借助RN完成了移动端的体验升级,包括后来的Weex、Flutter。

在这个阶段,前端开始有了终端的底层架构组,开始构思前端页面在移动终端上的加载性能和用户体验表现。在阿里巴巴内部,为了解决多端复用的问题,Rax借助VDOM打通WebView和Weex两端,一套代码跑天下。

阶段五:垂直化随着初代iPhone的发布,大屏幕手机逐渐变成了主流,移动端的需求开始爆发。在淘宝天猫,每年双十一的移动端成交额逐年攀升,并逐渐占领绝对领先地位。前端的领域也随着这种趋势逐渐细分,按照场景可以简单分为移动(无线)前端开发和中后台前端开发。

移动前端开发面向的是消费者端的Web与轻App业务场景,在这个场景下,淘系经过多年的营销活动沉淀,逐渐形成了移动端独特的、轻量级的解决方案,以及模块维度的、面向运营的页面搭建系统。

中后台前端则是面向企业ERP、CRM、OA等偏后的业务场景,如商家后台等系统。在这个场景下,借助飞冰、FusionDesign等中后台物料,形成可视化的中后台搭建解决方案,为业务的前端、开发或产品角色提供一站式中后台生产解决方案。

移动前端:混合技术的前世今生

曾几何时,移动客户端开发和前端开发是两条没有交集的平行线,但现在我们越来越拥抱两者的合作产物:混合式(Hybird)应用开发,或者用最近比较火的一个概念--大前端技术。

从技术的表现形式思考,本质上客户端开发与前端开发都是终端技术,它的特点是直接面向用户UI编程。

同是UI编程,我们面对的痛点是什么?

传统Web前端技术的技术局限性

1、资源加载:HTML、JS、CSS、图片等静态资源存放于远端的服务器,需要动态的异步拉取,再拉取数据进行展示,初始化效率上比Native慢的多

2、渲染机制:在浏览器的设计中,JS的执行和页面的布局、Paint都在同一个主线程,无法并行化,再加上JS的性能赶不上AOT语言,执行复杂逻辑时导致的卡顿通常会阻塞UI,再加上冗长的渲染管线,导致浏览器的渲染体验在等量对比Native时并不占优势。

3、页面切换:在浏览器中并不存在路由的概念,这导致页面间的切换体验完全依赖于浏览器Shell提供的能力,在页面切换的时候会反复加载。当然前端社区中也出现了单页面应用的概念,但是多个页面的资源也显著增加了JSBundle的体积,也使页面的开发更加复杂化了。

4、API能力:浏览器的安全机制是基于同源策略的沙箱机制,这套沙箱机制阻止了前端开发者使用原生系统能力,你只能使用W3C标准定义的功能,而且考虑到终端碎片化的问题,这些接口往往不能直接使用。这在PC端的场景中是没有什么问题的,但是在移动端则相反,开发者希望有能力调用系统接口实现一些更富交互的场景。

5、交互性能:浏览器的实时交互性能体验差,在复杂交互场景中大规模的重排限制了UI帧率,这种限制在中低端移动设备中尤为严重。

6、脚本语言,动态解析执行

JS是一门JIT语言,也就是需要动态解析执行,对比预先编译机器码的AOT语言的执行性能就差得多了。

传统客户端技术的局限性?

1、动态性:客户端开发通常是有固定的版本发布计划,而且受制于Apple的AppStore审核规则,版本发布的不确定性还会受到政策影响,Android在国内的渠道众多,每次发版都要反复检查渠道,一旦发现线上问题需要依赖再次发版,容错成本非常高,这也大大增加了对业务的局限性。

2、开发成本:客户端的开发成本高,然而生态还不如Web丰富,npm社区的几万开源包,加上更活跃的开发者社区,导致对企业来讲客户端的研发成本是高于Web开发的。

3、跨端一致性:传统客户端开发一套业务,是需要实现Android+iOS两套代码的,而且由于Android和iOS的操作系统能力差异,同样的需求往往会用不同的视觉和交互来实现,这也导致了业务成本居高不下。

混合式前端开发

为什么会出现混合式前端开发?

从阿里巴巴的角度来看,随着中台化的理念逐渐被接受:业务需要追求快速发展,前台的UI和需求会随着商业决策快速迭代,前端和客户端不同的岗位也形成了分工化的研发模式。

前端向上,前置作为业务方的唯一接口,逐渐演变为大前端的业务层。在这一层,它的职责是负责定义规范,通过框架规范业务的开发过程,同时封装统一的解决方案和工程化能力,将重复的工作抽离。

客户端向下扎,解耦业务需求,转为大前端的架构层,给上层的业务开发者提供能力支持。通过将客户端的系统级API以及宿主应用的能力暴露给上层前端,提高前端页面对更多富交互场景的承载能力。

在这样的大背景下,各种混合开发技术层出不穷,在这里我们简单的把混合式应用的发展定义为三个阶段:

阶段一:JSBridge

在这个阶段,主要还是以WebView为主,并配合JSBridge提供了Naive与JS之间的通信链路,基于这个通信基础,Native可以暴露出一些标准服务API提供给JS调用,同样的JS也可以以此封装一些基础API给Native调用。前端开发者使用传统的JS+HTML+CSS进行页面的开发,并且调用JSBridgeAPI驱动客户端能力。在这个阶段,ApacheCordova是业内的佼佼者,大多互联网公司内部也有自己的JSBridge框架实现,可以说JSBridge第一次给了前端开发者调用Native的能力。

但是JSBridge方案的主要缺点在于性能方面及高级组件扩展能力缺失,流畅性始终无法与Native媲美。

阶段二:原生UI

虽然Web的动态性和高效的开发效率,是原生开发望尘莫及的,但是浏览器技术的瓶颈也非常明显:

1、W3C作为开放的技术标准,历史悠久,包袱多,显著拖慢了浏览器的性能。

2、WebView渲染引擎设计的上的缺陷,渲染流水线非常长,导致浏览器对合成器动画和非合成器动画区别对待,非合成动画性能不好。

3、单线程模型,无法发挥现代硬件架构特别是ARM架构多核心的性能。

4、异步光栅化的设计,在进行长列表滚动时,不可避免出现白屏的现象。

**有没有一种两全其美的方式

ReactNative/Weex的出现给前端开发者带来了一道曙光。**

ReactNative/Weex利用JS引擎来调用Native端的组件,从而实现相应的功能。ReactNative和Weex都允许前端开发者使用JS进行业务逻辑开发,使用VDOM来描述文档结构,并配合CSS的子集来定制样式,样式和模板分离。

Weex体系中,JS的执行在JSThread,Layout执行在独立的LayoutThread,渲染执行在系统的MainThread,三个线程相互独立,并行执行。

在WebView的体系中JS的执行、Layout、Paint都在MainThread,相互影响,在进行复杂任务时会导致界面卡顿。

这种方案的优势在于最大化的复用前端的生态和Native的生态体系。

在阿里巴巴,Weex的大规模应用,甚至支撑起了双十一亿级的流量。

阶段三:自绘引擎什么是自绘引擎?

所谓自绘引擎,就是不依赖操作系统提供的布局、原生组件能力,直接调用GPU或者底层抽象层进行绘制的渲染引擎。

在上一个阶段,前端开发者已经可以使用JS引擎驱动原生UI了,为什么还需要自绘引擎?

ReactNative/Weex充分将Native的View体系输出到前端体系中,在进行Android/iOSNativeView的封装过程中,存在不少难以逾越的障碍。如:难以抹平的双端一致性问题、复杂样式能力难以实现、Layout动画需要执行两次(WeexCoreLayout和AndroidNative本身的Layout)。组件的封装成本随着复杂度增加也越来越高,难以逾越NativeView限制提供更细致的W3C标准能力。

但是Flutter本身是缺乏动态更新特性的,社区上也有一些项目在探索Flutter的动态化特性,我们团队内部也在实现面向前端的动态化Flutter引擎:Kraken,与其它方案不同的是Kraken并没有基于Flutter自带的Widgets框架进行扩展,而是从底层扩展了W3C标准的API,这使得它更像一个浏览器,也让Flutter面向Web开发者的使用门槛大大降低。

未来:回归本源

天下大势,分久必合,合久必分。移动前端开发本质上还是终端开发的一种形态,不管容器、框架、语言怎么变,在前端开发者中只有W3C的标准是永远不变的。笔者认为,随着Web的发展,在解决一系列性能、体验问题之后,浏览器技术会成为更通用的UI编程标准。

PWA

早些年,Google就已经在这一领域内努力,推出了PWA(ProgressWebApplication)的概念。

PWA通过在移动端浏览器提供标准化框架,在WebApp中实现和NativeApp接近的用户体验。它的特性其实是一系列W3C标准和私有标准集合,简单的说PWA支持:

PHA

当然在标准能力不完善,业务又需要定制化能力的当下,混合式应用还会继续发展。

PHA(ProgressHybirdApplication)的概念应用而生,PHA是一种渐进式的混合应用增强策略,提供端测的辅助能力,提升WebView的渲染性能与体验。广义地说,当下比较火的小程序、快应用都是PHA的一种实现。

关于未来,随着技术方案的多样化、以及端边界的扩展,我们认为最重要的就是效率与性能的问题。

基于大数据的机器学习能力,移动端上会拥有更高效的UI编排能力,最终能让UI渲染实现实时个性化。

基于最近比较热的WebAssembly能力,让浏览器突破JavaScript的限制,能拥有更大的想象空间。

THE END
1.移动web开发(01)移动端web移动web开发流式布局 1. 移动端基础 1.1 浏览器现状 国内的UC和QQ,百度等手机浏览器都是根据Webkit修改过来的内核,国内尚无自主研发的内核,就像国内的手机操作系统都是基于Android修改开发的一样。 总结:兼容移动端主流浏览器,处理Webkit内核浏览器即可。 https://blog.csdn.net/m0_56947432/article/details/140349421
2.移动Web应用开发现状与未来腾讯云开发者社区移动Web应用开发现状与未来 随着移动设备的普及,移动Web应用开发得到了快速发展。移动Web应用能够兼容多种设备,包括智能手机和平板电脑,为开发者提供了一个方便的开发平台。当前移动Web应用开发的https://cloud.tencent.com/developer/information/%E7%A7%BB%E5%8A%A8Web%E5%BA%94%E7%94%A8%E5%BC%80%E5%8F%91%E7%8E%B0%E7%8A%B6%E4%B8%8E%E6%9C%AA%E6%9D%A5
3.简述pc端应用webapp移动端应用的区别简述pc端应用、webapp、 移动端应用的区别 一、什么是Web App(基于Web的应用程序) WebApp,也称为Web应用程序,是存储在远程服务器上并由其用户通过Web浏览器运行的计算机程序。 1.WebApp的优势和特点主要包括以下几个方面: 跨平台兼容性好:WebApp可以在不同的设备和平台上运行,无需针对不同的操作系统进行开发和https://blog.51cto.com/Itstars/10933376
4.说说你对移动端和web前端开发的主要区别是什么?王铁柱6移动端和 Web 前端开发虽然都属于前端开发的范畴,但它们之间存在一些关键区别: 1. 平台和环境差异: 移动端: 面向各种移动操作系统(iOS、Android、HarmonyOS 等),需要考虑不同系统的特性、屏幕尺寸、硬件性能等。开发需要针对不同平台进行适配,例如使用不同的开发语言 https://www.cnblogs.com/ai888/p/18566969
5.PC端/web端/移动端开发的区别在于什么?但即使大家都知道移动互联网红利没了,我发现现在许多身边的互联网从业者都,如果做产品研发仍然是会首先考虑移动端,因为这里用户更近,可以更容易获得用户。用小程序或者APP,来作为产品主要的形态。要么就是用网页端的SaaS产品来替代,很少有产品经理会去负责客户端的产品设计工作。 https://www.niaogebiji.com/article-558675-1.html
6.PCweb前端和移动端的webapp的区别在哪里?4.开发工具。移动端开发有一些jquery for mobile一类的库是专用的,不用于PC端。反过来也一样,有些PC端的工具在移动端不好用。 等等很多。其实移动端web app,很接近移动端原生的app的外观和行为模式。比照移动原生app开发来理解web app就容易得多。 嘉兴雷鸟是一家集企业软件开发,WEB网站建设,移动APP制作等综合型http://www.lei-niao.com/news_5014.html
7.移动端web开发技巧4、移动端click屏幕产生200-300 ms的延迟响应 移动设备上的web网页是有300ms延迟的,玩玩会造成按钮点击延迟甚至是点击失效。 以下是历史原因: 2007年苹果发布首款iphone上IOS系统搭载的safari为了将适用于PC端上大屏幕的网页能比较好的展示在手机端上,使用了双击缩放(double tap to zoom)的方案,比如你在手机上用浏https://www.imooc.com/article/1115
8.前端开发移动端开发和后端开发都有哪些区别首先,从技术结构上来看,Web前端开发涉及到Html、CSS、JavaScript以及众多的前端开发框架技术;后端开发技术主要完成业务逻辑的处理过程,涉及到存储管理、安全管理、并发处理和其他资源调度方面的内容,有多种编程语言可以从事后端开发,包括Java、Python、PHP、C#、Go等;移动端开发涉及到Android开发、iOS开发以及各种移动端设备http://www.situedu.com/news/uid/2976.html
9.FlutterForWeb实践Tech 导读 Flutter For Web已经发布一年多时间,它的发布意味着我们可以真正地使用一套代码、一套资源部署整个大前端系统(包括ios、Android、Web)。经过一段时间的探索,使用Flutter For Web技术开发了移动端可视化编程平台——Flutter乐高,在此分享使用Flutter For Webhttps://maimai.cn/article/detail?fid=1649349645&efid=2w3JI3L2-3Bmlv-WDCnXkQ
10.前端岗位职责15篇百度UFO团队前端开发职责分析 一般的中小型互联网公司,前端开发工程师的主要职责大多集中与页面重构,简单的或者单个的JS功能实现,大中型的互联网公司,如百度等,则专注于百度各产品线Web端功能设计、开发和实现,百度各产品线易用性改进和Web界面技术优化 ,Web前沿技术研究和新技术调研。Web端功能设计和开发,很大程度上https://www.yjbys.com/hr/gangwei/4020783.html
11.响应式webPC端web与移动端web(H5)兼容适配选型方案背景 项目需要,公司已经有一套PC端web,需要做一套手机端浏览器可用的,但是又想兼容pc端,适配的web项目。 以下是查阅到响应布局现成的开源模版。根据自己技术栈,vue2,js来搜索相关的开源https://www.jindouyun.cn/document/industry/article/162875
12.移动Web前端高效开发实战(iKcamp著)中文pdf完整版[16MB]电子书下载移动Web前端高效开发实战 (iKcamp著) 中文pdf完整版[16MB],这是一本梳理移动前端和Native客户端技术体系的入门实战书,讲述HTML 5、CSS 3、JavaScript的ECMAScript 5和ECMAScript 6版本、移动端常用布局方案等方面全面https://www.jb51.net/books/640146.html
13.「成都移动web前端开发工程师招聘」1、利用前端技术开发PC端、移动端Web前端框架、操作界面、报表等展示工作;2、配合后台开发人员实现产品功能、独立完成web前端开发任务;3、很好理解用户需求和UI设计,设计开发出符合用户习惯的前端操作界面,持续提升用户体验;任职条件1. 3年左右前端开发工作经验;2. 精通HTML、JavaScript、Ajax、CSS等Web开发技术;3. 必https://m.zhaopin.com/jobs/CCL1210796580J00436015007.htm
14.Web前端Web前端入门Web前端培训Web前端视频教程Web前端开发专业方向主要专注于PC端和移动端H5相应技术的全面运用,以解决企业在用户交互与前后端通信之间的关键问题。主要包括HTML5,CSS3,JavaScript,ES6规范,Node.js后台开发,JQuery,Bootstrap,VUE,React,微信小程序等框架的运用。实战项目丰富,涵盖主流行业的https://www.woniuxy.com/major/2
15.山东Web前端培训班网页设计培训网页设计培训学校新视觉实训web前端开发培训专业,业界口碑优异的web前端培训班,专业教授HTML5培训,移动开发培训,web前端工程师培训,网页设计制作,名企就业,待遇优厚。https://edu.newsight.cn/m/web.html
16.IMSDK的H5端基本介绍MobileIMSDK/解决方案区MobileIMSDK是一套专为移动端开发的原创开源IM通信层框架:1)历经8年、久经考验;2)超轻量级、高度http://www.52im.net/forum.php?mod=viewthread&tid=3682
17.H5缓存机制浅析移动端Web加载性能优化下面我们首先分析各种缓存机制的原理、用法及特点;然后针对Anroid移动端Web性能加载优化的需求,看如果利用适当缓存机制来提高Web的加载性能。 2 H5缓存机制原理分析 2.1 浏览器缓存机制 浏览器缓存机制是指通过HTTP协议头里的Cache-Control(或Expires)和Last-Modified(或Etag)等字段来控制文件缓存的机制。这应该是WEB中最https://www.thinkphp.cn/topic/66501.html
18.web前端开发工程师工作的主要职责描述(通用31篇)web前端开发工程师工作的主要职责描述 篇1 职责: 1、结合页面和系统功能,完成桌面或移动端页面/微信H5/小程序的开发、调试等工作,高效、高质地完成代码编写,确保符合前端代码规范; 2、与后端开发团队紧密配合,完成接口对接,确保前后端有效交互; 3、综合运用客户端和服务器端构建与优化方案、模块化开发等手段,提升开https://www.diyifanwen.com/fanwen/gangweizhize/14683350.html
19.贵州电视文化传媒有限公司招聘启事(三)Web前端开发工程师(2人) 1.参与项目前期的规划构思,完善产品概念,参与原型策划与设计; 2.负责前端业务PC端/移动端系统、大屏系统、后台系统和工具的开发与维护; 3.参与前端页面开发与维护、与UI合作实现移动web前端特效及完美的交互效果; 4.对前端体验、页面响应速度的持续优化,保证其兼容性及执行效率; https://movement.gzstv.com/news/detail/qXrqe/
20.web前端培训web前端培训班纯面授web前端培训机构能够实现多端开发并拥有多端开发能力,整合资源,实现跨平台跨设备的架构能力。 可从事岗位 混合APP开发工程师 小程序开发工程师 高级Web前端开发工程师 主讲内容 1、ReactNative 2、Flutter 3、HarmonyOS鸿蒙开发 掌握能力 获得大前端高级开发工程师水平,主要涉猎原生APP开发。主导移动端多元产品项目实现。能够跨平台http://www.qfedu.com/html5/
21.Web前端开发与iOS终端开发有什么区别?移动端那些做得很像原生APP的Web 应用就跟终端开发一样了,数据同样保存到SQLite,存储逻辑以及要处理的问题都差不多。 框架 在第三方框架上Web前端和iOS开发完全相反,Web原生弱小又十分开放,让大量第三方框架和类库可以施展拳脚,而iOS原生强大又十分封闭,导致第三方框架没有多少生存空间。https://www.bwie.com/jsgh/298.html