User Tools

Site Tools


kotlin

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
kotlin [2025/12/23 19:54] – [Kotlin and Java] kalaschnikowkotlin [2026/01/04 10:28] (current) – [Coroutines] kalaschnikow
Line 1: Line 1:
 +====== Kotlin ======
 +[[https://www.jetbrains.com/education/kotlin-edu/|Kotlin Edu]]\\ 
 +[[https://android.github.io/kotlin-guides/|Android Kotlin guides]]\\ 
 +[[https://android-developers.googleblog.com/2017/11/update-on-kotlin-for-android.html|Update on Kotlin for Android]] - viele gute Links im Artikel
  
 +[[http://www.lukle.at/blog/2016/12/how-effective-java-influenced-the-design-of-kotlin-part-1/|How “Effective Java” may have influenced the design of Kotlin – Part 1]], [[http://www.lukle.at/blog/2017/01/how-effective-java-may-have-influenced-the-design-of-kotlin-part-2/|Part 2]], [[http://www.lukle.at/blog/2017/08/how-effective-java-may-have-influenced-the-design-of-kotlin - part-3/|Part 3]]
 +
 +[[https://www.kotlindevelopment.com/typical-kotlin/|Typical Kotlin]] - an article about Kotlin's type system
 +
 +
 +[[https://www.raywenderlich.com/7109-test-driven-development-tutorial-for-android-getting-started|Test-Driven Development Tutorial for Android: Getting Started]] - tutorial about TDD with Kotlin
 +
 +===== Resources to learn =====
 +
 +  * [[https://kotlinlang.org/|Kotlinlang.org]]: The official Kotlin website. Includes everything from a guide to [[https://kotlinlang.org/docs/reference/basic-syntax.html|basic syntax]] to the [[https://kotlinlang.org/api/latest/jvm/stdlib/index.html|Kotlin standard library reference]].
 +
 +
 +  * [[Official Kotlin tour]]
 +
 +  * [[Android Basics with Compose]]
 +
 +
 +
 +[[http://try.kotlinlang.org/|Kotlin Koans Online]]: A collection of exercises in an online IDE to help you learn the Kotlin syntax.
 +
 +
 +  * [[https://commonsware.com/Kotlin/|Elements of Kotlin]] by Mark Murphy
 +    * [[Elements of Kotlin]] - my conspectus of this book
 +
 +
 +  * [[https://www.raywenderlich.com/16929465-kotlin-playground-getting-started|Kotlin Playground: Getting Started]]
 +  * [[https://hyperskill.org/courses/18|Kotlin Core track]] by JetBrains Academy
 +
 +[[https://www.udacity.com/course/kotlin-bootcamp-for-programmers--ud9011|Udacity course: “Kotlin Bootcamp for Programmers”]]. Essentials of the Kotlin programming language from Kotlin experts at Google. For programmers coming from Java or other object- oriented languages.
 +
 +[[https://www.udacity.com/course/developing-android-apps-with-kotlin--ud9012|Developing Android Apps with Kotlin]] and [[https://www.udacity.com/course/advanced-android-with-kotlin--ud940|Advanced Android with Kotlin]] video-based courses by Google at Udacity
 +
 +[[https://codelabs.developers.google.com/android-kotlin-fundamentals/|Android Kotlin Fundamentals]], [[https://codelabs.developers.google.com/advanced-android-kotlin-training/|Advanced Android in Kotlin]] and [[https://codelabs.developers.google.com/kotlin-bootcamp/|Kotlin Bootcamp]] at Codelabs
 +
 +[[http://shop.oreilly.com/product/0636920052982.do|O’Reilly course: An 8-hour Kotlin course, “Introduction to Kotlin Programming,”]] by Hadi Hariri, a developer at JetBrains. Requires subscription; 10-day free trial available.
 +
 +[[https://teamtreehouse.com/library/kotlin-for-java-developers|Treehouse course: “Kotlin for Java Developers”]] teaches Kotlin with an emphasis on Android. Requires subscription; 7-day free trial available.
 +
 +[[https://twitter.com/kotlin|@kotlin]]: The official Kotlin Twitter account.
 +
 +[[https://kotlinlang.org/community/|Kotlin Community]]: A list of offline events and groups from kotlinlang.org.
 +
 +[[http://slack.kotlinlang.org/|Kotlin Slack]]: A Slack chat community for Kotlin users.
 +
 +[[http://talkingkotlin.com/|Talking Kotlin]]: A bi-monthly podcast on Kotlin and more.
 +
 +===== Coroutines =====
 +
 +  * [[https://kt.academy/article/cc-cancellation|Cancellation in Kotlin Coroutines]]
 +    * Marcin Moskała writes about one of the most important mechanisms of Kotlin Coroutines for Android developers, cancellation
 +
 +  * [[https://proandroiddev.com/inside-kotlin-coroutines-state-machines-continuations-and-structured-concurrency-b8d3d4e48e62|Inside Kotlin Coroutines: State Machines, Continuations, and Structured Concurrency]]
 +    * A deep dive into the Finite-State-Machine (FSM) transformation that powers Kotlin Coroutines, from Compiler Mechanics to Structured Concurrency
 +      * [[https://www.youtube.com/watch?v=4GdGIlKxNvc|Coroutine Suspension Mechanics - Ioannis Anifantakis & Andrea Della Porta | droidcon London 2025]]
 +        * Related video from droidcon London 2025
 +
 +  * [[https://www.revenuecat.com/blog/engineering/flow-internals/|Understanding the internal of Flow, StateFlow, and SharedFlow]]
 +===== KotlinConf 2024 =====
 +  * [[https://blog.jetbrains.com/kotlin/2024/05/kotlin-roundup-kotlinconf-2024-keynote-highlights/|Kotlin Roundup: KotlinConf 2024 Keynote Highlights]]
 +    * Celebrating Kotlin 2.0: fast, smart, and multiplatform
 +    * Kotlin language features in 2.0 and beyond
 +    * Android support for Kotlin Multiplatform
 +    * Compose Multiplatform for iOS goes Beta
 +    * Amper Update – Standalone build tool, new IDE features, and more
 +    * Uber joins the Kotlin Foundation
 +    * The Kotlin Foundation Grants Program continues in 2024
 +    * Kotlin adoption in global companies
 +    * AI-friendly programming languages: the Kotlin story
 +
 +===== Kotlin and Java =====
 +
 +  * [[https://drive.google.com/file/d/108gx4qiU501_5p9rNZVfsZ5TGqC5zV4q/view|The Ultimate Guide to Successfully Adopting Kotlin in a Java-Dominated Environment]] by Urs Peter (JetBrains)
 +
 +===== Misc =====
 +
 +  * [[https://gelopfalcon.medium.com/from-junior-to-master-in-kotlin-1-basic-syntax-7b77e012b47f|From Junior to Master in Kotlin — 1 (Basic Syntax)]]
 +  * [[https://gelopfalcon.medium.com/from-junior-to-master-in-kotlin-2-safe-null-188839da41ab|From Junior to Master in Kotlin — 2 (Safe null)]]
 +  * [[https://proandroiddev.com/kotlin-sharedflow-or-how-i-learned-to-stop-using-rxjava-and-love-the-flow-e1b59d211715|Kotlin SharedFlow or: How I learned to stop using RxJava and love the Flow]]
 +
 +  * [[https://github.com/MarcinMoskala/kotlin_essentials_sources?tab=readme-ov-file|Code sources for Kotlin Essentials book by Marcin Moskala]]
 +
 +  * [[https://www.maiatoday.net/p/50-ways-to-run-some-kotlin-code/|50 ways to run some Kotlin code]] by Maia Grotepass (maiatoday)
 +    * What is the quickest path to messing with a snippet of Kotlin code? Maia Grotepass shares some options. 
 +
 +  * [[https://www.youtube.com/watch?v=sZDl720BeJ4|Mastering Kotlin in 7 Steps with Sarp Remzi Aksu]] (video)
 +
 +  * [[https://www.youtube.com/watch?v=E8CtE7qTb-Q|Beyond The Success Of Kotlin / The Documentary by EngX]] - an amazing video about how Kotlin was created and how it come to success
 +
 +  * [[https://dladukedev.com/articles/045_hidden_gems_kotlin_standard_lib/|Hidden Gems of the Kotlin Standard Library - List]] by Donovan LaDuke
 +    * ''orEmpty()''
 +    * ''filterIsInstance()''
 +    * ''distinctBy()''
 +    * ''chunked()''
 +    * ''random()''
 +
 +  * [[https://www.youtube.com/watch?v=eXT1wglHAQo|Fun with Function Types in Kotlin]] (video)
 +  * [[https://www.youtube.com/watch?v=Itb5fu4UVt4|FULL Guide to Kotlin's Inline Keyword (inline, crossinline & noinline)]] by Philipp Lackner (video)
 +
 +  * [[https://proandroiddev.com/kotlin-under-the-hood-exploring-constructors-and-init-blocks-869fc1f85a8e|Kotlin Under the Hood: Exploring Constructors and Init Blocks]]
 +  * [[https://www.youtube.com/watch?v=ajBXoaqpqZ8|How to Write Cleaner Kotlin Code with These 5 Powerful Functions]] (video)
 +
 +  * [[https://proandroiddev.com/kotlin-companion-object-explained-a3cef8a9eeed|Kotlin companion object explained]]
 +
 +  * [[https://carrion.dev/en/posts/solid-kotlin/|Understanding SOLID Principles with Kotlin Examples]]
 +    * 1. Single Responsibility Principle
 +      * one class - one responsibility
 +    * 2. Open/Closed Principle
 +      * open for extension, but closed for modification
 +    * 3. Liskov Substitution Principle
 +      * objects if superclass should be replaceable by objects of a subclass
 +    * 4. Interface Segregation Principle
 +      * clients should not be forced to depend on methods they don't use (=no bloated interfaces)
 +    * 5. Dependency Inversion Principle
 +      * high-level modules should not depend on low level modules. Both should depend on abstractions