目前来说主流的App开发方式有三种:Native App 、Web App、Hybird App。下面我们来分析一下这三种App开发方式的优劣对比:

  一 :Native App 即 原生App开发

  优点:

  (1)打造完美的用户体验

  (2)性能稳定

  (3)操作速度快,上手流畅

  (4)访问本地资源(通讯录,相册)

  (5)设计出色的动效,转场,

  (6)拥有系统级别的贴心通知或提醒

  (7)用户留存率高

  缺点:

  (1)分发成本高(不同平台有不同的开发语言和界面适配)(2)维护成本高(例如一款App已更新至V5版本,但仍有用户在使用V2, V3, V4版本,需要更多的开发人员维护之前的版本)(3)更新缓慢,根据不同平台,提交–审核–上线 等等不同的流程,需要经过的流程较复杂。

  从android、iOS智能手机开始出现就开发有的开发App的技术,性能体验是最优的,API比较完善,但是学习起来难度相对来说比较高,开发成本比较高(跟开发周期相对来说比较长也是有关系的)。

  二 :Web App 即 网页App开发

  1、特点(html css js)

  2、优势 (发版完全自控随时更新开发成本小时间快)3、劣势(性能差弱网络无网络条件下体验差)Web App其实就是写好的一套长得像App UI界面的能够自适应的网页加壳。本质套webview壳子打包成App,走的都是web页面(html css js),这种方式对于做过Web开发的开说非常轻松就可以做出一个属于自己的App,因为本身来说用的就是Web的东西,所以有非常好的跨平台的特性可以在任意平台运行,包括发版这方面web可以随时部署所以不需要发版,web页面嵌入webview开发起来速度非常快,一个人就可以轻松搞定,对有展示类需求的项目来说采用这种方式是最适合的,但是如果要实现的功能比较复杂的话就显得力不从心了。

  相比Native App,Web App体验中受限于网络环境和渲染性能。

  1. 网络环境,渲染性能

  Web APP对网络环境的依赖性较大,因为Web APP中的H5页面,当用户使用时,去服务器请求显示页面。如果此时用户恰巧遇到网速慢,网络不稳定等其他环境时,用户请求页面的效率大打折扣,在用户使 用中会出现不流畅,断断续续的不良感受。同时,H5技术自身渲染性能较弱:对复杂的图形样式,多样的动效,自定义字体等的支持性不强。

  因此,基于网络环境和渲染性能的影响,在设计H5页面时,应注意以下几点:

  1.简化不重要的动画/动效

  2.简化复杂的图形文字样式

  3.减少页面渲染的频率和次数

  三 :Hybrid App 即 混合型App开发

  1、特点(native +js或其他语言)

  2、优势(相对体验好稳定性强动态性强成本相对低跨平台)3、劣势(对团队技术栈要求相对高性能优化)Hybrid App就是Native结合Web混合开发,Native+js代码 代表作是cordova前身是phonegap,现在移交给Apache,核心JsBridge,js调java,java调js。因为有原生做基础相对体验好接近原生,因为依赖原生API所以稳定性强。跟js相互通信并不是所有都用js,所有都依赖webview。采用原生模块和js模块,js模块可以随时发版,这也是这些大厂为什么选择这个技术的原因,手淘用的就是Hybird技术,其实它的优化难度不亚于原生,但是为什么选择Hybird去做呢,就是因为热发版。

  1、在未来一段时间内,很大程度上会形成以Hybrid形式为主的移动端开发方式。

  2、web App目前是无法取代原生App开发语言的。

  3、App开发的成本、时间周期、性能优化、体验优化、动态性等将成为多数App所关注的重点。

APP开发的三种技术对比的更多相关文章

  1. APP开发的三种模式

    Hybrid APP混合开发的一些经验和总结 APP开发的三种模式:Native App .web App.hybrid App 1.原生app 使用原生app (android或iOS)开发APP. ...

  2. 带你从零学ReactNative开发跨平台App开发(三)

    ReactNative跨平台开发系列教程: 带你从零学ReactNative开发跨平台App开发(一) 带你从零学ReactNative开发跨平台App开发(二) 带你从零学ReactNative开发 ...

  3. Java 基础入门随笔(1) JavaSE版——java语言三种技术架构

    1.java语言的三种技术架构: J2SE(java 2 Platform Standard Edition):标准版,是为开发普通桌面和商务应用程序提供的解决方案.该技术体系是其他两者的基础,可以完 ...

  4. iOS开发UI篇—iOS开发中三种简单的动画设置

    iOS开发UI篇—iOS开发中三种简单的动画设置 [在ios开发中,动画是廉价的] 一.首尾式动画 代码示例: // beginAnimations表示此后的代码要“参与到”动画中 [UIView b ...

  5. ASP.NET MVC:多语言的三种技术处理策略

    ASP.NET MVC:多语言的三种技术处理策略 背景 本文介绍了多语言的三种技术处理策略,每种策略对应一种场景,这三种场景是: 多语言资源信息只被.NET使用. 多语言资源信息只被Javascrip ...

  6. 【转载】目前主流过滤XSS的三种技术

    目前主流过滤XSS的三种技术 过滤 过滤,顾名思义,就是将提交上来的数据中的敏感词汇直接过滤掉.例如对"<script>"."<a>". ...

  7. Android自动化测试中AccessibilityService获取控件信息(2)-三种方式对比

    Android自动化测试中AccessibilityService获取控件信息(2)-三种方式对比   上一篇文章: Android自动化测试中AccessibilityService获取控件信息(1 ...

  8. ArrayBlcokingQueue,LinkedBlockingQueue与Disruptor三种队列对比与分析

    一.基本介绍 ArrayBlcokingQueue,LinkedBlockingQueue是jdk中内置的阻塞队列,网上对它们的分析已经很多,主要有以下几点: 1.底层实现机制不同,ArrayBlco ...

  9. ASP、JSP、PHP 三种技术比较

    目前,最常用的三种动态网页语言有ASP(Active Server Pages),JSP(JavaServer Pages),PHP (Hypertext Preprocessor). 简 介 : A ...

随机推荐

  1. (3)WePHP控制器与模型

    MVC的先进理念就是程序流程 数据库操作 模板制作三个流程分离 大M函数会把模型引入到当前控制器的方法中,注意这个"excel"对应M文件夹的excel.php 同时也是整个exc ...

  2. CodeForces 427A Police Recruits (水题)

    题意:给定 n 个数,有正数和-1, -1表示罪犯,正数表示招了几个警察,一个警察只能看一个罪犯,并且要按顺序,问你有多少罪犯逃脱. 析:很简单么,从开始扫到最后,把是正数就加上,是-1判断剩余警察大 ...

  3. 手动安装Chrome截屏控件扩展-Xproer.ScreenCapture(ScreenCapture.crx)

    1.打开扩展面板,在地址栏中输入 chrome://extensions   或通过"扩展程序"菜单打开   2.将ScreenCapture.crx拖拽到此面板中   3.选择添 ...

  4. Understanding sun.misc.Unsafe

    转自: https://dzone.com/articles/understanding-sunmiscunsafe The biggest competitor to the Java virtua ...

  5. 【微服务架构】SpringCloud之Eureka(服务注册和服务发现基础篇)(二)

    上篇文章讲解了SpringCloud组件和概念介绍,接下来讲解一下SpringCloud组件相关组件使用.原理和每个组件的作用的,它主要提供的模块包括:服务发现(Eureka),断路器(Hystrix ...

  6. EDM模板制作规范

    为了保证最大的兼容性,在制作HTML的email页面时,请严格按照规范来书写: 1.页面宽度推荐500px,最大不要超过750px: 2.制作HTML的email页面时,不使用css+div来布局,最 ...

  7. .NET WCF Return String 字符串有反斜杠的处理

    应该是: {"Message":"Hello World"} 结果是:" {\"Message\":\"Hello Wo ...

  8. Django Meta

    Available Meta options abstract 如果为True,这个model就是抽象类 app_label 如果模型是在INSTALLED_APPS中的应用程序之外定义的,它必须声明 ...

  9. Echart自定义y轴刻度信息2

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  10. jquery源码解析:jQuery静态属性对象support详解

    jQuery.support是用功能检测的方法来检测浏览器是否支持某些功能.针对jQuery内部使用. 我们先来看一些源码: jQuery.support = (function( support ) ...