目前APP开发有几大类型?
市面上存在的几种主流的开发类型:
Web页面加壳生成app
这种APP的开发方式,基本是用现有的手机网站,或者直接购买一个手机网站模板,加壳打包,直接生成一个APP,做出来的效果不好,消耗流量,用户体验也很差,访问速度慢等等,很多的外包公司利用客户不懂,把这几个小时甚至几分钟速成的东西,当成原生开发的APP去欺骗创业者,卖到几千几万的价格,而创业者很多时候还自以为捡了便宜(问了很多家,这家最便宜啦)
2、web网页加原生混编(网页部分占80%以上)
混编方式的APP效果比第一种要好一些,但是如果要做出接近原生开发的效果,需要不断的优化和改变,花的钱不会比原生开发少,如果不对网页和系统进行优化,只是简单的拼凑。那做出来的效果和web加壳差不多。如果想要节省成本也可以选择这种开发模式,但是一定要找具备这方面开发和优化经验的,否则开发出来的效果会很差。
3、HTML5开发
使用这种开发模式,也是为了节省成本,因为可以一次开发适应多个平台,IOS和安卓平台都可以用,后期维护也方便很多,效果也接近原生开发,成本却可以降低30%左右。不过收到语言本身的限制,各大平台兼容性还不足,相对来说还处于过渡期,也是比较耗费资源,对手机要求比较高。手机淘宝APP目前就是html5+原生混编的,早期版本在低配手机上很卡的,不过近年来随着手机性能越来越强,淘宝本身也做了非常多的优化工作,使用体验已经和原生开发很接近了。很多大公司都尝试过使用HTML5,比如Facebook和京东。后来都转为原生开发了,HTML5未来前景很好,但是现在还不够成熟。
4、原生开发
原生顾名思义就是使用 IOS或者安卓官方的语言进行开发,是目前最常用和最成熟的方式。使用官方语言基本不会出现兼容性问题,但是越重视细节成本越高。而且ios和安卓两端不通用,要同时开发两套系统。一般根据具体功能要求一个app开发成本几千块到几千万不等
2019-07-08 · 专注微信小程序开发、APP开发、网站建设
APP开发分为模板开发和定制开发。
定制开发又分为原生开发(Native App)、H5开发(Web App)、混合开发(Hybrid App)、React Native App。
原生应用(Native App)
使用相应移动平台特有的开发工具和语言进行开发。
当今最流行的两大移动端平台Android和i0S各有自己的一套独立的开发模式。 基于Android平台的Java语言开发。基于iOS平台的Obective-C语言/Swift语言开发。
优点
1. 执行速度快,界面流畅,动态效果出色;
2. 性能稳定,对网络的依赖性小;
3. 用户体验趋于完美,用户留存率;
4. 可以非常方便地调用操作系统提供的各种功能及终端硬件设备,如读取本地通讯 录、推送通知提醒、调用摄像头等。
缺点
1、Android和iOS上的应用需要单独开发、维护,开发成本很高。周期长,价格高;
2、升级更新繁琐,每个系统要单独更新,程序猿完成工作后,开发者要重新上传, 然后审核,用户才能更新。IOS的审核至少需要一周,所以对于产品运营,无疑会加大时间投入;
3、分发成本高。
网页应用(Web App)
Web App是移动网页开发模式,借鉴了传统Web开发方式,利用HTML , CSS ,JavaScript等技术模仿Native App的界面结构,开发适合于移动端显示的网页,并通过手机上的浏览器解释执行。
这里要特别提一下HTML5,即H5。严格意义上来说它是第五代HTML标准,并不是一项技术。而我们平时习惯从广义上讨论H5,将它打包成一个解决方案,即看起来很酷炫的移动onepage网站的解决方案,包括HTML5新增的audio标签,canvas,拖拽特性,本地存储,websocket通信,同时也包括了CSS等。
优点
1.可跨平台,跨设备,开发成本小。周期短,价格低;
2. 安装包小巧,只包含框架文件,而大量的UI元素、数据内容存放在云端;
3. 完全自控,可在网页上直接调试、修改,可实现实时数据交互,升级更新。用户不用重新安装,无须官方审核及应用商店。
缺点
1. 受限于网络环境,没有网络的Web App几乎没有任何功能。页面跳转需要发送网络请求,再通过浏览器解释执行,交互时间长。若遇到网络不稳定情况,用户使用中会有断断续续不流畅的感受;
2. 受限于渲染性能。对复杂图形、动态效果、自定义字体等支持性不强;
3. 无法很好地调用操作系统提供的硬件设备(如摄像头);
4. 用户体验很差。
混合开发(Hybrid App)
Hybrid App是混合开发模式,这种模式将Native App与Web App进行混合开发,一部分基本界面用手机系统的原生语言开发。另一部分功能界面用Web技术开发移动端网页,利用原生语言中的WebView进行显示网页,这部分功能能在不升级APP的情况下动态更新,且在iOS或Android的App上同时运行。
混合开发根据侧重点分为三种方案:Web架构为重、编译转换、Native架构为重。
这里有种极端情况是只包了原生的壳,里面其实是H5网页,大家要有所了解。
Hybrid App结合了Native App和Web App两种开发模式,把这两种开发模式的优点和缺点折中互补。总体费用在原生开发和HTML5开发模式之间。开发周期也在两者之间。简而言之,中庸之选,在Native APP和Web APP两者之间。
React Native App
React Native起源于Facehook的内部项目。它不提供“write once, run anywhere”的解决方案,并不能真正意义上解决同一份代码,不同平台运行。而是创新的提出了“Learn once, write anywhere”,即学习一次,可以在N个平台使用。
React Native App是采用React Native框架开发的跨平台移动应用。这个框架的原理是基于网页开发技术并利用JavaScript语言与两大平台上的原生语言Java和objective-C进行交互,互相调用,从而达到使用JavaScript来写原生应用的目的。
优点
1. 跨平台,代码可复用于两个平台,组件化思想可以帮助开发者增加效率;
2. 动态更新。程序的JavaScript代码放在服务器上,用户在本地备份执行,在程序升级更新时客户端自动从服务器下载代码到本地解释执行,实现了热更新。JavaScript代码占用的空间很小,相当于一份文档,如今的网络速度下载这份代码用户几乎察觉不到;
3. React Native App的性能只比Native App差一点,比Web App和Hybrid App强很多,用户体验较好。
缺点
1、扩展性不如Web,更远远不如Native;
2、发展时间短,不够成熟,不够稳定,不够完善,生态系统还在搭建中。