Kotlin в IntelliJ IDEA

Писать программы на почти любом языке программирования можно в любом текстовом редакторе. Такие редакторы не следует путать с текстовыми приложениями, предназначенными для набора и оформления обычных текстов, которые читают люди. В то же время современные текстовые редакторы, предназначенные для набора исходного кода программ, поддерживают подсветку синтаксиса (выделяют слова разным цветом в зависимости от их значения), нередко выполняют автодополнение кода и автоматически делают отступы.

Однако подсветка синтаксиса не хранится в самом файле программы. В файле сохраняется только исходный код. Файл может быть открыт в любом другом текстовом редакторе, поддерживающем другой вариант подсветки или вообще ее не поддерживающий.

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

В случае Kotlin исходный код компилируется (в одном из вариантов) в байт-код Java. Такой код исполняется посредством виртуальной машины Java, следовательно, на компьютере также должна быть установлена JVM.

В настоящее время программисты реже озадачивают себя подбором наиболее подходящего редактора и установкой компиляторов. Чаще используют готовые среды разработки – приложения по принципу "все в одном". Здесь и редактор, и возможность запускать программу нажатием одной кнопки. За сценой среда сама компилирует и, в случае байт-кода вызывает JVM для его исполнения. Также такие IDE (integrated development environment – интегрированная среда разработки) содержат множество дополнительных инструментов, плагинов, возможность подключать различные библиотеки, расширяющие средства языка. Все, что необходимо для профессиональной разработки.

Самой адаптированной под Kotlin средой разработки является IntelliJ IDEA. Раньше в ней писались преимущественно программы на Java. Однако с появлением Kotlin данная среда стала поддерживать и его, так как разработчиками IntelliJ IDEA и языка Kotlin является одна и та же фирма – Jet Brains. Это не значит, что программировать на Котлин можно только в IntlliJ IDEA. Однако, особенно для начинающих, ее следует считать лучшим выбором, так как она помогает определять не только ошибки в коде, но также указывает на любые недочеты.

Фирма Jet Brains предоставляет среду в двух вариантах – Ultimate (максимальный) и Community (общественный). Второй является бесплатным. Его возможностей достаточно для большинства разработчиков. Скачать среду можно с сайта компании по адресу https://www.jetbrains.com/idea/

Надеемся, вы сами сможете ее установить в своей операционной системе. Если у вас возникнут затруднения, можно обратиться к справочной информации на сайте Jet Brains – https://www.jetbrains.com/help/idea/installation-guide.html . Далее мы рассмотрим создание проекта на Kotlin и некоторые настройки IDE, делающие разработку в ней более удобной.

Если ни одни из предыдущих проектов не открыт, вы увидите окно "Welcome", в котором надо выбрать "Create New Project".

Создание нового проекта в IntelliJ IDEA

Далее в первом окне "New Project" в списке слева выбираем "Kotlin". Правее – способ сборки и исполнения – "JVM | IDEA".

Выбор языка Kotlin в IntelliJ IDEA

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

Имя и местонахождение проекта

После того как вы нажмете кнопку Finish, среда начнет генерировать систему каталогов и конфигурационные файлы проекта. Это может занять некоторое время. В конечном итоге слева на вкладке Project вы увидите дерево каталогов.

Дерево каталогов проекта на Kotlin в IntelliJ IDEA

Файлы с вашим программным кодом лучше всего помещать в каталог src. Он для этого и предназначен. Src – по всей видимости сокращение от "source code" – исходный код.

Создавать новые файлы можно как через главное меню (File → New → …), так и через контекстное. В последнем случае надо кликнуть по каталогу src правой кнопкой мыши, выбрать New → Kotlin File/Class.

Создание нового файла с кодом на Kotlin

В дальнейшем, если потребуется организовать файлы по каталогам внутри src, то подкаталоги можно создавать командой New → Package. И уже в них создавать новые файлы.

При создании файла указывается его имя (произвольно), можно без расширения. В данном курсе мы не будем создавать классы, поэтому всегда выбираем вариант File.

Имя файла

Среда сама добавит к файлу расширение ".kt", так как файл будет содержать код на Kotlin. Также файл откроется в рабочей области окна. Запишем в него небольшую программу на языке Kotlin.

fun main() {
    println("hello - привет")
}

Пример программы на Kotlin

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

Слово "main" – название, или имя, функции. Имя функции может быть любым, но не в данном случае. В любой программе на языке Kotlin должна быть одна функция с именем main. Эта функция, с которой программа начинается. Если ее не будет, программа не сможет начать выполняться. Подобные функции или классы (как в некоторых других языках) называют точками входа. Однако во многих языках программы начинаются не так, а с верхней строчки кода, не считая так называемых импортов и объявлений.

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

Далее идет открывающая фигурная скобка, которой соответствует закрывающая фигурная скобка в самом конце. Между фигурными скобками находится тело функции. Оно выполняется при вызове функции. Функция main() вызывается, когда программа запускается.

В нашем примере тело функции состоит всего из одной строки кода – println("hello - привет"). Команда println() – это тоже функция. Но не такая как main(). Тело main() мы пишем сами, а тело println() написали разработчики языка и встроили в него. Это так называемая built-in-функция. На данном этапе мы можем ее считать одной из команд языка, как считаем командой ключевое слово fun.

Итак, из функции main() вызывается другая функция. Обратите внимание, что main() мы определяем, а println() вызываем. Это разные вещи. Функция вызывается, когда нам надо, чтобы ее тело выполнилось. Но до этого она должна быть определена. Мы не видим тела функции println(), но оно где-то есть.

В функцию println() можно что-то передать, то есть в определении этой функции предусмотрены параметры. В данном случае мы передаем в функцию строку "hello - привет". Строка заключается в кавычки.

Что делает функция println()? Она выводит то, что ей передали, в консоль. Каким образом это запрограммировано в ее теле, нас не волнует. Достаточно знать, что если мы вызовем функцию, то увидим на экране переданную ей строку.

Обратите внимание на маленький зеленый треугольник, расположенный перед первой строчкой кода. Если у вас его нет, то закройте IntelliJ IDEA и откройте среду снова. Если кликнуть по треугольнику, появится меню, где надо выбрать первый вариант "Run …".

Запуск программы в IntelliJ IDEA

После этого среда выполнит компиляцию и сборку проекта, а также выполнит его. Результат выполнения программы вы увидите внизу на вкладке "Run". В данном случае это будет строка "hello - привет".

Пример выполнения программы

Строка "Process finished with exit code 0" говорит, что программа закончилась так как надо, а не аварийно или с ошибкой.

Снова обратим внимание на структуру каталогов проекта. В нем появится каталог "out", в котором находятся скомпилированные файлы проекта.

Каталог out с файлами .class

Мы можем посмотреть, что содержит StartKt.class, например, с помощью консольной утилиты cat.

Как выглядит байт-код Java

Так выглядит байт-код Java нашей простейшей программы.

После первого запуска программы IntelliJ IDEA сама создаст конфигурацию запуска, после чего программу также можно запускать, нажимая треугольник на панели инструментов (Shift + F10).

Способы запуска проекта в IntelliJ IDEA

IntelliJ IDEA – настраиваемая среда. Если вас не устраивают, например, размер шрифта и тема оформления, их можно поменять. Делается это в окне настроек (File → Settings).

Изменение темы IntelliJ IDEA

Darcula – темная тема оформления.

Включение возможности масштабирования шрифта в IntelliJ IDEA

Для того, чтобы размер шрифта в редакторе кода можно было менять, прокручивая колесо мыши при зажатом Ctrl, надо установить соответствующий флажок в разделе Editor → General.

Вопросы:

  1. Каким цветом IntelliJ IDEA подчеркивает и выделяет ошибки в коде?

  2. Есть ли разница между командами println() и print()?

  3. Что будет, если в конце выражения println("…") поставить точку с запятой?

  4. Возникнет ли ошибка, если перед println() убрать отступ? Зачем он нужен?

PDF-версия курса с ответами к практическим работам

Приложение для Android "Kotlin. Курс"