- 博客(86)
- 收藏
- 关注
原创 【性能优化】真有那么慢?Java 和 Kotlin 的反射
视频先行下面是视频内容的脚本文案原稿分享。开场大家好!我是扔物线朱凯。Java 和 Kotlin 的反射我们都知道啊,高级特性,它能帮我们突破禁忌,去做一些正常情况下做不到的事,很强。另外它也有劣势,比如性能和兼容性。尤其是性能,对于 Android 这种性能受限的场景,我们对所有「性能差」的方案都是非常谨慎的。有个典型的例子就是 Dagger:Google 很早就有一个基于注解的依赖注入库 Gu...
2024-12-27 17:36:17
875
原创 【泛型 Plus】Kotlin 的加强版类型推断:@BuilderInference
视频先行下面是视频内容的脚本文案原稿分享。小剧场面试官:「既然协程和泛型你都熟悉,flow() 函数是怎么实现类型推断的有了解过吗?」求职者:「嗯……」求职者:「嗯……在Kotlin协程中,flow 是一种构建器,用于创建 Flow 类型的实例。Flow 是 Kotlin 中处理异步数据流的——」面试官:「你在 ChatGPT 吗?」求职者:「没有啊——什么是 ChatGPT?」面试官忽然从视频聊...
2024-11-14 13:59:47
1241
原创 【榨干 Kotlin】把函数当类用,Compose 风骚的作用域机制
视频先行 下面是视频内容的脚本文案原稿分享。前戏 Compose 的某些 API 只能在指定的组件内部才能使用,在它的外部、甚至它的子组件里,都是被禁止的:这种规则很合理,对吧?但是,有一个事实是,Compose 是用函数来写界面的,它的每个组件都是一个函数,而不是类:类和接口要做这种访问性的隔离,是很容易的。而函数并不具备这样的功能——你想限制某些公开的属性或者函数只能在特定的函数内部才能被使用...
2024-03-22 09:01:05
870
原创 两个 this 一起用?Kotlin 的成员扩展函数和 implicit receiver
视频先行下面是视频内容的脚本文案原稿分享。开场大家好,我是扔物线朱凯。今天咱说说 Kotlin 的 implicit receiver。这是一个我们写 Kotlin 经常会用的东西,虽然你可能都没听过这个词,但你一定用过它。Kotlin 的很多高级功能,都利用到了这个概念——比如协程,协程是重度依赖它的,非常重。所以,弄明白它是个什么、怎么用、怎么去发挥它最大的价值,对我们的能力提升是非常有帮助的...
2024-02-27 15:18:29
1291
原创 类声明的右边也能写 by?Kotlin 的接口委托是这么用的
视频先行下面是视频内容的脚本文案原稿分享。文案原稿 大家好,我是扔物线朱凯。Kotlin 的 by 关键字,我们平时用得挺多的,比如用 by lazy 来设置属性的懒加载:vallazyUserbylazy{User()}这种写法叫「属性委托」,也就是把属性的读写操作委托给另一个对象。除了这种写法,by 其实还能写在类声明里,在实现的接口的右边:internalclassI...
2023-12-29 10:00:16
1089
原创 浮点数的坑很深,但不多
视频先行 下面是视频内容的脚本文案原稿分享。问题是真实存在的 大家好,我是扔物线朱凯。刚才那个 0.1 + 0.2 不等于 0.3 的情况是真实存在的,不信你可以亲自试一下。我用的是 Kotlin,你换成 Java、JavaScript、Python、Swift 也都是这样的结果。要解决它也简单,在数值的右边加个 f,把它从双精度改成单精度的就可以了:但这并不是一个通用的解决方案,比如有的时候情况...
2023-12-27 17:49:16
939
原创 这玩意真的有用吗?对,是的!Kotlin 的 Nothing 详解
视频先行下面是视频内容的脚本文案原稿分享。文案原稿Kotlin 的Nothing类,无法创建出任何实例:publicclassNothingprivateconstructor()所以所有Nothing类型的变量或者函数,都找不到可用的值:valnothing:Nothing=???funnothing():Nothing{...return???}...
2023-05-11 16:07:11
642
原创 Unit 为啥还能当函数参数?面向实用的 Kotlin Unit 详解
视频先行下面是视频内容的脚本文案原稿分享。文案原稿很多从 Java 转到 Kotlin 的人都会有一个疑惑:为什么 Kotlin 没有沿用 Java 的void关键字,而要引入这个叫Unit的新东西?//JavapublicvoidsayHello(){System.out.println("Hello!");}//KotlinfunsayHello():Unit...
2023-05-08 11:36:09
729
转载 2022 Kotlin 中文开发者大会,11 月 26-27 连续两天线上见!
时间很快地到了 2022 年年底,随着 Kotlin 1.7.20 的发布,官方一系列多平台库也跟着更新,包括全新的 K2 编译器,目前正积极地开发中并已公布 Alpha 版。Mobile 开发者期待已久的 Kotlin Multiplatform Mobile 也推出 Beta 版。支持开发多平台 UI 的 Compose Multiplatform 也发布了 1.2。更让人兴奋的是,停办多时的...
2022-11-15 08:36:06
290
转载 【扔物线】关于学习 Compose,我的经验总结和建议
大家好,我是扔物线朱凯。最近郑州疫情,我们全员居家办公。在家闷头做课程的时候,我被 Slack 上的同事要求写个介绍课程的宣传文。我觉得如果只介绍课程的话可能会没人看,那就白写了。思索过后,我决定分享一下自己学 Compose 的经验,跟大家讲一下我认为最完美的学习 Compose 的路线。如果能让读者觉得有用,酣畅淋漓地读着,一不留神被下面的广告部分吸引,岂不是两全其美?所以,对于想最省事、最省...
2022-11-08 06:00:45
775
原创 【世纪纠结】Jetpack Compose 和自定义 View,学哪个?
视频先行 下面是视频内容的脚本整理稿。如果你看了视频,那下面的文稿就不用看了。正文 「学 Compose 还是学自定义 View?」这个问题从去年初我发第一个 Compose 主题的视频到现在,一直有人问我。这个问题的背后表达了一种担忧:会不会等我学完自定义 View,它却过时了?大家好,我是扔物线朱凯。最近情况比较特殊,我被封在小区里了。虽然办公室就在马路对面,但是咫尺天涯,我还是拿不到我的摄...
2022-11-01 06:00:03
842
原创 【面试黑洞】Android 的键值对存储有没有最优解?
视频先行下面是视频内容的脚本整理稿。如果你看了视频,那下面的文稿就不用看了。正文这是我在网上找到的一份 Android 键值对存储方案的性能测试对比(数越小越好):可以看出,DataStore 的性能比 MMKV 差了一大截。MMKV 是腾讯在 2018 年推出的,而 DataStore 是 Android 官方在 2020 年推出的,并且它的正式版在 2021 年 8 ...
2022-06-23 06:00:34
530
转载 属性动画为什么不能移植到 Jetpack Compose?
视频先行 下面是视频内容的脚本整理稿。如果你看了视频,那下面的文稿就不用看了,直接翻到底部评论区吧。文字版 属性动画怎么写?简单,先拿到 View 的对象,再创建一个针对它的属性的 ObjectAnimator,然后调用 animator 的 start() 函数,就可以播放动画了:我们还可以用 reverse() 函数来反向播放动画:很简单,很方便。而 Compose ...
2022-04-15 18:30:33
2067
转载 我又用Jetpack Compose做了个示例App,是怎样的体验?【带源码】
视频先行 内容介绍 最近用 Jetpack Compose 写了个示例 App,大概长这样:Compose 写界面的元素,大部分在这个 App 里都用到了。上面的视频内容就是对这个示例 A...
2022-03-09 06:00:00
69
原创 为什么要成为 GDE(谷歌认证开发专家)?我发现了盲点
视频先行 下面是视频内容的脚本整理稿。如果你看了视频,那下面的文稿就不用看了,直接翻到底部评论区吧。文字版 大家好,我是扔物线朱凯。在我每期的视频开始以后,右下角的个人介绍里都有两个 GD...
2021-09-22 06:01:39
399
原创 LiveData:还没普及就让我去世?我去你的 Kotlin 协程
视频先行下面是视频内容的脚本整理稿。如果你看了视频,那下面的文稿就不用看了,直接翻到底部评论区吧。文字版在今年(2021 年)的 Google I/O 大会中的 Jetpack Q&...
2021-08-10 05:59:38
441
原创 View 嵌套太深会卡?来用 Jetpack Compose,随便套——Intrinsic Measurement
视频先行 下面是视频内容的脚本整理稿。如果你看了视频,那下面的文稿就不用看了,直接翻到底部就行。开场 做 Android 开发的都知道一个规矩:布局文件的界面层级要尽量地少,越少越好,因为...
2021-05-06 07:55:00
1195
原创 Compose 挑战赛第三周设计稿光速解读
Compose 这次搞得有点翻车,设计稿发到了 GitHub,但是没有按照前天文章里承诺的,把链接同步到文章去。大家都在等的,时候,即刻大佬【文钦233】把链接放出来了,也不知道他怎么扒拉...
2021-03-13 10:19:30
489
1
原创 Compose 这次要送 Pixel 5 了!
Android 官方举办的 Compose 竞赛的第三周赛题已经更新了,这次的奖品终于来了大升级:一部 Pixel 5 手机。具体规则先贴个官方截图:然后翻译解释一下:官方将会给出一套设计...
2021-03-11 11:17:04
389
原创 声明式 UI?Android 官方怒推的 Jetpack Compose 到底是什么
视频先行下面是视频内容的脚本整理稿。如果你看了视频,那下面的文稿就不用看了,直接翻到底部就行。开始 声明式 UI;更简单的自定义;实时的、带交互的预览功能;还有更强的性能和功能。这就是 A...
2021-03-03 08:42:45
2197
8
原创 Jetpack Compose:官方终于开始搞事情了
有一个大秘密要告诉大家:Android 团队将在 2021 年 2 月发布 Jetpack Compose 的 beta 版!——什么,beta 版在前几天已经发布了?而且现在已经是 3 ...
2021-03-01 08:40:00
1027
2
原创 谷歌开发者大会扔物线演讲原稿整理:Jetpack Compose
大家好,我是扔物线朱凯。前两天,我在 GDG DevFest 2020 的 Android Day 做了一次面向全国 Android 工程师的技术分享直播,主题是 Android 最新的...
2020-11-19 09:10:00
5342
转载 今晚 8:30,谷歌直播间,Jetpack Compose,扔物线!
大家好,我是扔物线朱凯。Google 一年一度的开发者大会又开始了,今晚 8:30 我会在 Google 官方直播间进行 Android 最新的 UI 框架 Jetpack Compos...
2020-11-17 08:16:44
3885
转载 2020 Google 开发者大会主题演讲:代码不止 赋能创新
2020 谷歌开发者大会正式开幕啦!今年是大会的第五个年头,首次全线上呈现,14+ 产品线,50+ 精彩技术演讲,70+ 技术专家,连续六天,精彩不止!想知道大会首日都有哪些精彩内容?1...
2020-11-16 19:10:03
386
原创 Android 面试黑洞——当我按下 Home 键再切回来,会发生什么?
很多 Android 工程师在投简历找工作之前,会去补习一下 Activity 的启动模式(launchMode),因为面试的时候经常会考。但真正把它搞懂的人是很少的——包括不少拿它做面...
2020-10-15 08:36:37
687
转载 Android 11 正式发布 | 开发者们的舞台已就绪
作者 / Stephanie Cuthbertson,产品管理总监Android 11 来了!今天我们将源码推送至 Android 开源项目(AOSP),正式为大家带来最新版本的 An...
2020-09-09 17:10:01
220
原创 Kotlin 源码里成吨的 noinline 和 crossinline 是干嘛的?看完这个视频你转头也写了一吨...
视频先行扫码看视频吧!然后下面的就不用看了或者……你喜欢看文字?Kotlin 里有个特别好用的关键字叫 inline,它可以帮你对做了标记的函数进行内联优化。所谓内联就是,调用的函数在编...
2020-09-04 08:26:00
355
原创 从月薪 2000 到月入 20 万,我这一路上的可复制与不可复制
视频先行不想扫码看视频,不想看视频的,可以往下看文字版。文字版呼。又被质疑了。前几天发了个文章给我的 Android 高级进阶课程打广告,里面提到我从毕业到现在,月收入经历了两次的 10...
2020-08-20 11:57:37
3518
10
转载 Android 11 最终 Beta 版发布,正式版即将到来!
作者 / Dave Burke, VP of Engineering随着 8 月的到来,Android 11 的正式版已经呼之欲出!我们正在为新平台做最后的微调。今年预览周期的最后一次更...
2020-08-11 15:49:56
229
转载 扔物线承诺的 Jetpack Hilt 公开课已安排,快来领取!
做 Android 的人都知道 ButterKnife,很多人也因为 ButterKnife 而知道了 Dagger。然而同为注解 + 自动赋值的库,Dagger 却远不像 Butter...
2020-08-10 08:30:00
1509
1
原创 从 Dagger 到 Hilt,谷歌为何执着于让我们用依赖注入?
视频先行开始说到依赖注入,做 Android 的人都会想到一个库:Dagger;说到 Dagger,大家的反应普遍是一套三连:牛逼、高端、我才不用。又牛逼又高端,为什么不用?因为太难了。...
2020-07-29 08:22:52
744
原创 我被 Kotlin 和 Android 两个官方约谈了
跟 Kotlin 和 Android 官方聊了聊 大家好,我是扔物线朱凯。废话不多说,这次我邀请到了 JetBrains 的范圣佑和 Google Android 团队的 Fred 来到...
2020-06-17 08:00:00
769
1
原创 「内存抖动」?别再吓唬面试者们了行吗
视频版本本文有对应的视频,扫码就能看:从「内存抖动」说起面试官:你做过性能优化是吧。面试者:嗯是的,在卡顿和耗电问题上做过挺多事。面试官:内存抖动的解决方案你有了解过吗?面试者:内存什么...
2020-05-28 09:04:00
422
2
原创 会写「18.dp」只是个入门——Kotlin 的扩展函数和属性(Extension Functions/Properties)...
视频先行 开始 Kotlin 有个特别好用的功能叫扩展,你可以给已有的类去额外添加函数和属性,而且既不需要改源码也不需要写子类。这就是今天这个视频的主题。另外很多人虽然会用扩展,但只会最...
2020-05-15 15:17:24
465
转载 是时候迁移至 AndroidX 了!
本篇非原创,只是帮 Google转发一下,内容很值得一看。(我和视频中的小哥还约了个下周的视频聊天 2333)如果喜欢,请扫码关注原作者「谷歌开发者」(但不要取关我)长久以来,我们致力...
2020-04-26 10:48:12
251
原创 【码上开学】Kotlin 的高阶函数、匿名函数和 Lambda 表达式
听说……Kotlin 可以用 Lambda?不错不错,Java 8 也有 Lambda,挺好用的。听说……Kotlin 的 Lambda 还能当函数参数?啊挺好挺好,我也来写一个!哎,...
2020-04-07 11:52:00
412
原创 【扔物线】消失这半年,我去哪了
大家好,我是扔物线朱凯。我回来了!时光如梭啊,回想上个视频已经是 5 个月前了。从今天开始,我又要开始活跃起来了。说明白点就是:技术视频系列要恢复更新了...
2020-03-23 08:52:00
1198
原创 【扔物线首次二人转】码上开学背后的故事
最近又开始忙了,生产又有点减缓了。这段时间在学习 Kotlin 的 Android 工程师应该很多都在看「码上开学」。这是一个视频 + 文章的项目,其中视频部分是我做的,...
2019-10-27 21:13:32
723
原创 【码上开学】Kotlin 协程的挂起【文章】
大家好,我是扔物线朱凯。今天又是一次对之前的视频的文章部分的补完。之前发的协程第二期视频 当时并没有配合视频同步发布文章。今天就是告诉大家,这篇文章终于写完发布啦!关于文...
2019-10-16 18:06:29
415
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人