自从Google宣布Kotlin为Android官方开发语言以来,越来越多的应用都开始使用Kotlin进行开发,包括Google自家开发的许多APP,也不乏许多的大公司的APP。Kotlin的热度也是一路高歌,可以看出这门新兴的语言有多受大家的追捧。
kotlin-android-extensions插件可能算得上是我最喜欢的一个Kotlin在Android上的特性了。
从 Android Studio 3.6 开始,视图绑定能够通过生成绑定对象来替代 findViewById,从而可以帮您简化代码、移除 bug,并且从 findViewById 的模版代码中解脱出来。
https://developer.android.com/topic/libraries/view-binding
时至今日相信大部分的Android开发者对RecyclerView的缓存机制如数家珍。相关教程也是数不胜数。如果你想详细了解这些不同缓存的作用以及实现原理。可以参考我之前写过的两篇文章。聊聊RecyclerView缓存机制和详细聊聊RecyclerView缓存机制,前者主要是介绍各个层级缓存的作用以及它们之间的区别,后者主要是从源码的角度讲解缓存是怎么实现的。缓存架构图如下:
下面是《Android Studio开发实战 从零基础到App上线》一书用到的工具和代码资源: 1、本书使用的Android Studio版本为3.0.1,Kotlin版本为1.2.0,最新的Android Studio安装包可前往Android官网页面下载。 2、本书提供所有示例源码的demo工程下载,源码的下载页面为https://pan.baidu.com/s/1iVUtJcgX7Fylx-1zRCVjug,也可在作者的github主页下载最新的源码,github地址是https://github.com/aqi00/kotlin。 源码与各章的对应关系表见下图:
2017-06-11 by Liuqingwen | Tags: Android Gradle | Hits
在根目录下的build.gradle文件下添加 buildscript{ …. } 中的内容:
根据Realm Report (2017-Q4,https://realm.io/realm-report/2017-q4 ) ,过去的一年在Android 端的开发:Java 从 95% 降低到 Java 85%, 而 Kotlin 从 5% 涨到 15% ,如下图所示
最近发现很多公司对于Android开发者都要求又提升了一些,比如熟悉Kotlin的开发,会使用React Native,会使用Flutter开发语言,要么就会对前端有一定的基础小程序 Vue等等。。。 在众多知识中我选择学习Kotlin,其原因Kotlin作为谷歌霸霸主推的语言,而且它是一种兼容Java的语言,还有就是看到很多Android开发者都在使用Kotlin写项目。在大环境的驱使下,我选择学习这门新语言。
官方文档 : https://developer.android.google.cn/reference/kotlin/androidx/recyclerview/widget/ItemTouchHelper
Anko (https://github.com/Kotlin/anko) 是一个用 Kotlin 写的Android DSL (Domain-Specific Language)。长久以来,Android视图都是用 XML 来完成布局的。这些 XML可重用性比较差。同时在运行的时候,XML 要转换成 Java 表述,这在一定程度上占用了 CPU 和耗费了电量。
今年五月份的 Google I/O 上,我们正式向全球宣布 Kotlin-first 的这一重要理念,Kotlin 将成为 Android 开发者的首选语言,十月份举办的 Android Dev Summit 2019 大会上,我们发布了使用 Kotlin API 开发的 Jetpack Compose 开发者预览版。
本篇并不是针对 Kotlin 的语言特性介绍,但它比语言特性更为重要。上一篇文章讲的是空安全特性,它允许你方便的处理对象可能为空的情况。但他价值更大的另一面在于,Kotlin 可以声明不可能为空的对象。
其中涉及到 org.jetbrains.kotlin:kotlin-stdlib:1.7.10 依赖库 ,
2017-04-29 by Liuqingwen | Tags: Kotlin 翻译 | Hits
kotlin是一门基于jvm的编程语言,最近进行了关于kotlin和 anko的研究。并且结合现在的APP设计模式,设想了初步的开发方式。并且准备应用在新的项目中。 Kotlin和anko Kotlin是大名鼎鼎的JB公司开发的jvm语言,官网地址为;http://kotlinlang.org/ 官网的介绍为: Statically typed programming language for the JVM, Android and the browser Kotlin的设计思想非常的轻量,尽可能的去
相信程序员们都有一个共同的女朋友。这个女朋友总是阴魂不散,时不时还不忘调戏下男朋友程序员,而且你依然对她欲罢不能、想入非非。
我们在Android开发的过程中总是需要获取XML布局中的ViewId,以便给其赋值进行显示,早期我们只能使用 findViewById 这个API,会导致很多的模版代码出现。2013年左右Android界大神 Jake Wharton开源了Butter Knife框架,通过Bind(“viewid”)方式方便开发者获取ViewId。近两年由于谷歌对Kotlin的支持,我们开始使用 Android Kotlin extensions。 在文件中导入布局文件直接引用viewId。无需做其他额外操作,最为方便。
kotlin是一门基于jvm的编程语言,最近进行了关于kotlin和 anko的研究。并且结合现在的APP设计模式,设想了初步的开发方式。并且准备应用在新的项目中。 Kotlin和anko Kotlin是大名鼎鼎的JB公司开发的jvm语言,官网地址为;http://kotlinlang.org/ 官网的介绍为: Statically typed programming language for the JVM, Android and the browser Kotlin的设计思想非常的轻量,尽可能的去复用
RecyclerView 是一款非常强大的 widget,它可以帮助您灵活地显示列表数据。当我开始学习 RecyclerView 的时候,我发现对于复杂的列表界面有很多资源可以参考,但是对于简单的列表展现就鲜有可参考的资源了。虽然 RecyclerView 的组成结构乍一看有些复杂,但是深入理解以后您会发现它其实非常简单明了。
最近放寒假了,终于有空做项目了,想着把之前的一些项目重构一下,碰巧重构到 view Binding 这块,之前都是用 kotlin 的那个扩展,其实刚开始做项目的时候这个就已经废弃了,由于当时自己有点懒,没去学习这个新的代替方案,所以就成为一个历史遗留的问题,参考官方文档
在我们的开发过程中,需要获取XML布局文件中的ViewId,以便其赋值显示,我们习惯使用findViewById进行操作,可这样会导致很多的模版代码出现。
在 Android Studio 的 Terminal 终端执行 gradlew 报错 , 报错信息如下 :
1.1 Kotlin的身世 写了许久 Java,有没有发现其实你写了太多冗余的代码? 后来你体验了一下 Python,有没有觉得不写分号的感觉真是超级爽? 你虽然勤勤恳恳,可到头来却被 NullPoi
大家好,我是扔物线朱凯。上期讲了 Kotlin 的 Unit,这期讲 Nothing。 Nothing 的源码很简单:
近来关于 Kotlin 的文章着实不少,Google 官方的支持让越来越多的开发者开始关注 Kotlin。不久前加入的项目用的是 Kotlin 与 Java 混合开发的模式,纸上得来终觉浅,终于可以实践一把新语言。本文就来小谈一下 Kotlin 中的空处理。
我们使用 fastjson 来解析这个数据。在 app 下面的 build.gradle中添加依赖
在Android 5.0 版本之前,为了方便的显示多行数据,形如QQ聊天信息主界面,最常用的选择无非是ListView控件,但是ListView控件本身就有很大的局限性和效率问题(相对于RecyclerView控件)来说,比如说ListView只能竖向滚动显示数据,不能横向滚动显示数据,在一些特殊的需求中,ListView就无能为力了。在Android5.0版本之后,Android官方推出了一个新的控件:RecyclerView ,完全解耦的设计使得RecyclerView比起ListView灵活了太多,应用的场合也非常广泛。那么,就来看一下ListView和RecyclerView的用法和不同之处在哪:
问题是 androidx.core:core:1.9.0. 依赖库中 要求的 minCompileSdk 为 33 , 本应用的编译版本为 32 , 这里设置为 33 即可解决 , 但是这样设置会造成其它问题 ;
过去两年,我们在掘金平台上发表过一些文章,小彭也收到了大家的意见和鼓励。最近,我会陆续搬运到公众号上。
在使用 Java 编程语言时,最常见的痛处之一是在存取空引用 (null reference) 成员时,系统会报出 NullPointerException。Kotlin 可有效地避免这问题的发生,它通过将可空类型 (nullable type) 与非空类型 (non-nullable type) 汇入类型系统,帮助您消除代码中的 NullPointerException 错误,从而提升 app 的整体质量。Kotlin 代码调用写入 Java 语言中的 API 时,会依靠上述 API 中的可空性注解来决定每个参数的可空性,以及返回值类型。未注解的参数和返回值类型将被视为平台类型,从而弱化 Kotlin 的空值安全保证。
分析上述源码 , 发现 ARoute 框架 com.alibaba:arouter-api:1.5.1 中使用的 Android 支持库都是 com.android.support 依赖分组下的 ;
最近用kotlin重写了项目中的部分模块,领略到了这个Google官方推荐语言的魅力。
使用Java时,我们需要大量的判断一个变量是否为null,否则使用是会抛出NullPointer异常。 而kotlin使用null给一个变量赋值时,在编译时,就会报错,来防止发生这种异常
在移动应用开发中,列表组件是一个非常常见的 UI 组件,绝大多数应用开发中都会使用到列表组件进行界面的开发,在 Android 开发中列表组件一般使用官方提供的 RecyclerView ,而 RecyclerView 的常规开发需要手动创建对应的 Adapter、ViewHolder 代码,且每个 RecyclerView 的使用都需要编写这种的样板代码,存在重复代码,降低了开发效率,于是为了提高列表的开发效率(偷懒)就有了各种对 RecyclerView 封装的框架来简化其开发流程,本篇就是其中一种框架的实现。
今天复习下kotlin相关的知识点和常考考点,通过这些问答相信你也能更一步了解Kotlin。
一直以来,技术圈里面只要涉及 Android Library 的文章,几乎都在讲如何发布到 Maven/Jcenter,却很少见到有文章来指导大家如何编写一个规范又好用的 Android Library。
此处继承了 RecyclerView.ItemDecoration 类 , 重写了 getItemOffsets 方法 ,
《第三行代码》这才刚刚出版,竟然就有API被弃用了,我决定对这个问题好好研究一下,并加急写一篇文章进行分析。
1、Hello, Kotlin 1.1 Kotlin的身世 写了许久 Java,有没有发现其实你写了太多冗余的代码? 后来你体验了一下 Python,有没有觉得不写分号的感觉真是超级爽? 你虽然勤勤恳恳,可到头来却被 NullPointerException 折磨的死去活来,难道就没有受够这种日子么? 直到有一天你发现自己已经写了好几十万行代码,发现居然全是 getter 和 setter! 哈哈,实际上你完全可以不用这么痛苦,用 Kotlin 替代 Java 开发你的程序,无论是 Android 还
9年以上开发经验,熟悉主流移动开发框架,热衷于探索新技术,曾负责过店铺、JDReact架构等项目的开发工作,目前专注于京东App领券中心频道开发,以及移动端技术难点攻克和新技术调研实施。
这篇文章介绍开发者用 31 天学习 Kotlin 的心得,深入浅出地介绍了 Kotlin 的一些基本特性以及高级用法,对处于不同阶段的 Kotlin 开发者来说,在提高开发效率和了解 Kotlin 提供一些参考,希望可以对大家有所帮助。 第一周 Day 1:可见性 在 Kotlin 中一切都是默认 public 的。并且 Kotlin 还有一套丰富的可见性修饰符,例如:private, protected, internal。它们每个都以不同的方式降低了可见性。 Day 2:Elvis 操作符 需要处理代
整体上看,这一年,Android 只专注一件事,就是帮助开发者提高生产效率。(developer productivity)
Kotlin 能够扩展一个类的新功能而无需继承该类,或者对任意的类使用像“装饰者(Decorator)”这样的设计模式。这些都是通过叫做“扩展(extensions)”的特殊声明实现的。Kotlin扩展声明既支持扩展函数也支持扩展属性,本文主要讨论扩展函数,至于扩展属性实现的机制类似。
报错的模块是 e: C:/Users/octop/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-common/1.7.10/bac80c520d0a9e3f3673bc2658c6ed02ef45a76a/kotlin-stdlib-common-1.7.10.jar!/META-INF/kotlin-stdlib-common.kotlin_module 模块 , 就是 kotlin-stdlib-common-1.7.10.jar 依赖库 ;
在 Android 中 , 使用 Room 数据库访问框架操作数据库 , 运行是报如下错误 ;
领取专属 10元无门槛券
手把手带您无忧上云