• 易迪拓培训,专注于微波、射频、天线设计工程师的培养
首页 > 无线通信 > 业界动态 > 混合Web应用—全世界最好的手机应用开发

混合Web应用—全世界最好的手机应用开发

录入:edatop.com     点击:

Tuukka Ahoniemi, Technical Product Marketing Manager, Digia, Qt

移动应用开发者面临两难选择。移动设备的情况是分散且快速发展的。要确保能占据尽可能多的市场份额,应用程序需要支持多种操作系统环境,例如Android,iOS和黑莓OS。但是这些操作系统环境有着不同的架构和应用程序接口(APIs),使得很难编译一个单件的源代码就能够直接在不同的设备上运行。

强大的性能带来强大的软件移植工作

原生应用程序开发使用的语言如C++和Objective-C提供了最佳性能,并且与主机操作系统集成,但是它是有代价的。开发团队需要了解每一个目标运行系统的详细结构和使用的特定APIs以及编程语言。除了在提供APIs的方式上不同,设计专为操作系统上应用的程序结构也可能存在差异。这就意味着在进行移植时仅仅使用不同的APls复制应用程序代码并不一定可行,而需要将其进行全新设计。因为所有目标平台上的漏洞和新性能需要被设计,部署和调试,这就当然会使不同的目标系统下难以产生一致的行为。

即使是在单一的平台上,操作系统对应用程序频繁的更新需求也是为了利用新的用户界面技术,并保持符合本地平台应用的美好外观和感觉。使用本机代码应用程序,开发人员必须密切关注相关APls可能发生的变化,它们都用来确保每个连续的更新不会影响性能或者引入错误。我们需要的是用一些方法来对相关的操作系统细节进行抽象概括,从而让一个单一的代码库能够在多个目标上运行。

已经在桌面语言上对应用程序提供跨平台的可移植性尝试,但它们仅获得了有限的接受。举个例子,Java现已被广泛地部署在服务器上,但专注於台式机应用程序的开发人员还是倾向于留在Windows,Linux和OS X的本地语言和API上。

原生应用程序一般有更高的性能,可直接进入操作系统资源从而具有使用该平台的原生用户界面(UI)元素的优点,并让它们和系统中的其他应用程序具有一致的外观。在Windows上运行的应用程序应该像一个Windows应用程序,而很多时候,基于Java的应用程序看起来与核心操作系统格格不入。

HTML5 也并非最强一招

智能手机的到来以及其基于Web的应用带来了希望,超文本标记语言(HTML)可能会形成一个通用的应用程序开发语言和APl基础。通过Javascript﹑HTML标记和层叠样式表(CSS)第3版定义的组合,HTML5使得它可以在将多媒体部署于任何移动平台上,并一贯支持该标准。近年来,虽然不同平台上的浏览器支持HTML5的 情况有所改善 – 其中一些已经帮助了在移动环境中的广泛采用开源的WebKit浏览器技术 – 但是仍存在的是内部功能实现的差异以及浏览器引擎的不同端口之间的竞争。例如谷歌将他们的浏览器引擎从WebKit项目中分解出来,在基本的WebKit的开发上只剩下苹果和其平台。这又增加了网络技术的分歧,使得应用程序开发人员必须针对不同目标浏览器的实施而努力。

浏览器的实现在某些方面上有所差异,比如他们如何解读表单元素。例如,浏览器可能无法处理类型更复杂的数据结构,比如说列举一周中各天的数据。同样地,不同的显示元素可能丢失或者仅被部分支持。虽然那些元素的功能可以经常使用自定义CSS和JavaScript来模拟,但是这增加了开发周期,并要求服务器上的浏览器监听代码或者移动客户端上的更复杂的JavaScript正确呈现在应用程序上。那些更复杂的应用需求,如事件处理,动画和视频都被浏览器以不同的方式来处理,它们要求相对应的定制开发工作,从而实现这些功能的有效模拟。

更进一步来说,使用HTML5的移动应用开发更为重要的问题是,它依赖于一个有效的互联网连接。这可能适用于那些提供实时数据馈送的应用程序。使用服务器传送的HTML5 具有可以为应用程序定期更新软件的优势,这是因为新的代码可以在没有经过应用程序运营商预先许可的情况下进行部署。但是,对于有效的互联网连接的某项要求恰好是软件中的一个固有缺陷,例如单用户游戏中,特别是用户在国外漫游的时候,为了避免收到运营商的账单通常禁用网络连接。存储在移动设备上的本机代码本身就允许通过网络访问进行更精细地控制。同样,采用本地代码实现安全性能和I/O设备接入比HTML5更加容易。在很多情况下都可以从HTML5访问到一些外设,如照相机。

另一方面,HTML5通过本地连接能够启用更加动态的内容,并且运行网页浏览器内的任意内容,但是却不可以再移动应用程序上予以实现。应用程序用户界面有部分会被显示或者直接在web的常规页面应用,本机UI方法不能被带入浏览器。

HTML5允许直接在移动应用程序中重复使用常规web页面的功能和内容。HTML5 UI通常是更为动态的,因为其有时也会出现在线需求问题—不断地更新和修正为新的标记版本,它们每次从服务器上加载并不需要重新编译和重新配置应用程序代码。

混合应用—你不会在网上冲浪时出错

对于许多开发团队而言,采取混合方式是有意义的。应用程序中的某些部分在本地代码的帮助下提高性能,并对运行于目标平台上的软件提供更精细的控制。其他部分可以利用HTML5 丰富的面向网络的功能与服务器交换实时数据,并允许代码快速且无缝地更新。现在的问题是,如何在不需要显著重写或者每次都移植的情况下能够简便地在多平台上部署,从而获取该目标。

根据Kendo[1]的用户界面显示,32%的移动应用程序正在使用混合战略进行开发,该战略下HTML5的代码是在本机中工作。进一步来说,有17%使用了不同类型的混合战略,其中领先平台已经拥有本机编码软件和用在较冷门平台上HTML5的所有实现。Gartner预计,到2016年,50%以上的移动应用程序将会被混合式部署[2]。

为使混合式或者纯本机战略起作用,就需要采用一个从根本上为跨平台而设计的应用程序开发框架,该框架需要避免专有的本机软件模式限制,并能够提供多种实现语言以适应混合式应用开发。能够满足这些要求的框架就是开源版Qt,它是十余年的开发努力而形成的一个经验证且成熟了的跨平台数据库。Qt已经不仅仅应用于手机,而且也可以应用于不同的系统中,例如数码相框,医疗设备,网络分析仪和电视机顶盒。

Qt,最好的产品

Qt5提供了一个完整的开发环境和一组库,从而为开发人员提供一个可供使用的代码库,并可以将其应用至多个移动平台,包括iOS,Android和黑莓。Qt5能够为开发人员灵活地提供其所需的混合式应用架构,它包含的技术对于本机开发和HTML的熟悉程度是相同的,但是在抽象化平台支持上又有些差异。

Qt5还是一个更传统的API,它可以和语言如C++一起使用从而提供访问界面元素,I/O和安全功能的通道,而且还可以提供Qt Quick框架,该框架是建基于编程语言QML。QML大大简化了互动式多媒体用户界面的创建过程,而且允许用户界面设计师和软件开发人员一起工作。

如同HTML5,QML采用了JavaScript,并且构建了交互式界面,该界面充分利用了核心C++库以及现在市面上许多移动设备使用的OpenGL ES绘制支持。与HTML5不同的是,QML是专门为了创建基于触摸的现代用户界面而设计的,它提供了一个非常高效的功能集,用于创建可进行切换,动画和状态机的美观型用户界面。

QML与网络技术能达到很好地集成,也易于和动态网页内容进行集成,甚至可以直接使用HTML5进行书写,还可以使用JavaScript代码来执行商业规则操作。 QML允许直接利用Web文档。用Qt5原生支持广泛使用的JSON(JavaScript对象符号)格式并将其融入在线Web服务REST API是可以直接从QML或者C++后端代码来完成的。

使用Qt 5和Qt Quick最主要的优点是它能够为开发人员提供一个一致的开发环境,该环境与先进的移动设备平台相对应。开发人员可以轻松使用C++和Qt5框架下的已接入核心设备服务的代码进行混合战略的开发。写在QML上的其他部分也会与HTML5 和WebGL相对应,用于高性能2D和3D图形的制作。通过QML书写,开发人员不仅能够避免HTML5支持中的不一致之处,而且可以为他们提供HTML5设有的平台独立性。对于用例需要以文档为基础的HTML5下的Web界面,Qt提供了无缝集成,并让这些嵌入至QML的书写界面的动态部分中。

针对移动应用程序使用混合战略,开发人员可以实现两全其美。通过使用一个跨平台的框架,如Qt5,开发人员可以大大缓解移动设备环境下的日益复杂的混合式战略实施难度。

上一篇:博通发布WICED Smart单芯片解决方案(SoC)
下一篇:Lantiq推出支持SHDSL工业级应用的全新固件、测试服务、改进芯片封装

手机天线设计培训教程详情>>

手机天线设计培训教程 国内最全面、系统、专业的手机天线设计培训课程,没有之一;是您学习手机天线设计的最佳选择...【More..

射频和天线工程师培训课程详情>>

  网站地图