什么是混合移动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的分类:
- 按照平台来划分:
- PC端:浏览器、代码编辑器、PC端的游戏、听歌的、看视频的、聊天的
- 移动端:手机QQ、手机微信、手机爱奇艺、亡者农药
- 按照功能来划分:
- 游戏:愤怒的小鸡仔、植物大战僵尸、亡者农药.....LOL
- 应用:非游戏类的软件,支付宝、陌陌、美团外卖、
- 按照平台来划分:
- App和Web的区别:
- APP概念:App是(Application的缩写),意思是:可安装的应用程序;
- 优点:流畅、稳定、基本上一些App都可以脱网运行,用户体验好; - 缺点:不能跨平台
- Web概念:特指那些基于浏览器的web网站(本质:就是网页)
- 优点:可以跨平台(浏览器天生就是跨平台的) - 缺点:没有App流畅、不稳定,受限于网速和网络
为什么要学混合App开发
从程序员的角度分析:
- 挣钱多(别人不会的你会,别人会的,你精通)
- 对于找工作来说:(React Native)市场需求量大,好找工作,提高我们的行业竞争力
- 能接触到前端流行的技术和框架(各大公司基本都再用React),注意:再React中我们全部都使用ES6语法(class)
- 前端是一个永恒的行业???(只要世界上还有浏览器的存在,必然需要前端,只不过,随着时间的推移,技术更新换代,可能我们对新技术的要求会越来高)
- 屌丝的崛起之路:
只能做页面
->Ajax前后台数据交互
->Jquery、Bootstrap
-> webApp ->三大框架
->可以做手机混合App/桌面应用
->可以做手机原生App
->将来或许可以发射火箭发射卫星发射导弹
->终极目标:统一全宇宙
- (搞前端App开发)能购置一批牛逼的设备【苹果笔记本、IOS测试机、安卓手机(三星的、华为、小米)】
从企业的角度分析:(选择合适自身的移动App开发方式)【重点】
- 节省开发成本
- 从工资上:尽最大的可能,压榨员工的剩余劳动力
- 从时间上:因为 原生的安卓和IOS开发,它们的开发效率并不是很高,因为原生的代码复杂度比较高,因此原生的开发周期比较慢;如果采用移动App开发,那么,我们的开发周期会很短;因为 HTML + CSS + JS 足够简单;(对于前端开发APP来说,有两种方式,其中,比较早的一种,也是比较简单的一种,就是 先开发出一个网站, 然后再把网站运行一行打包的命令,就能得到一个 APP了)
- 市面上常见的App开发方式
- WebApp:基于浏览器实现的,有特定功能的网站,称作WebApp
- 例如:百度脑图、https://m.jd.com/、https://m.taobao.com/#index
- 优点:跨平台
- 缺点:依赖网络,有白屏效果,相对来说,用户体验差;不能调用硬件底层得设备,比如摄像头;
- NativeApp:用android和Object-C等原生语言开发的应用
- 优点:体验好;用户使用起来很流畅;非常适合做游戏【性能高】;可以直接调用硬件底层的API;
- 缺点:不能跨平台
- HybirdApp:利用前端所学的知识去开发移动端App,兼具2者的优势
- 优点:能够跨平台;体验会好一些;也能够调用硬件底层的API
- 缺点:相对于原生体验稍微弱一丢丢;不适合做游戏;适合做非游戏类型的手机App;
- 应用场景:
- 注意: 使用 Java 或者 IOS 写出来的代码和程序,在最终运行的时候,普通的文本代码,都会被编译为 原生的机器码去运行,并不像 JS 这样,解析执行,Java代码是 编译执行的;
-
三种开发方式的原理和对比
三种开发类型的对比.png
企业如何选择合适自己的App开发方式
- 如果这个企业中,曾经使用原生技术开发过一些APP,那么在维护的时候,必然需要使用原生技术来维护
- 如果企业中,需要做一些游戏级别的应用,那么推荐使用原生,因为原生运行效率高,对耗电量处理的很好;
- 如果企业做一些应用级别的非游戏软件,比如 淘宝、京东、美团,就可以使用 混合APP了;
- 在企业中,最主要的是好的点子,如果有了一个好的项目立案,那么最好要立即把这个项目做出来;这时候,使用混合App非常合适,因为开发周期很短,能快速上线,抢先占领市场;【裤衩开发】
企业中项目开发流程
- 需求调研:产品定位、受众群体、市场需求、开发价值;【产出物:需求文档】
- 产品设计:功能模块、流程逻辑;【产出物:设计文档,交互稿】,确定项目的基本功能;
- 项目开发:项目架构、美工、前端、后台、测试【产品的把控】要理解前后端分离的概念
- 运营维护:上线试运行、调Bug、微调功能模块、产品迭代
根据需求搞设计,根据设计做开发
企业技术选型 - 几大主流技术之间的关系
- Angular.js 和 Ionic
- Vue.js 和 Weex
- React.js 和 React-Native
Angular, Vue, React 这三个都是前端框架,我们在进行混合App开发的时候,只是用到了这三个框架的【基础语法】而已;
Ionic, Weex, ReactNatvie 这三个都是打包工具(提供了相关的命令行,只要运行指定的命令,就能够把项目打包成一个手机App出来),能够把我们开发出来的应用,最终打包成一个可安装的手机端程序安装包;同时,这三个东西,也提供了好用的一些小组件,方便我们去构建移动App的用户界面;
网友评论