![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
kotlin
文章平均质量分 88
沈页
这个作者很懒,什么都没留下…
展开
-
告别XML,Android新声明式UI框架《Jetpack Compose入门到精通》最全开发指南
Jetpack Compose是Android的新声明式UI框架。长期以来, Android 开发人员习惯于使用带有状态视图的xml编写UI,这些状态视图通过逐步浏览视图层次结构进行更新。使用Jetpack Compose, UI 是通过使用KotinQ 函数以无状态方式编写的。可组合函数使用注解进行@Composable注解。可组合函数必须使用此注解进行注解,通知编译器此函数将UI添加到View Hierarchy。原创 2022-12-16 21:07:04 · 1524 阅读 · 0 评论 -
3年以上Android开发者,关于学习 Compose,我的经验总结和建议
又到一年快结束的日子了这一年里经历了裁员,跳槽,跑路,也当过面试官面试一些同学。经历过攻守的角色转换后,沉下心,回顾过往,不由得发出感叹,今年卷的不行。无论是裁员还是跳槽,都存在核心的一点,自身的技术核心是否达到公司的业务要求?就像现在用的声明式UI,企业都想提高开发效率,而Compose正好能直观解决这类问题。那么问题来了:你要学Compose吗?或者更确切地问:你要现在就开始学 Compose 吗?世界在变化,公司也在变化,技术也时刻在变化。原创 2022-12-07 14:46:07 · 1189 阅读 · 0 评论 -
Kotlin或将超越Go?
知名软件行业分析公司 RedMonk 发布了 2022 年 6 月(第三季度)编程语言排行榜。RedMonk 编程语言排行榜通过追踪编程语言在 GitHub 和 Stack Overflow 上的代码使用情况与讨论数量,统计分析后进行排序,其旨在深入了解潜在的语言采用趋势。该榜单一年发布两次,这是今年的第二份榜单。上一次榜单发布是在 3 月份,即第一季度编程语言排行。目前 RedMonk 对编程语言的排序算法基本思路没有变化,但是具体的数据收集方式改变了。原创 2022-11-23 14:59:09 · 4786 阅读 · 0 评论 -
我在 Java 中错过了什么,一个 Kotlin 开发人员的观点
近二十年来,Java 一直是我的谋生工具,直到几年前我开始学习 Kotlin。虽然 Kotlin 也被编译为 JVM 字节码,但有时候我还是不得不写一些 Java 代码。每次写 Java 代码时,我都不禁想,为什么 Java 代码看起来没有 Kotlin 那么好。我很想念那些可以提高代码可读性、表现力和可维护性的特性。虽然Kotlin提供了其他出色的功能,但这四个功能足以对Java进行大量改进我知道,作为一种编程语言,Java 一直在改进,而 Kotlin 天生具备更强的灵活性。...原创 2022-08-18 17:00:42 · 154 阅读 · 0 评论 -
Kotlin:崛起中的下一代编程语言
Kotlin 于2011年出现,但直到最近才开始真正吸引程序员的特别青睐。Google 在 2017 年宣布 Kotlin 在 Android Studio 3.0 中完全获得支持,使之成为 Android 开发语言之一,Kotlin 与 Java 展开激烈竞争。"IT有得聊”是机械工业出版社旗下IT专业资讯和服务平台,致力于帮助读者在广义的IT领域里,掌握更专业、实用的知识与技能,快速提升职场竞争力。一年前 JetBrains 公司宣布Kotlin对Android开发的支持,在开发者问答平台.原创 2022-05-20 16:34:19 · 3994 阅读 · 14 评论 -
【译】Kotlin 协程,JVM 线程以及并发问题
原文:Bridging the gap between coroutines, JVM threads, and concurrency problems作者:Manuel Vivo译者:Flywith24「协程是轻量级的线程」,是不是经常听到这样的描述?这个描述对你理解协程有实质性的帮助吗?可能没有。阅读本文,您会对 协程在 JVM 中实际的执行方式,协程与线程的关系以及使用 JVM 线程模型时不可避免的 并发问题 有更多的了解。协程与 JVM 线程协程旨在简化执行异步操作的代码。基于 JV.原创 2021-12-20 10:12:35 · 619 阅读 · 1 评论 -
索然无味!Kotlin开发从入门到上天,一篇文章就搞定了!(万字长文)
标题党?看起来可能有点标题党的意思,但我知道,不这样,你们可能看不到这篇。关于Kotlin相关记录,如果有意查看我的github,其超10w字(其中8w是代码吗,哈哈)。。为什么要学?在不牺牲性能或安全性的前提下,许多的Kotlin功能使代码比Java更加简洁易懂。Kotlin编译为字节码,因此其性能与Java一样好。它具有与Java相同的编译时检查(还有更多内容,例如内置的可空性检查)。最重要的是,Kotlin的语言功能和标准库功能可实现简洁有效的代码。简洁,因为这是提高程序员工作效率的关.原创 2021-01-26 17:50:45 · 1890 阅读 · 9 评论 -
Kotlin协程实现原理:CoroutineScope,看完不懂你砍我!墙裂建议收藏。
今天我们来聊聊Kotlin的协程Coroutine。文末有为大家准备的彩蛋。如果你还没有接触过协程,推荐你先阅读这篇入门级文章What? 你还不知道Kotlin Coroutine?如果你已经接触过协程,相信你都有过以下几个疑问:协程到底是个什么东西?协程的suspend有什么作用,工作原理是怎样的?协程中的一些关键名称(例如:Job、Coroutine、Dispatcher、CoroutineContext与CoroutineScope)它们之间到底是怎么样的关系?协程的所谓非阻塞式挂起与恢原创 2020-11-16 16:19:39 · 12979 阅读 · 19 评论 -
Android-Kotlin-递归与尾递归
递归:阶乘计算:/** * 阶乘: * 1的阶乘是1,因为1往下走一个楼梯 就是0了 * 2的阶乘是 2*1 * 3的继承是 3*2*1 * 4的继承是 4*3*2*1 * 5的阶乘是 5*4*2*1 */package cn.kotlin.kotlin_base06import java.lang.Exception原创 2020-08-28 14:45:41 · 345 阅读 · 0 评论 -
Android-kotlin-具名参数
先看一个这样的案例,【案例一】:package cn.kotlin.kotlin_base05fun showAction1(country: String, volk: String) { println("我的祖国是${country}, 我的民族是$volk")}fun showAction2(country: String, volk: String) { println("我的祖国是${country}, 我的民族是$volk")}fun showAction3(原创 2020-08-27 09:49:24 · 371 阅读 · 0 评论 -
Android-Kotlin-区间与FOR&LIST&MAP简单使用
区间与for:package cn.kotlin.kotlin_base04/** * 区间与for */fun main(args: Array<String>) { /** * Kotlin中提供了区间,例如:存入1到100 , 在Java中可能要写多行代码,而在Kotlin中很简单,代码如下 * 1..100 */ var numbers = 1..100 /** * 用for循环打印 */原创 2020-08-26 20:59:09 · 347 阅读 · 0 评论 -
Android-Kotlin-函数表达式&String与int转换$异常处理
Kotlin的函数表达式:package cn.kotlin.kotlin_base03/** * 函数第一种写法 */fun addMethod1(number1: Int, number2: Int) : Int { return number1 + number2}/** * 函数第二个种写法 */fun addMethod2(number1: Int, number2: Int) = number1 + number2/** * 函数表达式 */fun ma原创 2020-08-25 11:05:07 · 1259 阅读 · 0 评论 -
Android-Kotlin-When&类型推断
Kotlin的when表达式TextEngine 描述文字处理对象:package cn.kotlin.kotlin_base02/** * 描述文字处理对象 * * val textContent 传入进来的文字内容 val是常量 */class TextEngine(val textContent: String) { /** * 处理文字,然后返回 * 返回完整的字符串 */ fun getDoTextAction() : String原创 2020-08-24 11:58:27 · 815 阅读 · 0 评论 -
Android-kotlin-空值处理&字符串比较&常量
空值处理:【案例一:】1.Kotlin对控制处理很严格,默认就不能写null,否则编译都不通过:描述Car汽车对象:package cn.kotlin.kotlin_base01/** * 描述Car汽车对象 * * 参数一: 车名, 参数二: 车的价值 */class Car (var carName:String, var carMoney: Double) { /** * 得到车的信息 */ fun getCarInfo() : String原创 2020-08-23 21:05:29 · 546 阅读 · 0 评论 -
Android-Kotlin-Activity直接的跳转
1.选中应用包名packageName,右键:2.选中Kotlin:3.创建Kotlin的Activity完成:第一个Activity,MainActivitypackage cn.kotlinimport android.content.Intentimport android.support.v7.app.AppCompatActivityimport android.os.Bundleimport android.util.Logimport android.view.V原创 2020-08-22 21:33:16 · 689 阅读 · 0 评论 -
Android-Kotlin-印章类
上一篇博客介绍了,Android-Kotlin-枚举enum;由于枚举 和 印章类 有相似之处,所以两者对比一下:Kotlin的枚举,重点区分的数据本身Kotlin的印章类,重点区分的是数据类型(类)枚举类的定义:package cn.kotlin.kotlin_oop09/** * 定义人的性别 枚举类 */enum class MyEnumPersonSex { 男, 女}印章类的定义:package cn.kotlin.kotlin_oop10/*.原创 2020-08-21 16:51:04 · 284 阅读 · 0 评论 -
Android-Kotlin-枚举ENUM
为什么要用枚举?枚举的好处有:1.使程序更容易编写和维护2.防止用户乱输入,是一种约束来看两个案例案例一 星期:星期的枚举:enum class 类名 {}package cn.kotlin.kotlin_oop09/** * 定义星期的枚举类 */enum class MyEnumerateWeek { 星期一, 星期二, 星期三, 星期四, 星期五, 星期六, 星期日}描述处理星期的对象,里面有处理星期的方法:原创 2020-08-20 15:30:25 · 542 阅读 · 0 评论 -
Android-Kotlin-单例模式
先看一个案例,非单例模式的案例:描述Dog对象:package cn.kotlin.kotlin_oop08class Dog(var name:String, var color:String) { /** * 显示狗狗的名字 */ fun showDogName() { println("狗狗的名字是:${this.name}") } /** * 显示狗狗的颜色 */ fun showDogCol原创 2020-08-19 16:46:38 · 480 阅读 · 0 评论 -
ANDROID-KOTLIN-代理和委托
代理和委托,在生活中的案例有很多:例如:小明工作很忙,需要办理银行卡,此时他委托给>>小李去给自己办理银行卡,小李来到办理中心 把自己的身份证/小李的身份证,给办理人员,说是小明委托我,给他办理银行卡的在Kotlin的代理委托是使用by关键字来处理定义描述寻找的接口,规范寻找的功能的标准:package cn.kotlin.kotlin_oop07/** * 定义描述寻找的接口 */interface ISeek { /** * 寻找的功能/行为原创 2020-08-18 17:06:50 · 293 阅读 · 0 评论 -
Android-kotlin-接口与多态的表现
上一篇博客介绍了 Android-Kotlin-抽象类与多态的表现 ; 而这一篇博客专门介绍下 接口与多态的表现1.选择包名,然后右键:2.选择Class类型,会有class:3.选择File类型,不会自动有class:5. 选择interface,是创建接口:6.目录结构:1.定义手机充电接口标准规范 InterfacePhone:package cn.kotlin.kotlin_oop06/** * 定义描述手机的Interface */interface Inte原创 2020-08-17 09:45:50 · 313 阅读 · 0 评论 -
Android-kotlin 抽象类与多态的表现
上篇博文讲了kotlin语言中get/set方法的使用,今天来讲一下kotlin中的抽象类与多态的表现选择包名,然后右键:选择Class类型,会有class:选择File类型,不会自动有class:目录结构:定义描述抽象类 Person人类:package cn.kotlin.kotlin_oop05/** * 抽象类用abstract修饰 * 描述:人类的抽象 */abstract class Person { /** * 抽象行为用abstract修原创 2020-08-16 20:41:41 · 319 阅读 · 0 评论 -
Android-Kotlin-GET/SET 方法的使用
上篇博客我们讲了kotlin的继承,今天接着往下讲解kotlin的get/set方法的使用。Student.ktpackage cn.kotlin.kotlin_oop04open class Person { open var personName:String = "我是父类的名字"}class Student: Person() { /** * name用private私有修饰,外界其他地方不准访问,隐藏细节 * name提供set get 方法 对外原创 2020-08-14 14:44:26 · 3999 阅读 · 0 评论 -
Android-kotlin的继承
上一篇博客讲了Android-kotlin的配置/入门,然后简单的实现了一个计算器功能。今天我们来讲讲kotlin中的继承是怎样的。1.先看一个案例,子类使用到父类的资源 【案例一】父类 张翠山:package cn.kotlin.kotlin_oop03/** * 描述父对象:张翠山 * * personDescribe 此人的简介 / var personDescribe:String 此String是Kotlin的 * * 描述行为:gestAction 武功 *///.原创 2020-08-13 10:03:09 · 619 阅读 · 0 评论 -
【随笔二】Android-kotlin-实现简单计算器功能
上一篇博客Android-kotlin-配置/入门配置好了 AndroidStudio Kotlin 的环境;今天做一个简单的demo实战—实现一个简单的计算器功能1.选择包名,然后右键:2.选择Class类型,会有class:3.创建CounterClass:package cn.kotlin.kotlin_oop02/** * 加减乘除计算的calss * var number1:Double 此Double是kotlin的 * var operapor:Char 此Char是原创 2020-08-12 10:31:02 · 1987 阅读 · 1 评论 -
Android-kotlin学习笔记(一)配置/入门
1.配置Kotlin开发插件,点击File菜单,选择Settings,选择Plugins,会显示扩展的插件;2.然后选择Browse repositories…,搜索栏目中搜索Kotlin即可,点击Install就行,大小50多M,速度很快的然后安装完成后,重启AndroidStudio3.在项目的 build.gradle中配置 Kotlin版本:ext.kotlin_version = '1.2.51'classpath "org.jetbrains.kotlin:kotlin-gradl原创 2020-08-11 21:18:04 · 410 阅读 · 0 评论