1. Background: Why learn Kotlin?
  2. Software Types and Methodologies
  3. Coding
  4. Building
  5. Testing
  6. Deployment
  7. Packages (coming soon….)
  8. Appendices
  9. Glossary


  1. Background
    1. Welcome – The introduction page
    2. Why learn Kotlin in addition to python?
    3. Limitations of Kotlin compared to python
    4. Languages:
      1. Compilers and Interpreters
      2. OOP vs Functional: No Contest
    5. Technical Background (for understanding in depth how things work)
      1. Machine Code, Global Memory, Stack and Heap
      2. Variables and Objects
  2. Software Types & Methodologies
  3. Coding
    1. The basics (environment, comments)
    2. Variables and Types
    3. None, Unit, Nothing, void and null
    4. Null Safety
    5. Val , var and immutability
    6. Classes Objects, Class Object & Instances
    7. Enums
    8. Extension Functions and Extension Properties
    9. Lambdas and closures:
    10. Data classes: Collections vs Objects
    11. Lists Dictionaries and Iteration and more (tuple. list, dictionaries, set, map, iterations, named tuple, Pair, data class, map, filter, reduce)
  4. Testing
    1. TDD or not TDD, that is the question
  5. Building: No need with python?
    1. Building in Intellij
    2. Gradle, Maven, Ant, other build tools and History
    3. Maven central vs pypi (the cheese shop)
    4. 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
    5. Legacy Gradle groovy DSL Instructions
      1. Starting with Gradle: creating build.gradle
      2. Gradle with Intellij: using build.gradle
      3. publishing to maven central
  6. Deployment & Implementation – Introducing Kotlin in practice
    1. Kotlin for android mobile applications
    2. Kotlin DSL for templates
    3. Multi Platform
    4. Kotlin mobile: multi-platform mobile development
    5. The Backend: Servers
      1. Hosting: From ‘Bare Metal’ to Shared through to the cloud.
      2. Backend Basics
    6. Data base server – web services (future page)
  7. Packages (coming soon….)
  8. 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?
  9. Glossary