专栏名称: Android_开发者
目录
相关文章推荐
51好读  ›  专栏  ›  Android_开发者

把 "格子衫" 改造得更时尚 | Kotlin & Jetpack 最佳实践技巧

Android_开发者  · 掘金  · android  · 2019-10-11 07:43

正文

阅读 318

把 "格子衫" 改造得更时尚 | Kotlin & Jetpack 最佳实践技巧

Plaid 是格子图案的意思,也是一款在 2015 年开源的 Material Design 样例应用。它通过 API 调用聚合了 Dribbble、Designer News 和 Product Hunt 三个网站的内容数据,并通过丰富的 UI 交互体验呈现给用户。

重构 Plaid 的目标不仅是修复内容源 API 接口的失效问题,更重要的是应用最新的 Android Jetpack、Kotlin 语言特性和 Android 应用架构指南,因此 Plaid 2.0 将不仅仅是 Material Design 的示例应用,同时还将是一个使用了 Kotlin 的符合 Android 应用架构指南的示例应用。

本文将为大家分享和总结 Android 团队工程师们在重写 Plaid 应用时的实践经验,前面部分将着重分享应用的分层设计,后面部分是具体使用 Kotlin 实现的视频,扩展阅读部分提供了更多 Plaid 重构以及 Kotlin 相关知识的文章。

Plaid 1.0

起初,我们定位 Plaid 将是一款 Material Design 样例应用,我们希望通过它展示 Material Design 的可以为交互体验带来的改进。

△ 最初的 Plaid 被设计为 Material Design 样例应用

△ Plaid 里实现的图标动画效果

△ Plaid 里构建了我们称之为 Reflow Text 的动画效果

△ 让相同文字在位置转换的时候有一个酷炫的「走位」

△ Plaid 在 Designer News 模块实现了评论嵌套显示和当前评论突出显示的功能
2017 年,这些内容源的部分 API 发生了改动: Dribbble 的 Shots API 里不再返回评论的内容,Shot 点赞和用户关注的接口失效。类似这样的 API 改动,也同样出现在了 Designer News 和 Product Hunt 这两个内容源。

不过,我们有失去也有得到: Kotlin 作为 Android 官方的首要支持编程语言这一重大的消息在 17 年 Google I/O 时公布。同年 11 月,Android Jetpack 系列内的架构组件 (Architecture Components) 1.0 版正式发布,用以帮助开发者构建高质量的应用,这份指南包含了移动应用用户体验的说明,常见的架构原则,推荐的应用架构说明和最佳实践等。

因此,在决定修复 Plaid 应用 Bug 的同时,我们希望为这个项目加入 Jetpack 架构组件和引入 Kotlin 语言,使其成为一个更 "时尚" 的应用。

重构 Plaid 应用

Plaid 重构的目标 / 要求有以下几个:

  • 解决因内容源的 API 失效而导致的功能缺失问题
  • 构建模块化、可扩展的应用架构,规范依赖引用和注入
  • 引入和使用 Kotlin 重构现有功能

随着 Android 平台不断的改进以及 Kotlin 在全球开发者社区的迅速流行,达到这个目标变得更容易了。比如可以通过使用 Android App Bundles 动态增添新的新闻源,使用新的 AndroidX 库,使用 Jetpack,遵循 Android 应用架构指南构建应用等。

我们在应用里使用了 Android App Bundles 的动态模块功能为新的新闻源模块接入提供可能。此外,我们为 Plaid 规划了三层,分别是 Data 层、Domain 层、UI 层,并设计了一些主要的类如下图所示:







请到「今天看啥」查看全文


推荐文章
java一日一条  ·  MySQL函数大全及用法示例(二)
8 年前
香港凤凰周刊  ·  通商闯天下
7 年前