Kotlin Quick Start for Java Developers
4.6 (12 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
1,849 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Kotlin Quick Start for Java Developers to your Wishlist.

Add to Wishlist

Kotlin Quick Start for Java Developers

A tutorial for experienced Java developers who want to quickly get up to speed with Kotlin.
4.6 (12 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
1,849 students enrolled
Created by Dave Ford
Last updated 9/2017
Current price: $10 Original price: $20 Discount: 50% off
5 hours left at this price!
30-Day Money-Back Guarantee
  • 3 hours on-demand video
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Key concepts/syntax of the Kotlin language
  • Kotlin in the context of the IntelliJ IDE
  • Object-oriented programming with Kotlin
  • Functional programming with Kotlin
  • Kotlin standard library (highlights)
  • Kotlin-Java interop and migration strategies
  • IntelliJ tips and tricks
  • Setting up Gradle for Kotlin
View Curriculum
  • A basic knowledge of Java
  • A recent copy of IntelliJ (ultimate or community edition)
  • Our examples are in the form of junit test cases, so a basic understanding of what a unit test is, while not required, might be helpful.

In this course, I will guide you through a number of small examples and one modestly complex project. Through these examples, you'll learn the Kotlin language features needed to create professional, production Kotlin applications.

This isn't an in-depth reference covering every detail of the language. Rather, it's a tutorial covering the most important parts of the language, the 80% that I use every day. After completing this course, you'll still have more to learn, but you'll have everything you need to start being productive in Kotlin.

The table of contents of this course is not ordered by Kotlin features. As mentioned above, it is a tutorial, not a reference. Instead, the course is organized in terms of the business functionality of our sample project. We introduce new Kotlin features as the need organically arises in the context of adding new features to our sample project.

We'll be using using the IntelliJ IDE throughout the course. So you'll be learning the fundamentals of Kotlin in the context of one of the world's greatest IDEs. And that's really important because the Kotlin when teamed with IntelliJ provides the most productive programming environment I ever used.

This course is not specific to any particular problem domain (i.e. android apps, server-side web apps, compile-to-JavaScript apps, or native apps). We focus on the core concepts common to all domains. As such, most of our examples take the form junit test cases.

Who is the target audience?
  • Experienced Java Developers wanting to quickly get up to speed with Kotlin fundamentals
Compare to Other Java Courses
Curriculum For This Course
19 Lectures
Introduction and Kotlin Big Picture
1 Lecture 12:11

General overview of Kotlin, without delving into language details.

Preview 12:11
Kotlin Basics
2 Lectures 18:03

In this lesson we create a Kotlin project in IntelliJ, build a hello world app and cover some Kotlin basics.

  • creating projects
  • basic Kotlin syntax
  • top-level functions
  • function args
  • the main function
  • vars
  • vals
  • type inference
  • packages
  • array syntax

    Preview 07:27

    We create a simple class in Kotlin and compare it to the equivalent class in Java. Along the way we learn how to call Java from Kotlin and Kotlin from Java.

    • creating and using Kotlin classes
    • constructors
    • properties versus instance vars
    • automatic properties
    • read-only properties
    • understanding getters and setters
    • using Java classes from Kotlin
    • using Kotlin classes from Java

      Classes and java interop
      Blackjack Project
      15 Lectures 02:36:18

      In this lesson, we setup a new Gradle project for the Blackjack app that we will be creating throughout this workshop.

      • Setting up a gradle project
      • Adding libraries to the gradle classpath
      • The test-first development approach
      • Kotlin-specific extensions to junit
      • Creating a junit test in Kotlin
      • Introducing the blackjack app
      • Creating the Card class
      • Creating a unit test for the Card class
      • Using Kotlin test assertions
      • Cmd D IDE shortcut
      Setting the Blackjack Project, create Card class

      In this lecture we setup a git repository for our project, so we can keep track of each revision of the blackjack application. If you are not interested in git, you can skip this lecture.

      Setup git

      In this lesson we create the suitName getter in Card.

      • Named parameters
      • getter functions
      • single expression getter functions
      • Format code in IntelliJ
      • if expressions
      • when expressions
      • Cmd / IDE shortcut
      • Alt Cmd L IDE shortcut
      Create suitName getter function

      Create Card.valueName

      Add name and points getter to Card

      Validate Card in the init block

      Lambdas and Anonymous Functions

      Add error messages to Card's init block

      Create the Hand class

      Improve the Hand.points getter

      Render Hand to the console

      Create the Deck class

      Add shuffle to Deck

      Game test

      Create Game class
      1 Lecture 00:51

      Final remarks and wrap-up.

      About the Instructor
      Dave Ford
      4.6 Average rating
      11 Reviews
      1,849 Students
      1 Course
      Developer and Trainer for Smart Soft

      I have been a software developer, trainer and consultant since the late 90s. I have worked with dozens of languages and platforms including server-side web, client-side web and mobile.

      My projects include car configurators for global car companies, back office apps for small businesses and everything in between. My company, Smart Soft, does development, training and consulting.