Zhuinden/guide-to-kotlin
[GUIDE] This tutorial assumes all you know is Java, but you want to learn Kotlin.
repo name | Zhuinden/guide-to-kotlin |
repo link | https://github.com/Zhuinden/guide-to-kotlin |
homepage | https://github.com/Zhuinden/guide-to-kotlin/wiki |
language | |
size (curr.) | 95 kB |
stars (curr.) | 843 |
created | 2018-12-09 |
license | Apache License 2.0 |
Click this link to go to the Wiki page
Guide to Kotlin
This tutorial assumes that all you know is Java, but you want to learn Kotlin.
Please note that the resources are in the wiki page.
Additional resources
A few things that are worth watching to know more about Kotlin.
More resources to read
-
By me: Odd things to look out for when converting code to Kotlin
-
By me: Code clean-up with Kotlin
-
Android KTX source code: Github snapshot or AOSP (actively developed)
More resources to watch
Style-guide and reference for common mistakes to avoid
Table of Content
Major Syntax Differences
-
inverted argument order, no semi-colons, void vs Unit, Object vs Any?, fun
-
visibility in Kotlin (public by default, private, protected, internal)
-
backticks for reserved keywords (Mockito.when, $) and import aliases
-
arrayOf and arrayOfNulls and listOf and mutableListOf and linkedMapOf
-
there are no checked exceptions, try-with-resources as .use {}
Basic Kotlin Features
The Cool Stuff
-
standard library functions - scoping functions:
apply
,let
,also
,run
,with
-
standard library functions - more utility functions:
takeIf
,takeUnless
The Tricky Stuff
Android-Specific Stuff
Stuff that needs to be added or more fleshed out in this tutorial
-
things marked with * in the table of contents
-
coroutines?
-
channels?
-
@DslMarker?
-
multi-platform things:
expect
andactual
?
Feel like donating?
If you feel like this project helped you so much that you would have wanted to pay for it or something, I won’t get in your way, and appreciate your support.
PayPal
License
Copyright 2018 Gabor Varadi
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.