开发移动应用程序的三种选择:原生、HTML5或混合在当今日益社会化和开放的环境中,移动应用程序扮演着至关重要的角色,重点已从互联网端应用程序转移到移动设备端应用程序。移动应用程序不再是可选的,而是必不可少的。你需要一个移动应用程序,但你从哪里开始呢?许多因素在您的移动策略中发挥作用,例如您的员工的开发技能、所需的设备功能以及安全性、离线功能和互操作性的重要性,所有这些都必须加以考虑。***,这不仅仅是你的应用程序会做什么,而是如何开发一个成功的应用程序。像女孩子一样,你可能需要多试几张床,看看它们是太软还是太硬,然后才能找到合适的。有时根本没有理想的选择。每个开发方案都有其优点和缺点,这些方案可能适合也可能不适合您的开发工具。本文的初衷是帮助大家顺利找到适合的移动应用开发方法。虽然本文一般讨论移动应用程序开发,但它专门针对希望开发与Salesforce.com、Force.com或Database.com交互的移动应用程序的开发人员。目前,SalesforceMobileSDK支持开发者构建这三类应用程序:原生应用程序:原生应用程序是移动平台(如iOS或Android)独有的,使用相应平台支持的开发工具和语言(例如,iOS平台支持Xcode和Objective-C,Android平台支持Eclipse和Java)。本机应用程序的外观(外观)和行为(性能)最好。?HTML5应用程序:HTML5应用程序使用标准网络技术,通常是HTML5、JavaScript和CSS。这种一次编写,随处运行的移动开发方法构建了可在多个设备上运行的跨平台移动应用程序。虽然开发人员可以单独使用HTML5和JavaScript构建复杂的应用程序,但在撰写本文时仍然存在一些重大限制,包括会话管理、安全离线存储以及对本机设备功能(相机、日历和地理定位)的访问。等待)。?混合应用程序:混合应用程序允许开发人员将HTML5应用程序嵌入到一个瘦本机容器中,结合本机应用程序和HTML5应用程序的优点(和缺点)。本机移动应用程序简而言之,本机应用程序提供最好的易用性、最好的功能和最好的整体移动体验。以下是仅通过本机应用程序可用的功能:?多点触控:双击、缩放和其他组合用户界面(UI)手势。?快速图形API:原生平台为您提供最快的图形显示。如果您显示只有少数元素的静态屏幕,此功能可能并不重要,但如果您使用大量数据并需要快速刷新,则此功能很重要。?流畅的动画:与FastGraphicsAPI相关的是实现流畅动画的能力。这在动画、高度交互的报告或用于转换照片和声音的计算密集型算法中尤为重要。?内置组件:摄像头、地址簿、地理定位和设备的其他本机功能可以无缝集成到移动应用程序中。另一个重要的内置组件是加密存储设备,稍后将详细介绍。?易用性:本机平台是一个熟悉的平台,因此如果您在熟悉的平台之上添加人们期望的所有本机功能,您就会拥有一个更易于使用的应用程序。?文档:市面上有超过2500本关于iOS和Android开发的书籍,在Stackoverflow和其他网站上有无数的文章、博文和详细的技术帖子。本机应用程序通常使用集成开发环境(IDE)进行开发。IDE提供用于构建、调试、项目管理和版本控制的工具,以及专业开发人员需要的其他工具。尽管iOS和Android应用程序是使用不同的IDE和语言开发的,但在开发环境上有足够的相似之处,因此没有必要深入研究两者之间的差异。简而言之,您可以使用设备需要的任何工具。您需要这些工具,因为本机应用程序开发更难。同样,所需的开发经验也比其他开发场景要多;你不能剪切和粘贴Objective-C并期望它能工作。事实上,开发团队的技术专长是一个重要的考虑因素。如果您是一名专业开发人员,您可能已经熟悉成熟可靠的API和框架,熟悉使用内置组件实现特效的便利性,或者将代码集中在一个地方的好处。老实说,熟练的原生iOS或Android开发人员现在是摇滚明星,自然会要求它。当我们从开发的角度讨论本机应用程序时,请不要忘记还有一个更重要的角度:最终用户。如果您正在寻找应用程序,可以在应用程序商店中找到它。如果您启动该应用程序,它会立即启动。如果您使用应用程序,您将获得快速的性能和一致的平台外观。如果您的应用需要更新,它会告诉您它需要更新。本机应用程序可为您提供您所期望的制造您所持有设备的公司的一切,就好像这就是应用程序的用途一样。HTML5移动应用程序如果您是移动应用程序开发的新手,那么您来晚了。不过,就基于网络的移动应用程序而言,我们仍处于早期阶段。当然,这些年来浏览器变得越来越好,但底层技术在很大程度上保持不变。但这可能是一件好事。HTML5移动应用程序基本上是一个网页或一系列网页,设计用于在极小的屏幕上打开。因此,HTML5应用程序与设备无关,可以使用任何现代移动浏览器打开。由于您的内容在线,因此很容易搜索到,这可能是一个巨大的好处,具体取决于应用程序的性质(如购物应用程序)。如果你开发过Web应用程序,你自然会喜欢HTML5并如鱼得水。如果你是web开发新手,技术门槛相对较低;比原生或混合开发更容易上手。不幸的是,每个移动设备似乎对可用的屏幕尺寸和分辨率都有自己的知识和理解,因此有一个额外的负担:在不同的设备上进行测试。浏览器不兼容在Android设备上尤为常见,因此在浏览器方面要小心。HTML5的“一次编写,随处运行”方法的一个重要部分是,当涉及到本机应用程序时,分发和支持要容易得多。需要开发修复程序或添加功能?一旦完成,就可以为所有用户统一部署。对于原生应用程序,开发和测试周期更长,之后消费者通常必须登录商店并下载新版本以获得最新修复。在过去的一年里,HTML5已经完全成为一种非常流行的构建移动应用程序的方式。当今市场上有多种UI框架可以解决开发人员再也不想面对的一些最复杂的问题。iScroll在模拟快速滚动方面做得非常出色。JQueryMobile和SenchaTouch提供优雅精致的移动组件,并且有成百上千个插件提供从轮播到超级复杂控件的一切。那么,既然HTML5应用程序更容易开发、更容易支持并且涵盖最广泛的设备种类,那么这些应用程序的损失在哪里呢?我们已经讨论了本机开发的主要好处,因此我们只重申一点:您无权访问设备上的本机小部件。用户也无法获得原生应用程序熟悉的外观和感觉,也无法使用熟悉的组合手势。但是正在取得长足的进步,浏览器一直支持越来越多的功能。最新一批浏览器支持硬件加速的CSS3动画特性,为滑动面板和屏幕之间的过渡效果提供流畅的动画效果,但即便如此,它们仍然无法与原生应用程序的功能和灵活性相媲美。相提并论今天,根本不可能捕捉多点触控输入事件(确定多根手指何时在屏幕上),也不可能通过悬停按钮和悬停然后落到正确位置的照片获得优雅和精致的路径样式.然而,一个重要的限制是离??线存储和安全性,尤其是对于企业移动应用程序。虽然表面上可以通过在设备上缓存文件来实现离线功能,但这根本不是一个好的解决方案。虽然底层数据库可能已加密,但它不如使用开发人员证书保护每个应用程序的本机钥匙串加密方法那样充分隔离。此外,如果从桌面启动经过身份验证的Web应用程序,则每次将应用程序发送到后台时都需要用户输入登录凭据。这对用户来说是一种糟糕的体验。通常,即使是在原生平台上实??施微不足道的安全措施,对于Web和移动开发人员来说也是一项复杂的任务。因此,如果安全是最重要的,那么这个因素可能会决定您选择哪种移动技术。混合移动应用混合开发集本机和HTML5的优点(和缺点)。混合应用程序,正如我们所定义的那样,是一种主要使用HTML5和JavaScript构建的Web应用程序,并包装在一个精简的本机容器中,该容器提供对本机平台功能的访问。PhoneGap是构建混合移动应用程序的最佳容器。总的来说,混合应用程序结合了两个世界的优点。现有的Web开发人员已经成为优化JavaScript、操纵CSS以设计漂亮的布局以及编写可在任何平台上运行的兼容HTML代码的专家,现在可以构建复杂的移动应用程序,而不会牺牲酷炫的原生功能。在某些情况下,原生应用程序开发人员可以为图像处理等任务编写插件,但在这种情况下,很多问题都隐藏在细节中。在iOS上,嵌入式网络浏览器或UIWebView与Safari浏览器不同。虽然差异很小,但在调试时可能会导致棘手的问题。这就是为什么有必要使用克服所有限制的流行框架的原因。您知道,本机应用程序安装在设备上,而HTML5应用程序驻留在Web服务器上,因此您可能想知道:混合应用程序将其文件存储在设备上还是服务器上?没错,其实有两种部署混合应用的方式。?本机:您可以将HTML和JavaScript代码以类似于本机应用程序结构的方式包装到移动应用程序二进制文件中。在此场景中,您使用RESTAPI在设备和云之间来回移动数据。?服务器:或者,您可以通过将容器用作UIWebview顶部的薄外壳,从服务器部署标准Web应用程序(使用可选缓存以提高性能)。Netflix有一个很酷的应用程序,它使用相同的代码库在所有设备上运行UI:平板电脑、手机、智能电视、DVD播放器、冰箱和汽车。虽然大多数人不知道应用程序是如何部署的并且不关心,但看到他们可以快速更改界面或运行A/B测试以确定最佳用户交互是很有趣的。视频解码和流式传输的基本工作被卸载到本机层以实现最佳性能,因此这是一款速度快、看起来像本机的应用程序,确实是两全其美。结束语移动开发环境在不断变化。每六个月,就会出现一个新的移动操作系统,其具有只能通过本机API访问的独特功能。此后不久,容器将这些功能带入了混合应用程序,互联网每隔几年就会出现巨大飞跃。基于目前的技术,本文描述的开发场景之一一定能满足您的需求。下表对其进行了总结:原生HTML5混合应用程序功能图形原生APIHTML、Canvas和SVGHTML、Canvas和SVG性能快慢慢原生外观原生模拟模拟分发AppStoreWebAppStore设备访问摄像头YesNoYes通知YesNoYes联系人和日历YesNoYes离线存储安全文件存储共享SQL安全文件系统和共享SQL地理定位有手势、滑动、缩放、连接、在线和离线主要是在线和离线开发技巧,_or_Hybrid:_Understanding_Your_Mobile_Application_Development_Options
