Introduction to Kotlin

Introduction to Kotlin

data-analyst-science near Pune
Recorded content
Of Total 10 Hrs.
data-analyst-science near Pune
Duration
3 Months (50 hours)
data-analyst-science near Pune
LIVE sessions
4 Workshops
data-analyst-science near Pune
Hands-On Learning
With Practice Modules
data-analyst-science near Pune
Certificate
With License

Kotlin Training Overview

This Introduction to Kotlin training course teaches attendees how to use all the programming features of Kotlin, refactor Kotlin codebases in IntelliJ, perform TDD using KotlinTest, and generate mock objects using Mockito. Participants also learn how to develop microservices via both Spring MVC and WebFlux and create basic Android applications.

Objective

  • Program using both the functional and object-oriented features of Kotlin.
  • Unit test and refactor Kotlin code via KotlinTest, Mockito and IntelliJ.
  • Write RESTful services in Kotlin via Spring Boot, MVC and WebFlux.
  • Create responsive mobile applications using Kotlin and Android Studio.

Outline

  • • Four coding paradigms within Java 9
  • • Limits imposed by backwards compatibility
  • • The new consensus in language design
  • • A brief history of the Kotlin language
  • • Comparing Kotlin to Scala and Clojure
  • • Comparing Kotlin to Swift and TypeScript
  • • Declarations and type inference
  • • The Kotlin type system and conversions
  • • Packages, access levels and default imports
  • • Nullable types and operators for null safety
  • • Keywords for selection and iteration
  • • Options for declaring basic functions
  • • Overloading, infix functions and ranges

  • • Decompiling Kotlin classes using ‘javap’
  • • Understanding properties and backing fields
  • • A detailed explanation of primary constructors
  • • Adding extra fields and secondary constructors
  • • Extra features automatically added to data classes
  • • Overriding, abstract classes and interfaces
  • • Using object expressions as event handlers
  • • Object declarations and companion objects

  • • Review of core principles of Agile development
  • • Refactoring Kotlin code within IntelliJ
  • • Performing TDD in Kotlin using KotlinTest
  • • Using Mockito to separate types from dependencies
  • • Options for BDD and Property Based Testing

  • • Revision of covariance and contravariance
  • • Common issues with bounded wildcards in Java
  • • How declaration site variance simplifies generics
  • • Support for use-site variance (aka type projection)
  • • Declaring single and multiple constraints on types

  • • Introducing the Kotlin collections library
  • • Working with mutable and immutable collections
  • • Support for destructuring types and collections

  • • Functional Programming
  • • Declaring functions as parameters and return types
  • • Using higher order functions for internal iteration
  • • Creating your own versions of ‘filter’, ‘map’ etc…
  • • Using higher order functions to prevent duplication
  • • Understanding partial invocation and currying
  • • Choosing between code blocks and local functions
  • • Common misunderstandings regarding enclosure

  • • Basic coding using ‘filter’, ‘map’ and ‘forEach’
  • • Testing against a predicate using ‘all’, ‘any’ etc…
  • • Why ‘flatMap’ is such as valuable operation in FP
  • • Distinguishing between ‘fold’, ‘foldRight’ and ‘reduce’
  • • Converting between collection types within FP

  • • General guidelines for mixed language codebases
  • • Considerations when calling Java libraries from Kotlin
  • • Obtaining and using java.lang.Class objects in Kotlin
  • • Tips and idioms for calling Kotlin libraries from Java code

  • • Revision of the Spring Framework and RESTful architecture
  • •Creating Spring Boot projects in Kotlin via the Spring Initialzr
  • • Declaring Spring MVC based RESTful services using annotations
  • • Injecting dependencies and configuring exception handling
  • • Creating reactive microservices using Spring WebFlux
  • • Taking advantage of the Kotlin specific routing DSL

  • • Revision of the Android platform and Dalvik VM
  • • Installing Android Studio and configuring emulators
  • • Introducing the sample project for tracking expenses
  • • Reverse engineering the sample activities and layouts
  • • Performing dependency injection on Android with Dagger 2
  • • Persisting application state using the Realm database

Training Materials

All attendees receive comprehensive courseware.

Course outline and materials are copyrighted and owned by Instil Software.

Software Requirements

• Windows or Mac minimum 8 GB RAM .

• Android Studio installed.

• Provided lab files from Skillmetrix.

Why Online Bootcamps

Develop skills for real career growth

Cutting-edge curriculum designed in guidance with industry and academia to develop job-ready skills

Learn by working on real-world problems

Capstone projects involving real world data sets with virtual labs for hands-on learning

Learn from experts active in their field, not out-of-touch trainers

Leading practitioners who bring current best practices and case studies to sessions that fit into your work schedule.

Structured guidance ensuring learning never stops

24x7 Learning support from mentors and a community of like-minded peers to resolve any conceptual doubts