Mô tả

This course is a unique experience on Udemy.

There are loads of Kotlin resources online to choose from, but this is the only course that takes you from a complete beginner in software development, teaches you the fundamentals, advanced topics, and makes you an expert in this field.

In addition, you have loads of practice exercises, challenges and projects to work on. I didn't just add a bunch of exercises at the end. Instead, each concept is put in code and practiced so that we make sure you apply and learn everything through action.

You get over 30 hours of on-demand videos, exercises and most importantly projects to apply the knowledge we talk about.

I've spent years building applications in Kotlin, and years again teaching people how to build code for themselves.

This is the most complete course I've ever done, and it's all to help you on your journey to become an expert developer.

We will cover basic topics such as

  • language fundamentals

  • collections

  • flow control

  • loops

  • handling errors and exceptions

  • functions

  • packages

As well as advanced topics such as

  • Object Oriented Programming

  • Principles of development

  • Standard functions

  • Types of classes

  • Extensions

  • Generics

  • Coroutines

And we will put everything in practice through examples and projects.

If you want to take ONE COURSE to master Kotlin take this course.

Bạn sẽ học được gì

Kotlin development

Kotlin coroutines

Functional programming

Object Oriented Programming

Kotlin language fundamentals

Kotlin extensions

Generics

Principles of software development

Yêu cầu

  • Mac or PC
  • Interest in software development

Nội dung khoá học

42 sections

Introduction

4 lectures
Course introduction
04:43
How this course is structured
03:15
Important message about Udemy reviews
01:08
Engage on social media
00:05

How to

2 lectures
How to take this course
05:36
How to ask questions
06:57

First code

13 lectures
Section objectives
02:41
Installation
03:21
Hello world
06:43
Run the code
04:28
Change the code
01:33
Explanation
08:11
Exercise: Build your own project
00:16
Solution: Build your own project
01:42
Quiz: First code
3 questions
Comments
09:11
Quiz: Comments
2 questions
BONUS: REPL
03:49
Section recap
03:22

Variables and Strings

17 lectures
Section objectives
03:15
Strings
05:22
Chars
01:17
Variables
09:11
Variable names
04:30
Practice: Variables and Strings
03:18
Exercise: Variables and Strings
00:03
Solution: Variables and Strings
02:21
String functions
07:48
Bonus: How to find all available string functions
01:31
Exercise: Discover a new function and use it
00:05
String templates
04:01
Practice: Strings
05:40
Exercise: Strings
00:07
Solution: Strings
01:48
Constants
02:21
Section recap
03:31

User Input

8 lectures
Section objectives
01:15
Getting user input
03:28
Input a number
06:39
Generating a random number
04:59
Practice: Getting user input
02:40
Exercise: Getting user input
00:04
Solution: Getting user input
02:22
Section recap
01:28

Numbers and Variable Types

14 lectures
Section objectives
02:22
What are numbers in Kotlin
02:31
Types of numbers
10:07
Practice: Numbers
03:29
Exercise: Numbers
00:10
Solution: Numbers
03:26
Bonus: How are numbers stored in memory
07:38
Implicit and explicit values
09:14
Type conversions
07:28
Let's talk about Strings again
05:23
Practice: Type conversions
10:02
Exercise: Type conversions
00:05
Solution: Type conversions
02:17
Section recap
02:04

Operators and Booleans

15 lectures
Section objectives
02:34
Arithmetic operators
09:36
Result types
06:00
Assignment operators
04:40
Augmented assignment operators
04:51
Practice: Operators
08:16
Exercise: Operators
00:08
Solution: Operators
03:26
Booleans
01:45
Logical operators
05:53
Comparison operators
07:22
Practice: Logical operators
08:48
Exercise: Logical operators
00:14
Solution: Logical operators
03:58
Section recap
03:11

Nullability

13 lectures
Section objectives
03:17
Null value
09:13
Null safe calls
07:48
Arithmetic operators on null values
04:24
Practice: Null
05:42
Exercise: Null
00:07
Solution: Null
03:07
The Elvis operator
05:48
Non-null Assertions
04:27
Practice: Elvis and assertions
06:00
Exercise: Elvis and assertions
00:07
Solution: Elvis and assertions
02:58
Section recap
03:11

Handling exceptions

9 lectures
Section objectives
02:40
What are exceptions
06:09
Try catch
08:20
Finally
05:16
Throw
04:56
Practice: Try catch finally
05:32
Exercise: Try catch finally
00:10
Solution: Try catch finally
04:35
Section recap
02:05

Collections

8 lectures
Section objectives
02:38
Why are collections useful
04:21
What are collections
08:00
List
03:25
Set
02:07
Map
02:02
Iterators
02:10
Section recap
02:16

List and ArrayList

12 lectures
Section objectives
01:57
What is a List
10:25
ArrayList
09:12
Practice: List and ArrayList
04:44
Exercise: List and ArrayList
00:10
Solution: List and ArrayList
03:48
List functions
05:38
ArrayList functions
06:14
Practice: List functions
07:04
Exercise: List functions
00:11
Solution: List functions
03:18
Section recap
01:52

Set and HashSet

12 lectures
Section objectives
02:23
What is a Set
05:39
HashSet
07:23
Practice: Set and HashSet
05:00
Exercise: Set and HashSet
00:06
Solution: Set and HashSet
03:57
Set functions
05:31
HashSet functions
03:25
Practice: Set functions
05:14
Exercise: Set functions
00:13
Solution: Set functions
04:55
Section recap
02:06

Map and HashMap

8 lectures
Section objectives
02:16
What is a Map
07:54
HashMap
06:32
Map functions
06:07
Practice: Map and HashMap
06:20
Exercise: Map and HashMap
00:11
Solution: Map and HashMap
05:54
Section recap
02:19

Flow control

7 lectures
Section objectives
03:36
What is flow control
03:52
If conditional
02:07
When conditional
03:55
For loop
03:04
While loop
02:34
Section recap
02:53

If conditional

12 lectures
Section objectives
02:21
If statement
09:37
More if statements
05:41
Practice: If statement
08:29
Exercise: If statement
00:12
Solution: If statement
03:45
Shorthand if statement
06:15
Multiple branches
07:25
Practice: If conditional
07:08
Exercise: If conditional
00:16
Solution: If conditional
04:45
Section recap
02:22

Expressions

8 lectures
Section objectives
02:43
Arithmetic and logical expressions
08:20
in keyword
08:53
Boolean returning functions
07:16
Practice: Expressions
07:40
Exercise: Expressions
00:11
Solution: Expressions
03:43
Section recap
01:50

When conditional

8 lectures
Section objectives
01:43
When conditional
07:22
When as a statement
06:11
Capturing the subject
04:34
Practice: When conditional
06:47
Exercise: When conditional
00:09
Solution: When conditional
02:42
Section recap
01:48

For loop

11 lectures
Section objectives
01:58
For loop
07:34
Practice: For loops
06:36
Exercise: For loops
00:12
Solution: For loops
04:06
For loop with ranges
06:02
Nested for loops
07:18
Practice: Extended for loops
05:02
Exercise: Extended for loops
00:10
Solution: Extended for loops
03:08
Section recap
02:06

While loop

11 lectures
Section objectives
01:10
While loop
05:51
Practice: While loop
08:59
Exercise: While loop
00:06
Solution: While loop
02:33
Do while loop
02:24
Nested while loops
03:47
Practice: While loop
09:12
Exercise: Do while loop
00:08
Solution: Do while loop
02:45
Section recap
02:32

Break and continue

8 lectures
Section objectives
01:06
The break keyword
03:08
The continue keyword
02:49
Labels
03:48
Practice: Break and continue
04:18
Exercise: Break and continue
00:12
Solution: Break and continue
03:06
Section recap
01:32

Functions

11 lectures
Section objectives
02:00
What are functions
07:13
Practice: Functions
03:25
Exercise: Functions
00:08
Solution: Functions
03:07
Function parameters
10:17
Function return
11:10
Practice: More functions
06:58
Exercise: More functions
00:08
Solution: More functions
03:01
Section recap
02:44

Functions continued

18 lectures
Section objectives
01:48
Overloading
08:04
Practice: Overloading
06:32
Exercise: Overloading
00:12
Solution: Overloading
04:59
Scope
03:55
Practice: Scope
02:48
Exercise: Scope
00:07
Solution: Scope
03:28
Vararg
02:41
Practice: Vararg
02:28
Exercise: Vararg
00:08
Solution: Vararg
02:46
Local functions
05:44
Practice: Local functions
05:01
Exercise: Local functions
00:08
Solution: Local functions
02:45
Section recap
03:02

Lambda functions

11 lectures
Section objectives
01:41
Lambdas
04:38
Higher order functions
08:51
Practice: Lambdas and Higher Order Functions
05:43
Exercise: Lambdas and Higher Order Functions
00:15
Solution: Lambdas and Higher Order Functions
06:27
Common Higher Order functions
11:14
Practice: Common Higher Order Functions
08:14
Exercise: Common Higher Order Functions
00:07
Solution: Common Higher Order Functions
03:17
Section recap
02:39

Packages

8 lectures
Section objectives
01:26
Packages
11:41
Naming convention
04:49
Imports
03:49
Practice: Packages
02:47
Exercise: Packages
00:10
Solution: Packages
06:22
Section recap
02:15

Project: Hangman

6 lectures
Intro
01:44
Creating the project
05:38
Game art
07:32
Starting position
03:43
Game algorithm
06:16
Completing the game
03:49

Project: Tic tac toe

7 lectures
Intro
01:39
Create the board
05:30
Player move
05:03
Check winner
07:59
Check tie
04:07
Completing the game
06:45
Conclusion
01:12

Object Oriented Programming

17 lectures
Section objectives
03:18
What is OOP
10:59
Classes
06:51
Objects
07:26
Practice: Object Oriented Programming
03:59
Practice: Object Oriented Programming 2
04:45
Practice: Object Oriented Programming 3
05:36
Exercise: Object Oriented Programming
00:15
Solution: Object Oriented Programming
05:04
The "Object" construct
07:03
Classes and Objects
08:27
Inheritance
05:10
Practice: Inheritance
04:04
Practice: Inheritance2
05:51
Exercise: Inheritance
00:14
Solution: Inheritance
05:00
Section recap
03:03

More about classes

23 lectures
Section objectives
02:48
Constructors
07:38
Practice: Constructors
04:12
Exercise: Constructors
00:11
Solution: Constructors
06:58
Getters and Setters
07:52
Practice: Getters and Setters
04:00
Exercise: Getters and Setters
00:15
Solution: Getters and Setters
03:51
The this keyword
06:11
Practice: The 'this' keyword
02:17
Exercise: The 'this' keyword
00:09
Solution: The 'this' keyword
03:08
The init block
03:45
Practice: The init block
02:19
Exercise: The init block
00:05
Solution: The init block
01:31
Companion object
04:20
Practice: Companion object
02:56
Practice: Companion object
10:40
Exercise: Companion object
00:08
Solution: Companion object
02:46
Section recap
02:57

Principles of OOP

19 lectures
Section objectives
02:17
The 4 principles of OOP
06:05
Inheritance
08:44
Practice: Inheritance
04:09
Exercise: Inheritance
00:14
Solution: Inheritance
03:27
Encapsulation and scope
10:23
Practice: Encapsulation and scope
05:44
Exercise: Encapsulation and scope
00:13
Solution: Encapsulation and scope
03:37
Abstraction
10:17
Practice: Abstraction
08:01
Exercise: Abstraction
00:11
Solution: Abstraction
04:38
Polymorphism
07:02
Practice: Polymorphism
03:24
Exercise: Polymorphism
00:09
Solution: Polymorphism
04:32
Section recap
02:15

Interfaces

12 lectures
Section objectives
01:35
What is an interface
07:53
Implementation
05:47
Practice: Interfaces
04:06
Practice: Interfaces2
05:06
Exercise: Interfaces
00:15
Solution: Interfaces
07:16
More interfaces
10:07
Practice: More interfaces
04:53
Exercise: More interfaces
00:12
Solution: More interfaces
05:24
Section recap
01:46

Standard functions

27 lectures
Section objectives
01:11
Standard functions
04:57
Let
08:44
Practice: Let
05:15
Exercise: Let
00:07
Solution: Let
05:37
With
05:29
Practice: With
02:39
Exercise: With
00:08
Solution: With
02:17
Run
05:56
Practice: Run
03:09
Exercise: Run
00:10
Solution: Run
02:02
Apply
05:25
Practice: Apply
04:33
Exercise: Apply
00:12
Solution: Apply
04:20
Also
03:27
Practice: Also
02:01
Exercise: Also
00:05
Solution: Also
02:09
takeIf and takeUnless
05:03
Practice: takeIf and takeUnless
05:29
Exercise: takeIf and takeUnless
00:05
Solution: takeIf and takeUnless
03:17
Section recap
01:45

Other types of classes

19 lectures
Section objectives
01:31
Data classes
05:04
Data class methods
08:17
Practice: Data classes
05:51
Exercise: Data classes
00:08
Solution: Data classes
08:14
Enum classes
07:58
Practice: Enum classes
05:50
Exercise: Enum classes
00:15
Solution: Enum classes
04:42
Sealed classes
07:05
Practice: Sealed classes
02:47
Exercise: Sealed classes
00:11
Solution: Sealed classes
05:52
Nested classes
08:23
Practice: Nested classes
02:19
Exercise: Nested classes
00:09
Solution: Nested classes
02:57
Section recap
02:21

Extensions

12 lectures
Section objectives
01:27
Extensions
04:17
Extension functions
06:13
Extension properties
04:26
Practice: Extension functions
02:20
Exercise: Extension functions
00:07
Solution: Extension functions
01:29
Companion object extensions
03:22
Practice: Companion object extensions
01:19
Exercise: Companion object extensions
00:05
Solution: Companion object extensions
01:11
Section recap
02:13

Generics

10 lectures
Section objectives
01:12
Generic type parameters
08:34
Practice: Generics
03:04
Exercise: Generics
00:09
Solution: Generics
03:14
Type constraints
05:44
Practice: Type constraints
03:19
Exercise: Type constraints
00:18
Solution: Type constraints
05:01
Section recap
01:25

Other concepts

14 lectures
Section objectives
01:11
Type casting (as)
08:33
Practice: type casting
03:59
Exercise: type casting
00:12
Solution: type casting
03:44
lateinit
05:58
Practice: lateinit
02:18
Exercise: lateinit
00:17
Solution: lateinit
02:11
lazy
03:28
Practice: lazy
02:33
Exercise: lazy
00:13
Solution: lazy
02:52
Section recap
01:08

Building a GUI application in Kotlin

8 lectures
Project description
04:10
Set up project
05:35
Building the GUI
05:39
Adding the CSS
01:41
CSS
00:13
Building the application and running the project
05:13
Operators
03:20
Adding the functionality
14:36

First Android application

7 lectures
Section objectives
04:37
Installing Android Studio (short version)
04:39
Install Android Studio on a Mac
07:14
Install Android Studio on a PC
09:48
How to test the app on your phone
03:23
Create the project
07:36
App functionality
06:50

Coroutines & asynchronous programming

12 lectures
Section objectives
02:28
Multithreading (briefly)
07:47
Coroutines
07:01
Hello World
05:54
Scope
06:37
Context
04:54
Suspending functions
05:57
Jobs
07:55
Dispatchers
10:03
async
06:20
withContext
03:12
Exception Handling
08:48

Android Coroutines: Image processing

6 lectures
Section objectives
01:57
Setting up the project
02:56
Gradle dependencies
00:03
Downloading an image
06:40
Challenge
00:40
Applying the filter
04:24

Android Coroutines using Retrofit and MVVM

5 lectures
Intro
02:06
Setting up the project
07:20
Gradle dependencies
00:03
Setting up Retrofit
05:45
Creating the coroutines
06:09

Bonus: Working with the IDE

4 lectures
Debugging
10:43
Finding keyboard shortcuts
03:51
Common shortcuts
07:24
Cleaning and rebuilding
02:28

Conclusion

3 lectures
Conclusion
01:19
Further resources
00:02
Thank you
Processing..

Đánh giá của học viên

Chưa có đánh giá
Course Rating
5
0%
4
0%
3
0%
2
0%
1
0%

Bình luận khách hàng

Viết Bình Luận

Bạn đánh giá khoá học này thế nào?

image

Đăng ký get khoá học Udemy - Unica - Gitiho giá chỉ 50k!

Get khoá học giá rẻ ngay trước khi bị fix.