Kotlin is
Statically typed programming language for modern multiplatform applications
100% interoperable with Java and Android
Kotlin is a concise and safe language that helps to avoid lots of common problems in software development. Being interoperable with Java allows Kotlin to use all the experience and benefits of Java platform and ecosystem.
In this course we will learn how to use Kotlin and it's ecosystem for backend development.
We will
- give you a kickstart into the Kotlin world
- provide relevant materials and links
- share the practice of Kotlin usage in production
You will
- explore how to work with mature java frameworks and brand new Kotlin ones
- learn how to build and ship Kotlin applications
- create a final project in small teams
- Lang: Kotlin, Java
- Frameworks: Spring(boot, data, mvc)
- Build: Gradle (Kotlin DSL)
- Transport: Http, Websocket, mq(?)
- Storage: PostgreSQL
- Containerization: Docker
- CI/CD: Travis-Ci, codecov, codacy
- Version control: Git
This class is intended for experienced developers who has at least 1 year of Java development experience or 3+ years development in any other language.
We expect you know or able to know:
- How to install JDK and setup IDE
- Build tools basics (Maven / Gradle / Ant / ...)
- OOP basics (class, interface, polymorphism)
- What is Http and how it works
- How git works (clone, pull, fetch, push, rebase)
We expect you to spend 10+ hours a week on coding/reading/learning.
- learn anything about Android
- java test
- problem solving skill
- collections(list, map, set, complexity)
- OOP
- git test
- clone
- pull / push / commit
- rebase
- general test
- todo
Working in a small groups (2-3 devs) We will create a multiplayer backend for a Bomberman game.
Your project will be implemented using microservice architecture:
- 2+ microservices (metagame, matchmaking, game server, ...)
- frontend application (provided by us)
- http / websocket / mq transport
For curious there will be a possibility to create kotlin-js project for your bomberman frontend.
-
Sergey Rybalkin
- 9 years development experience in Java
- 2 years development experience in Kotlin
- author of Java development course
-
Sasha Pomosov
- 7 years development experience in Java
Level: Intermediate
Format:
- Lectures: offline (no recording)
- Slides: online
- Code (examples, assignments): online
- All other materials: online
Language:
- Lectures: Russian
- Slides: English
Hardware Req:
- laptop
-
Kotlin introduction #1
- Language overview
- Basic syntax
- Hello world application
-
Kotlin introduction #2
- Extension functions
- FP in Kotlin, high order functions
- interaction with Java
- Kotlin bytecode
-
Kotlin introduction #3
- OOP in Kotlin
- class hierarchy
- object midifier and singletones
- type system
- spring
- introduction #1
- OOP in Kotlin
-
Generics and Collections
- Generics basics
- Functiona API
- Collcetions
- spring
- introduction #2
-
Web #1
- spring
- web
- mvc
- flux
- http
- client
- server
- okhttp
- spring
-
Hackaton/Workshop
- Making application based on previously covered topics
-
Advanced Kotlin #1
- operators
- contracts
- web #2
-
Introduction to course Project
-
Storage
- PostgreSql basics
- Spring-data
- Kotlin exposed
-
Infrastructure
- Docker
- Shipment / Deployment
- Routing / Load Balancing
-
Hackaton/Workshop
- Making application based on previously covered topics
-
Advanced Kotlin #2
- Kotlin DSL
- Gradle Kotlin DSL overview
-
Practical Concurrency
- Common problems
- Memory model
- Kotlin-specific features
- Coroutines
-
Additional topics
- ecosystem
- frameworks
- etc
-
Exam
- Demonstration and review of The Project