开发移动应用程序的三种选择:原生、HTML5或混合

Hybrid App(混合模式移动应用 Hybrid App(混合模式移动应用)是指介于web-app、native-app这两者之间的app,兼具“Native App良好用户交互体验的优势”“Web App跨平台开发的优势”。简介“云”代的来临正在改变App运营团队之间的关系,一场不能避免的变革正在进行。鉴于移动终端的局限性,移动终端上的APP由本地化应用(Native App),到基于WEB的应用Web App,再到混合型应用 阅读详情

原生应用程序:原生应用程序是某一个移动平台(比如iOS或安卓)所特有的,使用相应平台支持的开发工具和语言(比如iOS平台支持Xcode和Objective-C,安卓平台支持Eclipse和Java)。原生应用程序看起来(外观)和运行起来(性能)是最佳的。

HTML5应用程序:HTML5应用程序使用标准的Web技术,通常是HTML5、JavaScript和CSS。这种只编写一次、可到处运行的移动开发方法构建的跨平台移动应用程序可以在多个设备上运行。虽然开发人员单单使用HTML5和JavaScript就能构建功能复杂的应用程序,但截至本文截稿时仍然存在一些重大的局限性,具体包括会话管理、安全离线存储以及访问原生设备功能(摄像头、日历和地理位置等)。

混合应用程序:混合应用程序让开发人员可以把HTML5应用程序嵌入到一个细薄的原生容器里面,集原生应用程序和HTML5应用程序的优点(及缺点)于一体。

简而言之,原生应用程序提供了最佳易用性、最佳特性以及最佳总体移动体验。以下这些是只能通过原生应用程序才能实现的功能:

•多点触控:双击、缩放及其他组合的用户界面(UI)手势。

•快速图形API:原生平台为你提供了显示最快速的图形。如果你显示只有寥寥几个元素的静态屏幕,这个功能可能不太重要,但如果你使用大量数据,需要快速刷新,这项功能却很重要。

•流畅动画:与快速图形API有关的是实现流畅动画的功能。这在动画、高度交互的报表或者转换照片和声音的计算密集型算法中显得尤为重要。

•内置部件:摄像头、地址簿、地理位置及设备的其他原生功能可以无缝地整合到移动应用程序中。另一个重要的内置部件是加密的存储装置,这方面稍后会有详细介绍。

•易于使用:原生平台是人们耳熟能详的平台,所以如果你在这个熟悉的平台上添加人们期望的所有原生功能,也就拥有了一款使用起来完全更容易的应用程序。

•说明文档:市面上仅仅介绍iOS和安卓开发的图书就有2500多本,Stackoverflow等网站上还有不计其数的文章、博文和详细的技术帖子。

原生应用程序通常使用集成开发环境(IDE)开发而成。IDE提供了用于构建、调试、项目管理和版本控制的工具,还提供了专业开发人员需要的其他工具。虽然iOS和安卓应用程序是使用不同的IDE和语言开发而成的,不过开发环境方面却有颇多相似之处,没有必要深入钻研两者的差异。简而言之,设备需要什么样的工具,你就使用什么工具。

你之所以需要这些工具,是因为原生应用程序开发起来比较困难。同样,需要的开发经验也要比其他开发场景来得丰富;你根本不能剪贴拷贝Objective-C,就指望可行。确实,开发团队的技术专长是个重要的考量因素。如果你是名专业开发人员,恐怕早已通晓成熟可靠的API和框架、通过已构建的部件轻松实现的特效,或者将代码都放在一个地方的好处。说实话,这年头技能娴熟的原生iOS或安卓开发人员如同摇滚明星,自然可以提出摇滚明星般的要求。

虽然我们从开发的角度来探讨原生应用程序,不过别忘了还有一个更重要的角度:最终用户。如果你在物色某款应用程序,可以在应用程序商店中找到。如果你开始运行应用程序,它会立即启动。如果你使用应用程序,可以获得快速的性能以及一致的平台外观感觉。如果你的应用程序需要更新,它会告诉你需要更新。原生应用程序为你提供了期望从制造你手头设备的公司获得的一切,好像应用程序的用途就是这样。

HTML5移动应用程序

如果你刚接触移动应用程序开发,那你动作确实有些晚了。不过,就基于Web的移动应用程序而言,我们仍处于早期阶段。当然,诸多浏览器在过去的好多年变得越来越好,可是底层技术却基本上没有发生太大的变化。

但这可能是件好事。HTML5移动应用程序大致上来说就是个网页或一系列网页,旨在可以在尺寸极小的屏幕上打开。因此,HTML5应用程序与设备无关,可以用任何一种现代的移动浏览器来打开。又由于你的内容放在网上,它易于搜索,这可能是个巨大的好处,具体就要看应用程序的性质了(比如购物类应用程序)。

如果你开发过Web应用程序,自然也会喜欢上HTML5,用起来会如鱼得水。如果你刚接触Web开发,技术门槛比较低;相比原生开发或混合开发,它更容易上手。遗憾的是,每种移动设备对于可用屏幕尺寸和分辨率似乎都有各自的认识和理解,所以另外多了一种负担:在不同的设备上进行测试。浏览器不兼容问题在安卓设备上来得尤其常见,所以浏览器方面要小心。

“只要编写一次、可到处运行”的HTML5方法的一个重要部分是,就原生应用程序而言,分发和支持要容易得多。需要开发修正版或添加功能特性?完成后可以为所有用户统一部署。就原生应用程序而言,开发和测试周期比较长,之后消费者通常必须登录到商店、下载新版本,才能获得最新修正版。

在过去的一年,HTML5已全然成为一种非常流行的构建移动应用程序的方式。现在市面上有多种UI框架,可以解决开发人员都不想再次面对的一些最复杂的问题。iScroll在模拟快速滚动方面做得非常出色。JQuery Mobile和Sencha Touch提供了优雅精致的移动组件,插件即便没有数千个,至少也有数百个,它们提供了从轮播到超复杂控件的各种特性。

所以,既然HTML5应用程序开发更容易、支持更容易,覆盖最广泛的设备种类,那么这些应用程序又输在哪里呢?我们已经探讨了原生开发的主要好处,所以我们只重申一点:你无法访问设备上的原生部件。用户也无法获得原生应用程序那样熟悉的外观感觉,也无法使用熟悉的组合手势。不过各方面在取得长足进展,浏览器一直在支持越来越多的功能。

最新一批浏览器支持硬件加速的CSS3动画特性,为滑动面板提供了流畅动画效果,还提供了屏幕之间的转场效果,不过即便如此,还是无法与原生应用程序的功能和灵活性相提并论。如今,根本不可能捕获多点触控输入事件(确定何时多个手指在屏幕上),也不可能使用悬浮、然后落到正确位置的侧滑按钮和照片来获得路径风格的那种优雅精致。

不过,重大局限性在于离线存储和安全,对企业移动应用程序来说更是如此。虽然你可以通过将文件缓存在设备上,貌似实现离线功能,但这根本不是一种很好的解决办法。虽然底层数据库可能经过加密,但是其不如用开发者证书保护每个应用程序的原生钥匙链加密方法来得充分分隔。此外,如果从桌面端启动带验证机制的Web应用程序,每当应用程序被发送到后台,它都需要用户输入登录凭据。这对用户来说是个糟糕的体验。通常来说,在原生平台上实现哪怕微不足道的安全措施对Web移动开发人员来说也是很复杂的任务。因此,要是安全至关重要,这个因素可能会决定你选择哪一种移动技术。

混合移动应用程序

混合开发集原生和HTML5两者的优点(及缺点)。我们定义的混合应用程序是一种Web应用程序,主要使用HTML5和JavaScript构建而成,然后封装在细薄的原生容器里面,可通过容器来访问原生平台功能。PhoneGap是最流行的构建混合移动应用程序的容器。

总的来说,混合应用程序集两者之所长。如果现有的Web开发人员在优化JavaScript,处理CSS从而设计漂亮布局以及编写可在任何平台上运行的兼容HTML代码方面已成为行家里手,现在就能构建功能复杂的移动应用程序,并不牺牲很酷的原生功能。在某些情况下,原生应用程序开发人员可以为图像处理之类的任务编写插件,但在这种情况下,很多问题隐藏在细节中。

在iOS上,嵌入式Web浏览器或UIWebView与Safari浏览器不一样。虽然区别不大,但它们会在调试时带来棘手问题。这就是为什么有必要使用克服了所有局限性的流行框架。

你知道,原生应用程序安装在设备上,而HTML5应用程序驻留在Web服务器上,所以你可能会想:混合应用程序将其文件存储在设备上还是存储在服务器上?没错,实际上有两种方式来部署混合应用程序。

•本地:你可以将HTML和JavaScript代码包装成移动应用程序二进制代码,采用类似原生应用程序结构的方式。在这种场景下,你使用REST API,在设备和云端之间来回转移数据。

•服务器:另外,你可以从服务器来部署标准的Web应用程序(可采用可选的缓存机制,以提高性能),只要将容器用作UIWebview上面那层细薄的外壳。

Netflix有一款很酷的应用程序,它使用了一样的代码库以便在所有设备上运行UI:平板电脑、手机、智能电视、DVD播放机、冰箱和汽车。虽然大多数人不知道该应用程序是如何部署的,也并不关心,但下面这一点很吸引你:他们可以迅速更改界面,或者进行A/B测试,确定最佳的用户交互。视频解码和流式传送这些基本工作交给了原生层,以获得最佳性能,所以这是一款运行快速、看似原生的应用程序,确确实实集两者之众长。

结束语

移动开发领域在不断变化。每过半年,就会出现一种新的移动操作系统,其独特的功能特性只有通过原生API才能访问。之后不久,容器将那些功能特性引入到混合应用程序,而互联网每过几年就会迎来巨大飞越。基于目前的技术,本文中介绍的其中一种开发场景势必会适合你的要求。不妨用下面这张表对此作一个总结:



 

原生

HTML5

混合

应用程序特性

 

图形

原生API

HTML、Canvas和SVG

HTML、Canvas和SVG

性能

快速

慢速

慢速

原生外观和感觉

原生

模拟

模拟

分发

应用程序商店

Web

应用程序商店

设备访问

 

摄像头

通知

联系人和日历

离线存储

安全的文件存储

共享式SQL

安全的文件系统和共享式SQL

地理位置

手势

 

滑动

缩放

连接

在线和离线

主要是在线

在线和离线

开发技能

ObjectiveC和Java

HTML5、CSS和JavaScript

HTML5、CSS和JavaScript




 

原生

HTML5

混合

应用程序特性

 

图形

原生API

HTML、Canvas和SVG

HTML、Canvas和SVG

性能

快速

慢速

慢速

原生外观和感觉

原生

模拟

模拟

分发

应用程序商店

Web

应用程序商店

设备访问

 

摄像头

通知

联系人和日历

离线存储

安全的文件存储

共享式SQL

安全的文件系统和共享式SQL

地理位置

手势

 

滑动

缩放

连接

在线和离线

主要是在线

在线和离线

开发技能

ObjectiveC和Java

HTML5、CSS和JavaScript

HTML5、CSS和JavaScript

英文

HTML语言的移动应用开发 使用HTML进行移动应用开发代表了开发领域的一种趋势,凭借其跨平台性、开发成本的优势以及灵活的结构,使得开发者能够更高效地创建应用。随着技术的发展,HTML移动开发中的角色将会愈加重要。未来,开发者应当不断学习适应新兴技术,提升自身的技能,以便在竞争激烈的市场中立于不败之地。 阅读详情

相关推荐

移动应用开发三大模式:原生、H5混合开发全解析

移动应用开发主要分为原生开发、H5开发混合开发三种模式。原生开发直接调用系统API,性能最优但成本较高;H5开发基于Web技术栈,跨平台能力强但性能受限;混合开发结合两者优势,通过WebViewJavaScriptCore实现动态更新。在技术选型开发者需要权衡性能要求、开发资源迭代频率等维度。React NativeFlutter等跨平台框架正在改变开发格局,而WebAssembly等新技术进一步模糊了原生与Web的界限。对于电商、金融等行业应用,通常采用核心功能原生开发+非核心模块H5混合

weixin_29016833的博客 246

移动应用程序开发入门(IBM)

总结IBM对开发移动应用程序的建议,根据本文所述的方法,协作软件生命周期管理的最佳实践创建移动应用程序的新要求有机结合

原生混合、react-native应用对比分析

原生开发是系统自带的app开发方式,也是大部分人最熟悉app开发的技术,如android、ios、wp。 H5开发Html5开发的app,本质上运行在手机浏览器中的页面,一般使用app做一个壳套用浏览器运行H5的页面,由于H5的特性也有很多app使用原生半H5的hybird app 开发模式。react-native是用react 进行原生app开发的框架,让广大开发使用jsreact开发应用,提倡组件化开发

iOS_Manguoge的博客 1万+

移动应用程序开发》教学大纲

对手机移动应用程序开发教学要求等做了说明

移动应用程序开发_什么是移动应用程序开发

移动应用程序开发One of the most popular forms of coding in the last decade has been the creation of apps, or applications, that run on mobile devices. 在过去的十年中,最流行的编码形式之一是创建在移动设备上运行的应用程序。 Today there are two ...

cumi7754的博客 4071

移动App开发常见的三种模式:原生应用、H5移动应用混合模式应用

移动应用市场的迅猛发展中,移动App开发正日益成为技术创新用户体验提升的焦点。对于开发者而言,选择适合自己项目的开发模式成为至关重要的决策。本文将探究移动App开发三种常见模式:原生应用、H5移动应用混合模式应用。

HUIBUR的博客 1588

一个简单的移动应用开发实例

逻辑代码写完之后就是ui设计了,找到activity_main.xml,就可以设计ui界面了。然后在java文件夹下面的第一个文件夹里面找到MainActivity.java。首先新建一个项目,语言选择java语言(另一个没学不会)。如果你点开发现是视图的话,右上角有选项可以调整。然后就开始在这个文件中完成逻辑代码创作了。点击Android可以切换视图。点击finish就创建完成啦。然后选择模拟设备就可以运行了。点击next进入下一步。其他两个应该是测试用的。下面是项目的大概情况。tip只是文件名称。

2302_76512158的博客 423

移动原生App开发HTML 5开发,你更看好哪个?

程序的发布,让我们不得不思考,移动原生App开发HTML 5开发,哪个更有优势? 在技术的发展上,HTML 5会取代App应用吗? 你更看好哪个? 经常会有人问“APP开发究竟是用原生的好点还是H5好点?”   首先我们来看看原生APP,从2010年正式崛起,对开发者而言,不过两三年的候,对企业而言,更是赖以进...

weixin_34362790的博客 293

华为服务与支持(HTML5+CSS3)

链接:像这样的作品完成起来就没了难度,正在学习的小伙伴们在此送你们一句话:“要摘取果子的人必须爬上树”。想要学习的小伙伴,可以借鉴的,一下我会展示效果图部分代码。三、代码展示(为HTML部分代码,不能直接运行,源码在下方)(注:此次做了华为的一系列网页,可以前往我的主页进行查看)

qq_62185873的博客 367

原生与H5混合开发详解

声明:本教程不收取任何费用,欢迎转载,尊重作者劳动成果,不得用于商业用途,侵权必究!!! 目录 一、前言 二、Android与H5简介 1、浅析原生Android与HTML5 2、Native App的优缺点 3、H5的特点 4、web app 原生app 的对比,以及使用场景 一、前言 前几天有朋友问到:“Android电商开发有什么难点技术点吗?你做那个联想商城、万达商...

鲁迷那的专栏—坚持实践后再写出来! 9563

原生app、webapp、混合app的区别介绍

目前市场上主流的APP分为三种原生APP、Web APP(即HTML5混合APP三种,相对应的定制开发就是原生开发、H5开发混合开发。那么这三种开发模式究竟有何不同呢?下面我们就分别从这三者各自的优劣势来区分比较吧! 一、APP原生开发 原生开发(Native App开发),是在Android、IOS等移动平台上利用提供的开发语言、开发类库、开发工具进行App软件开发。比如Android是利用Java、Eclipse、Android studio;IOS是利用Objective-C Xcode进行

江一铭 2925

HTML5 原生开发的未来

HTML5 技术(简称 H5)在移动互联网研发中的应用越来越广泛,很多人甚至认为可以使用 H5技术代替原生的 Andoid IOS 开发,从而大幅度提高研发速度、降低研发成本。那么,目前的实际情况到底是怎么样呢? 1.概念 HTML5: 一个基于浏览器的协作标准,可以让不同的素材在浏览器中运行,它的最大优点在于跨平台运行、易开发性、成本低、开发速度快、更新及等。开发 HTML5 需要用到 HTML、CSS 、Javacript 一些其它开发框架,如 Vue、Angu...

laihongfeng的博客 897

原生开发、H5开发混合开发的区别

目前市场上主流的APP分为三种原生APP、Web APP(即HTML5混合APP三种,相对应的定 制开发就是原生开发、H5开发混合开发。那么这三种开发模式究竟有何不同呢?下面我们就分别从这三者各自的优劣势来区分比较吧!

ruanjiankaifagp的博客 568

JavaH5混合开发安卓app_对比app开发三种形态: 原生混合以及H5

标题:对比app开发三种形态: 原生混合以及H5 目前市场上选择开发app有三种选择形态:原生混合以及H5。•原生应用程序原生应用程序是某一个移动平台(比如iOS安卓)所特有的,使用相应平台支持的开发工具语言(比如iOS平台支持XcodeObjective-C,安卓平台支持EclipseJava)。原生应用程序看起来(外观)运行起来(性能)是最佳的。•混合应用程序混合应用程序...

weixin_28900437的博客 746

原生与非原生移动应用程序优劣分析,Flutter、MAUISwiftUI 你应该选择哪个?

目前的移动操作平台以谷歌的安卓苹果的iOS为主导,安卓占据市场主导地位。在全球 72.26% 的移动设备上运行,Android 是广泛使用移动操作系统,其次是 iOS,市场份额为 27.03%。Windows、Blackberry Symbian 等曾经在移动世界中大放异彩的其他操作系统现在已经过了。Android iOS 的成功很大程度上归功于可用的应用程序市场以及开发人员可以轻松地在这些平台上创建共享应用程序。 在开始之前,让我们快速总结一下当今使用的主要移动开发方法。 Native 方

iCloudEnd的博客 4249

原生app、混合app、H5(Web App)傻傻分不清楚?

市面上主流的APP分为三种原生APP、混合APP、H5(Web App)三种,相对应的定制开发就是:原生开发混合开发、H5开发。那么这三种开发模式究竟有何不同呢?本篇就分别从这三者各自的优劣势来区分比较,以及介绍一些跨端框架,如UniApp等。当然还有现在的鸿蒙开发,鸿蒙开发是华为开发的操作系统,旨在支持多种设备平台。鸿蒙开发涉及使用特定的编程语言工具来开发适用于鸿蒙系统的应用程序。因涉及较少,鸿蒙开发本文不做介绍。原生App偏向于交互,注重用户体验(导航切换、勾选选项、图片、视频等操作)。

W1391517383的博客 2221

三种移动APP(应用程序开发方式比较

一、名词介绍 1.Native APP Native APP 指的是原生程序,一般依托于操作系统,有很强的交互,是一个完整的App,可拓展性强,需要用户下载安装使用。(简单来说,原生应用是特别为某种操作系统开发的,比如iOS、Android、黑莓等等,它们是在各自的移动设备上运行的) 该模式通常是由“云服务器数据+APP应用客户端”两部份构成,APP应用所有的UI元素、数据内容、逻辑框架均安

qq_35010958的博客 4万+
上一篇: 双网卡同时上内外网的解决方法
下一篇: 详细的Android SDK Manager和AVD Manager使用
小甜心-技术喵
博客等级 码龄16年 4粉丝 2原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值