Уроки по Kotlin с нуля (бесплатный курс с тестами и практикой)

ievetrov – обучение Kotlin. Практические задания по Котлин и Android. Изучение основ программирования.

Меня зовут Иван. Я автор уроков на YouTube по основам Kotlin под ником ievetrov и создатель обучающего бота по Kotlin.

Это бесплатный курс по основам программирования на языке Котлин. Ниже доступны текстовые версии уроков для изучения. Все видео можно посмотреть на канале. А в боте-тренажере вы найдете бесплатные тесты и платную практику по урокам.

Финальный проект курсовой – написание собственного Телеграм бота на Котлин со всеми этапами. От технического задания до публикации на сервере. Подробности тут: KotlinBasicsBot

Обучение рассчитано для начинающих разработчиков, а также, если у вас совсем нет опыта в программировании и вы только знакомитесь с этой сферой. Чтобы в последствии стать профессиональным Kotlin-разработчиком или Android-разработчиком.


Больше информации про выбор пути Kotlin и Android на главной странице сайта (ссылка)

Урок 0: Введение в Kotlin, установка среды разработки IntelliJ IDEA

Настройка IntelliJ IDEA, установка JDK, первая программа Среда программирования Для установки и настройки среды программирования я использую IntelliJ IDEA от компании JetBrains. Установлю ее с помощью Toolbox App. Мне нравится работать через установщик, из-за его удобства. Можно устанавливать и обновлять…

Читать полностью

Урок 1: Переменные. Базовые типы данных. var, val и const val в Kotlin.

Что такое переменные? Если подойти к пониманию переменных абстрактно, можно сказать так, что то, что мы видим на экране компьютеров и смартфонов – в основном это данные в виде чисел и текста. То есть эта информация имеет числовой, строковый и…

Читать полностью

Урок 2: Арифметические операции в языке Kotlin

Создание файла в Котлин Классические операции, такие как сложение, вычитание, умножение, деление – в языке программирования Kotlin работают по тем же законам, что и в математике и используются точно такие же операторы. Перед тем, как начнем практиковаться, произведем небольшой рефакторинг…

Читать полностью

Урок 3: Строки в Kotlin. Интерполяция. Конкатенация.

Конкатенация строк Обсудим возможности строк в Котлине. Представим, что мы программируем бота, который будет приветствовать новых пользователей по имени и сообщать какую-нибудь информацию. Для этого распечатаем такую строку. Задача добавить к исходной строке приветствие. Самое простое, что можно сделать со…

Читать полностью

Урок 4: Boolean – логический тип данных в Kotlin. Операторы сравнения.

Эта информация призвана разложить по полочкам значения терминов, связанных с логическим типом данных. Конкретно рассмотрим: логические операторы, операторы сравнения и присваивания. Начнем с последнего. Раз и навсегда определим, что оператор присваивания, как вы уже знаете – обозначается знаком равно. Он…

Читать полностью

Урок 5: if else when в Kotlin Операторы ветвления или условные операторы.

Оператор if else Напомню гипотетический сценарий программы: при определенном пороге возраста нужно показывать страницу со скрытым контентом. Это ничто иное как условие. Мы говорим — “Если возраст больше или равен 18, то надо сделать какое-то действие”. Условиями напичкана любая программа,…

Читать полностью

Урок 6: Циклы в Kotlin. while, do-while.

Что такое циклы? Циклы позволяют многократно исполнять один и тот же код при определенных условиях. Во-первых, мы избегаем дублирования кода, что в принципе считается хорошим тоном. Во-вторых, количество итераций может быть бесконечно многим и повторять работу какого-либо компонента они должны,…

Читать полностью

Урок 7: Цикл for в Kotlin, диапазоны (интервалы).

Цикл for служит для перебора значений по каким-либо коллекциям, например, по спискам или по диапазонам чисел. В первой части расскажу про диапазоны (или интервалы), а затем перейдем к разбору конструкции for. Диапазоны (интервалы) Диапазоны – это такие объекты, которые содержат…

Читать полностью

Урок 8: Массивы в Kotlin. Функции для массивов.

Создание массивов разных типов Мы уже виртуозно умеем управляться с базовыми типами, такими как Int, String и так далее. Обычно мы создаем ряд переменных и работаем с ними. Представим, что мы делаем приложение с рецептами. И для яичницы есть 5…

Читать полностью

Урок 9: Списки в Kotlin, функции для работы с коллекциями.

Коллекции По определению коллекции – это группы с переменным количеством элементов (или нулем элементов). Объекты внутри как правило имеют единый тип. Коллекции называются коллекциями, потому что корнем их иерархии в языке является класс Collection<T>. Позже, при изучении наследования это станет…

Читать полностью

Урок 10: Функции в Kotlin. Как создать, получить и вернуть параметры.

Давайте поговорим о функциях в Kotlin. Что такое, как создавать, куда они возвращают результат и так далее. Перед нами пустой документ, который, как уже известно имеет главную функцию (или метод) main(). Название этой функции зарезервировано в языке, с нее начинается…

Читать полностью

Урок 11: ООП. Классы и объекты в Kotlin. Сущности и объекты.

Начинаем разговор про классы и объекты в языке программирования Kotlin. Давайте попробую объяснить сначала с точки зрения прикладного использования. Начнем с понятия классы. На протяжении всего обучения до этого момента мы оперировали переменными разных типов. Эти типы были как для…

Читать полностью

Урок 12: Конструкторы в Kotlin (primary, secondary). Блоки инициализации init.

Что такое конструктор в Kotlin Помните, как мы создавали экземпляр класса на прошлом уроке? Объявили переменную, затем инициализировали ее с помощью написания имени класса и его свойств в круглых скобках. Надо разобрать этот момент подробнее. В момент создания объекта, еще…

Читать полностью

Урок 13: Null Safety в Kotlin – операторы ?. !!, NullPointerException (NPE).

Что такое NPE Exceptions (или исключения) в программировании позволяют описать проблему, если в программе что-то пошло не так. Как правило это описание можно увидеть в логах, при возникновении ошибок. NullPointerException – это ошибка, которая возникает, когда используемый объект не инициализирован. Дословно она переводится…

Читать полностью

Урок 14: ООП. Наследование в Kotlin. open/super class, override.

Наследование считается одним из принципов ООП. Суть заключается в том, что можно создать один основной класс с базовыми свойствами и методами и отнаследовать от него более специализированные подклассы. Которые будут переиспользовать свойства и методы из основного класса, а также добавлять…

Читать полностью

Урок 15: Абстрактные классы и интерфейсы в Kotlin. Имплементация.

На прошлом уроке я вскользь упомянул ключевое слово abstract, с помощью которого мы запретили на время создавать экземпляры базового класса. То есть абстрактный класс предназначен по сути только для описания общих данных будущих экземпляров. От него также можно наследоваться, однако,…

Читать полностью

Урок 16: Модификаторы доступа (видимости) в Kotlin. public, private, protected, internal.

Модификаторы доступа это определенные ключевые слова в языке, с помощью которых можно устанавливать уровень видимости для класса, переменной или метода. Под уровнем видимости я имею в виду буквально будет ли видна переменная или функция, из другого класса или пакета. Расширение…

Читать полностью

Урок 17: Сеттеры и геттеры в Kotlin (setter, getter)

Из прошлого урока про модификаторы доступа плавно переходим к пониманию сеттеров и геттеров. Когда мы обращаемся к свойству какого-то класса, можно подумать, что мы делаем это напрямую. Однако, это не так. Kotlin под капотом генерирует так называемые сеттеры и геттеры.…

Читать полностью

Урок 18: ООП. Полиморфизм в Kotlin, 3 типа (Ad hoc, Subtyping, Parametric)

Тема полиморфизма может казаться слегка запутанной. А еще это не редкий вопрос на собеседованиях. Поэтому добавлю немного структурности, чтобы все стало разложено по полкам. Сначала расскажу про основную суть полиморфизма, затем пройдемся по некоторым типам и их описаниям, в заключении…

Читать полностью

Урок 19: ENUM в Kotlin (классы перечислений), TODO() и тип Nothing

Разбираем классы перечислений enum и выясняем чем они полезнее обычных строковых констант. Также затронем функцию TODO(), которая возвращает тип “ничего”. enum – это сокращение от enumeration. Перечисления с помощью enum классов используются, когда нужно перечислить какие-либо объекты. Такими объектами как правило…

Читать полностью