移动端学习之理解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通信时创建的.他们可以导 ...
随机推荐
- PyQt开发样例: 利用QToolBox开发的桌面工具箱Demo
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.引言 toolBox工具箱是一个容器部件,对应类为QToolBox,在其内有一列从上到下顺序排列 ...
- PyQt(Python+Qt)学习随笔:Designer中的QDialogButtonBox的accepted、rejected和helpRequested信号
QDialogButtonBox中可以包含多个pushButton,但QDialogButtonBox本身只提供4种信号,分别是accepted.rejected.clicked和helpReques ...
- Java面试专题-多线程(3)-原子操作
- 【学习笔记】浅析后缀自动机(SAM)及基础应用
解决子串相关问题的强大工具 我们知道一个长度为 \(n\) 的字符串中所有的子串数目为 \(O(n^2)\) 个,这很大程度上限制了我们对某些子串相关问题的研究.所以有没有解决方案,使得我们可以在可承 ...
- STL——容器(Map & multimap)的查找
map.find(key); //查找键key是否存在,若存在,返回该键的元素的迭代器:若不存在,返回map.end(); map.count(key); //返回容器中键值为key的对组个数 ...
- Android原子操作——android_atomic_cmpxchg
网络给我们带来了很多方便,查阅我们目前认知范围外的道理.但是,凡事也要学会分辨,不然可能会误导你. 话说,最近的一个项目(Mercury-Project),接近尾声中.然而,在调试一个demo时,却遇 ...
- sql 语句使用和转换json数据
1 连接mysql import pymysql import concurrent coon=pymysql.connect(host='localhost',user='root',passwor ...
- expdp、impdp状态查看及中断方法
一.expdp状态查看及中断方法 1.查询expdp的job的名字 SQL> select job_name from dba_datapump_jobs; JOB_NAME---------- ...
- PDCA
Plan(规划) Do(执行) Check(验证) Adjust(调整)
- 云图说 | 云上资源管控有神器!关于IAM,你想知道的都在这里!
摘要:统一身份认证(Identity and Access Management,简称IAM)是华为云上帮助您安全控制华为云资源访问权限的基础服务.通过本期云图说,您可以初步了解IAM的基本功能. 从 ...