项目:创建我的城市应用

1. 开始之前

在本单元中,您学习了

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

学的东西真不少!

按照 codelab 步骤,您在一定程度上学习了这些新概念,但通过将您的知识和技能应用到一个新的应用中,您将获得更深入的理解。

当您遇到新情况、错误或需要自己设计解决方案时,您将运用所学知识。您始终可以参考以前的应用和 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 在社交媒体上分享。我们很高兴看到您的应用最终效果,并听取您的建议!