web app开发webapp和原生app优劣开发 哪个好

Web APP与Native APP原生开发模式的区别
23:50/ 人气37496 / 评论0
昆明天度APP开发模式通常分为Web APP与Native APP原生模式两种,这两种模式均各自有自己的优势,到底是采用Native App开发还是采用Web App开发一直是业界争论的焦点,但是随着HTML5的发展及云服务普及,采用HTML5进行Web App开发正在成为一种趋势,用户可以根据应用特点和需求进行选择,亦可选择两者混合模式:
Native App开发
Native App开发即我们所称的传统APP开发模式(原生APP开发模式),该开发针对IOS、Android等不同的手机操作系统要采用不同的语言和框架进行开发,该模式通常是由“云服务器数据+APP应用客户端”两部份构成,APP应用所有的UI元素、数据内容、逻辑框架均安装在手机终端上。
Web App开发
Web App开发即是一种框架型APP开发模式(HTML5& APP 框架开发模式),该开发具有跨平台的优势,该模式通常由“HTML5云网站+APP应用客户端”两部份构成,APP应用客户端只需安装应用的框架部份,而应用的数据则是每次打开APP的时候,去云端取数据呈现给手机用户。
原生APP开发及Web APP开发模式的区别
Web APP需开发“html5云网站”和“APP客户端”,昆明天度网络公司总结这类型APP应用呈现以下特点:
(1)每次打开APP,都要通过APP框架向云网站取UI及数据;
(2)手机用户无法上网则无法访问APP应用中的数据。
(3)框架型的APP无法调用手机终端的硬件设备(语音、摄像头、短信、GPS、蓝牙、重力感应等)
(4)框架型APP的访问速度受手机终端上网的限制,每次使用均会消耗一定的手机上网流量;
(5)框架型APP应用的安装包小巧,只包含框架文件,而大量的UI元素、数据内容刚存放在云端;
(6)APP用户每次都可以访问到实时的最新的云端数据;
(7)APP用户无须频繁更新APP应用,与云端实现的是实时数据交互;
适用企业:电子商务、金融、新闻资讯、企业集团需经常更新内容的APP应用。
Native App(原生型APP)需要开发“云服务器数据中心”和“APP客户端”,昆明天度网络公司总结这类型的APP应用呈现以下特点:
(1)每次获取最新的APP功能,需要升级APP应用;
(2)原生型APP应用的安装包相对较大,包含UI元素、数据内容、逻辑框架;
(3)手机用户无法上网也可访问APP应用中以前下载的数据。
(4)原生型的APP可以调用手机终端的硬件设备(语音、摄像头、短信、GPS、蓝牙、重力感应等)
(5)APP应用更新新功能,涉及到每次要向各个应用商店进行提交审核。
适用企业:游戏、电子杂志、管理应用、物联网等无需经常更新程序框架的APP应用。
到底该如何选择Web App和Native App开发模式
移动Web无所不在,移动Web是目前唯一的支持各种设备访问的平台,与桌面Web一样,移动Web支持各种标准的协议。移动Web也是唯一一个可供开发者发布移动应用的平台,它将各种移动交互与桌面任务有效地连接了起来;而开发Native App可以充分利用设备的特性,而这一点往往是Web浏览器做不到的,所以对一个产品本身而言,Native App是最佳的选择。下面几节将讨论一下Native App的一些主要功能。
什么时候应该选择Native App
1.为应用收费
没有任何地方规定开发者不能对一个移动Web App收取使用费,但是由于某些原因,人们常常认为不能或是不应该对一个Web App收取费用。由于历史原因,导致移动设备上付费服务遭遇两大阻力:
2.付款方式
在移动设备上输入信用卡号相当麻烦,而且在许多老式设备上也没有安全保障。一种典型的方式是,如果你需要对你的应用收费,你可以与运营商达成协议,让运营商代为为你的服务收费。这也意味着,你需要和多个运营商达成合作。这通常是首选的方法,因为许多手机用户可能根本就没有信用卡,比如青少年。
另一种方法是将用户的信用卡信息保存在一个安全的网站上。用户可以通过登录到该网站购买应用服务。这个过程不算特别理想,因为这意味着用户不能直接通过他们的移动设备购买服务了。
3.强制分成
移动运营商是会提成的。App无论是通过运营商还是通过移动设备发布,他们都为应用提供了一套收费机制。这些运营商和移动设备将会提取部分收益,然后将剩余的部分交给应用开发商,这也意味着,开发人员必须遵守他们的市场规则。适应运营商的市场规则通常是非常困难的,需要投入大量的人力资源。相比而言,移动设备的市场规则则简单许多,但是也存在不少的困难。
妨碍运营商和移动设备开发商利益的应用以及服务都将受到阻扰。过去,那些不靠运营商和移动设备开发商运作的网站如果收入过于显眼的话,都逃脱不了被关闭的命运,但是最近,这样的事情鲜少发生了。
如果你想为你的Native App收费,那么你就必须接受这个现实——你必须遵守别人的市场规则,还得放弃部分收益。
4.开发游戏
如果你是想开发一个移动游戏(移动游戏是移动市场上很大的一块),那么你需要开发一个Native App。游戏对资源的占用很大,并且需要使用许多设备API或平台API。虽然,现在有几款完全使用Web技术开发的游戏占有了一定的市场份额,但是和Native App市场的占有情况相比,还是微不足道的。游戏用户对应用的视觉和操作效果要求很高。移动Web虽然提供了一些仿真体验,但还远远不能满足用户的需求。
在开发移动游戏时,你需要慎重考虑你的应用需要支持哪些平台。幸运的是,现在有许多工具能够帮助你将你的游戏推向多个平台,但是完成这些工作,还是需要花费大量的人力和物力。
5.使用定位功能
下一个功能就是定位功能,可以通过GPS或者是信号检测确定用户当前的位置信息。以前只能通过Native App的APIs查看用户的位置信息,但现在大多数主流移动浏览器上都嵌入了W3C Geolocation API。像iPhone或Android这样安装了WebKit的设备,或是配置了Opera或Mozilla浏览器的设备,都可以获取用户的位置信息。
我相信定位功能会为Web技术带来许多全新的应用。如果能够合理利用Web浏览器,Web开发商就能使用用户的位置信息和其他内容开发出更加有趣的应用。虽然这在技术上没有太大的困难,但却受到隐私保护条例的限制。我们将Web浏览器当做是用户进入World Wide Web的入口。加入定位功能,意味着在网站中引入了一些敏感信息,这有可能导致严重的后果。但是位置感知应用中显示的位置信息必须经过用户的授权,用户当然有权禁止应用发布自己的位置信息。
6.使用摄像头
摄像头可以为你的应用提供丰富的可能性。以往移动MMS(Multimedia Messaging Service)被用于处理移动照片。换言之,你拍了一张照片后,需要使用MMS将它传送给一个服务器,服务器对照片做出相应的处理,并将处理完成的结果通知给你。这个过程是非常耗时的,而且相当复杂,也没有可靠性保障。
通过访问摄像头,Native App开发者能够简化拍照的过程。用户可以直接在客户端对照片做一些简单的处理,只有在有需要的时候才将照片上传给服务器,而且是通过可靠的HTTP传输。W3C正在开发一个访问摄像头的API,但现在还没有将这部分工作正式整合到浏览器中。
在许多类型的移动Apps中,摄像头是非常有用的,比如快拍应用、短片拍摄应用等等,摄像头可以用来捕捉许多重要的瞬间。不久的将来,我们可以看到——只要通过摄像头拍摄某个标识,应用程序就能自动完成对标识上的语言转换工作——这个技术在日本已经开始流行起来了。
7.使用感应器
现在越来越来越多的移动设备上都新增了感应器功能,该装置可以感知设备的物理速度以及重力,并将感知的数据结果传送给设备。这个装置常被用来感应设置是否被翻转,应用根据接受到的信息自动调节画面的方向。
感应器可以用来帮助用户提升与设备交互时的真实感;大多数移动设备都是手持的,应用能够根据设备的方向调整内容画面,比如翻转屏幕,或是检测物理移动,并能据此猜测用户所处的环境。举一个简单的例子:比如用户正在走路,那么感应器能够检测到一个轻缓的移动或是速度,这时可以为用户提供一个大字体的用户界面,从而使得用户更容易看清屏幕上的内容。
然而,开发者也不能过分依赖感应器,因为感应器无法区分究竟哪些交互是有意的,而哪些是没有意义的。每个移动交互都需要通过“传输测试”。设计你的交互时必须考虑用户在一个拥挤的汽车或是火车上的场景。考虑一下如果用户正身处拥挤的地铁或是正在驾车时,你的应用能否正确处理用户摇晃移动设备的动作。通常,大多数开发者都没有考虑这些因素。确保为每个任务设计一个备用方案以处理特殊场景中的移动交互。
8.访问文件系统
如果你的应用需要将数据保存在本地,那么你需要开发一个Native App。比如你要保存用户的地址簿、电话或E-mail信息,或是保存从其他设备上获取的数据。
访问文件系统常常会涉及到安全和用户隐私保护的问题。恶意应用程序可能会修改或是删除你的移动设备上的数据。一个携带病毒的应用程序可以利用移动设备上的关系网将病毒扩散到许多其他的手机上,在采用移动应用认证机制以前,这种事情是常常发生的。
另一方面,移动设备正变得越来越私人化,移动设备上保存了大量用户的个人信息,以及用户的朋友信息和商业信息。针对这些私人信息开发应用是一个不错的想法。但是这也存在一定的风险,使用保存在移动设备上的数据可以为用户提供更加有针对性的服务。
开发者必须谨记,只有在获得用户的授权后才能访问用户的私人数据。我们看到许多应用在没有得到用户授权的情况下使用了大量的用户私人数据,而被误认为是垃圾信息或是钓鱼应用,即使这些应用原本是在提供一些非常有用的服务。人们对你的应用的误解将会影响到你的服务的推广,如果运营商收到过多关于你的应用的投诉,那么你的服务可能将被终止,甚至会牵连其他的应用。
访问文件系统时至关重要的一点就是在没有获得用户授权的情况下,不要访问任何用户的私人数据。而这一点,往往被大多数应用忽略了。W3C正在为移动开发商开发相关的标准API,但目前该工作尚未完成。
9.离线用户
最后一个需要开发Native App的理由就是,用户有可能是离线的或者无法接入移动网络。这在城市可能很少发生,即使是在农村,网络的覆盖也已经逐步普及了。但是短暂的网络连接中断还是时常发生的,你的应用程序应该考虑如何处理这种情景。
想想用户通常在什么时候,在哪里会使用你的App。如果是一个移动游戏,那么用户很可能在飞机上使用这个App。跟踪地图应用常在偏远且网络覆盖不佳的地方使用。移动旅游向导常在一个国外的网络中访问,往往需要支付漫游和国际网络费用。这时,应用程序更好能够为用户提供离线服务,保证用户在不接入网络的情况下,仍然能享受同等的服务。
现在支持HTML5的浏览器也能实现脱机访问功能,但对用户来说可能不太明显。随着越来越多的浏览器都开始支持脱机访问,应用需要明确地告诉用户网络连接中断时,他们仍然可以访问移动Web Apps。
Native Apps常常假设网络连接是可靠的。App通常只考虑了网络状况良好的情景,想当然地认为网络是封闭的,并且网速足够快。移动设备从网络良好的环境突然进入一个网络糟糕的环境并不少见。Native Apps应该在网络状况最差的情况下测试。比如用户启动任务时可能还是全信号覆盖,而在任务结束时可能已经完全没有网络信号了。
用户在安装Native Apps时,根本不会考虑是在线访问还是离线访问——他们期望的是不管在任何状况下,Native Apps都能正常工作。而这也是开发者的职责。
什么时候应该选择Web App
只要你的应用程序不满足之前提到的Native App条件之一,那么你就没有必要开发一个Native App,而应该选择开发一个Web App。正如文章之前提到的,我是一个Native App的拥护者,我认为Native App有许多优秀的特质,并且具有很大的市场潜力,但是Web Apps是唯一一个经久不衰的移动内容、服务、应用开发平台。
Native App并不能明显地为用户提供更好的服务;它反而会增加项目的成本,减少了应用发布的渠道,增加了App升级的复杂度,削弱了开发者对应用的控制和利润,并且可能会给设备带来麻烦。Native App可以为开发者带来短期的效益,但这是有一定风险的,甚至可能会影响到移动市场的可持久发展。
移动Web App的优势在前文中已经提到过了。如果上一节提到的几点功能是促成你选择Native App的唯一原因,那么如果能够在移动浏览器上屏蔽这些障碍,你是否还会坚持选择Native App呢?Palm的webOS已经着手解决了上述的部分问题。他们基于WebKit构建了一个全移动操作系统,将手机变成了一个Web浏览器。所谓的“Native Apps”实际上就是一个Web Apps。
PhoneGap也是一个类似的项目,这个开源项目用于帮助开发者在iPhone、Android以及BlackBerry设备上开发Native Apps,并且能够模拟设备上的功能(如定位功能和文件系统)供Web Apps调用。这些代码可以在各个设备的应用商店中发布并且出售,但是他们使用的通用代码和设计是可以共享的。由于开发的是一个Web App,开发者可以为低端的移动浏览器开发一个简化版的应用。只用开发一次,就可以部署在多个平台上了,
对于那些有着丰富的移动开发经验的程序员来说,一提到“要开发一个功能丰富的应用”时,可能首先想到的就是Native App。虽然在很多设备上,这一想法仍然适用,但是现在移动Web Apps上也提供了足够丰富的功能接口供开发者调用。这使得Web App不仅可以像Native App一样被设计得功能丰富界面绚丽,而且还能在各个平台上迁移,甚至不用修改一行代码。
现在在移动设备开发中,移动Web Apps的创新进入了前所未有的高潮时期。但更重要的是,这是有史以来第一次,移动设备开发商决定共同制定一个移动Web开发的标准,就像是桌面Web上的标准一样。不仅如此,那些支持移动Web App创新功能的设备或是支持第三方浏览器的移动设备都受到消费者的欢迎。
推荐阅读:
地址:云南省.昆明市环城南路668号(云纺商业区)云纺国际商厦A座18层
咨询:22 售后:32 投诉:22
电话:66     
传真:15 邮箱:
扫描左侧二维码或查找微信号:yntiandu,添加天度客服微信
版权所有 (C)
下次自动登录
请输入6-12位数字、子母组合
密码输入不符合规范
密码确认:
电子邮箱:
手机号码:
短信验证码:
点击按钮获取验证码
请用手机浏览器扫描二维码访问
或输入网址:m.ynyes.com
请用微信扫描二维码关注天度
请搜索微信公众号:天度电商圈什么叫做原生App?
什么是混合app?&
什么是Web&App开发?
Native&App开发即我们所称的传统APP开发模式(原生APP开发模式),该开发针对IOS、Android等不同的手机操作系统要采用不同的语言和框架进行开发,是专门针对某一类移动设备而生的,它们都是被直接安装到设备里,&APP应用所有的UI元素、数据内容、逻辑框架均安装在手机终端上,原生App而用户一般也是通过网络商店或者卖场来获取例如The&App&Store与Android&Apps&on&Google&Play。
&Hybrid&App(混合模式移动应用)是指介于web-app、native-app这两者之间的app,兼具&Native&App良好用户交互体验的优势&和&Web&App跨平台开发和低成本的优势&。&Hybrid&App主要以JS+Native两者相互调用为主,从开发层面实现&一次开发,多处运行&的机制,成为真正适合跨平台的开发。目前已经有众多Hybrid&App开发成功应用,比如百度、网易、街旁等知名移动应用,都是采用Hybrid&App开发模式。&
Web&App开发即是一种框架型APP开发模式(HTML5&APP&框架开发模式),该开发具有跨平台的优势,该模式通常由&HTML5云网站+APP应用客户端&两部份构成,APP应用客户端只需安装应用的框架部份,而应用的数据则是每次打开APP的时候,去云端取数据呈现给手机用户。
&原生APP的优点  
&混合APP的优点
&webAPP的优点
(1)&可访问手机所有功能(GPS、摄像头);&(2)&速度更快、性能高、整体用户体验最
好;&(3)&可线下使用(因为是在跟Web相对地平台上使用的);&(4)&支持大量图形和动画;&容易发现(在App&Store里面)和重新发现(应用图标会一直在主页上);&(5)&应用下载能创造盈利(当然App&Store抽取20-30%&的营收);&(6)&app质量及安全性好。&
&(1)&原生应用和Web应用的结合体,应用比例很自由;
&(2)&开发成本低;&(3)&能节省跨平台的时间和成本,只需编写一次核心代码就可部署到多个平台;&
(4)&可任意调整风格,DIV版面布局;&
(5)&兼容多平台;&(6)&顺利访问手机的多种功能;&(7)&App&Store中可下载(Web应用套用原生应用的外壳);&
(8)&可线下使用。&
&(1)&运行到浏览器上,项目独立;&(2)&跨平台开发工具选择多;&(3)&不需要安装额外软件,控制版本非常容易;
(1)&开发及维护成本高;&(2)&支持设备非常有限(一般是哪个系统就在哪个平台专属设备上用);
(3)&上线时间不确定(App&Store审核过程不一);&(4)&内容限制(App&Store限制);
(5)&获得新版本时需重新下载应用更新。
(6)&举例:Yellow&Pages&Group就开发了是几个版本(iOS、黑莓、Android),他们在每一个原生应用市场都有上架。
1)&不确定上线时间;&(2)&用户体验不如本地应用;&(3)&性能稍慢(需要连接网络);&(4)&技术还不是很成熟
(1)&只能使用有限的移动硬件设备能力,无法使用更多移动硬件设备的独特功能;&(2)&搜索Web&app比较困难;&(3)&质量及安全性无法得到保障;&(4)&必须联网;&(5)&移动应用用户体验不是很好;
(6)&性能需要进行检验
Native&App可以充分利用设备的特性,而这一点往往是Web浏览器做不到的,所以对一个产品本身而言,Native&App是最佳的选择。&(1)每次获取最新的APP功能,需要升级APP应用;&(2)原生型APP应用的安装包相对较大,包含UI元素、数据内容、逻辑框架;&(3)手机用户无法上网也可访问APP应用中以前下载的数据。&(4)原生型的APP可以调用手机终端的硬件设备(语音、摄像头、短信、GPS、蓝牙、重力感应等)&(5)APP应用更新功能,涉及到每次要向各个应用商店进行提交审核。&适用企业:游戏、电子杂志、管理应用、物联网等无需经常更新程序框架的APP应用
快速迭代,高效开发,低成本上线是每一个App开发团队追求的目标。同时,随着HTML&5的不断升温和智能手机硬件性能的提高,Hybrid&App的概念应运而生。这种&Native搭台,HTML&5唱戏&的Hybrid&App开发模式一时间受到各个开发团队追捧,快速进入了大量开发团队,成为主流开发模式。&Hybrid&App优点众多,Web前端工程师0成本介入,不依赖版本的实时更新,快速实现跨平台需求,等等。而另一个方面,2012年Hybrid&App的践行者Facebook决定大量弃用App中的HTML页面,转向更加Native化的方案。Facebook的这一举措也给Hybrid&App方案的敲响了警钟,这似乎并不是一个完美的方案。&即使所有Web代码在本地运行,效率也要比Native差一些。这主要取决于应用类型,对交互体验和性能有很高要求的应用是不适合用Hybrid的。
移动Web无所不在,移动Web是目前唯一的支持各种设备访问的平台,与桌面Web一样,移动Web支持各种标准的协议。移动Web也是唯一一个可供开发者发布移动应用的平台,它将各种移动交互与桌面任务有效地连接了起来;&(1)每次打开APP,都要通过APP框架向云网站取UI及数据;&(2)手机用户无法上网则无法访问APP应用中的数据。&(3)框架型的APP无法调用手机终端的硬件设备(语音、摄像头、短信、GPS、蓝牙、重力感应等)&(4)框架型APP的访问速度受手机终端上网的限制,每次使用均会消耗一定的手机上网流量;&(5)框架型APP应用的安装包小巧,只包含框架文件,而大量的UI元素、数据内容刚存放在云端;&(6)APP用户每次都可以访问到实时的最新的云端数据;&(7)APP用户无须频繁更新APP应用,与云端实现的是实时数据交互;&适用企业:电子商务、金融、新闻资讯、企业集团需经常更新内容的APP应用
阅读(...) 评论()温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
人生不会苦一辈子,但一定会苦一阵子。如果你为了逃避苦这一阵子,就一定会苦一辈子。
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
Native App开发即我们所称的传统APP开发模式(原生APP开发模式),该开发针对IOS、Android等不同的手机操作系统要采用不同的语言和框架进行开发,该模式通常是由“云服务器数据+APP应用客户端”两部份构成,APP应用所有的UI元素、数据内容、逻辑框架均安装在手机终端上。Web App开发Web App开发即是一种框架型APP开发模式(HTML5 APP 框架开发模式),该开发具有跨平台的优势,该模式通常由“HTML5云网站+APP应用客户端”两部份构成,APP应用客户端只需安装应用的框架部份,而应用的数据则是每次打开APP的时候,去云端取数据呈现给手机用户。Web APP应用呈现以下特点:(1)每次打开APP,都要通过APP框架向云网站取UI及数据;(2)手机用户无法上网则无法访问APP应用中的数据。(3)框架型的APP无法调用手机终端的硬件设备(语音、摄像头、短信、GPS、蓝牙、重力感应等)(4)框架型APP的访问速度受手机终端上网的限制,每次使用均会消耗一定的手机上网流量;(5)框架型APP应用的安装包小巧,只包含框架文件,而大量的UI元素、数据内容刚存放在云端;(6)APP用户每次都可以访问到实时的最新的云端数据;(7)APP用户无须频繁更新APP应用,与云端实现的是实时数据交互;适用企业:电子商务、金融、新闻资讯、企业集团需经常更新内容的APP应用。Native App(原生型APP)应用呈现以下特点:(1)每次获取最新的APP功能,需要升级APP应用;(2)原生型APP应用的安装包相对较大,包含UI元素、数据内容、逻辑框架;(3)手机用户无法上网也可访问APP应用中以前下载的数据。(4)原生型的APP可以调用手机终端的硬件设备(语音、摄像头、短信、GPS、蓝牙、重力感应等)(5)APP应用更新新功能,涉及到每次要向各个应用商店进行提交审核。适用企业:游戏、电子杂志、管理应用、物联网等无需经常更新程序框架的APP应用。移动Web无所不在,移动Web是目前唯一的支持各种设备访问的平台,与桌面Web一样,移动Web支持各种标准的协议。移动Web也是唯一一个可供开发者发布移动应用的平台,它将各种移动交互与桌面任务有效地连接了起来;而开发Native App可以充分利用设备的特性,而这一点往往是Web浏览器做不到的,所以对一个产品本身而言,Native App是最佳的选择。(1)开发方面& &原生App&⊙ 每一种移动操作系统都需要独立的开发项目⊙ 每种平台都需要独立的开发语言。Java(Android), Objective-C(iOS)以及Visual C++(Windows Mobile)等等⊙ 需要使用各自的软件开发包,开发工具以及各自的控件&& & 移动Web App⊙ 因为运行在移动设备的浏览器上,所以只需要一个开发项目⊙ 这种应用可以使用HTML5,CSS3以及JavaScript以及服务器端语言来完成(PHP,Ruby on Rails,Python)⊙ 这里可没有标准的SDK,基本任意选择别忘了有一些跨平台的开发工具,比如PhoneGap, Sencha Touch 2,APPcan以及Appcelerator Titanium等等。&(2)能力方面&原生App⊙ 能够与移动硬件设备的底层功能,比如个人信息,摄像头以及重力加速器等等& & 移动Web App⊙ 只能使用有限的移动硬件设备功能。(3)获取方法&原生App⊙ 直接下载到设备⊙ 以独立的应用程序运行(并不需要浏览器)⊙ 用户必须手动去下载并安装这些原生App⊙ 有一些商店与卖场来帮助用户寻找你的App,目前app市场不计其数,比较有名气的有:360手机助手:http://zhushou.360.cn/安卓市场:http://apk.hiapk.com/机锋市场:http://apk.gfan.com/酷玩汇(91):http://play.91.com/百度移动应用:http://as.baidu.com/碗豆荚:http://www.wandoujia.com/apps青年应用汇:http://www.youthapp.cn/木蚂蚁:http://www.mumayi.com/安智:http://www.anzhi.com/应用汇:http://www.appchina.com/乐商店:http://app.lenovo.com/飞流:http://www.feiliu.com/html/index.html小米:http://app.xiaomi.com/N多网:http://www.nduoa.com/&& &(4)移动Web App⊙ 从移动设备上的浏览器访问⊙ 不需要安装额外的软件⊙ 软件更新只需要服务器就够了⊙ 因为现在没有什么商品或卖场提供这种App,所以如何搜索这些移动Web App相当不简单(5)版本控制原生App⊙ 用户可以自由地选择是否更新软件版本,所以会出现不同用户同时使用不同版本的情况& 移动Web App⊙ 所有的用户都是用同样的版本优势原生App⊙ 比移动Web App运行快⊙ 一些商店与卖场会帮助用户寻找原生App⊙ 官方卖场的应用审核流程会保证让用户得到高质量以及安全的App⊙ 官方会发布很多开发工具或者人工支持来帮助你的开发& 移动Web App⊙ 跨平台开发⊙ 用户不需要去卖场来下载安装App⊙ 任何时候都可以发布App,因为根本不需要官方卖场的审核⊙ 如果你已经有了一个Web App,你可以使用 responsive web design来辅助改进(这也是优势?)缺陷原生App⊙ 开发成本高,尤其是当需要多种移动设备来测试时⊙ 因为是不同的开发语言,所以开发,维护成本也高⊙ 因为用户使用的App版本不同,所以你维护起来很困难⊙ 官方卖场审核流程复杂且慢,会严重影响你的发布进程&& & 移动Web App⊙ 无法使用很多移动硬件设备的独特功能⊙ 要同时支持多种移动设备的浏览器让开发维护的成本也不低⊙ 如果用户使用更多的新型浏览器,那问题就更不好处理了⊙ 对于用户来说,这种App很难被用户发现原生App 与 移动Web App:您如何选择?所以在你准备做移动App时,你应该先问问自己以下几个问题:1. 你的应用是否需要使用某些设备的特殊功能,比如摄像头,摄像头闪光灯或者重力加速器2. 你的开发预算是多少?3. 你的应用是否一定需要网络4. 你的应用的目标硬件设备是所有的移动设备还是仅仅只是一部分而已5. 你自己已经熟悉的开发语言6. 这个应用对于性能要求是否苛刻7. 如何靠这个应用赢利我想这几个问题应该能让你做出明智的选择。&结论:是原生App还是移动Web App,主要受商业目标,目标用户,以及技术需要这些因素影响的。其实更多时候你也不要为选择那种App模式烦恼,正如本文提到,类似Facebook这样的公司就为用户提供了两种选择。然而对于大部分人来说,预算,资源限制将会逼迫我们只能选择其中一种(或者只能以其中一种为重点)。扩展:1、如何判断app中原生页面和h5 页面?&纯粹的HTML5应用很少,甚至只有一个view是用WebView/UIWebView的方式越来越常见了。基本上只要对那个view长按,然后看是不是有反应,比如手机震动(Android)、或者出现文字选择粘贴(Android/iOS),那么就是WebView!2、如何判断一个 app 是原生还是 webapp,或者是两者结合的?(快速)滚动起来是否比较卡图片加载失败的图标3、app中html5页面和原生native页面的区别?你想说的是怎么判断app里面哪些是app原生写的哪些是html代码是么?要是是这样的话。有一种可以试一试。也就是你把手机的网络断掉。然后点开你的页面。然后可以正常显示的东西就是原生写的。显示404或则错误页面的是html页面4、 Android如何区分app原生和webview实现?在开发Android app时,特别是强内容展现型的功能,会想在原生native实现和web实现中做选择,做这种选择的时候,难免想看看竞品或其它app类似功能是用哪种方式实现的。但是如何判断其它app是用原生控件实现还是用webview载入网页来实现呢?其实要想做到这一点不难,至少有两种办法:一、抓包这是比较原始,也是比较容易想到的,打开相应界面,抓取数据包看看,如果有url是返回比较完整的html代码,那基本就是webview来实现的了。二、利用系统开发人员工具抓包的方法还是太麻烦,很多系统有更高级的开发人员工具功能,一般在设置里可以找到,有些手机可能需要特殊的操作才能打开开发人员工具功能。以meizu mx2为例,在拨号界面输入 *#*#6961#*#* 打开“开发人员工具”功能(输入 *#*#6960#*#* 关闭),点击“设置”-&“辅助功能”-&“开发人员工具”,在绘图栏中找到“显示布局边界”并打开。这样所有应用的控件布局都一目了然了,webview作为一个控件,只有一个边界框,所以通过这一点,就比较容易区分出一个界面是webview实现的还是native布局控件实现的,当然也不排除用一堆webview来拼成一个界面的实现方法。如下图是一个native与webview混排的界面,蓝色线框是各控件的绘制边界,中间那一大块布局丰富的界面没有显示出很多边界蓝线,就是网页实现的。webview使用除了上面两种方法,一般来说,通过断开网络,刷新界面,观察内容缓存情况也可以对实现方式有个大致预判断,一般来说缓存做得好的,都是原生控制实现的,有界面局部缓存的就更大可能是原生的了。
阅读(592)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
在LOFTER的更多文章
loftPermalink:'',
id:'fks_',
blogTitle:'Native App(原生app)和Web App(混合app)开发的区别',
blogAbstract:'Native App开发Native App开发即我们所称的传统APP开发模式(原生APP开发模式),该开发针对IOS、Android等不同的手机操作系统要采用不同的语言和框架进行开发,该模式通常是由“云服务器数据+APP应用客户端”两部份构成,APP应用所有的UI元素、数据内容、逻辑框架均安装在手机终端上。Web App开发Web App开发即是一种框架型APP开发模式(HTML5 APP 框架开发模式),该开发具有跨平台的优势,该模式通常由“HTML5云网站+APP应用客户端”两部份构成,APP应用客户端只需安装应用的框架部份,而应用的数据则是每次打开APP的时候,去云端取数据呈现给手机用户。Web APP应用呈现以下特点:(1)每次打开APP,都要通过APP框架向云网站取UI及数据;',
blogTag:'移动app,混合app,原生app,移动开发',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:0,
publishTime:3,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'人生不会苦一辈子,但一定会苦一阵子。如果你为了逃避苦这一阵子,就一定会苦一辈子。',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}

我要回帖

更多关于 webapp与原生app区别 的文章

 

随机推荐