Certificate Authentication

Kotlin Bespoke Certificate for Reynan Belen

Add to LinkedIn

Certificate ID: 
690087
Authentication Code: 
1b695
Certified Person Name: 
Reynan Belen
Trainer Name: 
Uditha bandara
Duration Days: 
5
Duration Hours: 
35
Course Name: 
Kotlin Bespoke
Course Date: 
13 September 2022 13:30 to 26 September 2022 17:30
Course Outline: 

Introduction

Overview of Kotlin

Setting Up the Tools

  • Using the Command Line Tools
  • Installing the JDK for Kotlin
  • Installing and Setting Up the IDE: IntelliJ
  • Installing the Plugins

Getting Started with Kotlin

  • Introduction to Basic Coding with Kotlin
  • Learning the Kotlin Architecture
  • Interacting with Kotlin Using the REPL
  • Creating Variables in Kotlin
  • Understanding the Different Data Types in Kotlin
  • Using Strings in Kotlin
  • Understanding Immutability in Kotlin
  • Implementing Expressions, Statements, and Assignments
  • Using Nullable Variables in Kotlin for Null Safety
  • Creating Your First Stand-Alone Kotlin Application

Implementing Conditional Statements in Kotlin

  • Handling Conditional Program Flow with "if" Statements
  • Handling Options Using "when" Statements
  • Exploring Kotlin's Advanced Capabilities for Conditional Statements
  • Generating Random Numbers Using Conditional Statements

Using Arrays and Lists in Kotlin

Implementing Looping Constructs in Kotlin

  • Coding "for" Loops
  • Coding "while" Loops
  • Implementing "break" Statements
  • Implementing "continue" Statements
  • Using "return" Statements
  • Using Loop Labels
  • Calculating Summation of Numbers Using Loops

Using Functions in Kotlin

  • Creating Functions
  • Declaring Functions
  • Using Parameters and Returning a Value
  • Using Extension Functions
  • Using Inline Functions
  • Using Higher-order Functions

 

Object-Oriented Programming with Kotlin

  • Overview of Programming with Objects
  • Creating a Class
  • Adding Methods to Classes
  • Defining Basic Constructors
  • Using Named Parameters and Default Values
  • Using Open Classes to Allow Inheritance
  • Using Abstract Classes
  • Creating and Using Interfaces
  • Handling Overriding
  • Creating Data Classes
  • Using Singletons and Companion Objects
  • Using Enumerations
  • Grouping Classes into Packages
  • Using Imports
  • Implementing Information Hiding
  • Using Getters and Setters
  • Implementing Visibility Modifiers
  • Understanding Generics
  • Implementing a Generic Stack
  • Using Generic Functions

Using Different Number Systems

  • Using Hexadecimal Numbers
  • Using Binary Numbers
  • Using Bitwise Operators

Implementing Input and Output Functionalities

Using Java from Kotlin

Using Kotlin from Java

Using Spek for Testing

Troubleshooting

Using Advanced Functions in Kotlin

  • Using Nested Functions to Reuse Functionality in Kotlin
  • Using the Infix Notation to Call Functions in Kotlin
  • Declaring Anonymous Functions in Kotlin
  • Using the Inline Modifier for Efficiency in Kotlin
  • Implementing Returns and Local Returns When Working with Advanced Functions in Kotlin
  • Implementing Tail Recursion for Optimization in Kotlin
  • Using Operator Overloading in Kotlin
  • Using Lambdas with Receivers to Create Restrictions on DSL's in Kotlin
  • Invoking Instances in Kotlin
  • Using Functional Constructs in Kotlin
    • Function Composition
    • Currying
    • Other Constructs
  • Summary of Advanced Functional Aspects of Kotlin

Exploring Class Scenarios in Kotlin

  • Implementing Fields in Kotlin
  • Using the "lateinit" Modifier  in Kotlin
  • Understanding Nested and Inner Classes in Kotlin
  • Defining "Static Methods" in Kotlin Using Companion Objects
  • Hiding Class Constructors in Kotlin
  • Marking Classes as Sealed in Kotlin
  • Using Type Aliases in Kotlin
  • Summary of Advanced Features of Kotlin for Classes

Implementing Delegation in Kotlin

  • Understanding the Concept of Member Delegation in Kotlin
  • Delegating Member Functions to Another Class in Kotlin
  • Delegating Properties in Kotlin for Code Reuse Efficiency
  • Using Built-in Delegated Properties in Kotlin
  • Delegating Local Properties in Kotlin for Code Reuse
  • Implementing Extension Properties in Classes in Kotlin
  • Summary of the Different Aspects of Delegation in Kotlin

Gaining an In-Depth Understanding of Generics in Kotlin

  • Understanding Generic Constraints
  • Understanding Variance and Invariance in Generics
  • Using the "out" Modifier to Express Covariance in Generics in Kotlin
  • Expressing Contravariance in Kotlin
  • Exploring the Concept of Type Projections and Star Projections in Kotlin
  • Summary of Advanced Generics in Kotlin

Metaprogramming in Kotlin

  • Overview of Reflection
  • Using Java Reflection with Kotlin Using the Reflection API
  • Using Kotlin's Reflection API
  • Handling Type Erasure in Kotlin
  • Using Reified Generics in Kotlin
  • Defining Custom Annotations in Kotlin
  • Summary of Metaprogramming and Introspection Techniques in Kotlin

Performing Asynchronous Programming in Kotlin

  • Understanding the Problem of Asynchronous Programming
  • Implementing Asynchronous Programming and Coroutines in Kotlin
  • Implementing Async and Await in Kotlin Using Coroutines
  • Implementing Yield in Kotlin
  • Understanding the Advantages of Coroutines Over Reactive Extensions
  • Summary of Coroutines in Kotlin

Additional Topic 

Creating Restful API using Kotlin

Course Name Eng: 
Kotlin Bespoke