草庐IT

Kotlin-Flow

全部标签

Kotlin 协程之线程池探索之旅(与Java线程池PK)

前言协程系列文章:一个小故事讲明白进程、线程、Kotlin协程到底啥关系?少年,你可知Kotlin协程最初的样子?讲真,Kotlin协程的挂起/恢复没那么神秘(故事篇)讲真,Kotlin协程的挂起/恢复没那么神秘(原理篇)Kotlin协程调度切换线程是时候解开真相了Kotlin协程之线程池探索之旅(与Java线程池PK)Kotlin协程之取消与异常处理探索之旅(上)Kotlin协程之取消与异常处理探索之旅(下)来,跟我一起撸KotlinrunBlocking/launch/join/async/delay原理&使用上篇文章分析了协程切换到主线程执行的详细流程,本篇将分析如何切换到子线程执行。通

Kotlin用@Parcelize实现序列化Parcelable

简介在Android项目中经常要对Bean进行Parcelable序列化,也有很多序列化工具。Android中提倡通过实现Parcelable来对对象序列化,但是如果是使用Java开发实现起来就比较繁琐,而Kotlin提供了@Parcelize,可以轻松实现对Bean的序列化及反序列话。先看看官方对@Parcelize的解析:/***InstructstheKotlincompilertogenerate`writeToParcel()`,`describeContents()`[android.os.Parcelable]methods,*aswellasa`CREATOR`factoryc

Total.js Flow

Total.jsFlow是一款用于低代码开发的优秀且现代的可视化编程接口。它是Node-RED的可行替代方案,并且在MIT许可下完全开源。image.png它具有如下的特点:自动化数据处理数据转换服务或工作流程的理想选择对于小型RESTAPI非常方便适用于小型集成可用作配置工具有机会用作规则引擎监控+报警发送通知image.png这个出色的可视化编程界面主要用于物联网和Web/REST应用程序。使用拖放工具,您可以快速可靠地创建各种工作流程。您可以简单地连接各种硬件设备(例如Arduino),应用程序接口(API)和在线服务。编程元素的图形操作负责所有后端基础结构,以便您可以专注于主要业务逻辑

Kotlin Flow简单使用

什么是流?从流的方向来观察,我们称原始数据为上流,对数据进行一系列处理后,最终的数据为下流。从流的属性来观察,我们认为生产者在上流生产数据,消费者在下流消费数据。为什么引进Flow?Flow是Kotlin官方基于协程构建的用于响应式编程的API。响应式编程简单来说就是使用异步数据流进行编程。协程中,使用挂起函数仅可以异步返回单个值,而Flow则可以异步返回多个值,并补全kotlin语言中响应式编程的空白。Flow常见的操作生产者消费者例子suspendfuncollect(){flow{//发射数据emit(5)}.collect{//消费者Log.i("minfo","value=$it")

Kotlin 学习笔记(五)—— Flow 数据流学习实践指北(一)

Kotlin学习笔记艰难地来到了第五篇~在这一篇主要会说Flow的基本知识和实例。由于Flow内容较多,所以会分几个小节来讲解,这是第一小节,文章后面会结合一个实例介绍Flow在实际开发中的应用。首先回想一下,在协程中处理某个操作,我们只能返回单个结果;而Flow可以按顺序返回多个结果,在官方文档中,Flow被翻译为数据流,这也说明了Flow适用于多值返回的场景。Flow是以协程为基础构建的,所以它可通过异步的方式处理一组数据,所要处理的数据类型必须相同,比如:Flow是处理整型数据的数据流。Flow一般包含三个部分:1)提供方:负责生成数据并添加到Flow中,得益于协程,Flow可以异步生成

来,跟我一起撸Kotlin runBlocking/launch/join/async/delay 原理&使用

前言协程系列文章:一个小故事讲明白进程、线程、Kotlin协程到底啥关系?少年,你可知Kotlin协程最初的样子?讲真,Kotlin协程的挂起/恢复没那么神秘(故事篇)讲真,Kotlin协程的挂起/恢复没那么神秘(原理篇)Kotlin协程调度切换线程是时候解开真相了Kotlin协程之线程池探索之旅(与Java线程池PK)Kotlin协程之取消与异常处理探索之旅(上)Kotlin协程之取消与异常处理探索之旅(下)来,跟我一起撸KotlinrunBlocking/launch/join/async/delay原理&使用之前一些列的文章重点在于分析协程本质原理,了解了协程的内核再来看其它衍生的知识就

DataBinding——使用Kotlin 委托优化

简介DataBinding是Google在Jetpack中推出的一款数据绑定的支持库,利用该库可以实现在页面组件中直接绑定应用程序的数据源。使其维护起来更加方便,架构更明确简洁。启用DataBindingDataBinding库与AndroidGradle插件捆绑在一起。无需声明对此库的依赖项,但必须启用它。android{...buildFeatures{dataBindingtrue}}基本使用DataBinding—官方文档常规用法1、在Activity中使用classMainActivity:AppCompatActivity(){privatelateinitvarbinding:A

ios - 将 Kotlin 接口(interface)的 Swift 实现传递给 Kotlin 方法时出错

我正在iOS上使用KotlinNative进行一些试验,我想尝试的一件事是使用Swift实现Kotlin定义的接口(interface)。但是,当我尝试将该Swift对象传回Kotlin代码时,我最终崩溃了。我使用的是kotlingradle插件版本1.2.30和kotlinnative版本0.6.1下面是一个最小的例子。Kotlin代码被编译成名为KotlinCommon的框架,然后包含在xcode项目中。演示类.ktclassDemoClass{funprocess(dependency:Dependency){dependency.foo()}}interfaceDependen

Android Kotlin Java 自定义日历控件 CalendarView ,支持单选,多选,按星期选,跨月份日期范围选择,样式设置,设置不可选日期,设置只可选日期

GitHub源码地下载https://github.com/hdev0225/CalendarViewCalendarView日历控件CalendarView使用kotlin语言开发,支持单选,多选,按星期选,跨月份日期范围选择,样式设置,设置不可选日期,设置只可选日期设置不可选择日期,设置只可选择某些日期运行环境AS版本:AndroidStudioDolphin|2021.3.1AndroidGradlePluginVersion:7.3.0GradleVersion:7.5示例Demo安装1、添加JitPack仓库到根路径下的build.gradleallprojects{ reposit

ios - 如何通过 CollectionView 中的 Flow Layout 将单元格对齐到顶部

在这段代码中,我试图更改UICollectionView的第一个单元格和其他具有相同大小的单元格的大小,但是在第一行中只有一个单元格出现,而我想要两个出现:funccollectionView(_collectionView:UICollectionView,layoutcollectionViewLayout:ifindexPath.row==0{returnCGSize(width:collectionView.frame.width/1.5-2,height:collectionView.frame.width/1.5-2)}else{returnCGSize(width:col