Kotlin and Android Development featuring Jetpack
作者: Michael Fazio
语言: 英文
出版年份: 2021
编程语言: Kotlin
下载链接:
书籍均收集自互联网,仅供学习和研究使用,请莫用于商业用途。谢谢合作。

书籍摘要

一、内容概览

《Kotlin and Android Development featuring Jetpack》由 Michael Fazio 撰写,面向希望“从零到实战”掌握现代 Android 开发的读者。全书围绕两款趣味应用——桌面小游戏 Penny Drop 与虚拟棒球联赛 ABL——展开,系统讲解 Kotlin 语言、Jetpack 组件与 MVVM 架构的协同用法。作者强调“写少、写安全、写有趣”,通过大量示例代码与逐步重构,展示如何借助 Jetpack 摆脱传统样板代码,快速交付可测试、可维护且体验一致的 Android 应用。

二、章节层次与核心知识点

Part I|Penny Drop:入门与进阶

  1. 初始化与导航

    • 使用 Android Studio 新建项目,配置 Navigation Component、BottomNavigationView 与 FragmentContainerView
    • 介绍 ConstraintLayout、矢量图标、资源分离与主题继承
  2. 构建 Fragment 与数据绑定

    • 全面启用 DataBinding,双向绑定 EditText、CheckBox、SwitchCompat
    • 通过 <include><merge> 复用 player_list_item,引入 ObservableBoolean 与 BindingAdapter 自定义属性
  3. ViewModel 与 LiveData

    • 创建 PickPlayersViewModel、GameViewModel,理解生命周期感知与 activityViewModels() 共享作用域
    • 将 UI 状态(玩家列表、硬币槽、按钮可用性)封装为 MutableLiveData,结合 Transformations.map 实现数据派生
  4. 游戏逻辑与协程

    • 设计无状态 GameHandler 单例,返回 TurnResult 描述“投币、爆牌、胜利”三种结局
    • 在 ViewModel 中调用 roll()/pass(),使用 viewModelScope 启动协程,AI 玩家采用“一等函数”策略延迟决策
  5. Room 持久化

    • 定义 @Entity(Game、Player、GameStatus)、@Dao、@TypeConverters 与 RoomDatabase
    • 通过 Repository 模式隔离数据源,insert、update、query 均用 suspend 函数;借助 Database Inspector 实时调试
    • 将内存模型迁移至数据库:游戏状态、玩家分数、槽位填充全部持久化,实现“断点续玩”

Part II|Android Baseball League:高阶技巧

  1. 导航抽屉与深层链接

    • 集成 NavigationDrawer、Safe Args 与 App Links,实现多目的地跳转与参数安全传递
  2. 网络与协程

    • Retrofit + OkHttp 访问 REST API,结合 Room 做“网络-本地”双缓存;使用 Kotlin Coroutine 与 Flow 处理并发
  3. 分页与性能

    • 引入 Paging 3 加载球员、排行榜,配合 RecyclerView.Adapter 与 DiffUtil 实现无限滚动
  4. WorkManager 与通知

    • 利用 WorkManager 调度后台同步任务;展示本地通知与 Firebase Cloud Messaging 推送
  5. 主题与个性化

    • 动态提取 Palette 主色,跟随系统 Dark Mode;通过 PreferenceFragment 与 DataStore 保存用户设置

Part III|测试与交付

  1. 单元测试

    • JUnit 5 + MockK 测试 ViewModel、Room DAO、GameHandler 逻辑,使用 Turbine 断言 Flow
  2. UI 测试

    • Espresso 编写 Fragment 场景测试,结合 Hilt 注入假数据源,实现可重复、离线的自动化验收

Part IV|附录

  • Android Studio 安装、模拟器配置、Gradle 依赖版本集中管理
  • 常见构建错误与调试技巧(Layout Inspector、Database Inspector、Profiler)
  • Kotlin 语法速查:扩展函数、解构声明、操作符重载、when 表达式、内联函数等

三、写作特色

  1. 项目驱动:每章围绕“可运行增量版本”展开,拒绝片段式 Demo
  2. 深度 Jetpack:Navigation、ViewModel、LiveData、Room、Paging、WorkManager、DataBinding 全覆盖,并给出最佳组合方式
  3. Kotlin 优先:善用协程、扩展函数、DSL、类型安全构建器,展示“少即是多”的编码哲学
  4. 测试闭环:从单元→集成→UI 全链路测试,强调持续交付前的质量守护
  5. 云-端一体:示范本地数据库、远程 API、推送通知协同工作,贴近真实商业项目

四、适合读者

  • 有 Java 基础、想快速迁移至 Kotlin 并掌握最新架构组件的 Android 工程师
  • 计算机专业学生或个人开发者,期望通过完整案例理解“现代化 Android 开发”全貌
  • 技术团队负责人,需要制定统一的 Jetpack 技术栈与测试规范

五、阅读路径建议

  1. 新手:按顺序实现 Penny Drop,先搭框架→再补逻辑→再持久化→再测试
  2. 有经验者:可跳过基础章节,直接研读 ABL 中的网络、分页、后台任务部分
  3. Kotlin 爱好者:重点关注 GameHandler 的函数式设计与协程用法,以及 Room 的类型转换器实现

六、总结

《Kotlin and Android Development featuring Jetpack》以“两个趣味 App、一条主线架构”串起现代 Android 开发的核心技能。读完本书,你不仅能独立交付功能完备、架构清晰、测试完善的 Kotlin 应用,更将理解 Jetpack 背后的设计思想:用更少的代码,做更安全的开发,拥抱声明式与反应式编程。对于任何希望在 202x 年代构建高质量 Android 产品的开发者,这本书都是一份兼具深度与趣味的上手指南。

期待您的支持
捐助本站