学习 Kotlin:编码与构建
学习 Kotlin:编码与构建 — 在手机上编写并运行真正的 Kotlin,使用云端编译器
学习 Kotlin:编码与构建 是一款免费的 iOS 和 Android 应用,适合初学者、Java 开发者以及希望通过亲自编写 Kotlin 来学习的面试求职者。每节课程最后都会提供代码,供你在真正的编译器(JVM 上的 kotlinc)中编辑和运行,并显示指向具体行号的错误。51 门课程和 203 节课程,从第一个 val 一直讲到协程、Flow、泛型和 DSL,同时还配有 AI Mentor 和每日练习 Lab。
- 价格
- 免费,可升级至 Pro
- 平台
- iOS 和 Android
- 语言
- 22
- 年龄分级
- 4+
- 需要
- iOS 15.1 或更高版本


先读一点,然后亲自编译。
这门语言本身就承担了大量教学工作:编译器会拒绝可能为空的值,警告未使用的值,并在错误信息中标明具体行号。应用会将你的代码发送到 JVM 上真正的 kotlinc,并返回带行号的错误和警告,因此阅读编译器的提示也成为学习的一部分。
这是什么
学习 Kotlin:编码与构建 是一款免费的 iOS 和 Android 应用,通过让你亲自编写并运行 Kotlin 来教授这门语言。代码会在云端的真正 Kotlin 编译器(JVM 上的 kotlinc)中运行,错误信息会带有行号。应用涵盖 51 门课程和 203 节简短课程,内容从初级(A1)到高级(C1),从变量和 when 表达式一直讲到协程、Flow、Ktor 和 Multiplatform,并配有 AI Mentor、每日 Lab、15 个引导式项目、60 个任务和面试题。
应用内
界面展示





课程
Kotlin 课程涵盖的内容
这些是本网站 Learn Kotlin 分类下的真实课程,旨在展示从第一个程序到协程和服务器端代码的学习路径。
欢迎学习 Kotlin
先初步了解这门语言,接着通过 Kotlin Playground:交互式入门来运行你的第一个程序。
深入理解空安全
了解类型系统如何区分可空类型和非空类型,以及如何在日常开发中使用 Safe Calls 和 Let Chains。
数据类与解构
用于存储数据的类,借助 copy、equals 和 componentN Functions,了解编译器会为你生成哪些内容。
作用域函数
学习 let、run、apply、also 和 with,以及每个函数在什么场景下最适合使用;然后通过 apply 和 also 掌握 Builder Pattern。
使用 map/filter/fold 构建函数式处理流水线
使用 lambdas 转换集合,然后通过 Sequences 对较长的处理流水线进行惰性求值。
Coroutine 取消与超时
学习如何安全地取消任务并添加超时;同时通过 Flow Transformation & Error Handling,以及 StateFlow & SharedFlow Patterns,处理值流。
Ktor:构建 HTTP 服务器
在服务器端使用这门语言,并结合 Exposed:Type-Safe SQL and Serialization 处理数据。
Multiplatform Mobile 基础
跨平台共享代码,继续学习 KMP:构建共享业务逻辑层。
工作原理
课程如何进行
每节课程最后都会提供可修改和运行的代码,让你在阅读语言内容的几分钟内,同时完成练习。
阅读一节简短课程
从免费的第一门课程开始,或直接跳到你需要的主题。每节课程用几分钟讲解一个概念,例如字符串模板、when 表达式或安全调用。
在真正的编译器上编辑并运行代码
在内置编辑器中编写代码,然后在云端的 JVM 编译器上运行。错误和警告会带有行号,让你学会阅读它们;你还可以保存代码并记录笔记。
在 Lab 中练习,然后检验自己
每日 Lab 练习帮助你保持连续学习记录,测验会解释每一道题的答案,而任务、引导式项目和 AI Mentor 则帮助你解决那些还没弄明白的内容。
包含内容
应用包含的内容
51
课程,A1 至 C1
203 节简短课程:变量和字符串模板、when 表达式、范围和集合、Null 安全、data classes、函数式流水线、序列、协程、Flow、泛型、委托、注解和反射。
kotlinc
真正的 JVM 编译器
代码会在云端 JVM 上的编译器中运行,而不是在模拟器中运行,并返回指向具体行号的错误和警告。
Lab
每日编程练习
每日 Kata 配有隐藏测试;NPE Hunter 用于处理真正会崩溃的程序;Coroutine Lab 使用虚拟时钟;此外还有 Compose 风格的布局预览、Ship It 和 Kotlin Doctor,以及复习卡片和错误日志。
15
引导式项目
每一步都会进行编译,并根据预期输出进行检查;Ship It 还会在七个步骤中将一个程序逐步扩展为命令行工具。
60
编程任务
通过简短任务练习每门课程所教授的内容,此外还有 World Coding Challenge,每天进行三轮全球挑战,并提供实时排行榜。
AI
AI Mentor 和面试准备
向 AI Mentor 询问错误或概念,几秒钟内即可获得清晰的解答。应用中还提供面试题和速查表,帮助你准备求职。
背景
Kotlin 有哪些用途?如果你已经会 Java,还有必要学习它吗?
Kotlin 是一种静态类型语言,会编译为 JVM 字节码,也是 Android 开发的首选语言之一。它还可用于服务器开发,配合 Ktor 等框架使用,并可通过 Multiplatform、Native 和 Wasm 编译到其他目标平台。对于 Java 开发者来说,它的优势在于更少的样板代码,以及会认真处理 null 的类型系统;对于初学者来说,它是一门现代化的入门语言,背后拥有同样的就业市场。由于运行在 Java Virtual Machine 上,它还可以使用现有的 Java 库。
Null 安全人们转向 Kotlin 的原因
能够容纳 null 的类型与不能容纳 null 的类型写法不同,因此编译器会在程序运行前标记潜在的 NullPointerException。安全调用、elvis 运算符、let 链和智能类型转换,都是日常处理它时使用的工具。
简洁的类更少的样板代码
一行代码声明 data class,就能生成 equals、hashCode、toString 和 copy;而 companion objects、enum classes 和 sealed interfaces,则涵盖了在旧版 Java 中需要数页代码才能实现的模式。这是 Java 开发者最先注意到的特性。
协程和 Flow无需回调的并发
协程可以让需要等待的代码(例如网络请求)以直线式方式编写,并使用 launch、async 和 await。Flow、StateFlow 和 SharedFlow 将这一理念扩展到值流,而取消和超时则是大多数初学者需要练习的部分。
Compose 和 Multiplatform语言的发展方向
Jetpack Compose 将 Android 界面描述为函数,而 Multiplatform 则可以在 Android 和 iOS 之间共享业务逻辑。二者都要求你先熟练掌握 lambda、作用域函数和泛型。
是否适合
适合哪些人——不适合哪些人
如果你符合以下情况,就很适合
- 你是将这门语言作为第一门编程语言来学习的初学者
- 你是一名 Java 开发者,正在转向 Kotlin,希望循序渐进地学习空安全、数据类和协程
- 你正在准备开发者面试,希望获得面试题和每日练习
- 你想阅读带行号的真实编译器错误,而不只是观看讲解
- 你想在手机上利用短时间学习,并通过连续学习记录、测验和记忆卡片坚持下去
如果你符合以下情况,这不是适合你的工具
- 你希望在没有网络连接时运行代码:代码会在云端的编译器上运行
- 你想在 IDE 中构建完整的 Android 应用;这款应用教授的是 Kotlin 语言及其惯用写法,而不是取代 Android Studio
- 你需要所有内容都免费:第一门课程、第一个引导项目、两个任务、每日 Lab 以及每天一个 AI Mentor 问题均可免费使用,Pro 则会解锁其余内容
问题
常见问题
学习 Kotlin:编码与构建 是什么?
学习 Kotlin:编码与构建 是一款免费的 iOS 和 Android 应用,用于学习 Kotlin。课程以代码练习结束,你可以在 JVM 上的真实编译器中编辑并运行代码;51 门课程覆盖从入门到高级的内容。这是一款独立的学习工具,与 JetBrains 没有任何关联,也未获得 JetBrains 的认可;Kotlin 是 JetBrains s.r.o. 的商标。
没有编程经验也能学习 Kotlin 吗?
可以。课程从你的第一个 val 开始,逐步学习变量、字符串模板、when 表达式、范围、循环和集合。每节课都很简短,AI Mentor 可以用通俗易懂的语言解释概念或错误。具备 Java 经验有助于学习后面的面向对象主题,但并非必需。
Java 开发者应该学习 Kotlin 吗?
如果你希望在相同的 JVM 和相同的库上减少样板代码,并使用由编译器检查的空安全,那么学习 Kotlin 很值得。这款应用适合 Java 开发者,因为它会循序渐进地讲解数据类、空安全、作用域函数、协程和泛型,并且每个主题都会在真实编译器上练习。
这款应用真的会运行 Kotlin 吗?需要联网吗?
应用会在云端的真实 Kotlin 编译器(JVM 上的 kotlinc)中运行你的代码,并返回带行号的编译器错误和警告。由于编译器位于远程服务器,运行代码需要网络连接。
Lab 是什么?
Lab 是每日练习专区。其中包括带隐藏测试的每日 Kata、运行时确实会因 NullPointerException 崩溃的程序组成的 NPE Hunter、在虚拟时钟上模拟 launch、async、await 和 cancel 场景的 Coroutine Lab、Compose 风格的布局预览、Ship It,以及用于评估代码的 Kotlin Doctor。记忆卡片和错误日志会展示哪些内容总让你出错。
它涵盖协程、Flow 和 Compose 吗?
协程和 Flow 各有专门课程,涵盖取消、超时、SupervisorScope、channels、Flow、StateFlow 和 SharedFlow。Compose 以 Lab 中的布局预览形式出现,而不是作为完整课程。Multiplatform、Ktor 和 Exposed 也各自拥有专门课程。
它适合准备面试吗?
应用包含用于准备开发者岗位的面试题、方便快速查找语法的速查表、会解释每个答案的测验,以及每日 Lab 练习。错误日志和记忆卡片可以帮助你重新复习答错的主题。
哪些内容免费?Pro 增加了什么?有证书吗?
可以免费开始使用:第一门课程、第一个引导项目、两个任务、每日 Lab 练习,以及每天一个 AI Mentor 问题。免费版本会显示广告。Pro 可解锁所有课程、项目和任务,并提供不限次数的 AI Mentor 使用,移除广告,还允许你参加最终考试以获得结课证书。该证书会记录你的学习成果,但不属于经过认证的资格证书。
为什么应用内部显示 Kotlin Academy?
Kotlin Academy 是应用内学习路径卡片上显示的名称,而应用商店页面的标题是 学习 Kotlin:编码与构建。它们是同一款应用。App Store 还曾以略有不同的标题列出它:Learn Kotlin - JVM & Compose。
支持哪些平台和语言?
应用通过 App Store 在 iOS 上运行,通过 Google Play 在 Android 上运行,界面支持 22 种语言。应用评级为 4+,Apple 设备需要 iOS 15.1 或更高版本。
更多 CoddyKit 产品
可在 iOS 和 Android 上使用。