安卓& Kotlin Books 匕首by Tutorials

III
介绍 由Massimo Carli撰写

匕首是基于JVM的系统的依赖注射的库,包括Android。依赖注入是构建可维护和可测试的软件系统的重要技术。

你可能已经做了依赖注射,也许甚至没有意识到它。依赖注入无处可达,因为它的名字暗示。

在本书中,您将更新名为Busso的现有应用程序以使用沿匕首和刀柄的依赖注入。 BUSSO应用程序是一个简单的应用程序,允许您在附近找到巴士站和有关到达时间的信息。

本书将为您作为一个中心的中心,持有潜入匕首和刀柄的所有信息,将其应用于您的个人和生产水平项目。

如何阅读本书

这本书旨在Android开发人员,他们不熟悉依赖注入和库,如匕首和剑柄,或者对图书馆知之甚少但没有机会在真正的项目中使用它的开发人员。

如果您对依赖注入完全新建,我们建议一次读一章,按内容表中提供的部分和章节的顺序。

如果您熟悉依赖注入的基本原理,您可以跳转到“第二节:介绍匕首”,并继续使用匕首图书馆了解依赖注入。

如果您已经在项目中使用了匕首,但希望了解更多有关复杂主题的信息,请跳到“第四节:高级匕首”。您将在真实的项目中构建复杂的用例,了解多绑定和模块化。

如果您已经精通匕首库,则可以跳转到“第V节:介绍刀柄”,并了解依赖于Android的依赖项注入。

本书分为五个主要部分:

第一部分:迪基本面

在本节中,您将激励使用依赖注入(DI)库,如匕首,通过学习您需要解决的问题:依赖性。

您将理解依赖关系以及为什么要控制它们以创建成功的应用程序。您将了解Busso应用程序,您将在整本书中工作,并改进。它是一个客户端 - 服务器应用程序,其中服务器使用Ktor实现。

您将迈出您的下一步来实现更易于测试和修改的更好的应用程序。你会考虑到项目的质量概念。在此过程中,您将了解更多关于范围的信息,并了解它与依赖关系有关。

您还将使用在没有匕首或刀柄的框架中使用的技术在世界中使用的技术来创建一个完全可测试的应用程序。

第二节:展示匕首

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

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

您将了解您需要了解匕首@Modules的所有内容,并且您将尝试使用@binds,@provides和bindsoptionalof等不同的基本注释以及与Dagger.Laze和Provider这样的有用接口。 您还将了解如何使用@Named和如何使用自定义@Qualifiers来实现哪些限定符。

第三节:组件和范围管理

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

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

稍后,您将学习更多关于@Components和依赖项的信息。特别是,您将了解为什么@singleton与其他@scopes没有如此不同,为什么您可能需要不同的方法在管理组件依赖项,@components与@singleton,@activityscope和@fragmentscope范围之间存在的类型类型的依赖关系, 等等。

第四节:高级匕首

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

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

第五节:介绍剑柄

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

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

您将迁移现有的Busso应用程序以使用刀柄库。

有一个技术问题?想报告一个错误吗? 您可以向官方书籍论坛中的书籍作者提出问题和报告错误 这里 .

有反馈分享在线阅读体验吗? 如果您有关于UI,UX,突出显示或我们在线阅读器的其他功能的反馈,您可以将其发送到设计团队,其中表格如下所示:

© 2021 Razeware LLC