Interesting Kotlin Posts¶
Intro¶
- What is Kotlin
- Kotlin: A massive leap forward
- What Kotlin has that Java does not
- Kotlin Introduction
- Try Kotlin in your Browser
- Kotlin Intro at Google I/O 2017
- Kotlin By Example
- Install Kotlin-Koans into IntelliJ
- Kotlin Overview
- From Java to Kotlin
- Kotlin and Java Comparison
- Java to Kotlin Experience
- Favorite Kotlin Features
- The best features of Kotlin
- All things Kotlin
- 10 cool things about Kotlin
- Useful Kotlin standard library functions
- Why I abandoned Java in favour of Kotlin
- Why you should totally switch to Kotlin
- What Kotlin Fixes in Java
- Kotlin runtime checks — require and check
- Why I’m not enthusiastic about Java 10
- Should I define a Function or a Property?
- Awesome Kotlin
- The Nothing Type
- 10 Kotlin Tricks in 10 ish minutes
- Kotlin From Scratch
- How to learn Kotlin: A resources guide
- From Java to Kotlin
- Kotlin for Python Developers
- 8 Kotlin Features Every Java Developer Should Know In 2019
- Guide to Kotlin
- When to Use Sequences
- Utils class in Kotlin
- Kotlin functions are fun
Intermediate¶
- Idiomatic Kotlin. Best Practices.
- Understanding Nullability In Kotlin
- Demystifying Advanced Kotlin Concepts Pt 1
- Demystifying Advanced Kotlin Concepts Pt 2
- Kotlin Syntax Pt 1
- Backing Field in Kotlin — Explained
- Kotlin Data Classes
- Java 8 Streams in Kotlin
- Kotlin and JSON
- Kotlin vs Scala
- Kotlin Design Patterns
- Kotlin lazy, lateinit and Delegates
- The magic in Kotlin: Delegates
- Advanced Properties and Classes
- Kotlin Logging
- Extension Functions
- Using Kotlin takeIf (or takeUnless)
- How to remove all !! from your Kotlin code
- Kotlin Programmer Dictionary
- Kotlin initializers
- Inline functions
- Kotlin singletons with argument
- Companion Objects
- How Kotlin’s delegated properties and lazy-initialization work
- Kotlin Interfaces
- Performance critical processing
- Iterables vs Sequences
- Type Aliases in Kotlin
- Composition over inheritance in Kotlin
- Kotlin Iterables vs Java 8 Streams
- Label References
- Kotlin’s Nothing: Its Usefulness in Generics
- Kotlin Java Annotations
- Kotlin Sequence Tutorial
- Kotlin: composition and delegation
- Operator Overloading in Kotlin and the Invoke Operator
- Introduction to Inline Classes
- Using Kotlin's Require, Check and Assert
- Kotlin Sequence Tutorial
- 10 Kotlin Tricks in 10 ish minutes
- Demystifying the inline keyword
- Kotlin made Interface so much better
- What Are Kotlin Contracts and How Are They Useful?
- Kotlin’s vararg and spread operator
- Data classes aren't (that) magical
- Curated collection of useful Kotlin 1.3 snippets
- Effective Kotlin
- Kotlin pearls: Lambdas with a Context
- Destructuring Declarations
- Lazy Properties
- Kotlin pearls: It’s an Object… It’s a Function… It’s an Invokable
- Understanding Kotlin Sealed Classes
- Kotlin Generics and Variance
- Declarative Pipelines in Kotlin
- The Kotlin Type Hierarchy From Top to Bottom
- Kotlin Explained: Property delegation
- Singleton class in Kotlin
Run, with, let, also and apply¶
- The difference between ‘let’, ‘apply’, ‘with’, ‘run’ and ‘also’
- Coping with Kotlin's Scope Functions - Interactive
- Another stab at ‘let’, ‘apply’, ‘with’, ‘run’ and ‘also’
- Yet another stab at ‘let’, ‘apply’, ‘with’, ‘run’ and ‘also’
Lambdas¶
- Lambda expressions in Kotlin
- Function references in Kotlin
- Listeners and DSLs
- Function Type vs Function literal vs Lambda expression vs Anonymous function
- Java 8 Stream API Analogies in Kotlin
- Filtering Kotlin Collections
Generics¶
DSLs¶
- Creating Kotlin DSLs
- Writing DSLs in Kotlin (part 1)
- Writing DSLs in Kotlin (part 2)
- Building blocks of a Kotlin DSL
Coroutines¶
- Introduction to Kotlin Coroutines
- An introduction to Kotlin Coroutines
- Kotlin Coroutines Guide
- Coroutines Guide
- Kotlin Coroutines: Basic Terminologies & Usage
- KotlinConf 2017 - Introduction to Coroutines
- KotlinConf 2017 - Deep Dive into Coroutines
- Quick Introduction to Kotlin Coroutines, Part 1
- What are Coroutines in Kotlin?
- Multithreading and Kotlin
- Such concurrency! Many threads! Wow!
- Differentiating Thread and Coroutine in Kotlin
- Difference between a Coroutine and a Thread
- An Introduction to Cooperative Multitasking with Kotlin Coroutines
- Understanding suspending functions in Kotlin
- Kotlin Coroutines patterns & anti-patterns
- How to make sense of Kotlin coroutines
- Retrofit meets coroutines
- Fresh Async With Kotlin
- Playing With Kotlin Coroutines For Best Practices
- Advanced Kotlin Coroutines tips and tricks
- Exceptional Exceptions for Coroutines made easy Part 1
- Exceptional Exceptions for Coroutines made easy Part 2
- Notes on learning Kotlin coroutines
- Kotlin Coroutines Part 1
- Kotlin Coroutines Part 2
- Channels in Kotlin — part one
Detekt¶
- [Kotlin: when statement, when expression… oh my! or How we created our custom Detekt rule] (https://proandroiddev.com/kotlin-when-statement-when-expression-oh-my-or-how-we-created-our-custom-detekt-rule-6f27e80bedaf)
Summaries¶
- Learn Kotlin in Y Minutes
- Java to Kotlin Cheatsheet
- Kotlin Cheatsheet
- Yet Another Cheatsheet
- http://kt.academy/Kotlin_Coroutines_Cheat_Sheet.pdf
- Musings: What the tech world saw in Kotlin
Kotlin Warnings¶
- Kotlin Pitfalls
- The Case Against Kotlin
- The drawbacks of migrating to Kotlin
- Exploring Kotlin’s hidden costs — Part 1
- Exploring Kotlin’s hidden costs — Part 2
- Exploring Kotlin’s hidden costs — Part 3
- Kotlin: Beware of Java Stream API Habits
- From Java to Kotlin and Back Again
- A Response to "From Java to Kotlin and Back Again"
Puzzles¶
Learning¶
Bootcamps¶
Misc¶
- Embedding Kotlin Playground
- Kotlin Code Samples
- Kotlin Shell Scripts
- What's New In Kotlin 1.3?
- How To Document A Kotlin Project