
Learn Kotlin from basics to advanced concepts, including static typing, null safety, lambdas, higher-order functions, extension functions, nullable types, and Android practices, to write efficient, high-quality code.
Explore how the essential Kotlin programming course teaches language concepts through a mix of concept-focused lessons, PowerPoint explanations, hands-on code demonstrations, and guided challenges with solution walkthroughs.
Explore Kotlin's static typing, type inference, and hybrid object oriented and functional paradigms, plus lambdas, null safety, extension functions, and operator overloading for robust Android development.
Discover functional programming in Kotlin as a paradigm that uses pure functions and immutable data to prevent side effects and shared state. Apply lambdas and function composition to improve abstraction.
Discover the advantages of Kotlin: Java interoperability, Android compatibility with older devices, concise syntax, inline functions, and a small footprint, plus strong tooling and open-source support.
Install the Java Development Kit (JDK) and set up the Java path environment variable; download from Oracle, install with the wizard, and verify the setup with the Java C command.
Explore essential Kotlin tools, including the Java to Kotlin converter in the IDE and online, and learn to use Kotlin extensions, Android extensions, and Anko wrappers to streamline Android development.
Create a new Kotlin project in IntelliJ IDEA, choose the Java or Android wizard, point to your Java installation, and explore import, open, and version-control options.
Explore the IntelliJ environment for Kotlin development by navigating menus, toolbars, and editors; configure project settings and code style, manage dependencies, and build, run, and debug projects.
Learn to create your first Kotlin program that prints hello world by writing a top-level main function, using a string literal, and running the build to see output.
Explore variations of hello world in Kotlin through a code-along, reading command line arguments via main, using string templates and an if statement to print arguments.
Organize code with packages using the package keyword and imports, grouping classes and top-level functions. Kotlin supports multiple classes per file, top-level declarations, and importing top-level functions by name.
Explore single-line and block comments, nested Kotlin comments, and best practices for file headers with author and date to describe code across languages.
Explore variables and data types in Kotlin, learn how to declare and assign values with var and val, and understand memory, types, and primitive vs object data.
Compare Kotlin var and val to understand mutable versus immutable variables. Learn how to declare and initialize, and why var can be reassigned while val remains read-only.
Learn Kotlin’s basic data types, including long, int, short, byte, float, double, char, and boolean, how primitives become wrapper objects, use val, and perform literals and type conversions.
Explore Kotlin strings, including literals, read-only variables, indexing, and iteration. Learn to use string templates with interpolation, raw triple-quoted strings, and trim margin for multi-line text.
The Kotlin unit type is the real counterpart to void, a full fledged type usable with generics and as a return value when a function returns nothing.
Explains the nothing type in Kotlin and how it differs from the unit type. Shows how nothing marks non-returning functions and supports precondition checks with the Elvis operator.
Explore smart casts and explicit casts in Kotlin, where the compiler auto-casts after is checks and the as operator, reducing boilerplate and enabling safer type use.
Demonstrate Kotlin's smart cast with the is operator to safely handle any type, and a get string length function that returns the string length or null.
Learn how Kotlin's in, index, invoke, and is operators work with collections, including contains checks and index access, and how range and smart cast improve code readability.
Explore Kotlin's safe call operator, '?', which enables calling methods on nullable values without explicit null checks, reducing boilerplate for properties and methods with clear examples.
Learn how the not null assertion converts a nullable type to a non-null type using the double exclamation point, enabling direct calls while risking a runtime exception if null.
Explore how Kotlin if expressions return values, letting you assign results to variables; use else branches, nesting, and blocks without ternary operators.
Explore the Kotlin when construct as a powerful switch alternative, usable as expression or statement, with or without arguments, exhaustiveness, smart casts, and ranges.
Explore while and do-while loops in Kotlin, comparing them to Java, with post-test behavior, body execution at least once, and practical examples of counter and enumeration loops.
Explore ranges and progressions in Kotlin, using for loops, in and not in checks, and inclusive versus exclusive ends, with step, down to, and range over comparable types.
Explore how Kotlin handles for loops using ranges, in operator, and iterators; compare with traditional loops, nested loops, stepping, and exclusive end via until, and apply to collections and arrays.
Explore return, break, and continue control flow in Kotlin loops, including labeled breaks to outer loops, jumping from nested loops or functions, and returning from the nearest enclosing function.
Code along in Kotlin to build a guess the number game using a random secret number, a do-while loop, and if-else feedback.
Explore how Kotlin defines and calls functions using the fun keyword, with optional parameters, return types, and single expression forms using equals, including unit returns and member functions.
Explore top level functions, defined directly in a file outside any class, at the top, and use them as helper utilities, unlike Java methods, with Kotlin's require for parameter validation.
Enhance readability and maintainability by using named arguments to clearly indicate each parameter; limit functions to three parameters when possible, otherwise name all subsequent arguments to avoid confusion.
Explore infix calls and notation in Kotlin, showing how infix functions between an instance and a parameter enable concise, readable code for pairs, extensions, and class methods.
Explore Kotlin var args and the spread operator; learn how a function accepts a variable number of arguments, wrapped as an array, and how to pass them individually.
Master function overloading in Kotlin by exploring different parameter lists, how return type doesn’t count, and how overloading differs from overriding and static versus dynamic polymorphism.
Demonstrate method overloading in Kotlin by defining several add functions with different parameter types and counts. See how the compiler selects the appropriate overload based on inputs, illustrating compile-time polymorphism.
Explore how the Kotlin standard library uses higher-order functions, lambdas, and extension functions to simplify collections, strings, and Java interop, with apply and with for clean initialization.
Explore Kotlin's repeat, require, assert, and check for formal specifications and contracts. Learn how they differ in exceptions, invocation, and runtime behavior, including lazy evaluation and input validation.
Students will learn
all aspects of the Kotlin Programming Language. They will
also understand how to apply this knowledge to more effectively write
Android applications. This class does not focus on the server side programming aspects of Kotlin. This class does not focus on Android programming. This class focuses
on the Kotlin Programming Language and the advantages of using Kotlin when writing Android applications. You will learn how to effectively use this language to make programming fun and
interesting in Android. I will cover every concept in the Kotlin language and provide exercises to help you learn the language. This course is a deep dive into the Kotlin language, it does not just cover the basics. By the end of this
course you will fully understand the Kotlin langauge and how to use it to write Android applications.
If you have previously used Kotlin on an Android platform, I'm sure this course will deepen your understanding of it. If you have never used it, no problem, you will see that it can help you become a more efficient Android developer.
Throughout the course, you can always contact me personally to get help when you're stuck. I check the discussions regularly to help you at every step along the way.
Lastly, this course is constantly updated and refined based on student feedback. I really appreciate each and every of my students so I listen to your feedback and act on it.