项目:创建 My City 应用

1. 准备工作

在本单元中,您学习了:

  • 如何构建具有多个屏幕的应用
  • 如何构建自适应布局,让您的应用在各种屏幕尺寸下都能良好运行
  • 应用架构的重要性
  • 如何确保您的应用遵循 activity 生命周期,而不会不必要地浪费资源
  • 如何在设备配置变更后保留用户状态

您学习了很多内容!

完成 Codelab 步骤有助于您在一定程度上学习这些新概念,但通过将知识和技能运用到新应用中,您将加深对学习内容的理解。

在遇到新的情形、bug 或需要亲自设计解决方案时,您需要运用已掌握的知识。您可以随时参考之前的应用和 Codelab,快速回顾所学内容,并将其运用到实践中。

通过尝试亲自解决这些问题,您将学习到更多知识;我们设计的问题将更加类似于开发者面临的“真实”问题。掌握如何分解问题、排查问题、搜索资源以找到解决方案,这本身就是一项技能。因此,我们建议您在每个单元结束时动手尝试这些项目。了解这些动因和背景信息后,请查看针对第 4 单元项目的以下提示。

前提条件

  • 能够在 Android Studio 中创建和运行项目。
  • 熟悉 Kotlin 编程语言的基础知识
  • 熟悉如何在 Compose 中创建界面布局,以及如何使界面布局适应不同的屏幕尺寸
  • 能够使用 Compose 添加和实现 Jetpack Navigation 组件
  • 能够使用 ViewModel、UiState 和 Jetpack Navigation 实现采用推荐应用架构的应用

您将构建的内容

  • 一个可针对您所在的城市提供活动和景点建议的 Android 应用

所需条件

  • 一台安装了 Android Studio 的计算机

2. 概览

恭喜您完成了第 4 单元的学习!

为巩固您在本单元中所学的知识,接下来您需要构建一款应用,要求此应用可以针对您所选的城市列出市内推荐的不同活动和景点。

此应用应具备以下特点:

  • 包含多个屏幕;例如,每个屏幕可以显示一类不同的推荐活动和景点。
  • 使用 Jetpack Navigation 组件,让用户能够在应用的不同屏幕间导航。
  • 明确区分界面层和数据层。
  • 使用 ViewModel,并使用单向数据流 (UDF) 模式通过视图模型更新界面。
  • 使用可适应所有不同屏幕尺寸的自适应布局。
  • 遵循 Material Design 自适应设计导航准则。

3.为此应用收集内容

为此应用收集所需的内容,并将其写在一张纸上或输入到文档中。在开始编写应用代码前整理应用内容会更轻松。

确定要为此应用选用哪个城市或地区。建议您选用自己喜欢的城市或所居住的城市。如果您愿意,也可以选择包含多个城市的更大地区。

根据您所选择的城市来选择应用名称。尽管此项目的名称为 My City 应用,但我们仍然鼓励您使用与您的城市相关的自定义名称。

为您的城市创建各类推荐活动和景点的列表。例如,您可以创建由推荐的以下景点组成的列表:

  • 咖啡店
  • 餐馆
  • 适合儿童的地点
  • 公园
  • 购物中心

您的应用应包含多个分别由不同类别的推荐活动和景点组成的列表。尽量为每个类别创建至少 3 到 5 个推荐活动和景点,以免屏幕看起来太空。

如果您希望向此应用中添加照片,请在此阶段收集照片。

4. 描绘应用屏幕

在一张纸上,描绘出应用不同屏幕的外观。您可以在屏幕之间绘制箭头,并为布局添加按钮,以显示用户如何从一个屏幕导航到另一个屏幕。

此描绘步骤不需要太过详细或细致。其主要作用是为导航图上的目标页面和应用的整体布局建立基本框架。这些绘图可以帮助您完成后续步骤。

如果您在绘制应用和导航流程的过程中需要帮助,请查看以下示例:

第一个屏幕列出了类别。选择类别后,下一个屏幕会显示该类别的推荐活动和景点。选择某一推荐活动和景点后,详情屏幕中会显示更多详细信息。

您可以参考此示例描绘出适合大屏设备的应用和导航流程吗?如果您需要更多帮助,请随时参阅引导您构建了 Reply 应用的 Codelab

5. 规划步骤

就如何构建您所描绘的应用写下一般步骤。

例如:

  • 为推荐的地点创建数据类。
  • 为推荐的咖啡店创建屏幕布局。
  • 为所有屏幕创建导航图。

这些笔记有助于您确定要先着手开发此应用中的哪一部分。

为了更有条理,您还可以按您打算完成这些步骤的顺序为每个步骤编号。如果某个步骤需要您先完成另一个步骤,则您需要相应地为这些步骤排好顺序。

6. 实现应用

现在,您已经为此应用制定了简要计划,接下来可以开始编写其代码了!

创建项目并依次完成每项任务。如果某项任务要花费很长时间,请保持耐心。构建这样复杂的应用时,通常不太容易上手,这是正常现象。

提示:

  • 可参考之前的 Codelab 和 GitHub 代码库。
  • 查看其他 Compose 示例应用Now in Android 应用。请注意,这些应用比您目前为止所构建的应用更庞大且更复杂。
  • 如果您在应用中遇到 bug,并且不知道如何进行修复,不妨考虑使用 Android Studio 的调试工具

7. 获取用户反馈(可选)

建议您完成这个环节,将它作为很好的学习机会。当您的这款应用开发出可正常运行的版本后,请向潜在用户演示并征求他们的反馈意见。

如果您有一部 Android 设备,请在设备上安装该应用。或者,您也可以使用模拟器,但请注意,用户可能不了解模拟器是什么以及模拟器与真实设备之间的关系。

尽量不要向用户提供任何指导或说明,而是应当将重点放在观察用户和提出问题上,以便了解用户首次使用应用的行为方式。请留意用户与应用互动的情况,以及用户在应用中导航时,是能够直观完成操作还是会感到困惑。用户是能按照您的预期使用应用,还是无法确定如何使用应用?

确保他们导航到每个屏幕,并与应用的每个部分进行互动。您可以向他们询问其他一些问题,例如:

  • 您对此应用的第一印象是什么?
  • 您喜欢此应用的哪些方面?
  • 您对改进此应用有什么建议吗?

考虑是否要在应用中纳入用户的建议,以便为用户提供更好的体验。

8. 使用可调整大小的模拟器测试应用

建议您在可调整大小的模拟器上测试所构建的应用,看看它能否在不同尺寸的屏幕上按预期运行。请务必更改模拟器大小,并尝试使用不同的设备选项,如下图所示。

您可以从下拉菜单中更改可调整大小的模拟器的设备选项。

9. 祝您好运!

希望您能顺利创建出一个优秀的应用!创建此应用后,请使用 #AndroidBasics 标签在社交媒体上分享。我们迫不及待地想看看您的应用表现如何,也期待收到您的建议!