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: “How to?” in Python and Kotlin
  4. Building
  5. Testing
  6. Deployment: Front and back ends
  7. Packages (coming soon….)
  8. Software Development Processes and Methodologies
  9. Appendices
  10. Glossary

THE 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
      2. 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: “How to?” in Python and 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)

4. Testing

  1. TDD or not TDD, that is the question
  2. to be added

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, 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