如何为移动应用程序构建后台?

How to build a mobile app backend

在本文中,您将了解什么是移动应用程序的后台,以及构建后台所需的一切知识。

我们将了解后台和前台的区别、不同的后台类型、移动后台功能以及开发后台的成本。

最后,我们将学习如何在最佳 MBaaS 提供商 Back4app 上为一个简单的移动应用程序构建后端。

前台和后台的区别

前端和后端指的是表现层和数据访问层之间的分离。

要理解它们之间的区别,最简单的方法就是将冰山形象化。前端位于水面之上,是用户可以看到并与之互动的一切。而后端则是冰山在水下的部分。它是为业务提供动力的底层逻辑。

前台与后台可视化

前端

前端是网站、移动应用程序或任何其他类型客户端的图形用户界面,用户可以与之交互。前端包括应用程序的所有视觉方面,包括设计、菜单、文本、图片、视频等。在大多数项目中,前端工作约占总工作量的 20%,且不重复。

前端开发人员需要注意以下几点

  • 响应式设计
  • 应用程序性能
  • 跨浏览器兼容性
  • 无障碍问题
  • 搜索引擎优化

网络前端通常使用 HTML、CSS、JavaScript 和 WebAssembly 等工具实现。原生 Android 应用程序使用 Java/Kotlin 编写,而原生 iOS 则使用 Objective-C 和 Swift。

近年来,很多前端开发人员都采用了 React Native、Vue 和 Svelte Native 等工具,以进一步简化开发流程,使同一代码库在不同平台上都能正常运行。

前端可 “部署 “到 Google Play、App Store、Vercel、Netlify 等服务。

后台

后端或服务器端开发是开发数据访问层的实践。后端是数据库和前端之间的连接。大多数后端提供应用层接口(API),前端可使用该接口获取和存储数据。

数据通常以 JSON 或 GraphQL 格式交换。后端通常占工作的 80% 左右,而且是重复性的。例如,几乎每个项目都需要验证、授权、数据库管理等。

后台开发人员负责

  • 数据库管理
  • 应用程序业务逻辑
  • 可扩展性、高可用性
  • 安全问题和备份

后端开发人员通常使用 Python、JavaScript (Node.js)、Ruby、C#、Java 和 Go 等编程语言。在撰写本文时,最流行的后端架构是模型-视图-控制器(MVC),它已被 Django 和 Laravel 等许多网络框架所采用。

后台最重要的组成部分是数据库。我们可以将不同类型的数据库分为三大类:

  • SQL 数据库
  • NoSQL 数据库
  • 多范式数据库

它们各有利弊,在启动项目时应加以考虑。

后端可以根据需要的抽象程度部署到不同的平台上。例如,您可以使用自己的服务器、IaaS(AWS、GCE、Azure)、PaaS(Heroku、Digital Ocean App Service)或 BaaS(Back4app、Firebase、AWS Amplify)。

继续阅读,了解更多有关移动应用程序后台开发的信息。

什么是移动应用程序的后台?

移动应用程序的后台是指应用程序在服务器上运行的部分,而不是设备本身。后台提供应用程序存储和管理数据、验证用户身份、处理和分析数据以及与其他系统或服务通信所需的功能。

后端有多种形式,例如在云服务上运行的服务器、数据库或应用程序接口。它提供应用程序正常运行所需的必要基础架构和工具,使应用程序能够提供丰富且引人入胜的用户体验。

移动后台提供哪些功能?

移动应用程序的后台通常提供以下功能:

  • 存储和管理数据
  • 处理和分析数据
  • 认证和授权
  • 多设备之间的同步
  • 与其他系统和服务集成的能力
  • 管理服务器端任务
  • 分析与监测
  • 推送通知

移动应用程序需要后台吗?

简短回答:如果您的应用程序在本地运行(无需互联网连接),那么您通常不需要后台,但这并不意味着您的应用程序不能从后台获益。

为了更好地理解这个答案,让我们来看看日常生活中使用的一些应用程序。

不需要后台的应用程序:

  • 计算器
  • 日历和时钟
  • 相机和画廊
  • 录音机
  • 单人游戏

需要后台的应用程序

  • 电子商务应用程序 — 需要一个后台来跟踪库存、处理订单等。
  • 交通应用–后台可处理车票、提供延误信息等。
  • 信息应用程序 — 后端用于将信息从一台设备传输到另一台设备
  • 天气应用程序 — 需要一个后台来获取当前的天气信息

现在,让我们想想后台如何改进上述应用程序:

  • 计算器 — 可使用后端将复杂的计算卸载到远程服务器上
  • 日历和时钟–可将事件存储在数据库中,并在设备之间进行同步
  • 相机 — 可以使用后台服务来修复变形、照明等问题。
  • 录音机 — 可使用后台服务抑制噪音
  • 单人游戏–可在数据库中存储用户分数并显示排行榜

由于后台的巨大优势,几乎每个移动应用程序都有一个后台。如果不是为了存储数据,后台也能让移动应用程序收集分析数据、发送推送通知、监控应用程序、收集崩溃报告等。如果你想取得成功,你很可能需要一个后台。

有哪些后台类型?

根据应用程序的类型,您可以选择多种后端类型。一般来说,我们可以根据它们的抽象程度将其分为三类:

  1. 软件即服务(SaaS)或第三方服务
  2. 移动后台即服务(MBaaS)
  3. 自定义后端

让我们逐一看看。

软件即服务(SaaS)或第三方服务

软件即服务(SaaS)是一种软件交付模式,在这种模式下,软件应用程序由第三方提供商托管,并通过互联网提供给客户。

SaaS 解决方案通常要求客户按月或按年支付订购费。这种后台类型最简单易用,只需点击几下即可启动并运行后台。

这种后端类型的缺点是,你很可能找不到能满足项目所有要求的 SaaS。要建立一个真实世界的后端,你可能需要将多个 SaaS 解决方案结合起来。

SaaS 的几个例子包括

移动后台即服务(MBaaS)

后端即服务(BaaS)是一个平台,它能使开发的后端自动化,并负责云基础设施。

此外,它还提供用户管理、电子邮件通知、推送通知、云代码功能、社交媒体集成、文件存储和支付等功能。

这样,开发人员就可以专注于核心业务和前端开发,而不必担心底层后台和基础设施。前端通常是通过 BaaS 供应商提供的专门 API 和 SDK 开发的。这就降低了应用程序的复杂性,使其更易于维护。

使用后台即服务的好处包括:开发速度更快、工程成本更低、专注于核心业务。

BaaS 的几个例子包括

想进一步了解 BaaS 和 MBaas?了解什么是 BaaS?

自定义后台

定制后台是最强大、最灵活的选择。它为您提供全面控制,允许您实现 SaaS 或 MBaaS 解决方案无法实现的功能。

其最大的缺点是构建成本高、时间长。使用这种方法,您还需要对后台的性能和安全性负全责。

建立一个定制的后台通常需要几个月的时间,而且需要一个熟练的后台开发人员,甚至是一个后台开发人员团队。

用于构建自定义后台的流行框架:

有关后台框架的更多信息,请参阅 “十大后台框架”

制作移动应用程序后台的成本是多少?

移动应用程序后台的成本没有简单的计算公式。成本取决于应用程序的复杂程度、功能数量、可扩展性、性能等。

SaaS 成本

SaaS 通常是最便宜的选择。SaaS 产品通常采用按月或按年付费的直接定价模式。有些 SaaS 供应商还根据企业规模提供不同的定价层级。

MBaaS 成本

与定制后端相比,使用 MBaaS 构建后端非常便宜。它可以让您大大降低开发成本,不必担心基础设施或雇用专业的后台工程师团队。这为您节省了大量资金!

大多数 MBaaS 提供商都有不同的定价等级,具体取决于应用程序的大小。使用 MBaaS,您可以预期每月支付 15 美元到 500 美元不等。

定制后台成本

定制后台开发是最昂贵的选择。选择这种方式,您必须组建一支技术熟练的开发团队,并负责后台的基础设施。

根据项目要求,定制后台的价格一般在几千美元到几万美元之间。

由于实施定制后台是一项艰巨的任务,公司通常会将其外包给专门从事软件开发的公司。

如何使用 MBaaS 为移动应用程序构建后台?

在本节教程中,我们将学习如何使用 Back4app 开发移动应用程序的后台。

什么是 Back4app?

Back4app 是市场上最好的开源后端即服务(BaaS)解决方案之一。它为用户提供了广泛的功能和优势,允许开发人员快速构建网络和移动应用程序。

使用 Back4app,您就可以专注于核心业务,而不必担心后台或底层基础设施。

该解决方案具有功能丰富、易于使用的仪表板和命令行界面(CLI)。他们还为您喜爱的所有工具提供SDK,如 Flutter、React Native、Node.js、Angular、Android、iOS 等!

Back4app 的主要功能包括

  • 类似电子表格的数据库
  • REST 和 GraphQL 应用程序接口
  • 实时查询
  • 身份验证(包括社交身份验证)
  • 可扩展托管
  • 推送和电子邮件通知

有关其功能的更多信息,请查看Back4app 功能

Back4app 采用简单明了的价格模式,适合任何规模的应用程序。他们提供慷慨的免费计划(无需信用卡),非常适合原型设计和平台测试。它包括

  • 25k 申请
  • 250 MB 数据存储空间
  • 1 GB 传输量
  • 1 GB 文件存储空间

有关 Back4app 定价的更多信息,请访问定价页面

项目介绍

我们将为一个简单的新闻应用程序构建后台。该应用程序将允许编辑人员创建、更新和删除文章。为了尽可能简化管理,我们将启用Back4app 的管理应用程序

我们将负责后台安全,并展示如何使用后台的 REST API。我们将用最少的代码构建后台。

先决条件

  • 对后台即服务(BaaS)有基本了解
  • 对数据库(以及模型之间的关系)有基本了解
  • 基本了解 HTTP 请求和响应
  • 了解 JSON 语法

目标

本教程结束后,您将能够

  • 在 Back4app 上构建和部署一个简单的后端
  • 能够构建自己的数据库
  • 了解 Parse 平台安全基础知识
  • 了解如何通过 REST API 执行 CRUD 操作

创建应用程序

以下步骤需要您拥有 Back4app 帐户。如果您已经拥有该账户,请登录,否则请注册免费账户

要使用 Back4app,我们首先需要创建一个应用程序。登录仪表板后,您将看到应用程序列表。点击 “创建新应用程序 “创建新应用程序。

Back4app 创建应用程序

给它起一个自定义名称,然后点击 “继续”。

Back4app 会花一些时间准备应用程序所需的一切,如数据库、应用层、扩展、备份和安全。

应用程序准备就绪后,您将被重定向到应用程序的控制面板。

Back4app 应用程序控制面板

数据库

在本节教程中,我们将创建所有需要的数据库模型。

正如项目介绍中提到的,我们将构建一个简单的新闻应用程序。我们的数据库将由以下模型组成:

  • 文章代表一篇新闻报道。
  • ArticleCategory表示文章类别(如体育、娱乐)。一篇文章只能属于一个类别。
  • ArticleTag表示文章的标签(如化妆品、健康、美容)。一篇文章可以有多个标签。

这种数据库结构以后将允许我们根据类别或标签过滤文章。让我们绘制一个实体关系图(ERD),以便更好地理解模型之间的关系:

数据库实体关系图

现在,让我们实际创建模型。

首先创建ArticleCategory模型。在屏幕左上方点击 “创建类”,将其命名为ArticleCategory,并添加以下字段:

+-----------------------------+-------------+---------------+----------+
| Data type                   | Name        | Default value | Required |
+-----------------------------+-------------+---------------+----------+
| String                      | name        | <leave blank> | yes      |
+-----------------------------+-------------+---------------+----------+
| String                      | description | <leave blank> | no       |
+-----------------------------+-------------+---------------+----------+
| Pointer -> User             | author      | <leave blank> | yes      |
+-----------------------------+-------------+---------------+----------+

接下来,创建另一个名为ArticleTag的类,其详细信息如下:

+-----------------------------+-------------+---------------+----------+
| Data type                   | Name        | Default value | Required |
+-----------------------------+-------------+---------------+----------+
| String                      | name        | <leave blank> | yes      |
+-----------------------------+-------------+---------------+----------+
| Pointer -> User             | author      | <leave blank> | yes      |
+-----------------------------+-------------+---------------+----------+

最后,创建另一个名为 “文章“的类,并包含以下字段:

+-----------------------------+-------------+---------------+----------+
| Data type                   | Name        | Default value | Required |
+-----------------------------+-------------+---------------+----------+
| String                      | title       | <leave blank> | yes      |
+-----------------------------+-------------+---------------+----------+
| String                      | description | <leave blank> | no       |
+-----------------------------+-------------+---------------+----------+
| String                      | content     | <leave blank> | yes      |
+-----------------------------+-------------+--------------+-----------+
| Pointer -> ArticleCategory  | category    | <leave blank> | no       |
+-----------------------------+-------------+---------------+----------+
| Relation -> ArticleTag      | tags        | <leave blank> | no       |
+-----------------------------+-------------+---------------+----------+
| Pointer -> User             | author      | <leave blank> | yes      |
+-----------------------------+-------------+---------------+----------+

数据库架构就是这样。现在让我们添加一些示例数据。

为了简化操作,我生成了一些可以导入的数据。要导入数据集,请选择屏幕左侧的类,然后点击屏幕右侧的三个点。选择 “导入”>”类数据”,然后选择相应的文件。

Back4app 数据导入

要下载 JSON 数据集,请访问back4app-mobile GitHub 代码,点击 “代码”,然后点击 “下载 ZIP”。

按以下顺序导入 JSON 文件:

  1. 用户
  2. 文章类别
  3. 文章标签
  4. 文章

管理面板

为了方便管理,我们将启用管理应用程序。管理应用程序是一种基于网络浏览器的工具,旨在使用非技术用户界面管理应用程序数据。

导航至应用程序仪表板,点击 “更多”>”管理应用程序”,然后点击 “启用管理应用程序 “按钮。

Back4app 启用管理面板

选择用户名和密码。我选

Username: admin
Password: complexpassword123

然后选择一个用于访问管理面板的域名。我选择

mobile-backend.admin.back4app.com

很好,现在您可以登录到所选域的管理仪表板。

要了解有关 Back4app 管理应用程序的更多信息,请查看官方文档

确保应用程序的安全

为了确保应用程序的安全,我们必须执行以下操作:

  1. 禁止客户创建数据库类。
  2. 修改用户模型类级权限 (CLP)。
  3. 为我们创建的每个模型修改 CLP。

禁止创建客户端类

要禁止创建客户端类,请导航至 “应用程序设置”>”服务器设置”>”核心设置”>”编辑”,向下滚动至页面底部,取消勾选 “允许创建客户端类”。

修改用户模式 CLP

在 “数据库 “选项卡中选择用户模型,然后点击屏幕右侧的三点 >”安全” >”类级别权限”。然后点击齿轮图标,将其更改为 “高级”。除 “获取 ""创建 "外,取消其他所有选项:

Back4app 用户模式 CLP

为我们创建的每个模型修改 CLP

对所有自定义模型(ArticleArticleCategoryArticleTag)执行类似操作。这一次,除了 “公共“组的 “读取“和 “查找 "外,禁用其他所有功能,就像这样:

Back4app 其他示范 CLP

这样,未经认证的用户就只能查找和阅读文章。

有关安全的更多信息,请访问Parse Security

应用程序接口测试

在本节教程中,我们将使用内置的 API 控制台测试我们的 API。

要打开 REST API 控制台,请导航到应用程序的仪表板。在 “API “部分选择 “控制台”,然后选择 “REST”。

Back4app REST API 控制台

由于 ACL/CLP 的原因,请确保勾选 “使用主密钥?

检索

可以使用GET请求类型检索对象。端点使用classes/,例如classes/Article,然后点击页面底部的 “发送查询 “按钮。

回复内容如下

{
    "results": [
                {
            "objectId": "oRwkdx7KgX",
            "title": "Voting 2022 has ended!",
            "description": "The voting for year 2022 has ended, the new major is...",
            "content": "Lorem ipsum dolor sit amet...",
            "category": {
                "__type": "Pointer",
                "className": "ArticleCategory",
                "objectId": "FYxzrBlCBC"
            },
            "author": {
                "__type": "Pointer",
                "className": "_User",
                "objectId": "UZ76K07znv"
            },
            "createdAt": "2022-12-13T09:09:04.845Z",
            "updatedAt": "2022-12-13T09:09:13.297Z",
            "tags": {
                "__type": "Relation",
                "className": "ArticleTag"
            }
        },
        ... more results ...
    ]
}

如果您想获取特定结果或过滤查询集,请参阅文档

创建

要创建模型实例,请选择POST请求并将其提交到classes/ ,例如classes/Article。通过POST请求,您必须提供查询参数。例如

{
   "title": "Another article",
   "content": "This is another test article added via the API",
   "category": {
      "__type": "Pointer",
      "className" :"ArticleCategory",
      "objectId": "pPGdxPAxQA"
   },
   "author": {
      "__type": "Pointer",
      "className": "_User",
      "objectId": "LFAf3yD8w0"
   }
}

回应:

{
    "objectId": "yAbmJ0sRZT",
    "createdAt": "2022-12-12T17:18:32.922Z"
}

更新

要更新模型,请选择PUT请求类型并将其提交至classes// ,例如 classes/Article/oRwkdx7KgX。您必须提供包含要更改的数据的查询参数:

{"description": "Back4app is cool!"}

回应:

{
    "updatedAt": "2022-12-12T17:31:23.459Z"
}

删除

要删除模型实例,请选择DELETE请求类型,并将其提交至classes// ,例如 classes/Article/oRwkdx7KgX

如果请求成功,将返回一个空的正文。

要了解有关 Back4app REST 请求的更多信息,请参阅API 参考资料

今后的步骤

现在,我们的移动应用程序后台已基本完成。要将它连接到您的移动应用程序,您需要做以下工作:

  1. 从 “应用程序设置”>”安全与密钥 “中获取应用程序 ID客户端密钥。
  2. 安装相应的 ParseJS SDK(基于你的平台)。
  3. 使用 SDK 登录 Back4app。
  4. 使用 SDK 发送请求。

有关详细说明,请参阅我们的文档:

结论

前端和后端指的是表现层和数据访问层之间的分离。

如今,几乎每个移动应用程序都有自己的后台,这是因为后台可以提供各种好处。后台允许移动应用程序收集分析数据、发送推送通知、监控应用程序、收集崩溃报告等。

建立后台有多种方法。您可以

  • 合并多个 SaaS 产品
  • 使用移动后台即服务(MBaaS)
  • 建立自定义后台

使用 MBaaS 是一个不错的选择,因为与定制后端相比,它非常便宜,同时还具有很大的灵活性。Back4app 是最好的 MBaaS 提供商之一,它可以让您在几天甚至几小时内建立一个后台。


Leave a reply

Your email address will not be published.

open
Build, deploy and scale your app with Back4App Containers

open
Build, deploy and scale your app with Back4App Containers. Start today!