Kinsomy Blog

Thinking will not overcome fear but action will.

Dart空安全

The Dart language comes with sound null safety.

背景 最近在对项目做flutter升级3.3.10的相关工作,其中就包括升级升级Dart到2.12以上来支持空安全。下面将对Dart的空安全进行介绍,并讲解如何从旧版本Dart进行空安全的迁移。 空安全介绍 Dart3 计划于2023年中发布,始终支持空安全,届时使用Dart3将不再允许非空安全的代码运行。 空安全的原则 Dart 的空安全支持基于以下三条核心原则: 默认不...

Gradle 7.x 升级

gradle upgrade

介绍 Gradle 7.0 在2021年4月正式发布,目前最新版本已经更新到v7.6.1,想看Gradle所有版本的release记录可以点击链接 该版本默认启用文件系统监视功能,使你的增量构建速度更快;扩展了对使用Java16构建项目的支持;并增加了对在使用AppleSilicon处理器(如M1)的Mac上构建的支持。 同时,此版本还引入了 centralized dependency...

详解 Web3 移动端困局以及未来潜在的发展方向播

Web3 Goes Mobile In Bid For Mass Adoption

转自 https://baijiahao.baidu.com/s?id=1740665416561512298&wfr=spider&for=pc 最近在推特看到一句很有意思的话来形容什么是Web3,原文是英文的,我稍微扩展了下翻译成中文: “区块链搭建了一整个无监管、金融化、自由流通的Web网络,大家在上面以各种名义售卖Token、NFT、股权,简称Web3。” ...

Flutter GetX状态管理解析

Flutter GetX Source Code

1 什么是状态管理? 要了解状态管理,我们先要了解Flutter里面的状态(State)是什么?从官方文档给出定义如下: In the broadest possible sense, the state of an app is everything that exists in memory when the app is running. This includes the app’...

Kotlin:Suspend Function

Suspend Function 和 SuspendCancellableCoroutine

1 什么是Suspend Function? Suspend function是用suspend关键字修饰的函数,suspend function需要在协程中执行,或者在另一个suspend function内。 我们考虑下面这样的场景,用户先输入账号密码进行注册,然后再用账号密码替用户自动登录,接着账户信息保存到本地缓存,最后返回用户信息。 如果按照以往用RxJava的写法,我们会写出...

LeakCanary2解析

LeakCanary2

1 引言 众所周知,LeakCanary是一个内存泄漏检测的工具。那么,内存泄漏是如何定义的,通常有哪些情况呢? 在分析源代码之前,我们先弄清楚这两个问题。这两个问题在LeakCanary - Fundamentals中有提及。 2 什么是内存泄漏 (What is a memory leak?)¶ In a Java based runtime, a memory leak is a p...

Android进阶(九)WorkManager-任务链

任务队列调度

1 引言 上一篇文章WorkManager解析对WorkManger最简单的使用案例做了介绍,同时对流程源码做了概括地分析,在文末提到了一个任务链的概念,可以使用WorkManager创建一个任务的链条,并将它们加入队列中,任务链指定多个依存任务并定义这些任务的运行顺序,这类似于RxJava的事件流的链式调用。这篇文章就来详细探讨其中的实现代码。 2 使用 任务链的使用我们看一段代码: W...

Android进阶(八)WorkManager解析

Android advance

1 引言 WorkManager是Android Jetpack的一个库,可以在达到约束条件的情况下执行可延期的有保证性的后台任务,适用于即便在应用退出后也要能保证运行的工作任务,是后台任务框架的优秀解决方案。 WorkManager又不完全是一个全新的后台任务框架,它的底层依然使用了Android之前的API,会根据设备的版本去选择调用调用JobScheduler或者Firebase J...

Gradle自定义插件(一)基础知识

Android advance

1 概述 按照惯例,先放出Gradle Plugin的官方文档Using Gradle Plugins ,英文好的读者还是推荐阅读官方文档,更加准确详实。 都知道Gradle是在Android中用于项目自动化构建的工具,平时即使不自定义插件,也会用到官方或者三方库提供的很多插件。 apply plugin: 'com.android.library' apply plugin: 'kot...

机器学习中正则化项L1和L2的直观理解

L1 L2 正则化

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/jinping_shi/article/details/52433975