Koin in Android: 更简单的依赖注入

5 7月

Dagger 之殇

如果还不清楚什么是依赖注入,那么请参考之前写的 Dagger2 in Android(一)通俗基础开头部分。如果你不了解 Dagger 倒也无妨,本文会进行一定的对比,但仅针对接触过 Dagger 的同学,否则大可以忽略。

Dagger2 作为著名优秀的依赖注入框架广为流传,何况还是 Android 的亲爸爸 – Google 在维护,因此相信很多人会将其作为 Androi[……]

>> 接着看呗

[译] Coroutines on Android(三)实战

2 7月

本系列文章主要翻译自 medium-AndroidDevelopers.

使用协程解决实际问题

前两章重点研究了协程如何简化代码,在 Android 中提供主线程安全,以及如何避免协程泄露。在此基础上,协程是一个在 Android 中进行后台处理以及以及简化回调的优秀方案。

到目前为止,我们主要关注的是什么是协程以及如何管理它们。在这篇文章中,我们将看看如何使用它们来完成实战任务。协[……]

>> 接着看呗

[译] Coroutines on Android(二)起步

2 7月

本系列文章主要翻译自 medium-AndroidDevelopers.

本篇将开始整合协程与 Android,探索如何启动并跟踪协程,以便适配 UI 生命周期。

为何跟踪协程

在第一篇中,我们探索了协程能解决的问题。总结一下,协程是解决这两个问题的优秀方案:

  1. 在主线程运行长时间任务导致阻塞。
  2. 从主线程上安全地调用一切 suspend 函数。也即主线程安全(Main-safety[……]

    >> 接着看呗

[译] Coroutines on Android(一)背景知识

1 7月

本系列文章主要翻译自 medium-AndroidDevelopers.

本系列文章主要关注 Kotlin Coroutine(协程) 是如何工作的,以及如何解决实际的 Android 问题。但是相对来说不会过于深入底层,更偏向于应用。

协程解决了什么?

Kotlin 协程提供了一个全新的,更加简单地方式来实现异步。协程在 Kotlin 1.3 中正式发布,API 已经稳定,可以用于[……]

>> 接着看呗

Dagger2 in Android(四).android 扩展库

10 6月

问题

在之前我们讨论过,Dagger 在 Android 上普遍的结构是:定义一个全局的 AppComponent,其他组件依赖或继承它。假设现在有 AppComponent 与 ActivityComponent 两个,他们可能是这样编写的:

@Module(subcomponents = [ActivityComponent::class])
class AppModule(val con[......]

>> 接着看呗

Dagger2 in Android(三)Scope与生命周期

10 6月

前言

之前我们已经学习了 Dagger 的基础知识、模块化管理,本章将是 Dagger 基础使用的最后一章。

Scope 被误称 Dagger 的黑科技,但实际上它非常简单,但错误理地解它的人却前仆后继。希望小伙伴们认真阅读这一章,第一次学习时一定要正确理解,不然后边再纠正会感觉世界观都被颠覆了。

@Scope

终于来了。Scope 正如字面意思,它可以管理所创建对象的“生命周期”。Sco[……]

>> 接着看呗

Dagger2 in Android(二)进阶

10 6月

前面已经讲了 Dagger 的基础注解,并且最后我们也搭建了一个最简单的 Dagger 注入。

这一篇我们继续学习 Dagger 更多的注解,以及如何模块化地管理。这些将帮助我们妥善组织不同的组件、明确各自的生命周期。

@Named

依赖注入迷失

之前说过 @Module@Provides 配合可以包装没有 @Inject 标注的构造函数。但如果包装了一个已经有了 @Inject 的[……]

>> 接着看呗

Dagger2 in Android(一)通俗基础

9 6月

背景知识

Dagger2 是一个由 Google (之前是 Square)维护的开源依赖注入框架。我曾两次试图学习 Dagger 最终被乱七八糟的名词弄得晕头转向,连个 demo 都没写出来就放弃了。所以本文也会重点解释 Dagger 的各个名词,只有熟悉了它们的作用,才能顺畅无阻地使用,也才能看懂别人的 demo。

虽然标题叫 Dagger2 in Android,但是前几节都是 Da[……]

>> 接着看呗

Android 构建 MVVM 应用 with Kotlin(一)概述

9 6月

各种模式

MVVM 是一种开发模式,对应的还有 MVC、MVP。这些模式最早在前端领域比较火,后来因为便于维护,被应用到各个平台。但 Android 上却发展的很慢。先来看一下各个模式的区别,以及他们在 Android 中的对应关系。

MVC

  • Model:业务数据模型。用于获取、储存数据。
  • View:视图。Activity、Fragment 等,当然也包括 xml 布局文件。
  • Contro[……]

    >> 接着看呗

JS in Android (Google V8)

4 6月

简介

由于项目动态化的需要,希望在 Android 应用中嵌入脚本语言。常见有 LuaJs。Lua 的集成在之前的文章中已经介绍过。lua 是一个非常轻量的语言,专为嵌入而生,这是他的优势。但因为太轻了,可以说几乎没有标准库,这也使得用起来不是很方便。但目前最大的问题是 lua 脚本无法完美地运行在 web 与微信小程序中,而 js 在这方面有先天的优势。

为了更加紧密地结合原生应用,要[……]

>> 接着看呗