项目:创建我的城市应用

1. 开始之前

在本单元中,您学习了

  • 如何构建具有多个屏幕的应用
  • 如何构建自适应布局,以便您的应用在各种屏幕尺寸上都能良好运行
  • 应用架构的重要性
  • 如何确保您的应用遵守活动生命周期,而不会浪费不必要的资源
  • 如何在设备配置更改之间保留用户状态

学习的内容很多!

遵循 codelab 步骤在某种程度上帮助您学习了这些新概念,但通过将您的知识和技能应用于新的应用,您将获得更深入的理解。

当您遇到新情况、bug 或需要自行设计解决方案时,您将运用您的知识。您可以随时参考之前的应用和 codelab,快速提醒自己学习的内容并付诸实践。

如果您尝试独自解决这些问题,您将学到更多,这将更接近开发者“现实世界”中的情况。知道如何分解问题、进行故障排除和搜索资源以找到解决方案本身就是一项技能。因此,我们鼓励您在每个单元结束时完成这些项目。考虑到这种动机和背景,请查看单元 4 项目的以下提示。

先决条件

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

您将构建的内容

  • 一个 Android 应用,显示您居住城市中可以做的事情和可以参观的地方的推荐

您需要的内容

  • 安装了 Android Studio 的计算机

2. 概述

恭喜您完成了单元 4!

为了帮助您巩固在本单元中学习的内容,您将构建一个应用,其中包含您选择的城市中不同活动和参观地点的推荐列表。

此应用应

  • 包含多个屏幕;例如,每个屏幕可以显示不同类别的推荐。
  • 使用 Jetpack Navigation 组件使用户能够浏览您的应用。
  • 保持 UI 层和数据层之间的清晰区分。
  • 使用 ViewModel 并使用单向数据流 (UDF) 模式从视图模型更新 UI。
  • 使用自适应布局来适应所有不同的屏幕尺寸。
  • 遵循 Material Design 指南,了解 自适应设计导航

3. 收集应用内容

收集您的应用内容,并将其写在纸上或输入文档中。在开始编写应用代码之前,组织应用内容更容易。

决定要为应用使用哪个城市或地区。我们建议您使用您最喜欢的城市或您居住的城市。如果您愿意,也可以选择包含多个城市的更广泛区域。

根据您选择的城市创建应用名称。即使此项目称为“我的城市应用”,我们也鼓励您将应用名称定制为您城市的名称。

为您的城市的各种推荐类别创建列表。例如,您可以创建推荐的列表

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

您的应用应包含来自不同类别的多个推荐列表。尝试为每个类别创建至少 3 到 5 个推荐,以免屏幕看起来过于空旷。

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

4. 绘制应用屏幕

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

此草图不需要非常详细或精细。主要目的是为导航图中的目标和应用的整体布局开发一个想法。这些图纸可以帮助您完成下一步。

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

First screen lists categories. When a category is selected, the next screen shows recommendations on that category. When a recommendation is selected, more details details are shown in the details screen.

您能否使用此示例来绘制大屏幕的应用和导航流程?如果您需要更多帮助,请随时查看您构建 Reply 应用的 codelab

5. 规划步骤

写下您绘制的应用构建的常规步骤。

例如

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

这些笔记可以帮助您确定您想首先处理应用的哪个部分。

为了更好地组织,您还可以按计划完成的顺序对步骤进行编号。如果一个步骤需要先完成另一个步骤,则需要适当地对步骤进行排序。

6. 实现应用

现在您已经有了应用的高级计划,您可以开始编写应用代码了!

创建项目并逐个完成每个任务。如果您需要很长时间才能完成一项任务,请耐心等待。对于构建这种复杂程度的应用,存在陡峭的学习曲线是很正常的。

提示

  • 查看以前的 codelab 和 GitHub 代码库以供参考。
  • 查看其他 Compose 示例应用Now in Android 应用。请注意,这些应用比您目前构建的应用更大、更复杂。
  • 如果您在应用中遇到错误并且无法找出如何修复它,请考虑使用 Android Studio 调试工具

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

本节推荐作为良好的学习体验。当您拥有应用的工作版本时,请向潜在用户展示并获取他们的反馈。

如果您拥有 Android 设备,请在设备上安装该应用。或者,您可以使用模拟器,但请记住,用户可能不熟悉模拟器是什么以及它与真实设备的关系。

尽量不要向用户提供任何指导或说明。相反,专注于观察用户并提出问题以了解用户第一次如何使用该应用。注意他们如何与应用交互以及浏览应用是否对他们来说直观或令人困惑。他们能否按您的预期使用应用,或者他们在弄清楚如何使用应用时遇到问题吗?

确保他们浏览每个屏幕并与应用的每个部分交互。您可以向他们提出其他问题,包括以下示例

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

考虑是否要将用户的建议融入您的应用中,为您的用户创造更好的体验。

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

最好在 可调整大小的模拟器 上测试您构建的内容,以查看应用是否在不同的屏幕尺寸上按预期工作。请确保更改模拟器大小并尝试以下图像中所示的不同设备选项。

You can change the device options of a resizable emulator from the dropdown menu.

9. 祝你好运!

祝您创建应用顺利!完成应用后,请使用主题标签 #AndroidBasics 在社交媒体上分享。我们很高兴看到您的应用效果如何,并想听听您的推荐!