项目:创建一个“我的城市”应用

1. 开始之前

在本单元中,您学习了

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

您学到了很多!

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

当您遇到新情况、错误或需要自己设计解决方案时,您将运用您的知识。您随时可以回顾之前的应用和 Codelab,快速回忆您所学到的知识并付诸实践。

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

前提条件

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

您将构建什么

  • 一个 Android 应用,用于显示您所居住城市中推荐的活动和地点

您将需要

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

2. 概览

恭喜您学完单元 4!

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

此应用应满足以下要求

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

3. 收集应用内容

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

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

根据您选择的城市选择应用名称。尽管此项目名为 My City app,但鼓励您自定义应用名称,使其特定于您的城市。

为您的城市创建不同类别的推荐列表。例如,您可以创建以下推荐列表:

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

您的应用应包含来自不同类别的几个推荐列表。尝试为每个类别创建至少 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 标签在社交媒体上分享。我们很期待看到您的应用成果并了解您的推荐!