Android Kotlin 学习

  • Kotlin 训练营课程
    https://codelabs.developers.google.com/kotlin-bootcamp/

这是一门可以学习 Kotlin 基础知识的课程。Android 应用也可以用 Java 开发,但谷歌在 Android 开发中宣布 Kotlin First并从 Kotlin 创建了一个易于使用的 Android API,所以如果你想从现在开始学习 Android,就向 Kotlin 学习吧。最好去。


  • Android Kotlin 基础课程
    https://codelabs.developers.google.com/android-kotlin-fundamentals/

了解在 Kotlin 中创建 Android 应用程序的基础知识。


各课程内容介绍

由于内容是用英文写的,一开始可能很难上手。
我会用日语解释每门课程的内容,所以在看到内容之后可能会更容易一些。


Kotlin 训练营课程

我将解释 Kotlin Bootcamp 课程的每个项目。
https://codelabs.developers.google.com/kotlin-bootcamp/


欢迎来到课程

https://codelabs.developers.google.com/codelabs/kotlin-bootcamp-welcome/#0
您需要有面向对象语言的编程经验或 IDE 开发经验才能参加课程。课程内容是书面。


开始(3 个任务) 9%

面向程序员的 Kotlin 训练营 1:入门 | Android 开发者
https://codelabs.developers.google.com

内容如下,大家可以了解一下Kotlin。

  • Kotlin 相对于 Java 的优势
    • 健壮(例如不太可能导致空异常的机制)
    • 完整易读的代码(Java 一行代码可以写20行左右)
    • 与Java兼容(可以使用Java库,可以将Kotlin放在Java项目中)
  • 如何安装 JDK(运行 Kotlin 程序需要安装 Java)
  • IntelliJ IDEA的安装(Kotlin好写的IDE安装)
  • 尝试使用“Kotlin REPL”显示 Hello World
    • 使用 REPL = Read-Eval-Print Loop,它读取用 Kotlin 编写的代码,执行它并输出结果。它就像一个贝壳。
  • Kotlin 的基本语法

Kotlin 的 Hello World

fun printHello() { println ("Hello World") } printHello() 

Kotlin 基础知识(4 个任务)21%

面向程序员的 Kotlin 训练营 2:Kotlin 基础知识 | Android 开发人员 ...
https://codelabs.developers.google.com

  • 学习 Koltin 的基本语法。让我们尝试编写的程序,同时在 Kotlin REPL * 中实际输入它。
    • val, var: 变量声明,可重新赋值
    • Int、Double 及其转换
    • 字符串和字符串模板
    • 如果别的
    • 时间:关于 Kotlin 版本的 switch
    • 可空性以及如何处理它
      • Kotlin 分为 Nullable 类型和 NunNull 类型,所以如果你是用目前还没有分离的编程语言做的,你应该这样做。
    • 列表,数组
    • for 循环

* REPL = Read-Eval-Print Loop,读取Kotlin写的代码,执行,输出结果。它就像一个贝壳。


功能(6 个任务) 40%

Kotlin 程序员训练营 3:函数 | Android 开发者
https://codelabs.developers.google.com

  • 创建一个Kotlin File,定义main函数,输出Hello World。
  • 如何在主函数中传递参数
  • 在 Kotlin 中,if 语句等是有值的,所以可以这样写
val isHot = if (temperature > 50) true else false 
  • 如何制作一个函数
  • 使用函数的代码示例
  • 默认参数
  • 单表达式函数
fun isTooHot(temperature: Int) { return temperature > 30 } fun isTooHot(temperature: Int) = temperature > 30 
  • 用 filter() 过滤列表的内容
  • Sequence和一个正常的列表。(我觉得这里有点难,不过就算看不懂,正常的Android开发也没有问题(计算复杂度到需要asSequence的东西很难处理),所以我觉得可以跳过.)
  • 拉姆达

面向对象编程(7 个任务) 62%

Kotlin 程序员训练营 4:面向对象编程 | 和...
https://codelabs.developers.google.com

  • 在创建 Aquarium 类的同时,我们将触及 Kotlin 类的各种功能。
  • 数据类:具有有用特性的类
  • 使用关键字singleton: object 可以轻松创建单例(有一个关于接口委托的故事(类A:B by C),但是这个函数很方便,但它不是一个乱七八糟的函数,所以即使你继续不太明白。走吧)
  • 枚举类
  • 密封类:像enum一样可以枚举,可以实例化的类,可以用在错误处理等各种情况下,看来还是看看比较好。

扩展(4 个任务) 75%

Kotlin 程序员训练营 5.1:扩展 | Android 开发者
https://codelabs.developers.google.com

  • 有一个方法,返回一个 Pair
    ,一开始就写了,但是乍一看很难理解,所以我解释一下。

这是一个故事,您可以使用如下所示的 List 方法返回名为 Pair 的类的实例,partition()从而可以将 List 分成两个。

>>> data class Fish(val name : String) >>> val fishList = listOf(Fish("medaka"), Fish("koi"), Fish("maguro")) >>> fun isFreshWater(fish: Fish) = listOf("medaka", "koi").contains(fish.name) >>> val twoLists = fishList.partition { isFreshWater(it) } //  >>> println(twoLists) ([Fish(name=medaka), Fish(name=koi)], [Fish(name=maguro)]) >>> println("freshwater: ${twoLists.first}") freshwater: [Fish(name=medaka), Fish(name=koi)] >>> println("saltwater: ${twoLists.second}") saltwater: [Fish(name=maguro)] 
  • 如何制作Pair:“A”到“B”可以创建“A”和“B”的Pair类的实例
  • 一个可以拆解Pair的故事。对可以分解为 val (a, b) = pair。
  • 如何制作和使用列表。
  • const vs val 的故事:const 是在编译时确定的。这样的
  • 如何编写扩展函数、属性

泛型(3 个任务)84%

Kotlin 程序员训练营 5.2:泛型 | Android 开发者
https://codelabs.developers.google.com

它用于列表类型,例如 List。

  • 如何使用基本的泛型
  • 如何声明 Nullable、NonNull 泛型类型
  • 泛型输入输出
  • 将泛型添加到函数的故事
  • 使用具体类型的故事。(这将在编译时解析泛型的类型,因此您可以访问类名、强制转换和确定)

功能操作(5 个任务) 100%

Kotlin 程序员训练营 6:功能操作 | Android ...
https://codelabs.developers.google.com

关于 Kotlin 已经有了更深入的故事。

  • 如何制作和使用注释
  • 按标签中断(逃避双循环等)
  • 易于使用的拉姆达
  • 尝试自己制作 with () 和 that with ()
  • 运行让等
  • 谈谈使用内联函数减少内存和 CPU 开销
  • SAM 转换 一个故事,您可以编写一个只有一个抽象方法作为 lambda 的类的实现。

Android Kotlin 基础课程

我将解释 Android Kotlin Fundamentals Course 的每个项目。
https://codelabs.developers.google.com/android-kotlin-fundamentals/

Android Kotlin 基础知识:欢迎来到课程

https://codelabs.developers.google.com/codelabs/kotlin-android-training-welcome/index.html?index=..%2F..android-kotlin-fundamentals
每门课程都有讲解。

第 1.0-1.4 课“构建你的第一个应用程序”

  • 解释如何将 Android Studio 与 Kotlin 结合使用。从“Hello World”开始,使用图像文件查看它,并添加一个点击处理程序。
  • 解释您的 Android 项目是如何组织的,如何在 Kotlin 的 Android 应用程序中使用和修改视图,以及如何保持向后兼容性。您还将了解 Android API 级别和 Android Jetpack 库。

01.0:安装 Android Studio

Android Kotlin 基础知识:安装 Android Studio | Android Develo ...
https://codelabs.developers.google.com

01.1:开始

Android Kotlin 基础知识:入门 | Android 开发者
https://codelabs.developers.google.com

01.2:基本应用剖析

Android Kotlin Fundamentals 01.2:基本 Android 项目剖析 | ...
https://codelabs.developers.google.com

01.3:图片资源和兼容性

Android Kotlin Fundamentals 01.3:图像资源和兼容性 | ...
https://codelabs.developers.google.com

01.4:学会帮助自己

Android Kotlin Fundamentals 01.4:学会自助 | Android D ...
https://codelabs.developers.google.com

第 2.1-2.4 课“布局”

  • 说明如何使用 Android Studio 布局编辑器以及如何使用 LinearLayout * 1 和 ConstraintLayout * 2。
  • 创建一个接收用户输入并显示它的应用程序。findViewById()在本课中,您还将学习如何使用数据绑定来消除低效率。

* 1 LinearLayout:简单排列Views
的布局 * 2 ConstraintLayout:描述当前最常用的布局中带约束的布局。

02.1:使用布局编辑器进行线性布局

Android Kotlin 基础知识:使用布局编辑器进行线性布局 | ...
https://codelabs.developers.google.com

02.2:添加用户交互

Android Kotlin 基础知识:添加用户交互性 | Android 开发 ...
https://codelabs.developers.google.com

02.3:使用布局编辑器约束布局

Android Kotlin Fundamentals: 02.3 ConstraintLayout 使用 Layout Ed ...
https://codelabs.developers.google.com

02.4: 数据绑定基础

Android Kotlin Fundamentals 02.4:数据绑定基础知识 | Android 开发 ...
https://codelabs.developers.google.com

第 3.1-3.3 课“导航”

  • 解释如何在应用程序中进行导航。
  • 首先,创建 Fragment * 1 并将其添加到应用程序中。然后使用 Android Studio 导航图向您的应用添加导航。创建一个导航抽屉 * 2 并向应用程序添加一个选项菜单。然后,导航抽屉就可以和back stack * 3一起使用了。了解如何从应用程序启动另一个 Activity * 4。

* 1 片段:用户界面中的一个组件。Normal Enter Activity
* 2 Navigation Drawer:从侧面滑出的Menu
* 3 Back stack:可以通过返回按钮等返回的机制
* 4 Activity:提供屏幕的组件,其中包含Fragment .

03.1:创建片段

Android Kotlin 基础知识:创建片段 | Android 开发者
https://codelabs.developers.google.com

03.2:定义导航路径

Android Kotlin 基础知识:03.2 定义导航路径 | Android ...
https://codelabs.developers.google.com

03.3:开始一个外部活动

Android Kotlin 基础知识:03.3 启动外部 Activity | Andro ...
https://codelabs.developers.google.com

第 4.1-4.2 课“活动和片段生命周期”

  • 解释了Activity和Fragment的生命周期以及在复杂情况下如何处理。
  • 开始使用包含生命周期错误的应用程序进行开发,添加日志记录,更好地了解生命周期事件,修复错误并增加应用程序的价值。然后了解 Android Jetpack 生命周期库,它可以轻松管理生命周期事件。

04.1:生命周期和日志记录

Android Kotlin 基础知识:生命周期和日志记录 | Android 开发 ...
https://codelabs.developers.google.com

04.2:复杂的生命周期情况

Android Kotlin 基础知识:复杂的生命周期情况 | Android ...
https://codelabs.developers.google.com

第 5.1-5.4 课“架构组件”

  • 解释如何使用 ViewModel 和 LiveData *。
  • 了解如何使用在屏幕旋转后仍然存在的 ViewModel。
  • 将 UI 数据包装在 LiveData 中,并添加一个 Observer 以了解 LiveData 值何时发生变化。
  • 使用 LiveData 和 ViewModel 与 DataBinding 直接通信布局和 ViewModel 而无需在 Fragment 中经过。这种技术可以减少代码并简化它。

* ViewModel 和 LiveData 是考虑到生命周期而移动的组件。你可以了解它是如何工作的。

05.1: ViewModel 和 ViewModelFactory

阅读此解释后似乎更容易开始。
https://developer.android.com/topic/libraries/architecture/viewmodel?hl=ja

概述概述

  • 在 Android 上,每次发生冲突变化时都会重新创建 Activity 和 Fragment 的实例(发生在屏幕旋转等情况下)。
  • 随着实例的重新创建,保存在那里的数据将会丢失。
  • 您可以对 SavedInstanceState 执行相同的操作,但如果您有大量数据,例如列表数据,则不适合。
  • 在Activity或Fragment中直接异步调用API时,需要在销毁时进行清理,以免发生内存泄漏。此外,资源也被浪费了,比如再次调用。
  • 在Activity或Fragment中编写数据通信、访问DB等,导致臃肿难测。

  • ViewModel 被设计为比 Fragment、Activity 等具有更长的生存时间。

  • 您还可以轻松地为 ViewModel 创建测试,因为您在 ViewModel 中看不到视图或生命周期。

Android Kotlin 基础知识:5.1 ViewModel | Android 开发者
https://codelabs.developers.google.com

05.2: LiveData 和 LiveData 观察者

阅读此解释后似乎更容易开始。
https://developer.android.com/topic/libraries/architecture/livedata?hl=ja

Android Kotlin 基础知识:LiveData 和 LiveData 观察者 | Andro ...
https://codelabs.developers.google.com

05.3:与 ViewModel 和 LiveData 进行数据绑定

Android Kotlin 基础知识:使用 ViewModel 和 LiveData 进行数据绑定...
https://codelabs.developers.google.com

05.4: LiveData 转换

Android Kotlin 基础知识:5.4 LiveData 转换 | Android ...
https://codelabs.developers.google.com

概述概述

  • LiveData 是一个类,它保存可以根据生命周期观察到的数据。
  • 像liveData.observe(activity, {data-> ...})一样传递Activity之类的生命周期所有者并观察。
  • 仅当 Activity 等生命周期处于活动状态时才会通知您。
  • 当Activity等生命周期被删除时,即onDestory被调用时,观察者被移除。

为什么使用 LiveData?
官方写的简短

  • https://developer.android.com/topic/libraries/architecture/livedata?hl=ja

第 6.1-6.3 课“房间数据库和协程”

  • Room * 1 说明如何使用图书馆。
  • 了解如何使用 Kotlin 协程来处理数据库而不是主线程。您还可以了解 ViewModel 和 LiveData。

* 1 一个使 SQLite 易于处理的库

06.1:创建房间数据库

Android Kotlin 基础知识:创建房间数据库 | Android 开发 ...
https://codelabs.developers.google.com

06.2:协程和房间

Android Kotlin 基础知识:6.2 协程和 Room | Android 开发 ...
https://codelabs.developers.google.com

06.3:使用 LiveData 控制按钮状态

Android Kotlin 基础知识:使用 LiveData 控制按钮状态 | ...
https://codelabs.developers.google.com

第 7.1-7.5 课“回收站视图”

  • 解释如何使用 RecyclerView 有效地显示列表和砂砾中的项目。
  • 解释如何使用 RecyclerView 创建易于维护和扩展的列表。
  • 允许您单击 RecyclerView 中的项目。
  • 说明如何添加一个或多个布局,例如当您想要添加页眉时。

07.1:RecyclerView 基础

Android Kotlin 基础知识:RecyclerView 基础知识 | Android Dev ...
https://codelabs.developers.google.com

07.2:DiffUtil 和 RecyclerView 的数据绑定

Android Kotlin 基础知识:07.2 DiffUtil 和数据绑定与 Recyc ...
https://codelabs.developers.google.com

07.3: 带有 RecyclerView 的 GridLayout

Android Kotlin 基础知识:带有 RecyclerView 的 GridLayout | Android ...
https://codelabs.developers.google.com

07.4:与 RecyclerView 项目交互

Android Kotlin 基础知识:与 RecyclerView 项目交互 | A ...
https://codelabs.developers.google.com

07.5: RecyclerView 中的标题

Android Kotlin 基础知识:RecyclerView 中的标头 | Android 开发 ...
https://codelabs.developers.google.com

第 8.1-8.3 课“连接到互联网”

  • 我解释了如何使用一个名为 Retrofit 的库来获取和显示数据。
  • 您将学习如何处理错误,如何使用名为 Glide 的库显示来自 Internet 的图像,以及如何在 RecyclerView 中显示获取的图像。

08.1:从互联网获取数据

Android Kotlin 基础知识:8.1 从互联网获取数据 | 一个...
https://codelabs.developers.google.com

08.2:加载和显示来自互联网的图像

Android Kotlin 基础知识:从 In ...
https://codelabs.developers.google.com

08.3 使用互联网数据过滤和详细视图

Android Kotlin 基础知识:使用互联网过滤和详细视图...
https://codelabs.developers.google.com

第 9.1-9.2 课“存储库”

  • 描述用于抽象数据层和提供干净 API 的技术。
  • 您还可以学习如何使用 WorkManager 执行优化的后台任务。

09.1:存储库

Android Kotlin 基础知识:存储库 | Android 开发人员
https://codelabs.developers.google.com

09.2:工作管理器

Android Kotlin 基础知识:WorkManager | Android 开发者
https://codelabs.developers.google.com

第 10.1 ~ 10.3 课“为所有人设计”

  • 解释应用程序设计的基础知识。
  • 我在制作应用程序以查找 Google Developer Group (GDG) 的聚会时进行解释。

10.1:风格和主题

Kotlin Android 基础知识:样式和主题 | Android 开发者
https://codelabs.developers.google.com

10.2:材料设计、尺寸和颜色

Kotlin Android 基础知识:材料设计、尺寸和颜色 | A ...
https://codelabs.developers.google.com

10.3:为所有人设计

Kotlin Android 基础知识:10.3 适合所有人的设计 | Android 开发 ...
https://codelabs.developers.google.com

你可能感兴趣的:(android,android,kotlin,java)