--- _db_id: 303 content_type: topic ready: true title: Kotlin Introduction --- **Kotlin is a:** - [Statically](https://www.techopedia.com/definition/22321/statically-typed)[typed](https://en.wikipedia.org/wiki/Type_system) language. - Developed by [JetBrains](https://www.jetbrains.com/). - Java is a prerequisite for Kotlin. - Can be used for: server-[side](https://careerkarma.com/blog/client-vs-server-side-development/), client side and android development. - [Interoperable](https://dev.to/jay_tillu/how-kotlin-provides-100-interoperability-with-java-4c16). - [Concise](https://kotlinlang.org/docs/reference/java-interop.html) syntax over java. **Interesting features of Kotlin:** - Open [Source](https://www.techopedia.com/definition/25149/open-source-language). - [Interoperability](https://www.codementor.io/@packt/interoperability-between-java-and-kotlin-rifmhfip0). - [Concise](https://kotlinlang.org/docs/reference/java-interop.html) up to 40% less line of code than java. - Easy to learn. [Syntax](https://kotlinlang.org/docs/reference/basic-syntax.html) is similar to java. - [Feature](https://dzone.com/articles/5-kotlin-features-that-every-android-app-developer) rich. **Hello World example you should try.** This will help you understand the basics of the Kotlin programming language. ``` fun Main(args : Array) { printlin(“Hello World”) //Similar to System.out.println(“Hello World”) in Java. } ``` Output Hello World! Breakdown: fun Main(args : Array<>){} - fun, is the keyword in Kotlin for function. - This is the main function, just as in java it serves as the entry point to the application. - Mandatory function of the Kotlin program. - Code should be written in curly brackets. - Text that should be printed on the screen should be in double quotes "". ### Activities with Kotlin [How to manage user activity with Kotlin](https://www.raywenderlich.com/2705552-introduction-to-android-activities-with-kotlin) ### Fragments [Managing fragments for Android with Kotlin](https://www.raywenderlich.com/1364094-android-fragments-tutorial-an-introduction-with-kotlin) ### Navigation [Setting up navigation in Android using Kotlin](https://www.raywenderlich.com/6014-the-navigation-architecture-component-tutorial-getting-started) ### Live Data [Working with live data](https://medium.com/@sahasuthpala/kotlin-simple-counting-app-with-view-model-live-data-fa3fdf074718) ### Live Data and Observables [Live data vs observables](https://blog.mindorks.com/livedata-vs-observable-in-android) ### Live Data Transformations [Android live data and transformation | map ans switch map](https://codinginfinite.com/android-livedata-transformation-example/) ### Coroutines [Kotlin coroutines on Android](https://developer.android.com/kotlin/coroutines) ### RecyclerView [Android RecyclerView Tutorial with Kotlin](https://www.raywenderlich.com/1560485-android-recyclerview-tutorial-with-kotlin) ### ConstrainLayout [ConstraintLayout Tutorial for Android: Complex Layouts](https://www.raywenderlich.com/9475-constraintlayout-tutorial-for-android-complex-layouts) ### Styles and Themes [Android Styling: Themes vs Styles](https://medium.com/androiddevelopers/android-styling-themes-vs-styles-ebe05f917578) ### Material Design [Material Design for Android](https://developer.android.com/guide/topics/ui/look-and-feel) ### AccessibilityManager [Android AccessibilityManager](https://developer.android.com/reference/kotlin/android/view/accessibility/AccessibilityManager)