前端移动端开发分类及跨平台开发框架简述

这篇具有很好参考价值的文章主要介绍了前端移动端开发分类及跨平台开发框架简述。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前端移动端主流分为以下三种:Native App ,Hybrid App ,Web App
手机端前端用什么开发,javasript,ios,android,react native,uni-app,web app

1 移动端开发分类

1.1 Native App 原生App开发

优点:

(1)用户体验好

(2)性能稳定

(3)操作速度快

(4)能够访问本地资源(通讯录,相册)

(5)能够设计出色的动效,转场

(6)拥有系统级别的贴心通知或提醒

(7)用户留存率高

缺点:

(1)开发成本高

(2)维护成本高

(3)更新缓慢,根据不同平台,提交–审核–上线流程较复杂。

总的来说,native app开发从android、ios智能手机出现就有了开发技术,性能体验最优,API比较完善,但是学习起来难度比较高,开发成本比较高(跟开发周期相对来说比较长也是有关系的)。

1.2 Web App 网页App开发

优点:

(1)发版完全自控,随时更新

(2)跨平台,因为本身来说用的是Web的东西,所以可以在任意平台上运行

(3)成本小,Web页面嵌入Webview开发起来速度非常快,一个人就可以轻松搞定

缺点:

(1)性能差

(2)弱网络或无网络条件下体验差

(3)适用有展示类需求的项目,但是如果要实现的功能比较复杂的话就显得力不从心

总的来说,相比Native App,Web App体验中受限于网络环境和渲染性能。Web APP对网络环境的依赖性较大,因为Web APP中的H5页面,当用户使用时,去服务器请求显示页面。如果此时用户恰巧遇到网速慢,网络不稳定等其他环境时,用户请求页面的效率大打折扣,在用户使用中会出现不流畅,断断续续的不良感受。同时,H5技术自身渲染性能较弱:对复杂的图形样式,多样的动效,自定义字体等的支持性不强。因此,应注意以下几点:1.简化不重要的动画/动效;2.简化复杂的图形文字样式;3.减少页面渲染的频率和次数。

1.3 Hybrid App 混合型App开发

优点:

(1)体验好

(2)稳定性强动态性强

(3)成本相对低跨平台

缺点:对团队技术栈要求相对高性能优化

Hybrid App就是Native结合Web混合开发,Native+JS代码代表作是cordova前身是phonegap,现在移交给Apache,核心JsBridge,JS调Java,Java调JS。因为混合开发,所以体验接近原生、稳定性强而且发版快。

2 Viewport视口

2.1 视口

视口是移动设备上用来显示网页的区域,一般会比移动设备可视区域大,宽度可能是980px或者1024px,目的是为了显示下整个为PC端设计的网页。这样带来的后果是移动端会出现横向滚动条,为了避免这种情况,移动端会将视口缩放到移动端窗口的大小。这样会让网页不容易观看,可以用meta标签,name="viewport"来设置视口的大小,将视口的大小设置为和移动设备可视区一样的大小。

在移动端用来承载网页的这个区域,就是我们的视觉窗口,viewport(视口),这个区域可以设置高度宽度,可以按比例放大缩小,而且能设置是否允许用户自行缩放。

2.2参数说明

width:宽度设置的是viewport宽度,可以设置device-width特殊值
initial-scale:初始缩放比,大于0的数字
maximum-scale:最大缩放比
minimum-scale:最小缩放比
user-scalable:用户是否可以缩放,yes或no(1或0)

2.3 设置方法

3 移动端适配布局

使用百分比自适应布局(流式布局)同时需要对移动端的viewport视口进行设置,就可以达到适配的目的。

3.1 流体布局+少量响应式

流体布局:使用百分比来设置元素的宽度,元素的高度按实际高度写固定值,流体布局中,元素的边线(border)无法用百分比,可以使用样式中的计算函数calc()来设置宽度,或者使用box-sizing属性将盒子设置为边线计算盒子尺寸。
响应式布局:使用媒体查询的方式,通过查询浏览器的宽度,不同的宽度应用不同的样式块,每个样式块对应的是该宽度下的布局方式,从而实现响应式布局,响应式布局的页面可以适配多种终端屏幕(pc、平板、手机)。

3.2 基于rem的布局

rem指的是参照根节点的文字大小,根节点指的是html标签,设置html标签的大小,其他的元素相关尺寸设置用rem。这样,所有元素都有了统一的参照标准,改变html文字的大小,就会改变所有元素用rem设置的尺寸大小。

3.3 弹性盒模型

4 移动端端跨平台开发框架

移动端跨平台框架之争,其实主要是 谷歌/脸书/微软 三家争霸。
在移动端开发项目中。开发资源不够时,同时由两个团队维护安卓和IOS两套原生APP是成本很高的。此时,就需要选择一个同时支持多平台的客户端开发框架,能够使用一套代码,编译出多平台的APP。

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

如果使用非前端语言进行开发,可以使用Flutter,MAUI 等,Flutter需要学习一门新的 Dart 语言,不过语言特性浅显易懂,学习难度也不大。 MAUI是C#开发,适合相应的微软技术栈的团队。目前前端JS相关的工具,主要是UNI-APP(VUE技术栈) / Taro(React技术栈) / React Native(React技术栈) / Cordova / HTML5

4.1 React Native

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

React Native看姓就知道是谁推出的了,不多说了。
也有一些框架支持代码编译为 React Native, 来提供客户端开发支持,如京东的小程序开发框架 taro ,以及 Vue Native (停止维护)

4.2 UNI-APP / Taro

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

4.3 Cordova

全称Apache Cordova,是由Nitob1在2009年创建和推出的移动开发框架。官网地址:https://cordova.apache.org/。它当初主要想解决Android,iOS,BlackBerry以及微软的Phone四个平台的跨平台问题。只是到现在只剩下android和iOS了。

该框架的主要设计思路是提供硬件设备API接口,通过简单且又在Web端适用的JavaScript语言完成调用,实现相应功能。

从架构的本质来说,是在原生基础上加了一个Cordova的容器,在该容器上使用简单易用的JavaScript语言,实现移动端的UI界面的统一。这在当时来说,是往跨平台方向迈进了一大步。这里UI界面采用JavaScript语言还有一个好处:和Web端统一起来。从而实现三端(iOS端、安卓端,Web端)统一。

然而,Cordova也有一些不足:

(1).Cordova在自定义绘制视图和布局等复杂界面上,存在着很大的困难,一时还实现不了。所以Cordova一般适用于简单的界面。
(2).Cordova的更新与操作系统的更新,差距很明显,例如最新的Cordova支持Android 10.但Android已经发展到12了。
(3).Cordova的受欢迎程度正在逐年下降,2019-2021年使用Cordova的软件开发人数量下降到16%。
基于以上原因,Cordova正在被其他的移动框架所替代。
这里再补充下项目经验:之前接触过Cordova。在使用过程中,确实感觉Cordova接口简单粗放,调用设备API接口,缺少太多的异常保护。
再者,性能也不是很良好,一个2000人的企业组织架构数据,在首次打开的时候,必然会出现一段时间的白屏。

4.4 HTML5

HTML5简称H5,这个也是移动端跨平台运用比较多的一个框架。

从整体架构上看,H5框架,就是在移动端上,通过UIWebView控件打开一个HTML5页面,HTML5页面属于前端开发,移动端负责交互以及原生开发。当HTML5页面与原生要进行事件响应或数据交换时(如按钮点击,从原生获取工号、token等数据),一般通过JSBridge进行交互。

这种方式,个人认为在所有的跨平台框架中,应该最简单的(前面的Cordova,还需要学习Cordoava框架),只需要一个前端开发人员完成HTML5页面开发。当需要与原生进行交互时,通过WebViewJavascriptBridge或者JavaScriptCore库,进行注册或回调。

从性能方面来说,H5和Cordova框架性能相差无几。交互方面都是以接口的方式进行,UI界面方面采用JavaScript的渲染,所以性能方面差不多。

补充下项目经验:H5框架实现了前端、移动端UI界面的分离,即前端做前端的界面,移动端完成移动端的功能,两者相互独立。只有到了需要交互之时,才采用JSBridge进行通讯。

它的不足就是JSBridge不稳定,还包括iOS端和安卓端接口不兼容(项目中一直被前端开发人员抱怨)。面对这些问题,当时也是没有很好的方案去解决。文章来源地址https://www.toymoban.com/news/detail-766016.html

到了这里,关于前端移动端开发分类及跨平台开发框架简述的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Flutter:引领移动开发新潮流,跨平台应用程序的终极解决方案

    Flutter是由Google开发的一款开源移动应用开发框架,它可以帮助开发者快速高效地构建跨平台的移动应用程序。Flutter基于Dart编程语言,具有简单易学、高效灵活的特点,并且可以与现有的Android和iOS应用进行集成。本文将介绍Flutter的基本概念、开发环境搭建、基础组件、生命

    2024年02月04日
    浏览(86)
  • 初识鸿蒙跨平台开发框架ArkUI-X

    HarmonyOS是一款面向万物互联时代的、全新的分布式操作系统。在传统的单设备系统能力基础上,HarmonyOS提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持手机、平板、智能穿戴、智慧屏、车机等多种终端设备,提供全场景(移动办公、运动健康、社交通

    2024年02月13日
    浏览(50)
  • 盘点 | 跨平台桌面应用开发的5大主流框架

    受益于开源技术的发展,以及响应快速开发的实际业务需求,跨平台开发不仅限于移动端跨平台,桌面端虽然在市场应用方面场景不像移动端那么丰富,但也有市场的需求。 相对于个人开发者而言,跨平台框架的使用,主要为了满足以下三个主要能力: 生产力提升:框架能

    2024年02月07日
    浏览(72)
  • 【前端进阶】跨平台开发与原生应用:技术融合的未来

    在移动设备的快速普及和大规模应用的背景下,开发应用程序的跨平台能力已成为前端开发人员不可或缺的技能。跨平台开发允许我们使用统一的代码库构建应用程序,同时在多个平台上实现原生应用的性能和体验。在本文中,我们将探讨跨平台开发的概念、优势以及目前流

    2024年02月11日
    浏览(86)
  • 开发跨平台APP,是用Flutter还是React Native开发框架?

     随着移动互联网的飞速发展,对于开发人员而言,如何快速地开发出兼容不同平台(iOS、Android)的应用,成为了一个重要的问题。 跨平台应用程序开发框架的好处: 1. 一个App适用于多个设备; 2. 一个App适用于多个平台; 3. 一个App可以在多个应用商店中发布; 4. 只需编写

    2024年02月15日
    浏览(77)
  • 跨平台的桌面应用程序开发框架Electron | 开源日报 0906

    Stars: 109.3k License: MIT Electron 是一个基于 Node.js 和 Chromium 的开源框架,允许使用 JavaScript、HTML 和 CSS 编写跨平台的桌面应用程序。它被 Atom 编辑器等众多应用程序所采用。该项目具有以下核心优势: 跨平台:Electron 提供了 macOS、Windows 和 Linux 三个主要操作系统的二进制文件。

    2024年02月09日
    浏览(60)
  • 【HarmonyOS开发】ArkUI-X 跨平台框架(使用ArkTs开发Android&IOS)

    ArkUI-X 跨平台框架进一步将 ArkUI 开发框架扩展到了多个OS平台,目前支持OpenHarmony、HarmonyOS、Android、 iOS,后续会逐步增加更多平台支持。开发者基于一套主代码,就可以构建支持多平台的精美、高性能应用。 React Native 是一个基于 JavaScript 和 React 的开源框架,由 Facebook 开发和

    2024年01月20日
    浏览(48)
  • 基于Avalonia 11.0.0+ReactiveUI 的跨平台项目开发1-通用框架

    Avalonia是.NET的一个跨平台UI框架,提供了一个灵活的样式系统,支持广泛的操作系统,如Windows、Linux、macOS,并对Android、iOS和WebAssembly提供了实验性支持。 之前已经了解了基于Avalonia的项目在国产麒麟系统中运行的案例。正是Avalonia在跨平台的出色表现,学习和了解Avalonia这个

    2024年02月16日
    浏览(59)
  • Android:手把手带你入门跨平台UI开发框架Flutter

    定义:一款Google出品开源的移动客户端UI开发框架(SDK) 作用:用一套代码同时在Android、iOS上快速构建高质量、高性能的原生用户界面 开发语言:Dart语言(高开发效率、高性能等) 2. 特点 Flutter的主要特点包括:使用自身的高性能渲染引擎进行渲染 Dart编程语言语言 具体介

    2024年04月13日
    浏览(67)
  • tauri-vue:快速开发跨平台软件的架子,支持自定义头部UI拖拽移动和窗口阴影效果

    一个使用 tauri+vue+ts 开发跨平台软件的模板,支持窗口头部自定义 UI 和拖拽和窗口阴影,不用再自己做适配了,拿来即用,非常 nice。而且已经封装好了 tauri 的 http 请求工具,省去很多弯路。开源地址:GitHub - Sjj1024/tauri-vue: 一个使用tauri和vue开发跨平台软件的架子 使用到的技

    2024年02月12日
    浏览(67)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包