| Both sides previous revisionPrevious revisionNext revision | Previous revision |
| kotlin [2024/12/06 17:23] – [Misc] kalaschnikow | kotlin [2026/01/04 10:28] (current) – [Coroutines] kalaschnikow |
|---|
| | ====== 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 |