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

Познакомимся?
Android [Kotlin] для начинающих - изображение Иван Ветров

Разработчик по Android-разработке и Kotlin

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

Здесь вы найдете видео и текстовые версии уроков для изучения Kotlin. Все видео можно посмотреть на канале YouTube и VK. Обучение рассчитано на начинающих разработчиков, а также на тех, у кого совсем нет опыта в программировании.

Начните свой путь в мобильную разработку на языке программирования Kotlin! Чтобы в последствии стать профессиональным Kotlin-разработчиком или Android-разработчиком.

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

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

Введение Здравствуйте! Меня зовут Иван Ветров, и я беру на себя смелость провести вас в мир программирования на языке Kotlin. Вы здесь, потому что решили сделать первые шаги к освоению Android-разработки — или, возможно, выбрали направление автотестирования или бэкенда. В любом случае, вы попали в нужное место и в нужное время. Поздравляю! Знаете ли вы, […]

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

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

Здравствуйте! Начнём знакомство с одним из базовых элементов любой программы — переменными. А также рассмотрим, какие типы данных они могут хранить в Kotlin и как они применяются в реальных приложениях. Что такое переменные и зачем они нужны? Переменные можно представить как контейнеры для данных, которые мы видим на экранах смартфонов и компьютеров. Данные бывают разными: […]

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

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

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

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

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

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

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

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

Здравствуйте. Представим, что нам нужно создать часть логики программы, которая решает, можно ли пользователю открыть доступ к определенному контенту в зависимости от его возраста. Как мы можем сделать проверку на достижение совершеннолетия с помощью Kotlin? Этот урок призван разложить по полочкам значения терминов, связанных с логическим типом данных. Конкретно рассмотрим: логические операторы, операторы сравнения и […]

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

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

Операторы ветвления Kotlin» Здравствуйте. Что такое операторы ветвления или условные операторы? Представьте себе, что вы хотите войти в определенное заведение, и сотрудник проверяет ваш возраст. Если вам больше 18 лет, он пропускает вас внутрь, если нет — отправляет домой. Именно так работают условные операторы в программировании. Ключевое здесь «если». В прошлом уроке мы получали булево […]

Смотреть урок →
Урок 6: Циклы в Kotlin. while, do-while

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

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

Смотреть урок →
Урок 7: Цикл for в Kotlin, диапазоны (интервалы)

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

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

Смотреть урок →
Урок 8: Массивы в Kotlin. arrayOf и функции для массивов

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Смотреть урок →

Kotlin-практикум с Иваном Ветровым

Запишись бесплатно и получи приглашение на персональную работу

Бесплатная предзапись

Идет набор на персональный практикум — свободных мест: 8

  • Персональная работа с Иваном Ветровым 10 дней
  • 25 задач с персональным код-ревью
  • Настройка профессиональных инструментов
  • 3 проекта для портфолио + рекомендации
Подробнее про Onboarding
Специальное предложение - изучение Android разработки со скидкой