移动端学习之理解WEB APP、Native APP、Hybrid APP以及React Native/uniapp包括H5、小程序等的区别与共通之处
因为工作需要,需要进一步了解移动端的开发,遂返回复习移动端的知识点,在开始学习之前,产生了疑惑WEB APP 、Native APP 、Hybrid APP、React Native、Uniapp、H5这些东西到底是什么?感觉是那么熟悉,单词拆分开每一个都认识,但是合在一起就完全不知道什么意思了,遂自行百度查询,自己解自己的惑吧。
个人博客,理解不具权威性。
一.WEB APP
通俗的理解,WEB APP 即为使用HTML、CSS、JS三大前端基础进行开发的WEB APP,是基于浏览器进行运行使用的;使用HTML、CSS、JS可以在浏览器上怎么开发网页,那么WEB APP也是一样,只是浏览器的使用场景放在了手机等移动端设备上。
那么产品转移到了移动端上,跟电脑端有几点不同和需要注意:
①适配,手机的屏幕尺寸是比电脑小很多的,因此不能用传统的电脑端去衡量一个手机端的屏幕显示,在开发的时候可在CSS头部加上@media屏幕大小判断(可选择REM取代PX来进行大小适配),也可使用JS提供的navigator对象获取客户使用的设备,根据设备来相应的显示,这与在CSS中配置@media是一样的道理。
②交互,电脑端的交互就是鼠标点点点,然后键盘可以敲敲敲,但是手机端不一样,手机端其实交互很单一,现在都是大屏手机,基本上大家也就是点点、滑滑然后再输入,所以在使用移动端开发WEB APP的时候,要注意客户的使用场景,WEB APP比电脑端操作少很多,也功能简单了很多。
③性能与速度,手机端不比电脑端,电脑端的网络都是比较稳定的,要么是光缆,就算是wifi也是信号很强的,但是手机端是不一定的,2G、3G、4G都有可能,用户的网络有不稳定的因素,所以在开发WEB APP时应该注意不能使用较大的资源,比如引入非常大的js文件,花费客户大量的时间去请求,且因为是运行在手机浏览器上,不同移动设备的浏览器也是参差不齐的,用户容易出现页面根本加载不出来,或者运行及其缓慢的现象。
④与手机设备原生的一些功能调用是比较差的。比如摄像头这些,WEB APP他不像安卓这种原生APP,原生APP对设备的支持是很好的,浏览器的话相当于中间是要使用浏览器这个中间件去调用,上面说到了不同浏览器参差不齐所以效果可想而知。
现在的理解大概是这样,后面深入了再补充和修改吧。
二.Native APP
即原生APP,原生APP就是我们实实在在运行在手机设备上的应用,在APP store 应用商店都有的,需要下载和安装,那么主要从区别上来讲讲对这个的理解吧
①使用的语言。安卓使用java、苹果使用swift。
②使用速度非常的快,比WEB APP速度快非常多。
③与人的交互更为支持,对设备的比如摄像头的功能调用非常方便。
④很难,比如你想学安卓开发,你还得学习java;那你要想开发ios,还必须学习swift。
三.Hybrid APP
Hybrid 可以理解为是WEB APP和Native APP的混合,使用的语言是HTML、CSS、JS。
①不需要浏览器运行
②比WEB APP 好一点, 比Native APP 稍微差一点
这个不甚了解..
四.React Native / Uniapp
这个就是纯前端的东西了,使用React 和 Vue 框架作为技术支撑的开发,可以理解为移动端版的VUE和React。
但这两个有个非常好的好处,也是大前端的发展趋势一个分支,那就是一套代码,多端使用。
一套代码,多端使用:假如我使用uniapp,我则只需要使用vue的语法,加上uniapp提供的各式各样的api,我就可以开发出一个编译后可在浏览器WEB APP、手机设备NATIVE APP、小程序、H5都能使用的东西,是不是很强大? 当然在全面性上面比不上native,但是应付一些简单的工作需要已经搓搓有余了。
五.H5
H5其实是一个称呼,他本身就是HTML、CSS、JS,但是因为易企秀、微信推广,让这种简单模式的有音乐播放功能、可以上下滑动等交互功能,但入门门槛极低,不需要去学习HTML、CSS、JS,你可以把他想象成,对HTML、CSS、JS进行了一次封装,我调用这个函数可以实现放音乐,还能送我一个音乐播放器;我调用另一个函数,就可以实现页面文字一排一排的浮现。但其实呢,我们前端完全可以写,他本来也就是HTML、CSS、JS写出来的,只是换了一个噱头,让人简单易上手。我们使用框架大抵也是如此吧。
六.小程序
移动端学习之理解WEB APP、Native APP、Hybrid APP以及React Native/uniapp包括H5、小程序等的区别与共通之处的更多相关文章
- 基于uniapp自定义Navbar+Tabbar组件「兼容H5+小程序+App端Nvue」
uni-app跨端自定义navbar+tabbar组件|沉浸式导航条|仿咸鱼凸起标签栏 在跨端项目开发中,uniapp是个不错的框架.采用vue.js和小程序语法结构,使得入门开发更容易.拥有非常丰富 ...
- 【Hybrid App】关于Hybrid App技术解决方案的选择
[引言]近年来随着移动设备类型的变多,操作系统的变多,用户需求的增加,对于每个项目启动前,大家都会考虑到的成本,团队成员,技术成熟度,时间,项目需求等一堆的因素.因此,开发App的方案已经变得越来越多 ...
- uniapp之uni-starter小程序多端研发框架搭建与项目实践
随着移动互联网的飞速发展,无数移动APP琳琅满目:在移动App的发展的基础上,衍生了小程序.轻应用技术,它随时可用,但又无需安装卸载.小程序是一种不需要下载安装即可使用的应用,它实现了应用" ...
- React Native入门 开发第一个React Native应用
1. 首先创建一个目录(比如ReactNativeDir),用于存放各个ReactNative工程的代码 2.使用React Native命令工具来创建(初始化)一个ReactNative项目(tes ...
- 分享一份软件测试项目实战(web+app+h5+小程序)
大家好,我是谭叔. 本次,谭叔再度出马,给大家找了一个非常适合练手的软件测试项目,此项目涵盖web端.app端.h5端.小程序端,可以说非常之全面. 缘起 在这之前,谭叔已经推出了九套实战教程. 但是 ...
- react-native学习笔记--史上最详细Windows版本搭建安装React Native环境配置
参考:http://www.lcode.org/react-native/ React native中文网:http://reactnative.cn/docs/0.23/android-setup. ...
- 基于uni-app全端弹框组件uaPopup「兼容h5+小程序+app端|nvue」
uniapp兼容多端自定义模态弹框组件UAPopup ua-popup 一款轻量级的uniapp自定义弹窗组件.汇集了android.ios和微信弹窗效果(msg消息.alert提示框.dialog对 ...
- React Native调试实用技巧,React Native开发者必会的调试技巧
在做React Native开发时,少不了的需要对React Native程序进行调试.调试程序是每一位开发者的基本功,高效的调试不仅能提高开发效率,也能降低Bug率.本文将向大家分享React Na ...
- 【React Native】在原生和React Native间通信(RN调用原生)
一.从React Native中调用原生方法(原生模块) 原生模块是JS中也可以使用的Objective-C类.一般来说这样的每一个模块的实例都是在每一次通过JS bridge通信时创建的.他们可以导 ...
随机推荐
- 关于建立老猿Python研学群的公告
3个月前有人建议老猿建立一个Python学习交流群,老猿自己学习Python也没多久,因此没有考虑这个事情,最近又有几个朋友在请我建立这样一个群,犹豫再三,老猿决定还是答应了,因为最近关注老猿Pyth ...
- Xmind Invalid Configuarton Location(the configuarton area is not writable)
今天在安装Xmind的时候,发现如下错误,原因:配置问题 步骤如下: 1.找到XMind安装目录下的文件XMind.ini2.文件中的内容替换:将:-configuration./configurat ...
- WPF中DatePiker值绑定以及精简查询
WPF中DatePiker值绑定以及精简查询 1.WPF中DatePiker值绑定 Xaml中值绑定使用Text <DatePicker Text="{Binding strMinDa ...
- 人社部新职业,Panda Global发现区块链新职业榜上有名!
近日,为了助力新冠肺炎疫情的防控,扎实做好"六稳"工作,全面落实"六保"任务,促就业拓岗位,人力资源社会保障部联合市场监管总局.国家统计局近日正式向社会发布一批 ...
- 题解-CF1140E Palindrome-less Arrays
CF1140E Palindrome-less Arrays \(n\) 和 \(k\) 和 \(n\) 个数的序列 \(a\).把 \(a\) 中的 \(-1\) 替换成 \([1,k]\) 之间的 ...
- 树莓派开发笔记(十一):蓝牙的使用,BlueZ协议(双树莓探测rssi并通过蓝牙互传获取的rssi信号强度)
若该文为原创文章,转载请注明原文出处本文章博客地址:https://blog.csdn.net/qq21497936/article/details/110940484长期持续带来更多项目与技术分享, ...
- 用Ubuntu和树莓派系统部署kubernetes集群后的一些心得
方案 环境 操作系统:Ubuntu 16.04 & Raspbian GNU/Linux 9(Stretch Desktop) kubernetes :1.15.3 flannel:0.11. ...
- js中数组、字符串、日期、数学API方法一览
以下内容摘选自 http://www.w3school.com.cn/jsref/jsref_obj_array.asp 点击方法新窗口打开详解 数组: 方法 描述 concat() 连接两个或更多的 ...
- MySQL01-数据库概述
1.概述 1.1 什么是数据库? 用于存储和管理数据的仓库. 1.2 数据库的特点: 1. 持久化存储数据的.其实数据库就是一个文件系统 2. 方便存储和管理数据 3. 使用了统一的方式操作数据库 - ...
- Greenplum 性能优化之路 --(二)存储格式
一.存储格式介绍 Greenplum(以下简称 GP)有2种存储格式,Heap 表和 AO 表(AORO 表,AOCO 表). Heap 表:这种存储格式是从 PostgreSQL 继承而来的,目前是 ...