【混合移动应用程序开发】 第一篇

移动应用开发人员的担子从来不轻。因为为了确保杀手级的应用程序能够在全球范围内被尽可能多的用户采用,意味着他们需要针对各移动平台分别开发四个、五个、甚至可能更多版本的应用程序。 尽管安卓和iOS主导着市场,但别忘了还有Windows Phone、BlackBerry 10和Tizen。在一些市场和地区,一些具有较小全球市场份额的平台反而具有更大的意义。

因此,不难理解,开发人员(特别是那些为小公司或是“一人公司” 工作的开发人员)总是在不断寻找能够提高生产力、节省工作、时间和金钱的工具和技术(顺序并非严格如此! )。

混合移动应用程序

混合移动应用程序要求开发人员以独立于平台的方式编写源代码,并通过SDK进行构建和打包,以便代码可以在一系列不同的目标平台上运行。这就对了!你只需要开发一个版本的应用程序,但它将能够在iOS、安卓、乃至Windows Phone和BlackBerry 10上运行。而这些正是开发商一直在寻找的炼金术。

但是为什么要“混合”呢?为了理解这一点,我们需要深入了解混合移动应用如何工作,以及如何实现跨平台能力。

原生应用程序 VS网络应用程序

这是大家时常在酒吧、食堂或者星巴克争论的主题之一。其实在哪并不重要,像这样的好话题随时随地都可以展开讨论。

平台(移动或其它形式)通常包括广泛的API,使应用开发者能够访问它的特性和功能。例如用户界面组件、持久数据存储、联网、GPS、当然还有蓝牙。通过一种或多种编程语言,可以直接访问这些API。 安卓开发人员通常使用Java,而iOS开发人员大多使用Swift或者是Objective-C。

SDK让原生应用开发人员能够构建和打包其应用,然后将其托管于应用商店中,以供用户在其设备上发现、下载和安装。

另一方面,Web浏览器应用程序则是在用户访问时由浏览器从远程服务器下载,包括各种“内容”类型,如HTML、CSS和JavaScript。浏览器能够呈现HTML,在CSS中应用样式规则,并按需执行JavaScript函数。 Web应用在浏览器的“沙箱”内运行,且它们与本地设备及其功能进行交互的方式有一定限制。 HTML5和JavaScript一直在不断进步,目前Web开发人员可发挥的潜力无限,但原生应用程序开发人员仍然面临着一定的限制。蓝牙也会为浏览器本身提供一定程度的支持。

应用程序商店是当今移动平台生态系统中的关键元素,也是开发者通过应用程序获利的主要机制之一。用户可以从商店下载原生应用程序,并安装在设备上。而Web应用程序,正如我之前所述,则无法由应用商店托管。

因此,移动设备上的Web应用程序在应用上会有一定的限制,其中重要的限制之一就是无法在应用商店中托管。这一点值得深思。

Web应用程序开发人员完胜原生应用程序开发人员的一点就是:他们的应用程序是“跨平台”的。无论该设备运行的是iOS、安卓、还是Windows 10,应用程序都可以在任何具有较新版本浏览器的设备上使用。

当然这里也有一些交叉地带,我刚刚说的这些并非故事全局,而只是为了简单地定位这两种方法。下面请允许我详细说明。

走进混合移动应用程序

顾名思义,这是一个混合的方法,试图让应用程序开发人员”两手抓,两手都要硬"。混合移动应用程序是使用Web技术开发的,因此是跨平台的。它们可以访问原生平台功能,如传感器等。它们安装在移动设备上,就像原生应用程序一样,也可以托管在任何应用商店中。

那么混合移动应用如何工作,蓝牙支持又如何实现呢?

一切尽在WebView

归根结底,混合移动应用程序是一种特殊类型的原生应用程序,有SDK和API的支持。SDK让开发人员能够实现“跨平台”;一系列的API通常打包于称为“插件”的组件中。基本混合移动应用程序的架构如下所示,您可以看到,其“秘制酱料”就是WebView组件。

【混合移动应用程序开发】 第一篇

WebView组件是一个本地GUI组件,可包含在应用程序的用户界面中,其最让人为之点赞的能力就是能够呈现本地打包或从远程服务器下载的Web内容。它就像一个迷你版嵌入式Web浏览器,可以在其他标准原生应用程序中呈现HTML、处理CSS、和执行JavaScript。 iOS、安卓和其他平台都有这样的组件。它是混合移动方法可以充分利用的多平台、多架构通用的基本组件。

编写混合移动应用程序

混合移动应用程序开发人员只需要集中精力创建由WebView处理的HTML、CSS和JavaScript代码。其他一切则由混合移动SDK为指定的目标平台提供或生成。您可以以独立于平台的方式编写WebView HTML / CSS / JS内容,然后使用SDK为您希望支持的每个平台生成可安装的应用程序,最终会得到一个适用于安卓的apk文件、一个适用于iOS的ipa等,都包含着你所编写的相同Web内容。只需要编写一次,就能够为所有平台所用。

混合移动SDK

有很多SDK可供混合移动应用程序开发人员选择。 例如Apache Cordova就是免费且开源的,也是我打造混合移动应用程序的首选SDK。当然也有其他产品,其中一些还基于Apache Cordova。Adobe Phonegap可能是最知名的,不过现在Ionic粉也在与日俱增。

蓝牙何处显身手?

好问题! Apache Cordova和Phonegap都可以使用相同的插件,同时还有几个蓝牙插件可供选择,包括GAP外设和GAP中央功能。

今天就让我们先聊到这,在下一篇中,我将和大家继续探讨如何创建支持跨平台、并使用Apache Cordova在应用商店中发布的蓝牙应用程序。