Kotlin
文章平均质量分 82
程序员小何SS
这个作者很懒,什么都没留下…
展开
-
2023才开始学kotlin算晚吗?这份《高级Kotlin强化实战》给你答案
或许还有朋友没接触过kotlin吧,下面给各位简单介绍一下kotlin。原创 2023-01-31 14:34:57 · 197 阅读 · 0 评论 -
还没开始学习Kotlin?学完这些轻松入门!
Kotlin 中的数据类是什么?Kotlin 中伴随对象的用途是什么?Kotlin 中的协程是什么?Kotlin中集合遍历有哪几种方式?等等…可以看出Kotlin在开发岗位中还是比较重要的,想要入门Kotlin并且掌握好它,是需要付出一定努力的。Kotlin是一种在Java虚拟机上运行的静态类型编程语言,被称为Android世界的Swift,由JetBrains设计开发并开源的。Kotlin可以编译成Java字节码,也可以编译成JavaScript,方便在没有JVM的设备上运行。原创 2022-12-14 13:53:01 · 139 阅读 · 0 评论 -
为 Kotlin 的函数添加作用域限制(以 Compose 为例)
不知道各位是否已经开始了解 Jetpack Compose?如果已经开始了解并且上手写过。那么,不知道你们有没有发现,在 Compose 中对于作用域(Scopes)的应用特别多。比如, 修饰符只能用在 或者 作用域中。又比如, 组件只能用在 作用域中。如果你还没有了解过 Compose 的话,那你也应该知道,kotlin 标准库中有 5 个作用域函数: ,这 5 个函数会以不同的方式持有和返回上下文对象,即调用这些函数时,在它们的 lambda 参数中写的代码将处于特定的作用域。不知道你们原创 2022-12-07 16:17:32 · 454 阅读 · 0 评论 -
kotlin协程入门、进阶和实战三大部分,Android开发应该怎么学?
协程是运行在单线程上的并发程序,它能够更好的为我们更好的执行高并发任务。他和线程最大的区别在于,我们可以创建数千个协程,而不会过多影响性能,而线程的启动和运行容易产生崩溃的情况,可以说,“一千个线程可能是一个严重的挑战。”原创 2022-11-17 17:42:04 · 225 阅读 · 0 评论 -
使用 OkHttp 拦截器和改造进行缓存
先让我们了解将如何在Android应用程序中帮助我们:当我们进行网络调用以从服务器获取数据时,它将从服务器获取数据,并将在客户端上缓存HTTP响应。然后,如果我们再次进行相同的API调用,它将立即从缓存中返回数据。这样,我们的:即使没有互联网连接也可以工作,这将有助于我们构建离线优先的应用程序。由于响应在本地缓存,因此工作速度更快。现在,让我们学习如何在 OkHttp 和改造中启用缓存。原创 2022-10-14 18:42:34 · 363 阅读 · 0 评论 -
通过示例理解带有接收器的 Kotlin 函数字面量
本文提供了一些简单的代码示例,使用函数字面量和接收器(也称为 lambda/匿名函数和接收器)。我遇到了这种 lambda 语法——NavGraphBuilder.() -> Unit结果它被称为Function Literal with Receiver,也称为Lambda/Anonymous Function with Receiver。语法如下所示:下面显示了一些使用带有接收器的函数文字构建自定义字符串的示例。原创 2022-09-27 16:50:12 · 182 阅读 · 0 评论 -
kotlin:Lateinit 和 Lazy
如果你对kotlin感兴趣,但却不知道如何学习,怎么去学习,在这里为了帮想学习Kotlin 的小伙伴,不烦看看这份《高级Kotlin强化实战学习手册(附Demo)》供Android开发者进阶学习 Kotlin,内容涵盖 Kotlin 入门教程、Kotlin实战避坑指南、Kotlin Jetpack 实战三大模块。解决方案:不要继续命名它可能是懒惰的名字,但它证明它在使用时是值得的。问题1: 我们希望声明一个变量,但不想在创建过程中对其进行初始化,因为我们确定在执行之前,它肯定会在程序中的某个时刻被初始化。原创 2022-09-24 10:27:05 · 840 阅读 · 0 评论 -
Kotlin 中的分区过滤功能
如果你觉得kotlin很有意思,但却不知如何去学习,那么为了帮助想学习 Kotlin ,我近日整理发布一份《高级Kotlin强化实战学习手册(附Demo)》供Android开发者进阶学习 Kotlin,内容涵盖 Kotlin 入门教程、Kotlin实战避坑指南、Kotlin Jetpack 实战三大模块。在本篇文章中,我们将了解 Kotlin 过滤功能 - partition. 它通过谓词过滤集合,并将不匹配的元素保存在单独的列表中。partition通过谓词过滤集合,并将不匹配的元素保存在单独的列表中。原创 2022-09-22 10:02:51 · 446 阅读 · 0 评论 -
Flutter 中的测试驱动开发
TDD 或测试驱动开发是在实现任何功能或代码之前为应用程序的每个单元编写质量保证测试用例的实践。原创 2022-09-20 10:06:38 · 208 阅读 · 0 评论 -
玩弄 Kotlin 的Context Receivers
Kotlin 在 1.6.20 版本中加入了 Context Receivers 的想法。在这篇文章中,我想玩弄它们以了解它们的用处。请注意,如果您想一起玩,则需要使用context-receivers标志进行编译。Context Receivers背后的主要思想是将附加参数传递给函数,而无需显式执行。原创 2022-09-17 10:13:05 · 331 阅读 · 0 评论 -
带有 Android Studio 模板的快速 RecyclerView 适配器
在本文中,我将向您展示如何利用该解决方案生成带有 ViewBinding/DataBinding 的 RecyclerView Adapter,并节省一些击键和时间。因此,通过按下打开 Android Studio 设置,command + ,然后在选项File and Code Templates下Editor选择并单击加号图标以添加新模板并将以下代码复制到文件中。在该Name字段中,输入您想为模板命名的任何名称;就我而言,我将其命名为RecyclerView Adapter;原创 2022-09-13 15:31:35 · 406 阅读 · 0 评论 -
Kotlin:多维(2D、3D 等)数组初始化
kotlin 中的简单一维数组是使用arrayOf()标准库函数声明的。它将值列表作为参数并返回一维数组。这将创建一个包含 5 个元素的整数值数组:1、2、3、4、5。类型声明是可选的arrayOf(),这使数组变得灵活。如果未定义数组类型,那么您可以在数组中存储任何类型的元素。它会工作得很好。}/*Output:*/但这违背了 Kotlin 中类型安全的目的。我们不想将字符串存储在整数数组中。为了保证类型安全,我们在初始化时声明了数组的类型,以保证数组的元素是相同的类型。否则,他们会抛出错误。原创 2022-09-09 10:16:49 · 2913 阅读 · 0 评论 -
为什么在 Kotlin-Coroutines 中不建议使用 GlobalScope?
这是因为我正在处理片段。正如您已经知道的那样,协程是轻量级的,但Will Consume Some Memory Resources在它肯定运行时仍然如此,这可能会导致您的应用程序中的内存泄漏。很多人在刚接触这个行业的时候或者是在遇到瓶颈期的时候,总会遇到一些问题,比如学了一段时间感觉没有方向感,不知道该从那里入手去学习,需要一份小编整理出来的学习资料的。正如你所看到的,即使第一个片段已经死了,我们的循环仍然继续,因为我们声明了我们的范围,GlobalScope{…}它将继续运行,直到我们的应用程序死了。.原创 2022-09-01 14:33:30 · 1283 阅读 · 0 评论 -
Android Extension Functions与静态 Utility Class
Extension Functions:这些就像附加到 kotlin 中的任何类的扩展属性。它为该类提供了额外的方法,而无需手动继承该类。例如,比方说,我们有视图,我们需要在其中使用视图的可见性。因此,我们可以为视图创建扩展功能,例如,}}为了使用它,我们使用,比如,在这里,您可以看到我们在 android 的视图中附加了 hide() 和 show() 的附加功能。在这里,以上两个扩展函数只能被 View Type 使用,不能被其他任何类型使用。例如,String 不能使用这里的函数。...原创 2022-08-27 10:00:14 · 179 阅读 · 0 评论 -
这些工具将使 Android 开发更有趣
但有时您必须使用物理设备而不是模拟器,例如测试需要蓝牙的功能,或者在最坏的情况下,您的笔记本电脑没有足够的 RAM 来运行模拟器。在这里,您可以使用 scrcpy 镜像您的手机。在开发/调试应用程序时,您需要撤销应用程序的所有权限,或者清除应用程序缓存和存储,甚至卸载应用程序。所以这个插件来帮助,你可以撤销应用程序的权限,清除应用程序缓存和存储,卸载应用程序,从你的 IDEA 中杀死甚至重新启动应用程序,只需几个按钮快捷方式组合。您需要做的就是为您想要的语言添加新的实时模板及其缩写、描述和代码。原创 2022-08-25 09:54:11 · 379 阅读 · 0 评论 -
如何使用 Kotlin Multiplatform 构建跨平台应用程序
KMM 或 Kotlin Multiplatform Mobile 是用于开发跨平台应用程序的 SDK。可以创建多平台应用程序并与 android 和 iOS 平台共享它们。然而,Kotlin Multiplatform Mobile 的常见用例包含原生 UI 的实现或使用特定于平台的 API。开发和维护移动应用程序需要投入大量精力和精力。但是,在为不同平台(例如(iOS、Android 等)创建和测试跨平台移动应用程序时)存在各种挑战。在当今的数字世界中,跨平台构建应用程序是最苛刻的应用程序开发过程。原创 2022-08-23 10:14:57 · 1816 阅读 · 0 评论 -
避免 StateFlow 中的竞争条件
当您的 StateFlow 值分配取决于先前的值时,请使用 mutableState.update { previousState -> previousState.copy() } 来避免竞争条件。这里我就分享一份资料,希望可以帮助到大家提升进阶。Android学习PDF+架构视频+面试文档+源码笔记,高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料这几块的内容。分享给大家,非常适合近期有面试和想在技术道路上继续精进的朋友。如果你有需要的话,可以。...原创 2022-08-18 09:38:32 · 372 阅读 · 0 评论 -
Kotlin 中优化的棋盘图案 VectorDrawable
在我开始编写上面的第三个版本之前,我在想潜在的等价v-2物比 长V8,但同时v-2比 短V10。}}}只保存了 5 个字符,很明显,我们看到了收益递减法则的影响,但我还是接受了它。已经花时间了,没有明显的缺点……最后两个可能的优化(我没有检查aapt2是否在做)是将androidxml 命名空间重命名为a,并删除所有非强制空格和换行符。无论如何,我在那里节省了 81 个字节(与上一次迭代相比减少了 20% 以上)。...原创 2022-08-16 11:42:31 · 291 阅读 · 0 评论 -
Kotli N — 如何创建自定义 Toast
本文在本人文档中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…原创 2022-08-12 10:46:31 · 567 阅读 · 0 评论 -
【Android Kotlin】Property、Getter 和 Setter
我们都是Android开发人员,我们都开始使用OOP概念在Java中开发Android应用程序。但是在引入Kotlin语言之后,我们都开始转向Kotlin语言,因为它现在是Android应用程序开发的推荐语言,在这个转型阶段,我们都注意到这些语言之间存在很多差异。就像在Java中一样,我们将变量声明为私有,在声明之后,我们为同一个变量创建一个getter和一个setter方法,这些方法被公开。但是当我们迁移到Kotlin时,整个过程被简化为仅一行代码。...原创 2022-07-23 14:59:42 · 341 阅读 · 0 评论 -
Kotlin-Flow如何在Android项目中使用
Flow是kotlin提供的一个重要的异步工具,类似于RxJava的响应式编程框架,使用协程封装成生产者-消费者模式,上流来负责生产,下流来接收消耗。原创 2022-07-18 14:17:40 · 422 阅读 · 0 评论 -
【Android Kotlin协程】利用CoroutineContext实现网络请求失败后重试逻辑
在Android开发中有一个典型场景:网络请求失败后重试:一般的逻辑是弹出一个Dialog提醒用户“网络请求失败”,并提供重试的按钮。如果当前页面只有一个网络请求,那么逻辑就很简单了:只需要再调用一下发起这个网络请求的方法就可以了。而当一个页面有多个网络请求时,我常用的办法为失败回调加状态,根据不同的状态调用不同的方法。但是这个方法不免有些繁琐,也有点不安全。首先,你要额外的增加状态,并将它传来传去。有些情况下,你甚至还需要重新初始化网络请求参数。更要命的是:你还要管理这个状态,一旦管理不善,就会导致调用了原创 2022-07-05 10:04:54 · 707 阅读 · 0 评论 -
【Kotlin】高阶函数介绍
将函数作为参数或者返回值的,称高阶函数。action是一个高阶函数,(Int) -> Int表示是函数的类型,(Int)表示函数入参类型为Int,后面的Int表示函数返回类型。函数作为参数以下代码,init函数调用doSomething函数,将Int类型 0 以及action函数传入doSomething。doSomething函数先对入参0进行加200运算,然后调用高阶函数action(进行加100运算),最后打印结果actionResult。 是不是有点策略设计模式的味道?是的,完全可以用它来实现策原创 2022-06-29 22:27:41 · 284 阅读 · 0 评论 -
Android中关于枚举的优化
Android 中使用 Kotlin 枚举 + when、java 枚举时,源代码编译后会产生额外的产物,进而带来一些额外开销,本文讲述了 Android 对枚举使用的优化的讲解和解决办法。enum 标识符声明的枚举类 ClazzEnum 默认继承自 , 每个枚举类成员默认都是 修饰,每个枚举常量都相当于是一个 ClazzEnum 对象,而 Enum 默认实现已经声明了一些枚举属性,所以枚举通常会比静态常量多两倍以上的内存占用,所以在过去 Android 中不推荐使用枚举。 以后,在 build.gra原创 2022-06-20 18:26:57 · 375 阅读 · 0 评论 -
【Flutter】在Flutter中实现长按拖拽排序?不要太轻松,Reorderables 开源项目介绍和源码分析(作者的思路挺鬼才的,我怎么想不到)
今天是复工的第一天,现在还是不太能接受假期就这么结束了,就当是一场梦,醒了很久还是很不能接受;回正题,这篇的主题在Flutter中实现拖拽排序可以怎么做;当然,flutter 中本身就带有 ReorderableListView 这个控件,不过如果需要对 GridView、瀑布流这种来做一个拖拽排序的话,flutter本身并没有类似 ReorderableGridView 这种东西;这时候就到了万能的 pub.dev 上场的时候了目前在pub上搜索reorder这个关键词,相关部分中,like最多的就是 [原创 2022-06-06 21:21:27 · 2891 阅读 · 0 评论 -
Android 刻度尺的另类实现方式.
最近UI同学出了一种新的交互, 通过调节刻度尺来调节温度的变化。通常大家都会想到通过自定义View来实现这个刻度尺。今天我们通过RecyclerView来实现。1 思考通过观察, 整个刻度是一个横向排列的列表, 完全可以通过横向的RecyclerView来实现, 指示部分不动,可以固定在RecyclerView的中间部分。通过滑动RecyclerView,来改变刻度值。 看一下实现效果。2 实现首先写布局, 在屏幕中央实现一个横向的 RecyclerView的列表, 然后在RecyclerVi原创 2022-05-26 16:27:04 · 1358 阅读 · 0 评论 -
为什么要学Kotlin?Kotlin的未来趋势怎么样?会取代java吗?
第一章 Kotlin协程的基础介绍协程是什么什么是Job 、Deferred 、协程作用域Kotlin协程的基础用法第二章 kotlin协程的关键知识点初步讲解协程调度器协程调度器协程启动模式协程作用域挂起函数第三章 kotlin协程的异常处理协程异常的产生流程协程的异常处理第四章 kotlin协程在Android中的基础应用Android使用kotlin协程在Activity与Framgent中使用协程ViewModel中使用协程其他环境下使用协程原创 2022-01-14 16:54:17 · 1037 阅读 · 0 评论