为移动设备构建软件

移动应用程序开发的定义可以很宽泛,包括创建和发布移动应用程序的所有过程,也可以具体指应用程序的编码和部署。本文将介绍移动应用开发的两个定义,尤其侧重于为做出决策或负责如何构建软件本身的人员定义移动应用开发。

如果要定义移动应用开发,我们首先要定义移动,这里的移动指的是便携式电子设备,如智能手机、平板电脑、笔记本电脑、智能手表、电子阅读器和掌上游戏机。我们所说的应用,不仅指这些设备的本地软件,还包括这些设备所支持的通用操作系统、平台和语言。正如你所了解的,有许多不同的方法来处理移动应用开发,以及许多要做出的决策。

使用记号笔在白板上写字的女士

移动应用程序开发流程

创建和发布移动应用程序的过程通常被理解为一系列步骤或阶段。移动应用开发流程的这些阶段涉及企业内许多不同的人员和学科,包括业务、营销、设计和工程。移动应用程序的开发流程分为以下几个阶段:

  • 策略
  • 规划
  • 设计
  • 开发
  • 测试
  • 发布

制作移动应用程序需要多长时间?

企业在开发移动应用程序时需要花费 3 个月到 9 个月的时间,必要时甚至更长。应用的范围和功能都影响移动应用开发过程的时间线。

策略

移动应用程序开发流程首先要了解为什么移动应用程序可以很好地解决问题或抓住机遇,然后再决定开发什么以及如何开发。在战略阶段,企业将确定应用程序的目标和衡量成功的标准,分析市场和竞争对手,研究客户需求,并确定应用程序将服务于哪些用户和用例。在战略阶段,企业还可能开始探索哪些移动应用开发平台最符合其目标和要求。在这一阶段,企业还要开始考虑围绕应用程序发布的营销问题。

规划

在规划阶段,企业要就移动应用程序开发流程的四个关键细节达成一致:团队、工具、技术和时间表。现在,他们已经知道需要构建哪种类型的移动应用程序、由谁构建应用程序以及使用哪个或哪些平台。在这一阶段,企业将制定产品路线图(决定哪些功能将按什么顺序、在什么时间内完成),设定里程碑,并设计一个项目计划,使其能够在预定的发布日期前完成。了解可用的资源和专业知识,以及如何实施为流程选择的技术,对于确定日期和实现发布至关重要。

设计

在设计阶段,移动应用程序的外观、特性和功能就已初具雏形。在移动应用程序开发流程的这一阶段,团队将绘制用户体验图,并创建用户界面和不同保真度的应用程序状态。可能会从低保真模型开始,以提供概念验证或在早期阶段收集客户反馈。在这一阶段,开发人员和工程师可能会帮助创建原型或就用户体验和用户界面决策提供咨询,让团队了解组织选择使用的平台的要求和技术规范。这样,企业在使用全真屏幕时,就能设计出真正可以构建的应用程序。

开发

这里的开发一词有时是指创建和发布移动应用程序所涉及的整个 软件开发生命周期 。但更常见的是,开发是指移动应用开发的软件开发阶段。我们将在本文后面对这一阶段进行更全面的定义。目前,这一阶段最适合描述为团队建立技术架构和技术堆栈(包括前端、后端和应用程序接口),设定开发里程碑、确定应用程序的开发生命周期并编写应用程序代码的步骤。

测试

测试是移动应用程序开发过程的关键阶段。如果不进行测试,企业就无法确定其应用程序是否安全,是否能以用户需要和期望的方式运行,以及是否能在部署的地方发挥作用。在此阶段,团队提供质量保证,创建测试用例以评估应用在应用要运行的所有设备上的可用性、性能、稳定性和安全性。组织通常会对应用进行压力测试,以确保应用程序的体系结构可以缩放以满足突然的繁重需求。

发布

移动应用程序开发流程的最后阶段是发布。部署应用后,组织会为使用该应用的客户提供支持,并持续进行监视和维护,以确保应用可用并按预期方式运行。鼓励采用应用程序的营销活动和动议往往与这一阶段相吻合。如果组织决定对超出其开发生命周期准备处理的更改范围的应用进行增强或更改,他们可能会决定重新开始移动应用开发过程。

移动应用开发过程中的软件开发

开发阶段的第一个任务是建立移动应用程序的技术体系结构。通常与技术堆栈(包括前端、后端和 API 技术体系结构)混淆的是控制移动应用程序开发的规则和模式。

技术体系结构

技术架构通常分为三层:

表示层

这是客户看到并与之互动的应用程序层。演示层包括用户界面和构成用户体验的应用的所有元素。

业务层

业务层负责管理工作流、数据交换和操作的逻辑。移动应用的核心方面(如安全性、缓存、日志记录和异常处理)在此层中进行处理。

数据层

数据层满足应用程序本身的要求,提供数据实用程序、数据访问组件以及帮助程序或服务代理。它也是验证和维护数据并支持数据事务的层。

技术堆栈

同样,技术堆栈或科技堆栈也由上述三部分组成。但是,这些部分表示用于生成和支持应用的特定选择,而不是用于创建应用的准则。

前端

与演示层紧密对应,用于编码移动应用前端的工具和语言很大程度上依赖于将应用部署到的设备。提供诸多选项,并且大多数移动设备具有特定语言,这些语言是它们的本机语言。

后端

后端是应用程序的一部分,包括数据库和其他驻留在服务器上并支持移动应用程序功能的类似对象。选择 移动后端技术 时,团队对设备的依赖程度较低,通常可以找到 预构建后端解决方案 。

API

应用程序通过应用程序接口在后端和前端之间进行通信,这也使应用程序能够与其他应用程序和服务进行集成和交互。

不过,在团队选择技术堆栈,甚至建立技术架构前,他们首先需要确定要构建哪种类型的移动应用程序。

移动应用的类型

开发移动设备应用时,组织有多种不同类型的移动应用可供选择。在这种情况下,移动应用程序类型指的不是应用程序允许用户做什么,而是如何构建应用程序。

本机应用

针对特定设备或平台(如 Android 或 iOS)的应用程序称为原生应用程序。这些应用直接在设备的操作系统上运行,使用平台提供的语言和框架,并通过特定于操作系统的应用商店或市场进行部署。原生应用程序通常可以完全访问其运行设备的所有功能和硬件。

跨平台应用

Teams 可以使用所选语言和框架在应用中编写代码,然后使用平台(如 Xamarin )为应用要运行的每个操作系统编译代码。所谓跨平台应用程序,就是允许团队在许多不同的设备上运行,并重复使用大部分代码,尽管与只为一个平台开发相比,桥接代码需要更多的工作。

渐进式 Web 应用

与 Web 应用程序一样,渐进式 Web 应用程序在移动浏览器中运行,通常使用 JavaScript、CSS 和 HTML5 生成。Web 应用的渐进功能是它们能够使用高级浏览器功能提供推送通知、更好的触控手势和硬件交互。虽然没有 SDK 来帮助构建渐进式网络应用,但它们可以不通过市场进行部署。

混合应用程序

混合应用是原生应用和渐进式 Web 应用的混合体,本质上是运行 Web 应用进程的本机编码容器。这种组合可以让应用程序访问更多设备的功能和硬件,并在更多类型的设备上运行,同时保持单一的代码库。尽管混合应用具有所有优势,但它们通常无法达到其他类型的移动应用的性能。

生成哪种类型的移动应用

组织选择生成的移动应用类型对其团队可用的工具、平台、框架、语言、应用分发、要维护的代码库数、应用将在哪些设备上运行以及应用可以执行的操作具有很大影响。

决定要生成哪种类型的移动应用时,考虑用户将是谁以及他们需要从应用中获得什么内容会很有帮助。例如,如果他们主要使用一种设备或操作系统,那么原生应用程序可能是最佳选择。不依赖硬件传感器或 GPS 的应用程序可能非常适合作为渐进式网络应用程序或混合应用程序,但如果用户没有良好的连接性,可能不适合。如果 用户是你企业或组织企业或组织的成员,可能需要考虑使用 不同移动策略 。当然,这一切都取决于企业内部或通过合作伙伴所具备的专业知识。

本图表概述了不同类型移动应用程序之间的更多异同,以帮助你考虑应开发哪种类型的应用程序。

两个人在大厅里交谈

比较移动应用的类型

本机应用 跨平台应用 渐进式 Web 应用 混合应用程序
代码库数量 每个平台一个 一个,但为每个平台编译 总计一个 一个用于应用,另一个用于容器
语言和框架 仅限本机 团队的选择 仅 Web Web 和本机
访问 SDK 和 API 是 是 否 受限制
性能 最高 高 最低 低
访问设备硬件 完整性 大多数 很少 部分
用户输入响应 良好 良好 最差 差
交互性 高 高 最低 低
设备资源使用 高 高 低 中型
需要连接 否 否 是 是
生成和维护成本 最高 高 最低 较低
应用的存储位置 设备 设备 服务器 设备和服务器
部署方式 市场 市场 浏览器 市场
需要外部审批 是 是 否 是

移动应用程序开发平台和软件

一旦决定要构建哪种类型的移动应用,或者正在考虑构建哪种类型的应用,就需要对移动应用开发平台进行评估。这些是用于开发、生成、测试、调试、管理的应用开发平台,在某些情况下甚至在整个生命周期内部署移动应用。大多数应用程序开发软件都包括用于构建界面的前端工具、用于处理数据的后端工具、API 工具、测试工具以及用于协作和代码分析的工具。

大多数移动应用程序平台旨在提供开发人员构建移动应用程序所需的一切。这使开发人员可以避免在不同移动开发软件—片段之间移动的问题,并处理它们之间出现的问题,例如代码完整性、不兼容性和数据丢失。移动应用开发平台还降低了组织创建移动应用所需的成本、时间、资源和专业知识。虽然有少数组织选择建立自己的平台,但更多的组织选择了众多应用程序开发替代方案中的一种。

组织使用的最佳移动应用开发替代方法因其要创建的移动应用类型、可以编码的语言以及要为哪些设备提供服务而有所不同。部分移动应用程序开发替代方案包括:

  • 跨平台工具,如 Xamarin ,允许开发人员使用 .NET 和 C# 构建 Android 和 iOS 应用程序。
  • Visual Studio Tools for Xamarin ,后者对 Android、iOS 和 Windows 移动应用使用单个共享代码库。
  • 低代码或无代码工具,如 Power Apps。低代码是一种无需技术培训或专业知识即可构建专业级应用程序的简单方法。

移动应用开发资源

探索 Azure 移动开发人员文档

查找在 Azure 上开发移动应用所需的信息。了解推送通知、身份验证、分析和 SDK。

立即尝试创建移动应用

为 Android 应用程序建立持续集成和交付管道。连接到任何 Git 存储库,让你的团队在几分钟内就能开始运行。

关于移动应用程序开发的常见问题

  • 移动应用程序开发的定义可以很宽泛,包括创建和发布移动应用程序的所有过程,也可以具体指应用程序的编码和部署。

    了解详细信息

  • 移动应用开发过程的阶段包括策略、规划、设计、开发、测试和发布。

    了解详细信息

  • 决定要生成哪种类型的移动应用时,考虑用户将是谁以及他们需要从应用中获得什么内容会很有帮助。

    了解详细信息

  • 组织使用的最佳移动应用开发替代方法因其要创建的移动应用类型、可以编码的语言以及要为哪些设备提供服务而有所不同。

    了解详细信息

  • 企业在开发移动应用程序时需要花费 3 个月到 9 个月的时间,必要时甚至更长。

    了解详细信息

  • 虽然完全开发移动应用可能需要几个月的时间,但下面是 Microsoft 提供的五个有关立即开始使用移动应用开发的提示。

  • DevOps 由 "development" 和 "operations" 两个单词组合而成,被定义为人员、流程和技术的结合,以持续为客户提供价值。DevOps 文化、工具和实践可以帮助开发、IT 运营、质量工程和安全等各自为政的角色进行协调和协作,从而开发出更好、更可靠的移动应用程序。DevOps 可帮助开发团队更快地响应客户需求、增强对开发的应用的置信度,并更快地实现团队的业务目标。

    详细了解 DevOps

  • 开发人员通常会关注云提供商的技术能力和流程,例如:部署、管理和升级的便利性,是否使用标准接口和 API,是否有与监控/管理系统集成的正式事件管理系统,是否有记录完备的变更管理流程,以及是否支持混合功能。

    详细了解如何选择云提供商