当前播放: 50 | Android MVP 的 Kotlin 代码&结课测试
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
课程目录
第一章:快速上手篇 (12讲)
01 | 讲给你的 Kotlin 快速上手课程
免费
02 | Kotlin 最基础语法
免费
03 | Kotlin 与 Java 完全兼容,就可以随便调用了吗?
免费
04 | 新手使用 Kotlin 常碰到的问题
05 | 函数也能嵌套?这个特性要注意
06 | 用扩展函数简化代码调用
07 | DSL的基础 : Lambda闭包的语法
08 | 函数的参数是函数 : 高阶函数的注意事项
09 | 创建对象的关键 : Kotlin的构造函数
10 | 伴生对象 : Kotlin 特有的单例对象
11 | by关键字的使用
12 | Kotlin 独有的特殊类
第二章 :深入学习篇 (13讲)
13 | 解构 : 特殊的数据拆箱方式
14 | Kotlin 的循环语法
15 | Kotlin海量的集合操作符
16 | 作用域函数 : 你会爱上的自带函数
17 | 运算符与中缀 : 定义你的专有运算符
18 | 神奇的符号 : Kotlin 的反引号
19 | DSL 是什么,原来早就用过了
20 | 构建 DSL 的常用方式
21 | 定义自己的 DSL
22 | 理解 Kotlin 中的常量与只读
23 | Kotlin 的空安全是如何实现的
24 | Kotlin 内联 : noinline与crossinline
25 | Kotlin 的真泛型与实现方式
第三章 :扩展库篇 (14讲)
26 | 协程 : 提升性能的利器
27 | 在Kotlin 中使用协程
28 | 协程的启动参数
29 | 协程的语法糖
30 | suspend : 知其然知其所以然
31 | 协程的内部实现原理
32 | 动手设计Kotlin 协程的yield
33 | 协程通信:Channel的使用
34 | 小结 : 动手设计Channel版的EventBus
35 | NIO 与 BIO
36 | Kotlinx-io 的对象缓存池
37 | Google 推出 KTX 的目的
38 | KTX 的实现
39 | KTX 小结
第四章 :团队协作篇 (3讲)
40 | 在团队中使用 Kotlin
41 | 用 Kotlin 改写现有工程
42 | 滥用特性的后果:没人懂的代码
第五章 :Kotlin 跨平台篇 (8讲)
43 | Kotlin 服务端开发框架
44 | Http Servlet 创建 Kotlin 版 Web 应用
45 | Spring Boot 创建 RESTful Web 服务
46 | Kotlin 开发 Web 前端
47 | Kotlin Native 开发
48 | 创建 Kotlin Native 基础库
49 | 如何用 Kotlin 实现 Android MVP
50 | Android MVP 的 Kotlin 代码&结课测试
50 | Android MVP 的 Kotlin 代码&结课测试

50 | Android MVP 的 Kotlin 代码&结课测试

张涛
“开源实验室”博主,资深Android开发工程师
全集4239
新人首单 ¥29.9 原价 ¥129
本节摘要

你好,我是张涛。

到这里,《快速上手 Kotlin 开发》这门课程就全部结束了。我给你准备了一个结课小测试,来帮助你检验自己的学习效果。

这套测试题共有 20 道题目,13 道单选题,7 道多选题,满分 100 分,系统自动评分。

还等什么,点击下面按钮开始测试吧!

展开
登录 后留言

精选留言(2)

  • 遥远的救世主
    这个我第一个从头认真学完(除了协程那一部分)的课程,感谢张哥的分享,让我们也有了这么多的收获,限于篇幅视频中有些东西无法提及,不过技术人不就是要自学能力要强一点吗,要是后续能讲一个完整的项目,用Kotlin+Rxjava2+Retrofit+RxBus....开发出一个高质量的就更好了。对于纯Kotlin项目,如何取舍一些第三方库,路漫漫其修远兮,吾将上下而求索!完结,撒花。

    作者回复: 额,主要是这堂课的定位是面向初级使用者的,毕竟一年多以前录的,那时候还很多人不会呢

    2019-05-30
    1
  • Geek__e1cb198fc23a
    张哥,问下几个问题,如果可以通过构造将对象传给 BaseActivity 。

    `open class BaseActivity<T>(val clazz: Class<T>) : AppCompatActivity()`
    那么这里为什么不直接改成传一个 Presenter 对象过去呢?
    `open class BaseActivity<P>(val p: P) : AppCompatActivity()`



    ————————
    ```
        inline fun <reified T : IPresenter> getPresenter(): T {
            return T::class.java.newInstance()
        }
    ```
    这样个函数是会在每次调用`getPresenter()`的时候都会产生一个新的对象的吧?这样是不是不太合适。

    作者回复: 嗯,对的。👍

    2019-03-19
    1
收起评论
看过的人还看
Android开发高手课

张绍文  前微信高级工程师,Tinker负责人

62讲 | 13812 人已学习

新人首单 ¥19.9 原价 ¥99
Java核心技术面试精讲

杨晓峰  前Oracle首席工程师

44讲 | 46866 人已学习

新人首单 ¥19.9 原价 ¥99
趣谈网络协议

刘超  网易研究院云计算技术部首席架构师

51讲 | 45311 人已学习

新人首单 ¥19.9 原价 ¥99
Flutter核心技术与实战

陈航  美团点评高级技术专家

48讲 | 7819 人已学习

新人首单 ¥19.9 原价 ¥99