什么是前端混合移动App
苹果上的软件是如何开发出来的:使用的是 OC、或者使用Swift这门语言
安卓平台上的软件又是如何开发出来的:使用安卓相关的语言开发的,Java,安卓的控件进行开发
苹果和安卓平台上共有的软件是如何开发出来的:两组开发人员分别进行软件开发
前端移动 App(Application)开发技术,去开发手机端的应用程序;
前端的混合移动App开发技术,并没有使用 苹果 或 安卓 官方推荐的 开发平台和开发方式,而是抛弃了 官方提供的方式,使用 前端的独有的技术进行移动App开发体验;
什么是移动App开发:通俗的理解,就是把开发Web网站的技术(HTML+CSS+JS),通过某种方式,移植到移动App开发上进行使用,这种利用Web开发技术进行移动端开发体验的方式,叫做混合移动App开发
关于移动App开发,需要知道的几个概念
原生开发:它的英文单词是(NativeApp),指的就是使用 IOS、Android 官方提供的工具、开发平台、配套语言进行 手机App开发的方式;
混合开发:(HybirdApp)就是使用前端已有的技术,HTML + CSS + JS ,然后再搭配一些相关的打包编译技术,就能够开发出一个手机App,安装到手机中进行使用;
什么是App:App是(Application的缩写),意思是:可安装的应用程序;
App和Web的区别:
APP概念:App是(Application的缩写),意思是:可安装的应用程序;
优点:流畅、稳定、基本上一些App都可以脱网运行,用户体验好;
缺点:不能跨平台
Web概念:特指那些基于浏览器的web网站(本质:就是网页)
优点:可以跨平台(浏览器天生就是跨平台的)
缺点:没有App流畅、不稳定,受限于网速和网络
常见的App开发方式
WebApp:基于浏览器实现的,有特定功能的网站,称作WebApp
优点:跨平台
缺点:依赖网络,有白屏效果,相对来说,用户体验差;不能调用硬件底层得设备,比如摄像头;
NativeApp:用android和Object-C等原生语言开发的应用
优点:体验好;用户使用起来很流畅;非常适合做游戏【性能高】;可以直接调用硬件底层的API;
缺点:不能跨平台
HybirdApp:利用前端所学的知识去开发移动端App,兼具2者的优势
优点:能够跨平台;体验会好一些;也能够调用硬件底层的API
缺点:相对于原生体验稍微弱一丢丢;不适合做游戏;适合做非游戏类型的手机App;
三种开发方式的原理和对比
三种开发类型的原理:
使用 Java 或者 IOS 写出来的代码和程序,在最终运行的时候,普通的文本代码,都会被编译为 原生的机器码去运行,并不像 JS 这样,解析执行(在浏览器中一行一行的解析,代码出错了就会中断解析,不允许就不会知道代码是否会有错),Java代码是 编译执行(预编译,节省编译时间,出错的地方都会告知原因以及解决方案)的
编译执行,顾名思义,要先编译再执行,这里需要有一个编译器,来将我们的代码全部编译成机器代码,然后进行执行。因为先整体进行编译,所以这里会生成编译后的机器代码。
解释执行,则是需要一个解释器,它会将我们的一句句解释成机器代码来执行,可以认为是,解释一句,执行一句。在这个过程中,不会生成中间文件。
通过对比发现,编译执行,只需要编译一次,多次运行。而解释执行的话,每运行一次程序,都要经过解释器的解释过程。
三种开发类型的对比:
几大主流技术之间的关系
框架和打包工具之间是配套的,前者为主流框架,后者为与该框架配合使用的打包工具
Angular.js 和 Ionic
Vue.js 和 Weex
React.js 和 React-Native
Angular, Vue, React 这三个都是前端框架,在进行混合App开发的时候,只是用到了这三个框架的【基础语法】而已;
Ionic, Weex, ReactNatvie 这三个都是打包工具(提供了相关的命令行,只要运行指定的命令,就能够把项目打包成一个手机App出来),能够把我们开发出来的应用,最终打包成一个可安装的手机端程序安装包;同时,这三个东西,也提供了好用的一些小组件,方便我们去构建移动App的用户界面;
开发框架之间的区别
Html5+ 和 Ionic
ReactNative 和 Weex