Contents

Introduction: Why does this site exist?

  1. #Which Language?: Why learn kotlin and when to use Python
  2. Languages Background: How Languages Work
  3. Coding: From Python to Kotlin
  4. Building
  5. Testing
  6. Deployment and Implementation
  7. Packages
  8. Software Development Processes and Methodologies (including LEM/DSLEM)
  9. Appendices
  10. Glossary

(Full) Table Of Contents

1. Which Language?
  1. Why learn Kotlin in addition to python?
  2. Limitations of Kotlin compared to python
2. Languages Background: How Languages Work
  1. Languages:
    1. Compilers and Interpreters
    1. OOP vs Functional: No Contest
  2. Technical Background (for understanding in depth how things work)
    1. Machine Code, Global Memory, Stack and Heap
    2. Variables and Objects
3. Coding: From Python too Kotlin
  1. The basics (environment, comments)
  2. Variables and Types (under the hood)
  3. Functions and Methods (Traps and Tricks)
  4. None, Unit, Nothing, void and null
  5. Null Safety
  6. Val , var and immutability
  7. Classes Objects, Class Object & Instances
  8. Enums
  9. Extension Functions and Extension Properties
  10. Lambdas and closures:
  11. Data classes: Collections vs Objects
  12. Lists Dictionaries and Iteration and more (tuple. list, dictionaries, set, map, iterations, named tuple, Pair, data class, map, filter, reduce)
  13. Kotlin x Compose (coming very soon)
4. Testing
  1. TDD or not TDD, that is the question
5. Building: No need with python?
  1. Gradle, Maven, Ant, other build tools and History
    1. Building in Intellij
  2. Maven central vs pypi (the cheese shop)
  3. Gradle: Kotlin DSL Gradle
    1. Basic app build,  basics concepts
      • dependencies, repositories, reflect, jars, testing, sourceSets
    2. Building Shared Code
      1. Sharing with a local repo
      2. publishing to maven central
    3. Legacy Gradle groovy DSL Instructions
      1. Starting with Gradle: creating build.gradle
      2. Gradle with Intellij: using build.gradle
6. Deployment & Implementation – Introducing Kotlin in practice
  1. Kotlin for android mobile applications
  2. Kotlin DSL for templates
  3. Multi Platform
    1. Kotlin JVM to Multiplatform
    2. Kotlin mobile: multi-platform mobile development
  4. The Backend: Servers
    1. Hosting: From ‘Bare Metal’ to Shared through to the cloud.
    2. Backend Basics
  5. Data base server – web services (future page)
7. Packages
8. Software Development Processes & Methodologies
9. Appendices
  1. Java: The king is dying
  2. Moving to Kotlin for Android Mobile Applications
  3. When will your project grow up and move to static types
  4. BCSE vs TPSE: Two software industries, two development philosophies
  5. Kotlin beyond Android: A risk?
10. Glossary