Einführung in Kotlin
Kotlin для начинающих: современный язык для Android разработки
Kotlin — современный язык программирования, который с 2017 года стал официальным языком разработки Android приложений. Если ты хочешь создавать приложения для смартфонов Android — Kotlin твой выбор!
История Kotlin
В начале 2000-х годов компания JetBrains создавала инструменты для разработчиков. Все они написаны на Java. И разработчики JetBrains каждый день сталкивались с неудобствами Java: многословность, null-проблемы, отсутствие современных возможностей.
В 2011 году JetBrains объявила о разработке нового языка — Kotlin. Название — в честь острова Котлин в Финском заливе недалеко от Санкт-Петербурга!
🏢 JetBrains — компания из России
JetBrains основана в 2000 году в Санкт-Петербурге. Создала IntelliJ IDEA, PyCharm, WebStorm, CLion — инструменты, которыми пользуются десятки миллионов разработчиков!
Ключевые даты:
- 2011 — Объявление о Kotlin
- 2012 — Open Source
- 2016 — Kotlin 1.0 — первый стабильный релиз
- Май 2017 — Google объявляет Kotlin официальным языком Android!
- 2019 — Kotlin-first: новые Android API пишутся сначала для Kotlin
Kotlin и Java: совместимость
Главная особенность Kotlin — 100% совместимость с Java:
- Можно вызывать Java код из Kotlin и наоборот
- Существующие Java библиотеки работают в Kotlin
- Компилируется в тот же байткод JVM что и Java
Kotlin vs Java
// Java: создание класса Person
public class Person {
private String name;
private int age;
public Person(String name, int age) { this.name = name; this.age = age; }
public String getName() { return name; }
public int getAge() { return age; }
@Override
public String toString() { return "Person{name='" + name + "', age=" + age + "}"; }
}
// Kotlin: то же самое в 1 строку! data class Person(var name: String, var age: Int)
Kotlin автоматически генерирует конструктор, геттеры, сеттеры, toString(), equals(), hashCode() и copy()!
Где используется Kotlin?
📱 Android приложения
Gmail, Google Maps, Google Play — всё переписывается на Kotlin. Более 60% разработчиков Android используют Kotlin!
🖥️ Backend/Server
Ktor (от JetBrains) и Spring Boot с поддержкой Kotlin для создания серверов и API.
🔀 Multiplatform
Kotlin Multiplatform Mobile — один код для iOS и Android!
Первая программа на Kotlin
// Традиционная программа Hello World
fun main() {
println("Hello, World!")
}
Hello, World!
fun— ключевое слово для объявления функцииmain— главная функция, с которой начинается выполнениеprintln— вывод строки с переносом (print line)
Персональное приветствие:
fun main() {
val name = "Саша"
val age = 12
println("Привет! Меня зовут $name") // String template!
println("Мне $age лет")
println("5 + 3 = ${5 + 3}") // Выражение в ${}
}
Особенности Kotlin
Null Safety
var name: String = "Kotlin" // name = null // ❌ ОШИБКА! var nullableName: String? = "Kotlin" nullableName = null // ✅
Smart Cast
fun describe(obj: Any) {
if (obj is String) {
println("Строка: ${obj.length}") // Kotlin знает тип!
} else if (obj is Int) {
println("Число: ${obj + 1}")
}
}
Data Classes
data class Student(val name: String, val grade: Int)
val s = Student("Саша", 5)
println(s) // Student(name=Саша, grade=5)
val copy = s.copy(grade = 4)
Таблица сравнения Kotlin vs Java
| Возможность | Kotlin | Java |
|---|---|---|
| Null Safety | ✅ Встроена | ❌ NullPointerException |
| Data classes | 1 строка | 50+ строк |
| Extension functions | ✅ | ❌ |
| Coroutines | ✅ Встроены | Сложно |
| Краткость кода | 30% меньше | Много boilerplate |
Итоги урока
- Kotlin создан JetBrains (Санкт-Петербург) в 2011 году
- С 2017 — официальный язык Android разработки
- 100% совместим с Java
- fun main() — точка входа; println() — вывод
- String templates: $variable и ${expression}
- val — неизменяемая, var — изменяемая переменная
💪 Дополнительные упражнения
Практика — ключ к успеху в программировании. Чем больше кода ты пишешь, тем лучше ты становишься. Не бойся экспериментировать — ошибки это часть обучения!
- Напиши программу, которая считает количество гласных в строке
- Создай функцию, которая проверяет является ли число простым
- Реализуй простую игру "угадай число" с подсказками
- Напиши калькулятор с четырьмя операциями
- Создай программу-органайзер задач (TODO list)
📋 Лучшие практики
Хороший код — это не просто работающий код. Это код, который легко читать, понимать и изменять. Следуй этим принципам:
- DRY (Don't Repeat Yourself) — не повторяй один и тот же код, выноси его в функции
- KISS (Keep It Simple, Stupid) — пиши простой и понятный код
- Именование — переменные должны отражать смысл:
userAgeлучше чемx - Комментарии — комментируй ПОЧЕМУ, а не ЧТО делает код
- Маленькие функции — каждая функция должна делать одно дело
📚 Полезные ресурсы для дальнейшего изучения
- Официальная документация — лучший источник правды
- Stack Overflow — ответы на вопросы программистов
- GitHub — смотри на реальные проекты с открытым кодом
- YouTube — видеоуроки для визуальных учеников
- Практические проекты — создавай что-то настоящее!
💪 Дополнительные упражнения
Практика — ключ к успеху в программировании. Чем больше кода ты пишешь, тем лучше ты становишься. Не бойся экспериментировать — ошибки это часть обучения!
- Напиши программу, которая считает количество гласных в строке
- Создай функцию, которая проверяет является ли число простым
- Реализуй простую игру "угадай число" с подсказками
- Напиши калькулятор с четырьмя операциями
- Создай программу-органайзер задач (TODO list)
📋 Лучшие практики
Хороший код — это не просто работающий код. Это код, который легко читать, понимать и изменять. Следуй этим принципам:
- DRY (Don't Repeat Yourself) — не повторяй один и тот же код, выноси его в функции
- KISS (Keep It Simple, Stupid) — пиши простой и понятный код
- Именование — переменные должны отражать смысл:
userAgeлучше чемx - Комментарии — комментируй ПОЧЕМУ, а не ЧТО делает код
- Маленькие функции — каждая функция должна делать одно дело
📚 Полезные ресурсы для дальнейшего изучения
- Официальная документация — лучший источник правды
- Stack Overflow — ответы на вопросы программистов
- GitHub — смотри на реальные проекты с открытым кодом
- YouTube — видеоуроки для визуальных учеников
- Практические проекты — создавай что-то настоящее!
💪 Дополнительные упражнения
Практика — ключ к успеху в программировании. Чем больше кода ты пишешь, тем лучше ты становишься. Не бойся экспериментировать — ошибки это часть обучения!
- Напиши программу, которая считает количество гласных в строке
- Создай функцию, которая проверяет является ли число простым
- Реализуй простую игру "угадай число" с подсказками
- Напиши калькулятор с четырьмя операциями
- Создай программу-органайзер задач (TODO list)
📋 Лучшие практики
Хороший код — это не просто работающий код. Это код, который легко читать, понимать и изменять. Следуй этим принципам:
- DRY (Don't Repeat Yourself) — не повторяй один и тот же код, выноси его в функции
- KISS (Keep It Simple, Stupid) — пиши простой и понятный код
- Именование — переменные должны отражать смысл:
userAgeлучше чемx - Комментарии — комментируй ПОЧЕМУ, а не ЧТО делает код
- Маленькие функции — каждая функция должна делать одно дело
📚 Полезные ресурсы для дальнейшего изучения
- Официальная документация — лучший источник правды
- Stack Overflow — ответы на вопросы программистов
- GitHub — смотри на реальные проекты с открытым кодом
- YouTube — видеоуроки для визуальных учеников
- Практические проекты — создавай что-то настоящее!
💪 Дополнительные упражнения
Практика — ключ к успеху в программировании. Чем больше кода ты пишешь, тем лучше ты становишься. Не бойся экспериментировать — ошибки это часть обучения!
- Напиши программу, которая считает количество гласных в строке
- Создай функцию, которая проверяет является ли число простым
- Реализуй простую игру "угадай число" с подсказками
- Напиши калькулятор с четырьмя операциями
- Создай программу-органайзер задач (TODO list)
📋 Лучшие практики
Хороший код — это не просто работающий код. Это код, который легко читать, понимать и изменять. Следуй этим принципам:
- DRY (Don't Repeat Yourself) — не повторяй один и тот же код, выноси его в функции
- KISS (Keep It Simple, Stupid) — пиши простой и понятный код
- Именование — переменные должны отражать смысл:
userAgeлучше чемx - Комментарии — комментируй ПОЧЕМУ, а не ЧТО делает код
- Маленькие функции — каждая функция должна делать одно дело
📚 Полезные ресурсы для дальнейшего изучения
- Официальная документация — лучший источник правды
- Stack Overflow — ответы на вопросы программистов
- GitHub — смотри на реальные проекты с открытым кодом
- YouTube — видеоуроки для визуальных учеников
- Практические проекты — создавай что-то настоящее!
💪 Дополнительные упражнения
Практика — ключ к успеху в программировании. Чем больше кода ты пишешь, тем лучше ты становишься. Не бойся экспериментировать — ошибки это часть обучения!
- Напиши программу, которая считает количество гласных в строке
- Создай функцию, которая проверяет является ли число простым
- Реализуй простую игру "угадай число" с подсказками
- Напиши калькулятор с четырьмя операциями
- Создай программу-органайзер задач (TODO list)
📋 Лучшие практики
Хороший код — это не просто работающий код. Это код, который легко читать, понимать и изменять. Следуй этим принципам:
- DRY (Don't Repeat Yourself) — не повторяй один и тот же код, выноси его в функции
- KISS (Keep It Simple, Stupid) — пиши простой и понятный код
- Именование — переменные должны отражать смысл:
userAgeлучше чемx - Комментарии — комментируй ПОЧЕМУ, а не ЧТО делает код
- Маленькие функции — каждая функция должна делать одно дело
📚 Полезные ресурсы для дальнейшего изучения
- Официальная документация — лучший источник правды
- Stack Overflow — ответы на вопросы программистов
- GitHub — смотри на реальные проекты с открытым кодом
- YouTube — видеоуроки для визуальных учеников
- Практические проекты — создавай что-то настоящее!
💪 Дополнительные упражнения
Практика — ключ к успеху в программировании. Чем больше кода ты пишешь, тем лучше ты становишься. Не бойся экспериментировать — ошибки это часть обучения!
- Напиши программу, которая считает количество гласных в строке
- Создай функцию, которая проверяет является ли число простым
- Реализуй простую игру "угадай число" с подсказками
- Напиши калькулятор с четырьмя операциями
- Создай программу-органайзер задач (TODO list)
📋 Лучшие практики
Хороший код — это не просто работающий код. Это код, который легко читать, понимать и изменять. Следуй этим принципам:
- DRY (Don't Repeat Yourself) — не повторяй один и тот же код, выноси его в функции
- KISS (Keep It Simple, Stupid) — пиши простой и понятный код
- Именование — переменные должны отражать смысл:
userAgeлучше чемx - Комментарии — комментируй ПОЧЕМУ, а не ЧТО делает код
- Маленькие функции — каждая функция должна делать одно дело
📚 Полезные ресурсы для дальнейшего изучения
- Официальная документация — лучший источник правды
- Stack Overflow — ответы на вопросы программистов
- GitHub — смотри на реальные проекты с открытым кодом
- YouTube — видеоуроки для визуальных учеников
- Практические проекты — создавай что-то настоящее!
💪 Дополнительные упражнения
Практика — ключ к успеху в программировании. Чем больше кода ты пишешь, тем лучше ты становишься. Не бойся экспериментировать — ошибки это часть обучения!
- Напиши программу, которая считает количество гласных в строке
- Создай функцию, которая проверяет является ли число простым
- Реализуй простую игру "угадай число" с подсказками
- Напиши калькулятор с четырьмя операциями
- Создай программу-органайзер задач (TODO list)
📋 Лучшие практики
Хороший код — это не просто работающий код. Это код, который легко читать, понимать и изменять. Следуй этим принципам:
- DRY (Don't Repeat Yourself) — не повторяй один и тот же код, выноси его в функции
- KISS (Keep It Simple, Stupid) — пиши простой и понятный код
- Именование — переменные должны отражать смысл:
userAgeлучше чемx - Комментарии — комментируй ПОЧЕМУ, а не ЧТО делает код
- Маленькие функции — каждая функция должна делать одно дело
📚 Полезные ресурсы для дальнейшего изучения
- Официальная документация — лучший источник правды
- Stack Overflow — ответы на вопросы программистов
- GitHub — смотри на реальные проекты с открытым кодом
- YouTube — видеоуроки для визуальных учеников
- Практические проекты — создавай что-то настоящее!