Difference between revisions of "Kotlin"

From BC$ MobileTV Wiki
Jump to: navigation, search
Line 63: Line 63:
 
* Kotlin for Android App Development (BOOK): https://kotlinandroidbook.com | [https://github.com/petersommerhoff/kotlin-for-android-app-development SRC]
 
* Kotlin for Android App Development (BOOK): https://kotlinandroidbook.com | [https://github.com/petersommerhoff/kotlin-for-android-app-development SRC]
 
* Java to Kotlin (BOOK): https://www.oreilly.com/library/view/java-to-kotlin/9781492082262/
 
* Java to Kotlin (BOOK): https://www.oreilly.com/library/view/java-to-kotlin/9781492082262/
 +
* Kotlin official docs -- Java-Kotlin interoperabiltiy: https://kotlinlang.org/docs/reference/java-to-kotlin-interop.html
 +
* Calling Java code from Kotlin: https://medium.com/kayvan-kaseb/calling-java-codes-from-kotlin-b74890fb4a78
 +
<ref>Compose Multiplatform 1.0 is going live!: https://blog.jetbrains.com/kotlin/2021/12/compose-multiplatform-1-0-is-going-live/</ref>
  
 
* Kotlin DSL for runtime permissions: https://android.jlelse.eu/kotlin-dsl-for-runtime-permissions-ba04dbe0de2c | [ SRC] (helper library in Kotlin to request permissions programmatically, with built-in callbacks)<ref>Eazy permissions -- An introduction to the runtime permission library: https://proandroiddev.com/eazy-permissions-c574809bd682</ref>
 
* Kotlin DSL for runtime permissions: https://android.jlelse.eu/kotlin-dsl-for-runtime-permissions-ba04dbe0de2c | [ SRC] (helper library in Kotlin to request permissions programmatically, with built-in callbacks)<ref>Eazy permissions -- An introduction to the runtime permission library: https://proandroiddev.com/eazy-permissions-c574809bd682</ref>
Line 139: Line 142:
 
* Netflix Android and iOS Studio Apps — now powered by Kotlin Multiplatform: https://netflixtechblog.com/netflix-android-and-ios-studio-apps-kotlin-multiplatform-d6d4d8d25d23
 
* Netflix Android and iOS Studio Apps — now powered by Kotlin Multiplatform: https://netflixtechblog.com/netflix-android-and-ios-studio-apps-kotlin-multiplatform-d6d4d8d25d23
 
* RSS Reading In Kotlin - Easy Android Programming: https://medium.com/swlh/rss-reading-in-kotlin-easy-android-programming-bebefd12f65d
 
* RSS Reading In Kotlin - Easy Android Programming: https://medium.com/swlh/rss-reading-in-kotlin-easy-android-programming-bebefd12f65d
 +
 +
* Kotlin & Domain-Driven Design (DDD) -- Value Objects: https://dev.to/flbenz/kotlin-and-domain-driven-design-value-objects-4m32
 +
* Setting text in EditText with Kotlin: https://stackoverflow.com/questions/44493908/setting-text-in-edittext-kotlin
 +
* How to get a numeric value from EditText in Kotlin: https://inducesmile.com/kotlin-source-code/how-to-get-a-numeric-value-from-edittext-in-kotlin/<ref>Convert String obtained from EditText to Integer in Kotlin language: https://stackoverflow.com/questions/44841940/convert-string-obtained-from-edittext-to-integer-in-kotlin-language</ref>
 +
* Android Button Example [OnClick|Color|Design] in Kotlin: https://tutorial.eyehunts.com/android/android-button-example-onclickcolordesign-kotlin/
  
 
* Ki is a New, More Flexible Kotlin Interactive Shell: https://www.infoq.com/news/2021/04/ki-kotlin-interactive-shell/
 
* Ki is a New, More Flexible Kotlin Interactive Shell: https://www.infoq.com/news/2021/04/ki-kotlin-interactive-shell/

Revision as of 20:06, 29 December 2021

Kotlin Logo

Kotlin is a statically-typed programming language that runs on the Java Virtual Machine (JVM).


Features

Condensed Syntax

First-class Functional

Implicit Strict OO Typing

Null Safety

[1] [2] [3] [4]

Co-Routines

[5] [6] [7] [8] [9] [10] [11]



Tools

[14] [15]


Resources

[17]


Tutorials

[27]

[28] [29] [30]

[31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42]

[44]


External Links

[48] [49] [50] [51] [52] [53]


References

  1. Kotlin vs Java -- Most Important Differences That You Must Know in 2019: https://hackr.io/blog/kotlin-vs-java
  2. Why Kotlin language, Android? Why did Google choose Kotlin ?: https://apiumhub.com/tech-blog-barcelona/kotlin-language/
  3. Why did Google replace Java with Kotlin, and why only Kotlin but not other languages?: https://www.quora.com/Why-did-Google-replace-Java-with-Kotlin-and-why-only-Kotlin-but-not-other-languages
  4. Nothing (Else) Matters in Kotlin: https://quiro.dev/posts/nothing-else-matters-kotlin/
  5. Kotlin Coroutines patterns & anti-patterns: https://proandroiddev.com/kotlin-coroutines-patterns-anti-patterns-f9d12984c68e
  6. Coroutines on Android - Getting the background: Part 1 | Part 2 | Part 3
  7. Foodium - fully featured reactive app: https://github.com/PatilShreyas/Foodium (Kotlin, Coroutines, Flow, MVVM, Room, Dagger2, Coil, Moshi, Android Architecture components, Material Design/components)
  8. Coroutines -- simplify threading on android: https://ian-alexander.medium.com/coroutines-simplifying-android-architecture-ce0cd02b9447
  9. Room & Coroutines (for improved DB access): https://medium.com/androiddevelopers/room-coroutines-422b786dc4c5
  10. Suspending over views - How coroutines can make UI programming easier: https://medium.com/androiddevelopers/suspending-over-views-19de9ebd7020
  11. Room 🔗 Coroutines integration: https://medium.com/androiddevelopers/room-coroutines-422b786dc4c5
  12. Jetpack Compose -- Kotlin - "Falling Balls" timing game (Desktop): https://github.com/JetBrains/compose-jb/tree/master/examples/falling_balls
  13. Jetpack Compose -- Kotlin - "Falling Balls" timing game (Web): https://github.com/JetBrains/compose-jb/tree/master/examples/falling_balls_with_web | DEMO
  14. Technology Preview: Jetpack Compose for Web: https://blog.jetbrains.com/kotlin/2021/05/technology-preview-jetpack-compose-for-web/
  15. Jetbrains previews "Jetpack Compose" (Kotlin) for Web: https://www.infoq.com/news/2021/05/jetpack-compose-web-tech-preview/
  16. Kotlin tutorials: https://kotlinlang.org/docs/tutorials/
  17. Compose Multiplatform 1.0 is going live!: https://blog.jetbrains.com/kotlin/2021/12/compose-multiplatform-1-0-is-going-live/
  18. Eazy permissions -- An introduction to the runtime permission library: https://proandroiddev.com/eazy-permissions-c574809bd682
  19. Create Carousel Easily in Android App with CarouselView: https://medium.com/@lobothijau/create-carousel-easily-in-android-app-with-carouselview-6cbf5ef500a9 | SRC (alternative carouselview lib)
  20. @MerryAnnotation — Your First Annotation Processor in Kotlin Android: https://android.jlelse.eu/merryannotation-your-first-annotation-processor-in-kotlin-android-eb3af4ab3402
  21. How to manage a complex DeepLinks scheme on your Android App: https://android.jlelse.eu/how-to-manage-a-complex-deeplinks-scheme-on-your-android-app-d441143cec7e
  22. Experimenting with Ktor HTTP clients in idiomatic Kotlin: https://medium.com/default-to-open/experimenting-with-ktor-5c8c1bf78d72
  23. Advanced Kotlin Coroutines tips and tricks: https://proandroiddev.com/coroutines-snags-6bf6fb53a3d1
  24. Simplify asynchronous programming with Kotlin’s coroutines: https://www.androidauthority.com/kotlin-coroutines-asynchronous-programming-858566/
  25. Why your class probably shouldn’t implement CoroutineScope: https://proandroiddev.com/why-your-class-probably-shouldnt-implement-coroutinescope-eb34f722e510
  26. Android Networking in 2019 — Retrofit with Kotlin’s Coroutines (TMDB API example): https://android.jlelse.eu/android-networking-in-2019-retrofit-with-kotlins-coroutines-aefe82c4d777 | SRC
  27. Unit Testing Coroutines on Android: https://www.ericdecanini.com/2020/04/06/unit-testing-coroutines-on-android/
  28. Hibernate with Kotlin - powered by Spring Boot: https://kotlinexpertise.com/hibernate-with-kotlin-spring-boot/
  29. Getting Started with Spring Data JPA in Kotlin: https://www.section.io/engineering-education/introduction-spring-data/
  30. Should I use Kotlin data class as JPA entity?: https://stackoverflow.com/questions/58127353/should-i-use-kotlin-data-class-as-jpa-entity
  31. Getting Started Unit Testing with Kotlin : https://spin.atomicobject.com/2018/10/07/kotlin-unit-testing/
  32. KotlinConf 2018 - Best Practices for Unit Testing in Kotlin by Philipp Hauer: https://phauer.com/2018/best-practices-unit-testing-kotlin/ | SLIDES | VIDEO
  33. kotest: https://kotest.io/ | SRC | DOCS
  34. kotlin.test (JUnit 5 integrations): https://kotlinlang.org/api/latest/kotlin.test/
  35. MockK: https://mockk.io (mocking library for Kotlin)
  36. Testing Quarkus with Kotlin, JUnit5 & MockK: https://www.novatec-gmbh.de/en/blog/testing-quarkus-with-kotlin-junit-and-mockk/
  37. Unit Testing Firebase with Kotlin: https://blog.kotlin-academy.com/unit-testing-firebase-with-kotlin-85ae7205d3ef
  38. Why my date formatters test fails in CI and passes locally?: https://kotlintesting.com/why-my-date-formatters-test-fails-in-ci/
  39. Nested Kotlin tests with Junit5: https://kotlintesting.com/nested-tests-in-junit5/
  40. Parameterized tests with Kotest: https://kotlintesting.com/kotest-parameterized/
  41. An attempt to unit test generated DataBinding code: https://kotlintesting.com/testing-generated-databinding-code/
  42. Testing Retrofit calls with OkHttp MockWebServer: https://kotlintesting.com/testing-retrofit-calls/
  43. Convert String obtained from EditText to Integer in Kotlin language: https://stackoverflow.com/questions/44841940/convert-string-obtained-from-edittext-to-integer-in-kotlin-language
  44. A Kotlin Time DSL for Java 8 Time: https://jworks.io/a-kotlin-time-dsl-for-java-8-time/
  45. Google suggests using Kotlin programming language to build a new Android app: https://www.techworm.net/2019/05/kotlin-google-programming-language-android-apps.html
  46. Why did Google replace Java with Kotlin, and why only Kotlin but not other languages?: https://www.quora.com/Why-did-Google-replace-Java-with-Kotlin-and-why-only-Kotlin-but-not-other-languages
  47. Kotlin is now Google’s preferred language for Android app development: https://techcrunch.com/2019/05/07/kotlin-is-now-googles-preferred-language-for-android-app-development/
  48. Why starting a new Android project with Java is a bad idea: https://medium.com/snapp-mobile/why-starting-a-new-android-project-with-java-is-a-bad-idea-359bffe0bbd6
  49. Digging into D8 and R8: https://jakewharton.com/digging-into-d8-and-r8/
  50. Why and how I switched to Kotlin: https://android.jlelse.eu/why-and-how-i-switched-to-kotlin-503460bbfcf
  51. Modern Android development with Kotlin (series): Part 1 | Part 2 | Part 3 | Part 4
  52. What do 17 Google Developers Experts for Android think about Kotlin?: https://antonioleiva.com/google-kotlin/
  53. Digging into D8 and R8: https://jakewharton.com/digging-into-d8-and-r8/

See Also

Java | JSP | JavaFX | J2ME | Android | Groovy | Scala | Dart | Flutter