使用移动后端技术开发全堆栈移动应用

如今,企业意识到移动应用是一个关键的互动渠道。用户只下载排名最高的、吸引人的移动应用,而开发者则努力打造这样一种吸引人的应用体验。

在用户设备上运行的引人注目的移动应用只是用户体验的冰山一角。移动应用的精妙之处在于处理所有用户交互的后端。移动后端服务器提供用户管理、推送通知、应用管理、应用洞察、安全后端集成等功能,这些功能是任何移动应用的基本要素。

如果让开发者为每个移动应用开发这些功能,同时还要构建前端用户体验(这是决定移动应用是否被采用的最关键方面),那么会非常耗时。因此,移动后端服务提供商提供这些后端功能,前端应用可以通过 API 和 SDK 来使用这些功能。开发者更喜欢专注于编写代码以构建最佳的用户体验,而依赖云提供商提供后端功能。

用于表示这些产品的流行术语是“移动后端即服务 (MBaaS)”或“后端即服务 (BaaS)”。后端服务器进一步与使用微服务模式编写的业务逻辑层之间形成接口,并使用诸如认知和分析 REST API 等高价值服务。有关详细信息,请参阅移动参考架构

移动后端解析

移动后端通常提供多种功能,可根据应用程序的需要加以利用:

  • 推送通知
  • 防御特定于移动端的安全威胁
  • 移动应用生命周期和功能管理
  • A/B测试和功能推出
  • 通过使用离线数据存储和同步,实现离线应用可用性
  • 针对应用、用户和设备洞察的移动分析
  • 用户认证和授权
  • 后端集成
  • 吞吐量优化和网络使用
  • AI/ML服务

IBM Mobile Foundation,提供了许多这些功能,这是一个可扩展、安全的移动后端产品,同时简化了与其他 IBM Cloud 服务的集成。

推送通知,可提高用户参与度

推送通知是一种与应用用户互动并为他们提供“移动时刻”的妙招。目前,移动后端通常支持发送丰富的内容,包括标题、子标题、启动图像、样式等,以及图片通知或静默通知。

要向移动应用发送推送通知,您需要经过设备注册周期,并利用移动 OS 提供商提供的中介体。您的后端不能直接向移动应用推送消息。面向 Android 的 Firebase Cloud Messaging (FCM) 和面向 iOS 的 Apple Push Notification Service (APNS) 是帮助向移动设备发送通知消息的中介体。

在某些国家或地区(如中国),必须使用国家或地区专用的通知提供商,如百度。大多数后端提供商为移动、Web 和渐进式 Web 应用提供多通道通知。 IBM 提供一种推送通知服务,允许您使用 UI、客户端 SDK 或简单的 REST API 发送和管理移动和 Web 推送通知。

防御特定于移动端的安全威胁

移动安全性涉及到方方面面,要求开发者保护设备上的数据、传输中数据和服务器上的数据。移动后端通常在设备上提供数据加密和保护,并防止恶意应用连接到服务器。

一些后端提供商还提供其他功能,例如防止中间人攻击、防止越狱设备访问后端、限制每个设备仅供单个用户使用以满足合规需求、加强认证支持等等。

移动应用生命周期和功能管理

在当今敏捷开发盛行的应用世界中,移动应用的更新更加频繁,移动后端必须为管理员或开发者提供功能来管理应用版本更新以及远程禁用用户设备上的应用。

A/B测试和功能推出

通常,开发者可能希望通过一小部分用户来测试新功能,以收集反馈,而不是直接将该功能发布给全部用户。还有一种需求是在特定日期启用特定功能,或者根据某些业务用例关闭该功能。

许多云提供商都提供这种功能。还支持衡量功能的使用情况,以及用于定义应该向哪些用户分类提供此功能的复杂参数。

通过使用离线数据存储和同步,实现离线应用可用性

离线可用性是许多移动应用的一个关键方面。用于离线浏览的缓存目录是一个常见的用例。移动后端提供了在设备上安全地缓存结构化、非结构化或二进制数据的方法,以支持多种离线用例。些数据需要与主记录系统(SoR)同步,无论是在本地修改(上游同步)还是在 SoR 中修改(下游同步)。设备上的存储也必须是安全的,这样当设备被盗或被感染病毒时,任何人都无法访问数据。

云提供商会提供这种功能,并通过在应用代码中安装 SDK 来访问。除了数据同步功能之外,通常还需要以 SQL 或 NoSQL 格式存储数据,而不是将其同步到 SoR。这些基于云的数据存储功能也与同步 SDK 相集成。GraphQL 框架逐渐成为提供这种功能的首选新技术。

针对应用、用户和设备洞察的移动分析

在通过内部或外部应用商店分发应用后,应用将被安装到具有不同机型和操作系统版本的设备矩阵上。管理员或开发者希望了解下载次数、用户使用旅程和应用崩溃情况(如果发生过)。

大多数移动后端提供商都提供这种功能,来支持收集关于用户及其应用使用情况的有用洞察。

用户认证和授权

大多数应用(差不多是全部)都需要一种用户注册和认证方法。这涉及使用社交登录或自定义用户商店进行用户认证。这种登录通常还需要设备上的生物特征认证进行注册,而不仅仅是输入用户名和密码。大多数云提供商都提供用户注册、认证和授权功能。 移动后端提供商还提供与 LDAP 等用户注册表的集成,以便组织可以利用现有的用户注册表对用户进行认证。它们还支持 OAuth,并与内部身份和访问管理系统集成。IBM 提供了 APP ID 服务来实现这些功能。

后端集成

通常情况下,特别是在企业用例中,需要连接到记录系统 (SoR),或者能够编写与 SoR 更接近的自定义逻辑,然后再发送到移动应用。像服务于前端的后端 (Backend for Frontend, BFF) 微服务这样的模式可以使用 Swift、Node.js、Java 或任何其他方便的语言来编写。所有云提供商都提供部署这些微服务的方法。一些提供商还提供“适配器”功能,该功能围绕这些微服务的访问增加了一个安全框架,还增加了使用 SDK 访问这些微服务的方法(可以将 SDK 添加到移动应用中)。

吞吐量优化和网络使用

与 Web 站点能够显示大量内容不同,移动设备的屏幕大小限制导致无法向用户充分展示大量数据。移动后端优化了吞吐量并提供数据聚合功能,这样一来,宝贵的网络资源只能用于传输必需的数据量,而大多数处理都是在服务器端执行。数据传输最常使用 JSON 格式,尽管有时也使用 XML 和 YAML 选项。

AI/ML服务

移动设备逐渐变得足够强大,可以在设备本身上执行机器学习模型。这就可以在移动应用中添加增强的体验,而不必等待后端服务以图像或语音片段的分析结果进行响应。像 Google 的 TensorFlow Lite 和 Apple 的 CoreML 这样的可移植模型格式起初是针对各自的设备,但也支持其他操作系统。但是,您需要一个后端功能来训练这些模型,并管理这些模型在设备上的分布。许多云提供商提供机器学习(简称 ML)服务,这些服务可以由数据科学家或专门的 ML 培训服务(如图像识别)进行培训。 通过聊天机器人增强移动应用的功能,是一些移动后端厂商现在提供的另一项最新 AI 功能。

基于云的移动后端

云计算模型支持按需访问,而当今世界正在构建的任何应用都应该充分利用云计算架构的力量。托管在云端的移动后端可以满足其他非功能性需求,如可扩展性、可靠性、性能、负载平衡和安全性,所有这些都通常由服务提供商进行管理和协调。基于云的移动后端还可以轻松与 DevOps 产品集成,以持续交付移动后端应用。基于云的移动后端还可以利用有区域限制的产品。

所有主要的云提供商(IBM、Google、Amazon 和 Microsoft)都提供特定设计模式(应用框架),这些设计模式可充当移动应用程序后端。一些提供商在单一移动后端中提供了多种功能,而另一些提供商则提供具有多种定价模型的“点单”功能。大多数云提供商都提供某种形式的免费增值模式,也就是核心功能是免费提供的,但不能超过一定的使用限制。通过免费套餐也可以轻松创建和启动应用,然后扩展到某个付费套餐,以容纳更多客户。

您可以使用 IBM Cloud 移动入门工具包开始构建安全、可扩展且具有吸引力的多平台移动应用。

全堆栈移动开发(前端和后端)

选择合适的技术来构建您的前端移动应用至关重要。市场上有一系列技术可供选择,并且各种因素决定了平台的选择。 您可以阅读这篇 IBM Developer 文章“在原生和跨平台移动前端编程框架之间进行选择”,详细了解有关前端移动平台选择的内容。

在选择了移动前端技术之后,您就可以开始在 Cloud 上使用移动后端,并构建引人入胜的五星级移动应用。移动后端提供商提供针对许多流行前端技术的 SDK,例如 Android、iOS、Cordova、Ionic、React Native 和 Xamarin。他们还提供可以从前端应用程序中利用的 REST API。许多提供商提供低代码拖放工具,用于快速连接移动前端界面,可以将其用作起点。 您可以在 IBM Developer 文章“选择适用于移动应用开发的最佳编程语言”中,阅读有关全栈移动开发的编程语言、SDK 和框架的详细内容。

结束语

本文重点介绍了对移动后端的需求,以及移动后端提供商提供的核心功能。还提供了一个有关基于云的移动后端的良好示例。移动后端提供商现在正在发展移动后端,以支持众多渠道(Web、语音和聊天),同时以用户为中心,结合各种渠道来提供无缝的全渠道体验,从而提供全方位的用户体验。

本文翻译自:Develop full-stack mobile apps by using mobile backend technologies(2019-07-02)