app webapp

2019-06-25 10:45:33 qq_40402685 阅读数 1804

现如今APP开发有两个主流的方向:原生App 以及移动Web App。那么您是否知道这两者有何区别?什么是原生APP,什么是web APP?今天小编在此对二者进行一个对比。
在这里插入图片描述
☛ 什么是原生APP
在智能手机上运行的App应用程序有NativeAPP(基于本地操作系统运行)和WebAPP(基于手机浏览器运行),其中NativeApp就是原生App的意思,所以原生App开发也就是指基于本地操作系统的App开发服务。如今市面上多数的APP软件开发都是使用的原生程序编写的应用程序,也就是说大部分的手机APP属于原生APP应用软件。原生APP访问和兼容的能力也比较好,可以支持在线或者离线消息推送或是进行本地资源访问,以及摄像、拨号、蓝牙、功能的调取。原生APP开发有许多的优势,如原生APP是针对不同的平台为用户提供不同的体验、原生应用可以节约宽带成本、访问本地资源、打开的速度更快并为用户提供最佳的用户体验和优质的用户界面等。

☛ 什么是web APP
WebApp是一种框架型APP开发模式(HTML5APP框架开发模式),具有跨平台的优势,该模式通常由“HTML5云网站+APP应用客户端”两部分构成,APP应用客户端只需安装应用的框架部份,而应用的数据则是每次打开APP的时候,去云端取数据呈现给手机用户。

☛原生APP和web APP的对比
在这里插入图片描述

1、开发方面

原生APP:
    每一种移动操作系统都需要独立的开发项目,iphone版本、Ipad版本、安卓版本。每种平台都需要独立的开发语言。需要使用各自的软件开发包,开发工具以及各自的控件。开发成本高、开发速度慢、维护成本高。三个平台(IOS、安卓、windows)的规则、推广、运营都不相同。官方应用商店对APP上线审核流程比较复杂而且很慢,会严重影响APP的发布上线。

web APP:
    因为运行在移动设备的浏览器上,所以只需要一个开发项目。可以通过HTML、CSS或者JavaScript来进行WebAPP的开发。开发成本低、开发速度快。

2、功能方面

原生APP:
    原生APP是一个系统性的应用程序,可以类比于电脑上的软件。原生app可以调用移动终端的硬件设备, 比如:麦克风、摄像头、短信、GPS、蓝牙、重力感应等。实现功能丰富

web APP:
    Web APP可以类比于电脑上的网页。WebAPP更多是页面展示类的APP。只能使用有限的移动硬件设备功能。更多用于页面展示,侧重于简单的交互,无法使用很多硬件设备独特的功能。

3、应用安装与使用方面

原生APP:
    需要通过应用商店将原生app下载到手机上或移动终端上。以独立的应用程序运行用户必须手动去下载并安装这些原生App,原生应用可以节约宽带成本,可以访问本地资源、缓存。
web APP:
    过移动设备上的浏览器访问,软件更新只需要更新服务器就够了,用户层面不需要做任何操作。不需要安装客户端,可以节省手机终端的内存空间。

4、版本控制方面

原生APP:
    用户可以自由的选择是否更新软件版本,所以会出现不同用户同时使用不同版本的情况。同时也会导致维护成本比较高。使用旧版本的用户无法体验新版本的完整功能。
web APP:
    所有用户都是同样的版本,所有用户获得的功能都是相同的。版本更新比较方便,直接在服务器册更新数据即可。一个功能做好了就上线,一天更细几十次都毫无压力。如果客户端只是一个浏览器,那一切都会变得非常简单。另外web统一性高,跨平台使用时开发量少。由于其入口不明显(浏览器导航或者随意点击链接进入),让用户记住的门槛也随之拔高。每次推广导入的流量都可能沦为一次性努力,用户留存低。

5、加载速度方面

原生APP:
    原生APP由“云服务器数据+APP应用客户端”两部分构成,APP应用所有的UI元素、数据内容、逻辑框架均安装在手机终端上。访问的时候,不需要重新下载加载应用页面框架,只需要加载数据即可。所以加载速度更快,页面响应更快。
web APP:
    而WebAPP打开一个页面,都需重新加载页面的所有元素,访问速度受手机终端性能和网络环境的限制,导致加载速度慢,而且操作频繁容易卡死。

总结:

    原生App偏向于交互,注重用户体验(导航切换、勾选选项、图片、视频等操作),WebAPP偏向与浏览和简单的交互。一些功能需要访问硬件(摄像头、传感器等),使用原生App,WebAPP用于信息展示。成本有限时,核心的功能使用原生APP,周边辅助的功能可以使用WebApp。现状:比较流行的方法就是将原生App和WebApp进行融合,就是说应用大的框架是原生的,其他详细的内容就通过网页封装,这样做的好处就是在方便更新的同时,也能保证核心功能的交互体验。

2013-11-07 22:35:19 hsbirenjie 阅读数 5232

目前移动互联网基本采用了NativeApp、WebApp、HybridApp三种开发模式,很难说这三种模式那种更优越,目前的情况可以说是三分天下吧,不同的开发者可以根据自己的实际情况选择不同的开发模式。谈论那种模式最好实际上事非常无聊的事情。

1、NativeApp

Native apps live on the device and are accessedthrough icons on the device home screen. Native apps are installed through anapplication store (such as Google Play or Apple’s App Store). They aredeveloped specifically for one platform, and can take full advantage of all thedevice features–they can use the camera, the GPS, the accelerometer, thecompass, the list of contacts, and so on. They can also incorporate gestures(either standard operating-system gestures or new, app-defined gestures). Andnative apps can use the device’s notification system and can work offline.

开发成本过高,跨平台性不好是开发者们选择放弃这种开发模式的重要原因。开发语音主要采用Object-C、Java等语言。由于我不是做Native端开发的,这里不多说了。

2、WebApp

 Web apps are not real apps; they are reallywebsites that, in many ways, look and feel like native applications. They arerun by a browser and typically written in HTML5.  Users first accessthem as they would access any web page: they navigate to a special URL and thenhave the option of “installing” them on their home screen by creating abookmark to that page.

HTML5技术的兴起给Web App注入了新的生机。Web App具有开发成本低、周期短、使用方便、维护简单等特点。随着HTML5被过度热炒和实际开发中遇到的性能以及体验问题,WebApp逐渐势弱。同样,以AppStore为首的App分发平台当然是不希望webapp破坏自己建立的生态系统的。html5迟迟没有得不到一个公认的标准,也阻碍着webapp的发展。但是这些都不足以阻碍webapp的发展。现在APP的数量已经达到数以百万计,实际上用户根本不需要这么多的App,很多App被用户下载后,一个月都不会被打开一次。

而webapp用户根本不需要安装,只需要打开手机浏览器,输入网址或搜索目标,点击即可到达想要的网页,基本和PC互联网的思路是一致的,这也说明百度同样在移动入口上有这很大的优势。在NativeApp上用户只有安装了App,才能浏览,而webapp是直接通过手机浏览器为入口,或者推送的信息为入口,这么看webapp在流量上是有很大的优势的。但是目前webapp得不到很好的发展主要有以下几个方面的原因:1、无有效且广泛的webapp发行渠道(NativeApp有AppStore等);2、webapp表现和体验不佳(这点算硬伤吧);3、适配难度(一套web很难兼容所有的手机,特别是国内某些自以为很牛B的手机,大可乐算一个吧,哈哈);4、配套的标准尚未成熟(主要指html5吧)。

网站移动化是必然的,目前知道webapp比较好的解决方案有如下几个:

1、云适配  号称引入一段神奇的代码就能将PC网站移动化。陈本峰老师也是我学习的榜样,html5布道官。了解更多信息可以链接到http://www.yunshipei.com/  

2、百度site App  网址:http://siteapp.baidu.com/

3、还知道个做微站的网站,号称把微信、微博入口都已打通,企业用户营销很好的平台:http://www.weizhan360.com/     

当然有实力的公司也有许多都有自己的移动团队,重新开发一套自己的移动端网站。如:最近刚刚上市的58同城 http://m.58.com

这里说的几种解决方案,开发者也得根据自己的需要去选择,还是拿58同城举例子,58同城不可能去云适配,本来PC端的网页就够乱了,这也和58同城分类信息特征有关系,如果云适配,在手机端得不到很好的展示,只会更加的乱了。


3、HybridApp

Hybrid apps are part native apps, part web apps. (Becauseof that, many people incorrectly call them “web apps”).  Like nativeapps, they live in an app store and can take advantage of the many devicefeatures available. Like web apps, they rely on HTML being rendered in abrowser, with the caveat that the browser is embedded within the app.

Hybrid App,这种既有跨平台开发周期短、成本低的基因,又能发挥Native App体验和性能的优势,HybridApp混合式移动应用开发逐渐成为企业移动开发的首选。Hybrid App通常是基于第三方跨平台移动应用引擎框架进行开发,在国内开发者中比较知名的有PhoneGap、Titanium和AppCan这些引擎框架一般使用HTML5和Javascript作为编程语言,调用引擎封装的底层功能如照相机、传感器、通讯录、二维码等。HTML5和Javascript只是作为一种解析语言,真正调用的都是NativeApp一样封装的底层功能,这是和Web App的最大区别和不同。因为使用了浏览器技术,所以Hybrid App通常具有跨平台的特性,并且开发成本和WebApp接近,开发效率也远高于Native App。

说实在的,从表面上看的话,很难区分一个App到底是Native App还是Hybrid App,但实际上我们更多的是把Hybrid App当做是Webapp的一部分,因为他是一部分Native(比较少),绝大部分的web页面(html5页面)。通过手机抓包工具Fiddler是可以区分一个App到底是Native App还是Hybrid App的。Hybrid App和Native App一样都是需要用户在各种App分发渠道上下载并安装到手机上才能用的。Hybrid App的体验当然是没话说,比较棒的,有这Native App的全部优点。html5很好的解决了跨平台性的问题,也解决了开发成本过高的问题。网上有估计到2016年50%+的App将是Hybrid App。譬如现在也有许多不多的代表作,如:fb、掌上百度、以及刚上市的58客户端。

One Web more  native 可以很好的形容Hybrid App这种开发模式。

作为一个有着1年多Hybrid App开发经验的屌丝攻城师来说,在这里想给Hybrid App这种开发模式泼一泼冷水,说一说开发过程中他的不足之处吧。

首先,一套web兼容n个Native是一件很难的事情,尤其是对一些App更新特别频繁的公司来说,更是苦难。Hybrid App中的js、css等静态资源的管理就是一个很头疼的问题。譬如我们1.0版本后,1.1版本html页面有修改变动,js、css资源文件就会有变动,那么我们的这些资源就得兼容以前的版本,那以前的版本要不要去加载最新版本的资源文件呢?是采用同步加载还是异步加载呢?资源加载的过程中如果加载的资源有一部分失败了呢?老版本的包升级更新到新版本资源下载原子性的问题?像这种静态资源文件需不需要内置到客户端里面呢?

当然Hybrid App作为一个新型的开发模式,谁也不能保证一开始就想清楚所有的事情,任何新兴事物都得在发展过程中,才能逐渐看清楚未来。

如果作为是完全新开发Hybrid App,关于资源问题可采用如下方案:首先,静态资源必须内置到客户端里面,包括一些重要的静态页面。这样能提高App的流畅性,在现在国内移动网络这么差的情况下,让用户去下载几十K的资源简直是灾难性的。资源都配置一个版本号,资源更新采用同步加载和异步加载并行,对于一些不影响用户功能使用的资源采用异步加载的方式实现,第一次进入页面的时候还是使用老的资源,异步去加载资源,如果资源加载完成,第二次进入的时候就使用新的资源文件。如果缺少了这个资源,功能有问题,或者样式有问题,那这些资源就要同步加载,同步加载可以放在启动客户端后加载或者加载进入页面时同步加载。还一个比较难的问题是老版本包资源更新的时候更新资源的原子性,如果某些资源加载失败了,要怎么处理?我的想法是只有资源完全加载成功后才将本地的版本号修改,标记为成功,那些失败的资源在进入引入改资源的页面或者启动客户端的时候会被再次的加载。


唉,啰嗦了这么多,洗洗睡吧。


参考:http://info.1688.com/detail/1118609410.html


2018-09-30 21:40:53 wsymcxy 阅读数 1347

原生app:

    安卓操作系统:java语言是安卓系统开发原生语言,原生app

    IOS操作系统:object-c 语言是原生app

    特点:比较快捷的使用设备端提供的接口,处理速度上有优势。

混合app:

    控件:UI webview 可以假装网页,加载网址,直接有原生打包生成app

    遇到设备端的拍照、音频处理、视频录制等等操作,需要使用原生方式调取,HTML5只是提供了展示形式,采用的操作javascript;

    中间件:phonegap appcan 生成app应用。

    特点:展示方面开发效率比原生开发效率更高,人员成本,时间成本上;

WEB APP

    还是基于网站本身,利用HTML5技术实现移动端浏览器浏览体现更好展示和应用

    比如:微信中的公众号,创建桌面快捷方式,直接进入公众号。

                百度提供轻应用,直达号等。

--------------------- 本文来自 Roly 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/j67065/article/details/52056499?utm_source=copy

2019-05-15 10:26:46 qq_37635519 阅读数 1067

原生app和混合app、webapp有哪些区别?优略势对比

开发制作一款APP费用多少?不同APP功能价格各不同,而且和APP的开发方式密切相关。APP功能的差异很容易理解,那么APP的开发方式如何划分呢?


目前市场主流的APP主要分三种:原生APP、WebAPP和混合APP三种,这里对三者的区别进行详细分析。

原生APP


原生APP是什么?原生APP就是利用Android、iOS平台官方的开发语言、开发类库、工具进行开发。比如安卓的java语言,iOS的object-c 语言。在应用性能上和交互体验上应该是好的。

优点:

1、可访问手机所有功能、可实现功能齐全;
2、运行速度快、性能高,的用户体验;
3、支持大量图形和动画和重新发现,不卡,反应快。
4、比较快捷地使用设备端提供的接口,处理速度上有优势。

缺点:

在过去主要是成本高、周期长,Android和iOS都需要单独开发。现在,通过“应用公园”平台不用敲代码自己就能制作APP,成本、周期降低90%以上。而且应用公园APP在线制作平台采用的是源生语言开发,适配,另有源码独立部署版,支持二次开发,实现功能无限扩展。

 

 

Web版APP


本质就是浏览器功能的叠加,用普通Web开发语言开发的,通过浏览器运行。

优势:

1、支持范围广;
2、开发成本低、周期短。

缺点:

1、对联网要求高,离线不能做任何操作;
2、功能有限;
3、运行速度慢,页面不能承载太多东西;
4、图片和动画支持性不高;
5、如果用户使用更多的新型浏览器,那么就会出现运行问题。

 

混合开发


即利用了原生APP的开发技术还应用了HTML5开发技术,是原生和HTML5技术的混合应用。混合比例不限。

优点:

1、比web版实现功能多;
2、兼容多平台;
3、可离线运行;

缺点:

1、用户体验不如本地应用;
2、性能稍慢(需要连接网络);
3、技术还不是很成熟。

 

三大APP类型,客户可以根据自己的需求进行选择。现在,随着APP开发技术不断取得发展,新兴起的全新APP开发方式:不用敲代码,自己就能制作原生手机APP,而且Android和iOS可以一键自动生成。

2018-11-14 17:24:25 HYDMonster 阅读数 4862

这一篇博客记录的是我第一次接触Webapp的详细过程。关于环境配置我就不细说了,网上很多配置教程。

软件及环境:jdk1.7及以上,MyEclipse或Eclipse(本人第一次学习安装的是MyEclipse,如果你要使用Eclipse还需要安装tomcat,我用的MyEclipse2015,它在后面学习Springmvc时会有jdk版本问题,建议换高版本)

过程:

  1. 安装MyEclipse
  2. 新建WebProject

             File->new->WebProject

             

             填写项目名称,然后next,next

             

             勾选Generate web.xml deployment descriptor,然后next,finish

              

     3.将工程添加进服务器tomcat

             Servers,右键->add Deployment

             

             在project处导入刚才新建的工程,finish

             

             右键服务器,选择Debug Server,也可以是run server

             

             

             打开浏览器,输入http://localhost:8080/homew1/

             

             表示已经建好一个Web工程

   4.Servlet配置

             在工程的src包处右键,src->new->Servlet

             

             包名Package可以自己起一个,next

             

             Servlet/JSP Mapping URL处可以简写成/MyServlet,然后finish

             

             建好后是

             

            然后右键tomcat服务器下的工程,选择redeploy/reload application刷新  

            

            在浏览器输入http://localhost:8080/homew1/MyServlet

            

             这样就新建好了一个servlet

   5.新建网页页面

             在工程WebRoot处右键,WebRoot->new->JSP

              

             填好名字,然后finish

             

             右键建好的login.jsp,选择openwith->MyEclipse JSP Editor (注,这样打开快,也可以选择它默认打开方式)

             

             将jsp里第一行的编码方式pageEncoding改为utf-8  (支持中文)

             

             然后在<body> </body>里编写网页内容

             

            注意,form里的action里的servlet名字要对应相应的Servlet,可以在WebRoot下的Web-INF下的web.xml里查看

            网页写好后记得刷新tomcat里的工程,可以去浏览器看效果http://localhost:8080/homew1/login.jsp  

            

            再新建一个与此页面相关的Servlet,可以用来接收信息

            

            打开loginServlet,改写doGet函数

            

           进入http://localhost:8080/homew1/login.jsp,输入信息,提交后就可以看到输入的信息了。

                    

          如果你没有在对应的jsp表单中声明method,则默认调用doGet方法,若要用doPost,则

           

           (注:post提交时不容易暴露信息)

            

 

代码参考:https://github.com/HYDmonster/WebProject-day01

 

native app webapp

阅读数 189