版本 第一版 - 早期访问1
平台 安卓11
语言 Kotlin 1.4
编辑 AS 4.1

了解匕首依赖注入!

依赖注入是构建可维护和可测试的软件系统的重要技术。你可能已经做了依赖注射,也许甚至没有意识到它。依赖注入无处可行,因为它的名字意味着,这本书将指导您通过您需要了解的一切!

本书将指导您通过匕首,谷歌的Java,Kotlin和Android框架。匕首将帮助您解决许多具有困扰基于反射的解决方案的开发和性能问题。

本书适用于中级Kotlin或Android开发人员,他们希望了解如何使用匕首和刀柄库实现依赖注入模式。

本书在早期访问版本中。本书的章节列表可能会有所变化。估计最终版本:冬季2021

在你开始之前

本节告诉您您在开始之前需要了解一些需要了解的事情,例如您需要的硬件和软件,在哪里找到本书的项目文件等等。

介绍

自由

III

IV.

第一部分:迪基本面

在本节中,了解为什么您应该通过学习探测器等匕首使用依赖注入(di)库来学习您需要解决的问题:依赖性。

您将理解依赖关系以及为什么要控制它们以创建成功的应用程序。您将了解Busso应用程序,您将在整本书中工作,并改进。您将参加下一步迈向实现更易于测试和修改的更好的应用程序。

设计原则

自由

在本章中,您将学习什么是依赖性以及它如何影响您的代码。您还将了解如何使用抽象编写更好的代码。

1

在本章中,您将了解Busso应用程序,您将在整本书中努力和改进。它是服务器的客户端 - 服务器应用程序 使用Ktor实现。

2

依赖注入

自由

在本章中,您将迈出下一步来实现更好的应用程序,更容易测试和修改。您将首先重构Busso应用程序 在没有匕首或剑柄的世界里。

3

在本章中,您将了解范围和依赖性如何相互关联。您将首先重构SplashActivity如何使用导航器。 接下来,您将定义多个ServiceLocator实现,帮助您了解它们如何相互依赖。

4

在本章中,您将使用架构模式 - 模型查看演示者 - 沿着 与您在前一章中学到的内容创建一个完全可测试的应用程序。 您将使用在没有像匕首或剑柄的情况下在没有框架的世界中使用的技巧。

5

第二节:展示匕首

在本节中,您将了解匕首是什么,它是如何工作的,以及它如何在应用程序中实施依赖项注入时,您需要用手写入的代码量。

您将学习如何处理匕首处理构造函数,字段和方法注入,如何在您具有抽象及其实现时使用@binds简化@module的实现,以及如何使用@singleton来解决一个非常常见的问题。

在本章中,您将了解匕首是什么,它是如何运作的以及它如何划伤 在实现依赖项时,您需要用手写入的代码量 注射在您的应用程序中。

6

在本章中,您将发现更多关于依赖注入的更多信息 匕首。您将了解如何处理构造函数,字段和方法 用匕首注射。

7

在本章中,您将学习如何使用不同的匕首 @modules在同一应用程序中,如何优化启动性能 匕首的惰性界面,以及如何避免使用循环依赖 Provider interface.

8

在本章中,您将了解更多有关模块的更多信息。您将看到在@Module中使用@binds注释的好处,如何在可选绑定可以提供帮助,更多时提供Android上下文。

9

第三节:组件& Scope Management

在本节中,您将从自制框架中迁移BUSSO应用程序到匕首。在此过程中,您将了解如何将现有的服务器和注射器迁移到等效的匕首@Modules和@Components,如何为使用@ Component.Builder为@Component带有自定义构建器提供现有对象,以及如何使用@ Component.Factory作为@ Component.Builder的有效替代方案。

第一个迁移不会是最佳 - 您将有一些基本方面的改进。

在本章中,您将返回在Busso应用程序上工作。您将了解如何将现有的服务器和注射器迁移到等效的Dagger @Modules和@Components,如何为使用@ Component.Builder为@Component的自定义构建器提供现有对象,以及如何使用@ Component.Factory @ component.Builder的有效替代方案。

10

在本章中,您将了解您还会了解组件的定义以及它与容器相关的定义。你会看到一个生命周期是什么,为什么它很重要,它与范围的关系是什么。您还将了解有关@singletons的更多信息,以及@scope是什么,以及它如何改善您的应用程序的执行

11

在本章中,您将学习更多关于@components和依赖项的更多信息。特别是,您将了解为什么@singleton与其他@scopes没有如此不同,为什么您可能需要不同的方法来管理组件依赖项,以及更多。

12

第四节:高级匕首

在本节中,您将深入了解匕首的高级功能,如多绑定。 MultibInding是匕首的一个非常有趣的功能,因为它使用您在本节中学到的插件模式简化了新功能的集成。

您将实现一个简单的框架,允许您以非常简单和声明的方式在BUSSO应用程序中集成新服务。您将了解所有与集合和地图的多绑定所需的所有内容。

在本章中,您将了解多绑定的多绑定以及如何使用多绑定。

13

在本章中,您将学习如何使用与地图的多绑定。您将了解如何使用映射配置多绑定,以及如何使用带有@StringKey,@classkey,@intkey和@longkey的基本类型键。您还将创建一个简单的自定义密钥,并使用@keymap构建复杂的自定义密钥。

14

在本章中,您将了解如何在多模块应用程序中配置和使用匕首。

15

第五节:介绍剑柄

在最后一节中,您将了解您需要了解的所有内容。 HILT是Android的依赖注入库,可减少项目中进行手动依赖注入的样板。

剑柄基于DI库匕首的顶部,可从编译时的正确性,运行时性能,可扩展性和Android Studio支持中受益于匕首提供的。

在本章中,您将了解匕首如何帮助您在Android应用程序中自动注入依赖注入,以及如何消除写入繁琐和易于错误的样板代码。

16

在本章中,您将了解什么是粗杠库以及它如何减少项目中的手动依赖注入的样板。

17

在本章中,您将了解HILT提供从其他Jetpack库提供类的扩展。

18

此附录将概述如何更容易地测试代码。

19

见团队

贡献者

这本书是给谁的

本书适用于中级Kotlin或Android开发人员,他们希望了解如何使用匕首和刀柄库实现依赖注入模式。

本书涵盖的概念

  • 依赖注入
  • 匕首
  • 注射类型
  • 先进的匕首
  • 威尔

版本历史记录

第一版·Android 11,Kotlin 1.4,As 4.1

V1.0·2月12日2021·Massimo Carli

第一版 - 早期访问1·Android 11,Kotlin 1.4,AS 4.1

v1.0.ea1·11月20日2020·Massimo Carli
pro

匕首by Tutorials

By Massimo Carli

学习依赖注入 - 一种构建可维护和可测试的软件系统的重要技术。依赖注入无处可见,因为它的名字暗示,它通过使用匕首变得更加容易 - Google的框架,可以帮助您解决具有困扰基于反射的解决方案的开发和性能问题。 本书在早期访问版本中。本书的章节列表可能会有所变化。估计最终版本:冬季2021

免费阅读Ultimate Pro订阅* *包括我们在线图书馆中的所有其他书籍 查看所有优点
单独购买59.99美元* *包括访问所有在线阅读功能。
请参阅购买选项
隐藏购买选项

所有视频。所有书籍。
One low price.

A RaywenderLich.com订阅是学习和掌握移动开发的最佳方式 - 计划从19.99美元/月开始!

了解iOS,Swift,Android,Kotlin,Flutter和Dart开发,并解锁我们的50+书籍和4,000多个视频的大规模目录。