Знакомство с Kotlin #

Васильев Андрей Михайлович, 2024

Версии презентации

Язык Kotlin #

  • Разработан компанией JetBrains
  • Представлен в 2011 году
  • Версия 1.0 выпущена в 2016 году
  • С 2019 является основным языком разработки под Android
  • Версия 1.6 вышла в ноябре 2021 года
  • Версия 1.7 вышла в июне 2022 года
  • Версия 1.8 вышла в декабре 2022 года
  • Версия 1.9 вышла в июле 2023 года
  • Версия 2.0 вышла в мае 2024 года

Примерно каждые полгода-год выходит новая версия. Тематика последних выпусков — расширение списка поддерживаемых платформ и переход на унифицированный компилятор

Особенности платформы #

  • Можно разрабатывать приложения под несколько платформ:
    • Мобильные приложения Android
    • Настольные приложения без JVM, платформенный бинарный код
    • Приложения под iOS, бинарный код в архитектуре aarch64
    • Серверные веб-приложения
    • Клиентские веб-приложения (платформа JavaScript)
    • Клиентские веб-приложения (платформа WebAssembly)
  • Можно разрабатывать библиотеки с поддержкой множества платформ
  • Можно использовать общую кодовую базу при разработке приложений под разные платформы

Мы будем рассматривать классический вариант — разработку приложений под JVM

Особенности языка Kotlin #

  • Язык общего назначения, т.е. можно разрабатывать любые приложения
  • Поддерживает современные парадигмы программирования:
    • Императивная, процедурная
    • Объектно-ориентированная
    • Функциональная
  • Обладает современным компактным синтаксисом
  • Изначально нацелен на решение практических ограничений языка Java 7/8 (разработчикам JetBrains надоело писать слишком много кода)
  • Динамично развивается, разработчики оставляют право за собой изменять детали работы языка, но делают это через систему устареваний

Изучение языка Kotlin #

Ментальная модель при изучении языка #

diagram

  • В качестве целевой платформы будем использовать только JVM
  • Можно легко перенести идиоматические для Java решения:
    • Деление кода на пакеты
    • Написание классов
    • Создание объектов из классов
    • Использование коллекций (только стоит использовать классы Kotlin: List, Map)
    • Использование перечислений
  • Другие инструменты хорошо дополняют известные элементы и решают проблемы многословности Java-кода
  • Разбираться с поддержкой других платформ в рамках курса не надо

Как разрабатывать приложения на Kotlin #

В рамках данного курса будем рассматривать разработку с использованием системы сборки Gradle и среды разработки IDEA