阿里云服务器免费领卷啦。

捡代码论坛-最全的游戏源码下载技术网站!

 找回密码
 立 即 注 册

QQ登录

只需一步,快速开始

搜索
关于源码区的附件失效或欺骗帖, 处理办法
查看: 3604|回复: 2

Kotlin 从入门到『放弃』 系列视频教程

[复制链接]

4208

主题

210

回帖

12万

积分

管理员

管理员

Rank: 9Rank: 9Rank: 9

积分
126171
QQ
发表于 2017-5-18 18:24:03 | 显示全部楼层 |阅读模式
随着Kotlin越来越成熟稳定,我已经开始在生产环境中使用它。考虑到目前国内资料较少,近期我开始筹划录制一套视频教程,并以此抛砖引玉,让 Kotlin 在国内火起来。
个人水平有限,不足之处欢迎大家发邮件到 bennyhuo@println.net,谢谢大家!
发布计划
关注微信公众号:Kotlin, 获取最新视频更新动态
从10月初开始,每期视频控制在10-20分钟,更新间隔视情况而定,尽量在每周能至少更新一期。
  • 10月14日:思考了一下,我决定将视频的内容调整为几个案例,而不是传统的教条式的讲述,因为。。我录得时候发现我自己都困了哈哈
  • 11月6日:大家有什么关心的技术点也可以在issue里面发出来一起讨论哈,我也会根据大家的需求来安排后面的内容。
  • 11月28日:有朋友问我,为什么要『放弃』。。。额,这是一个用来自嘲的梗嘛,大家不信去搜搜 『Java 从入门到放弃』 :)
  • 12月2日:有朋友说内容太少啦,不够看!我首先要表示一下感谢,谢谢诸位的关注和支持~这套视频是我在工作之余抽时间录制的,一个视频虽然只有10分钟,不过内容点却不太好想,通常一个视频我会尝试准备几个点,最终选择一个合适的录制,所以更新速度不会太快,不过,我会尽量保证在每周一更新一期,说实话我也挺着急,哈哈~还有一个事情就是,编程语言这个东西本身并不难,难的是它身后的一大家子(生态),Kotlin 的身后就是积累多年的 Java 生态,如果大家对视频有疑问,尽管发邮件或者直接开 issue 跟我讨论,我也可以考虑录一些『番外篇』来解答这些问题,谢谢大家的支持!
目录第一部分 语言基础01 Kotlin 简介
  简要介绍下什么是 Kotlin,新语言太多了,大家为什么要接触 Kotlin 呢?因为它除了长得与 Java 不太像以外,其他的都差不多~
02 Hello World
  千里之行,始于Hello World!
03 使用Gradle编写程序简介(可选)
  这年头,写 Java 系的代码,不知道 Gradle 怎么行呢?
04 集合遍历 map
  放下 i++,你不知道 map 已经占领世界了么?以前我以为 map-reduce 很牛逼,后来才知道就是数据迭代处理嘛。
05 集合扁平化 flatMap
  这个可以说是 map 的一个加强版,返回的仍然是开一个可迭代的集合,用哪个您自己看需求~
06 枚举类型与When表达式
  Kotlin 丢掉了 switch,却引进了 when,这二者看上去极其相似,不过后者却要强大得多。至于枚举嘛,还是 Java 枚举的老样子。
07 在 RxJava 中使用 Lambda
  这一期通过一个统计文章中字符数的小程序进一步给大家呈现 Lambda 的威力,也向大家展示一下如何在 Kotlin 当中优雅地使用 RxJava。我不做教科书,所以如果大家对概念感兴趣,可以直接阅读官方 API
  RxJava 是一个非常流行的 Java Reactive 框架,函数式的数据操作使得 Lambda 表达式可以充分体现自己的优势,比起 Java 的冗长,你会看到一段非常漂亮简洁的代码。建议大家先阅读 RxJava 的官方文章以对其有一些基本的认识。
08 使用 Retrofit 发送 GET 请求
  Retrofit 是 Square 的 Jake 大神开源的RESTful 网络请求框架,用它发送请求的感觉会让你感觉爽爆的。我这里还有几篇文章,以及一个我 hack 过的分支 HackRetrofit,有兴趣的童鞋可以一起探讨下~
09 尾递归优化
  尾递归,顾名思义,就是递归中调用自身的部分在函数体的最后一句。我们知道,递归调用对于栈大小的考验是非常大的,也经常会因为这个导致 StackOverflow,所以尾递归优化也是大家比较关注的一个话题。Kotlin 支持语法层面的尾递归优化,这在其他语言里面是不多见的。
10 单例
  单例大家一定都不陌生,只要你动手写一个程序,就免不了要设计出一些全局存在且唯一的对象,他们就适合采用单例模式编写。在 Java 里面,单例模式的写法常见的有好几种,虽然简单却也是涉及了一些有意思的话题,那么在 Kotlin 当中我们要怎么设计单例程序呢?
11 Sealed Class
  枚举类型可以很好的限制一个类型的实例个数,比如 State 枚举有两种类型 IDLE 和 BUSY 两种状态,用枚举来描述再合适不过。不过,如果你想要设计子类个数有限的数据结构,比如指令,指令的类型通常是确定的,不过对于某些有参数的指令每一次都使用同一个实例反而不合适,这时候就需要 Sealed Class。   
12 Json数据引发的血案
  Json 数据可真是大红大紫一番,它实在是太容易理解了,随着 Js 的火爆它就更加『肆无忌惮』起来。我们在 Java/Kotlin 当中解析它的时候经常会用到 Gson 这个库,用它来解析数据究竟会遇到哪些问题?本期主要围绕 Json 解析的几个小例子,给大家展示一下 Java/Kotlin 的伪泛型设计的问题,以及不完整的数据的解析对语言本身特性的冲击。
13 kapt 以及它的小伙伴们
  首先感谢 @CodingPapi,这一期的内容主要来自于他的建议。
  Kotiln 对于注解的支持情况在今年(2016)取得了较大的成果,现在除了对 @Inherited 这个注解的支持还不够之外,试用了一下没有发现太大的问题。关于 kapt,官方的文章罗列下来,其中
  本期主要通过一个简单的 Dagger2 实例给大家展示了注解在 Kotlin 当中的使用,看上去其实与在 Java 中使用区别不大,生成的源码也暂时是 Java 代码,不过这都不重要了,反正是要编译成 class 文件的。
  后面我们又简单分析了一下 Dagger2 以及 ButterKnife 的源码(有兴趣的话也可以看下我直接对后者进行分析和 Hack 的一篇文章:深入浅出 ButterKnife,听说你还在 findViewById?),其实自己实现一个注解处理器是非常容易的,类似的框架还有androidannotations,它的源码大家可以自行阅读。

通过这个例子,我们其实发现 kapt 还是有一些不完善的地方,主要是:
  • 不支持 @Inherited
  • 生成的源码需要手动添加到 SourceSets 中
  • 编译时有时候需要手动操作一下 gradle 的 build 才能生成源码(这一点大家注意下就行了,我在视频中并没有提到)
不过总体来讲,kapt 的现状还是不错的,相信不久的将来这些问题都将不是问题。

第二部分 使用 Kotlin 进行 Android 开发打赏
录制这样一套视频确实是需要花费时间和心血的,如果您觉得它对您有帮助,可以通过微信和支付宝打赏,我将努力将视频做到最好!谢谢!


捡代码论坛-最全的游戏源码下载技术网站! - 论坛版权郑重声明:
1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
2、本站所有主题由该帖子作者发表,该帖子作者与捡代码论坛-最全的游戏源码下载技术网站!享有帖子相关版权
3、捡代码论坛版权,详细了解请点击。
4、本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。
5、若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。 我们不承担任何技术及版权问题,且不对任何资源负法律责任。
6、如无法链接失效或侵犯版权,请给我们来信:jiandaima@foxmail.com

回复

使用道具 举报

0

主题

217

回帖

1371

积分

金牌会员

Rank: 6Rank: 6

积分
1371
发表于 2017-6-27 14:09:04 | 显示全部楼层
登录可见评论
回复

使用道具 举报

0

主题

54

回帖

1321

积分

金牌会员

Rank: 6Rank: 6

积分
1321
发表于 2017-12-15 11:05:17 | 显示全部楼层
登录可见评论
回复

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | 立 即 注 册

本版积分规则

技术支持
在线咨询
QQ咨询
3351529868

QQ|手机版|小黑屋|捡代码论坛-专业源码分享下载 ( 陕ICP备15015195号-1|网站地图

GMT+8, 2024-4-25 09:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表