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
Next revision
Previous revision
kotlin [2024/08/01 13:19] – 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