что такое kotlin в intellij idea
Что такое Kotlin
И зачем он андроид-разработчику.
Kotlin — это язык программирования компании JetBrains, который за 9 лет потеснил Java и стал важным инструментом андроид-разработчиков. Разберёмся, что особенного в Kotlin, какие у него риски и с чего начать.
🤔 Зачем понадобился ещё один язык вместо Java
На этот вопрос есть два ответа.
Официальный ответ: в 2017 году языком Kotlin пользовались около миллиона программистов, и им не хватало поддержки на Андроиде. Гугл пошёл навстречу разработчикам и сделал Kotlin приоритетным языком на Андроиде.
Догадки и слухи: с 2010 года Гугл судится с компанией Oracle по поводу использования Java в системе Андроид. Вот почему:
в основе первых версий Андроида лежала виртуальная машина Dalvik,
Dalvik построена на основе платформы Apache Harmony,
Apache Harmony — это платформа Java, на которую у Гугл нет лицензии.
В 2010 году Oracle потребовала от Гугл миллиардную компенсацию и трижды выигрывала суд: в 2012, 2014 и 2015-м. Дело не закрывалось, поскольку в Гугл отказывались столько платить. В 2016 году иск вырос до девяти миллиардов, однако суд встал на сторону Гугл. Дело висит с 2017 года, а Гугл постепенно переводит всю андроид-инфраструктуру с Java на Kotlin.
✅ Преимущества
Совместимость с Java. Kotlin и Java можно использовать в одном проекте. Для этого у языка Kotlin есть собственный компилятор, который выдаёт байт-код, совместимый с обычной Java-машиной. Получается, что с точки зрения Java неважно, из какого языка был сделан байт-код.
Упрощенная схема взаимодействия Java и Kotlin
Выразительность. Kotlin — это компактный язык без кусков избыточного кода:
В простых программах у Kotlin проще синтаксис и меньше вспомогательных конструкций
В некоторых случаях код на Kotlin может быть в несколько раз короче, чем код на Java
Безопасность. Язык Kotlin и его среда программирования — это продукт одной компании, которая постоянно обновляет базу ошибок и помогает разработчикам редактировать код до момента исполнения программы.
На этапе компиляции в Kotlin срабатывает null-защита: Kotlin автоматически проверяет типы данных, отслеживает null-значения и предотвращает появление NullPointerException — распространённой Java-уязвимости.
❌ Недостатки
Низкая скорость. Чаще всего разработчики жалуются на непредсказуемую скорость компиляции. По быстродействию Kotlin уступает Java, поскольку в его основе лежит виртуальная машина JVM — фундаментальная программа, выпущенная специально под язык Java, а не под Kotlin.
Другие нюансы смотрите в твиттере Даниила Попова — андроид-инженера Авито, который изучает Kotlin на практике и рассказывает о свежих технических багах.
Маленькое сообщество и единственный владелец языка. Kotlin всё ещё не такой популярный, как Java. Причина в том, что Kotlin — это не продукт Гугл. Разработчики боятся, что через какое-то время Гугл откажется от него, придумает какую-то свою версию языка или поссорится с JetBrains.
Малочисленное сообщество тормозит развитие Kotlin: под него медленно выпускаются новые библиотеки и обновления, а для решения технических проблем нужно обращаться в баг-трекер — написать в техподдержку JetBrains, добавить свою проблему в очередь задач, ждать и надеяться на её исполнение.
В сентябре 2020 в баг-трекере Kotlin около 40 000 задач, которые закрываются по мере критичности. До некоторых задач очередь доходит через несколько лет, но есть и те, что остаются нерешёнными — в таких условиях разработчики вынуждены искать костыльные решения или переходить на другой язык с развитым сообществом.
Для чего используется
Kotlin используется для создания мобильных приложений, веб-разработки, бэкенда и мультиплатформенного программирования:
Для мультиплатформенного программирования предусмотрены технологии разработки интерфейсов в React, создания серверного HTTP API в Ktor и адаптирования андроид-приложений под операционную систему iOS.
Google, Netflix, Twitter, Uber, Netflix и другие компании переводят некоторые свои продукты на Kotlin. Кейсы есть на developer.android.com в разделе «Истории разработчиков».
Андроид-приложения с оптимизированным Kotlin-кодом. Источник: developer.android.com
С чего начать
Почитайте у нас статью про Java — это язык, на котором написано множество приложений, библиотек и фреймворков. Перечисленное часто используется в мобильной разработке и в обозримом будущем не будет переводиться на Kotlin.
Скачайте IntelliJ IDEA или Android Studio. Обе программы — это среда разработки под язык Kotlin. IntelliJ IDEA больше подходит для сайтов и десктопных программ, а Android Studio — для разработки мобильных приложений под андроид.
Установите плагин EduTools — это специальный инструмент, разработанный для изучения языка Kotlin. Есть в IntelliJ IDEA и Android Studio. Познакомьтесь с официальным руководством по языку Kotlin. Если возникнут сложности с переводом — посмотрите неофициальную русскоязычную версию.
BestProg
Kotlin. Практика. Создание простейшего проекта. Программа «Hello world!». Первое знакомство с интерфейсом IntelliJ IDEA
Содержание
Поиск на других ресурсах:
1. Создание простейшего проекта
Интегрированная среда разработки программ на разных языках IntelliJ IDEA от компании JetBrains позволяет создавать программное обеспечение на разных языках: Java, Python, Scala, Kotlin, PHP, Java Script и других.
Для создания нового проекта на языке Kotlin вызывается отдельное окно (рисунок 1) в одном из случаев:
Рисунок 1. Окно создания нового проекта
2. Команда New Project
Для задания нового проекта в системе IntelliJ IDEA и создания нового проекта на языке Kotlin нужно выполнить следующие действия (рисунок 2):
Рисунок 2. Команда New Project из меню Projects
3. Окно выбора шаблона на языке Kotlin
После выбора команды создания нового пректа ( New Project ) открывается окно, в котором нужно уточнить платформу на основе которой будет построен новый проект.
На рисунке 3 изображен выбор языка Kotlin и шаблона Application, который позволяет создавать Backend-приложения с Kotlin/JVM. Согласно поставленной задаче можно выбирать другой шаблон проекта (например, для мобильных приложений и т.п.).
Также есть возможность выбирать:
Рисунок 3. Выбор типа приложения на языке Kotlin. Выбирается шаблон Application
После выбора кнопки Next система перейдет к следующему окну.
4. Указание дополнительных опций создания проекта
На этом этапе происходит уточнение следующих опций проекта (рисунок 4):
Рисунок 4. Окно настройки дополнительных опций проекта
Рисунок 5. Установка шаблона Console Application (консольное приложение)
После щелчка на кнопке Finish будет создано новое консольное приложение и система завершит процесс создания нового приложения.
5. Окно программы «Hello World!»
На этом этапе консольное приложение (Console Application) создано и окно программы выглядит примерно так, как показано на рисунке 6.
По умолчанию система предлагает программный код, который выводит на экран классическое «Hello world!».
6. Запуск проекта на выполнение
Созданный проект запускается одним из следующих способов:
Рисунок 7. Команда запуска проекта на выполнение
Рисунок 8. Окно указания модуля, который нужно запустить
7. Просмотр результата. Дальнейшие запуски проекта (программы)
Результат выполнения программы отображается в нижней части как показано на рисунке 9. Теперь можно изменять код программы, решать различные задачи. Дальнейшие запуски программы будут более упрощенными и доступными. На рисунке 9 стрелочками показаны способы запуска нашей программы.
Рисунок 9. Окно IntelliJ IDEA после запуска проекта на выполнение
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/
Если ни одни из предыдущих проектов не открыт, вы увидите окно «Welcome», в котором надо выбрать «Create New Project».
Далее в первом окне «New Project» в списке слева выбираем «Kotlin». Правее – способ сборки и исполнения – «JVM | IDEA».
В следующем окне вам надо как-нибудь назвать свой проект и указать место его размещения на диске (можно оставить предложенные средой). Поскольку в курсе мы будем создавать множество мелких программ, и если вы захотите сохранить некоторые из них, имеет смысл делать это в одном проекте, создавая в нем разные файлы. В данном случае создавать под каждый урок отдельный проект будет не рационально.
После того как вы нажмете кнопку Finish, среда начнет генерировать систему каталогов и конфигурационные файлы проекта. Это может занять некоторое время. В конечном итоге слева на вкладке Project вы увидите дерево каталогов.
Среда сама добавит к файлу расширение «.kt», так как файл будет содержать код на Kotlin. Также файл откроется в рабочей области окна. Запишем в него небольшую программу на языке Kotlin.
Программа начинается с fun – это одно из ключевых слов языка Kotlin. Другими словами, является одной из команд. Команда fun означает, что будет определена функция. Подробно что такое функция, будет рассмотрено позже в данном курсе.
После имени функции стоят круглые скобки. В них указываются параметры функции, которых, как в данном случае, может и не быть. Через параметры в функцию передаются какие-нибудь данные, с которыми она может что-нибудь делать.
Далее идет открывающая фигурная скобка, которой соответствует закрывающая фигурная скобка в самом конце. Между фигурными скобками находится тело функции. Оно выполняется при вызове функции. Функция main() вызывается, когда программа запускается.
Обратите внимание на маленький зеленый треугольник, расположенный перед первой строчкой кода. Если у вас его нет, то закройте IntelliJ IDEA и откройте среду снова. Если кликнуть по треугольнику, появится меню, где надо выбрать первый вариант «Run …».
Строка «Process finished with exit code 0» говорит, что программа закончилась так как надо, а не аварийно или с ошибкой.
Снова обратим внимание на структуру каталогов проекта. В нем появится каталог «out», в котором находятся скомпилированные файлы проекта.
Мы можем посмотреть, что содержит StartKt.class, например, с помощью консольной утилиты cat.
Так выглядит байт-код Java нашей простейшей программы.
После первого запуска программы IntelliJ IDEA сама создаст конфигурацию запуска, после чего программу также можно запускать, нажимая треугольник на панели инструментов (Shift + F10).
IntelliJ IDEA – настраиваемая среда. Если вас не устраивают, например, размер шрифта и тема оформления, их можно поменять. Делается это в окне настроек (File → Settings).
Darcula – темная тема оформления.
Вопросы:
Каким цветом IntelliJ IDEA подчеркивает и выделяет ошибки в коде?
Что будет, если в конце выражения println(«…») поставить точку с запятой?
Возникнет ли ошибка, если перед println() убрать отступ? Зачем он нужен?
Плагин Kotlin 2021.1: повышенная производительность IDE, улучшенная поддержка рефакторингов
IntelliJ IDEA 2021.1 вышла с улучшенным плагином Kotlin. Получайте еще больше удовольствия от программирования: теперь автодополнение и подсветка работают быстрее, IDE лучше поддерживает изменения сигнатур, появились новые возможности отладки для вычисления свойств и многое другое.
После установки нового плагина вас ждет:
Автоматическое обновление до версии этого релиза
В IntelliJ IDEA есть возможность автоматически обновиться до этой версии, как только она выйдет.
Если вы еще не пользуетесь IntelliJ IDEA, можно загрузить новую версию, в которой уже будет встроен самый свежий плагин Kotlin.
Наслаждайтесь скоростью автодополнения и подсветки
Порой писать код не так весело, как хотелось бы, особенно если приходится ждать, пока IDE подсветит код или предложит автодополнение. Наша цель — сделать эти функции максимально удобными.
Новый плагин Kotlin значительно улучшает работу подсветки и автодополнения для Kotlin-кода.
Наши тесты показали, что скорость подсветки выросла приблизительно на 25%, а автодополнение кода стало быстрее более чем на 50%, что уже совсем близко к быстродействию в Java.
Подсветка Kotlin-кода в новом плагине
Ниже показана диаграмма, где сравниваются скорости подсветки Kotlin-кода в предыдущей версии плагина Kotlin (2020.3) и в новой версии (2021.1). Эти результаты мы получили в ходе сравнительных тестов подсветки кода в сложных Kotlin-файлах.
Автодополнение Kotlin-кода в новом плагине
А вот сравнение скорости автодополнения Kotlin-кода в версиях 2020.3 и 2021.1. Эти результаты мы получили в ходе сравнительных тестов автодополнения кода в сложных Kotlin-файлах.
Улучшенная поддержка рефакторинга Change Signature
В предыдущих версиях плагина Kotlin при использовании рефакторинга Change Signature могли возникать ошибки и ограничения, при этом не всегда было понятно, в чем проблема.
Мы внесли более 40 исправлений и улучшений в рефакторинг Change Signature. Обновите плагин Kotlin — и сразу ощутите эффект!
Вот некоторые из самых заметных изменений:
Вычисление настраиваемых геттеров прямо на вкладке Variables
Мы провели исследования и выяснили, что для удобства процесса разработки в систему отладки Kotlin-кода необходимо внести значительные изменения, и у нас уже есть некоторые планы, которые мы собираемся реализовать.
В этой версии появилось небольшое, но важное изменение в процедуре вычисления свойств на вкладке Variables.
Раньше во время сеанса отладки можно было просмотреть только свойства, у которых нет настраиваемого геттера и у которых имеется резервное поле. Свойства с настраиваемым геттером не появлялись, потому что они представлены в JVM как обычные методы. В версии 2021.1 плагина Kotlin можно просмотреть все такие свойства и при необходимости вычислить их, нажав get() рядом с названием свойства.
В окне Debug можно просмотреть значения этих свойств:
Мы будем очень признательны, если вы попробуете эту функцию и расскажете нам о своих впечатлениях в этом тикете или в комментариях к этой статье.
Автодополнение для аргументов типов
Новый плагин Kotlin теперь может автоматически дополнять код для аргументов типов. Раньше приходилось писать код вручную без помощи IDE.
Теперь же автодополнение кода предлагает подставить функции и свойства после обобщенных функций и восстанавливает аргументы типов там, где это необходимо. После того как вы выберете такую функцию из списка, IDE добавит в предшествующий код корректный аргумент типа.
В следующем примере IDE автоматически добавляет тип () :
После применения подсказки IDE вы получите следующий код:
Обзор структуры Kotlin-кода с помощью диаграмм классов
В новой версии вы сможете просматривать структуру Kotlin-кода с помощью диаграмм классов UML. Чтобы построить диаграмму, откройте Project View и выберите Diagrams | Show Diagram… | Kotlin Classes.
Другие полезные изменения в IDE
Поскольку плагин Kotlin и платформа IntelliJ Platform были переведены на одну кодовую базу и теперь поставляются одновременно, у вас также расширятся возможности программирования на Kotlin:
Смотрите также
Ваша команда Kotlin
The Drive to Develop
Пишем на Kotlin под Android
Года два назад я обнаружил, что в Android Market нет удобных мне приложений для учета времени, затраченного на разные проекты. Как настоящий лентяй, я решил не искать требуемое, а написать его сам. Это оказалось несколько сложнее, чем казалось вначале, и я все забросил в режиме вялотекущего хобби воплощение моего желания прожило больше года, медленно продвигаясь от идеи к альфа-версии.
И тут вдруг добрые люди предложили мне рассказать, как писать под Android на Kotlin’e. Мне показалось, что это добрый знак, и я быстро переписал приложение на Kotlin, закончил его и выложил в Google Play.
Важное уточнение: эта статья — только про то, как писать под Android на Kotlin’e. Интересно будет только тем, кто хочет попробовать Kotlin, и тем, кто хочет понять, зачем его пробовать. Приложение, которое я написал — очень-очень простое (и само по себе никак не относится к JetBrains). В его коде гарантированно можно что-то улучшить, оно выложено на Github только для примера, а не в качестве образца восхитительного кода. Оно работает, и если вам хочется его попробовать, то поставить можно отсюда. Но еще раз: это — демо, его цель — быть не совершенным приложением, а введением в Kotlin под Андроид.
Опять что-то новое. И зачем мне это знать?
Кстати, на github’e уже более 200 репозиториев с кодом на Kotlin’e, а если говорить про мобильные приложения, то Kotlin использовался при разработке мессенджера Telegram.
Ну ладно, а с чего начать-то?
Для работы потребуется IDE. Я по очевидным причинам предпочитаю IntelliJ IDEA, однако JetBrains делает плагин Kotlin и для Eclipse, а любители vim могут пользоваться отдельным компилятором языка.
Дальше будем предполагать, что все, кто пожелает попробовать Kotlin в деле под Android, будут использовать IntelliJ IDEA. Для работы понадобится установить плагин Kotlin и позаботиться, чтобы на компьютере были gradle и Android SDK (это к Kotlin’y отношения не имеет, это надо для разработки под Android на чем угодно).
Вначале была Java
У меня уже было частично написанное приложение, когда я решил довести его до конца. Все было написано на Java.
Суть приложения: на экране есть список красных задач, если кликнуть по задаче, она зеленеет, и время пошло: это значит, что пользователь работает над задачей. Как прекратил — кликает по ней еще раз, и задача снова краснеет, показывая, как немного времени он на нее потратил. Приложение слепо доверяет пользователю, не проверяя его никак: это вам не «большой брат смотрит за тобой» от oDesk’a.
То, что было написано на Java, я хотел переписать на Kotlin, душа просила кода на 100% на Kotlin, несмотря на то, что в одном проекте можно использовать код на Java и на Kotlin’e одновременно. Оказалось, что с унаследованным кодом все просто: рядом с src/main/java создаем папку src/main/kotlin, и в нее помещаем классы. Файлы в Kotlin’е заканчиваются не на .java, а на .kt. Тут к месту оказался приятный момент: Kotlin не требует соответствия «один класс — один файл». Можно в один файл запихнуть столько классов, сколько хочется по логике приложения. В моем приложении было всего две логических части — работа с базой данных и экранный интерфейс пользователя, так что количество файлов можно было сократить.
Плагин Kotlin к IntelliJ IDEA умеет конвертировать файлы .java в файлы .kt, выполняя аккуратную трансляцию из Java в Kotlin. Можно это делать через правый клик по файлу и контекстное меню, а можно — прямо при копировании кода на Java в файл .kt (плагин спросит, не сконвертировать ли).
Пишем код на Kotlin’e
Код на языке Kotlin компактен: например, класс вместе с конструктором и getters/setters описывается так:
Посмотрим на код, который создает диалог для ввода текста по клику на кнопку.
Согласитесь, код на Kotlin’e читается проще. Для внимательного читателя заметим, что это, конечно, только фрагмент кода, так как при создании диалога нужна не только кнопка «ОК», но и кнопка «Отмена». Полностью код выложен на Github.
Что дает возможность так сокращать код? Например, в Kotlin’e возможна такая форма записи: если где-то в качестве параметра ожидается экземпляр класса с одним абстрактным методом, туда можно просто передать лямбду: именно это и показано в примере выше.
Обратите внимание, что в Kotlin’e можно не указывать тип переменной, так как он будет выведен из правой части присваивания:
Java | Kotlin |
---|---|
AlertDialog.Builder alert = new AlertDialog.Builder (this); | val alert = AlertDialog.Builder(this) |
Интересная особенность синтаксиса в Kotlin’e: если в функцию передаются параметры, и последний параметр — функция, то ее можно вынести за скобки. Именно это мы видим во фрагменте, где в setPositiveButton передается лямбда, которая сработает по нажатию кнопки «ОК»:
То же самое можно записать как
Вы вольны сами выбрать, какой вариант кажется проще для чтения.
Использование библиотек на Java в коде на Kotlin’e
Еще один приятный момент — возможность напрямую использовать библиотеки, написанные на Java, из кода на Kotlin.
Например, чтобы нормально обрабатывать спецсимволы и Unicode в названиях проектов при сохранении их в SQLite, я использовал функции StringEscapeUtils.escapeJava и StringEscapeUtils.unescapeJava из популярной библиотеки, которую достаточно импортировать оператором import (и вписать в зависимости в свойствах проекта):
Возвращаемое значение
В Kotlin в функциональных литералах (a.k.a лямбда-функциях) запрещено использовать return, так как функциональный литерал возвращает значение, вычисленное в последнем выражении. Так, в вызове setOnTouchListener ожидается, что последний параметр вызова — функция, возвращающая boolean. Это значение фактически возвращает gestureDetector.onTouchEvent(aEvent).
В коде функционального литерала на Kotlin нельзя писать return gestureDetector.onTouchEvent(aEvent), результат вызова gestureDetector.onTouchEvent(aEvent) и так будет возвращен.
На самом деле есть специальные случаи, когда в функциональном литерале следует использовать нелокальный return. Если интересно, подробности есть в документации по Kotlin
Аналогично работает возврат значений функциями, определенными через знак «=», вот так:
Строковые шаблоны
Чтобы избавиться от длинных строк, трудных для чтения и дающих неоптимальный байт-код, в Kotlin’e применены строковые шаблоны (string templates):
Здесь projectToDelete — это строковая переменная. Синтаксис такого шаблона привычен любому, кто имел дело с переменными среды в UNIX, например. Особенно удобны шаблоны для строк, составленных из текста и значений многих переменных, да еще и с форматированием:
Между прочим, с форматированием по ходу дела вышла интересная история: тип String в Kotlin — свой, и метода format в нем нет, поэтому пришлось импортировать java.lang.String.format явным образом и потом к нему так обращаться. Удивительно, кстати, что ни в Java, ни в Kotlin’e до сих пор нет метода secondsToHumanReadableString, преобразующего целое число секунд в строку формата
when и with
Очень удобно использовать when для множественного выбора и with для сокращения обращений к методам и свойствам — и того, и другого хватает даже в маленьком приложении под Android. В моем случае это давало более легкий в чтении код, например:
Без with получились бы alert.setPositiveButton, alert.setNegativeButton, alert.create, alert.show. When тоже повышает читаемость:
Компиляция с помощью Gradle
Если вы создаете build.gradle руками и/или собираете проект gradle’ом без IDE, то прочтите, как сдружить gradle, Kotlin и Android на сайте Kotlinlang.org.
Не знаю, есть ли такая проблема у пользователей Android Studio, но у привычного к IntelliJ IDEA человека работа с Gradle может вызвать вопрос, как собрать .apk для релиза, а не для отладки.
Для этого в IDEA есть плагин Gradle, открывается кликом по табу справа:
По умолчанию IDEA собирает *-debug-unsigned.apk, т.е. то, что в Google Play не положишь. Чтобы оно стало *-release-signed.apk, надо сгенерировать ключ для подписи, положить его в keystore, и вписать несколько строк в build.gradle вашего проекта, чтобы Gradle знал, где ключ взять. Для сборки release, выберите в окне Gradle задачу assembleRelease двойным кликом по ней.
Про то, как создавать ключ и подписывать приложение вы либо уже знаете, либо можете прочесть подробнее на stackoverflow.
На заметку
Недавно открылся наш новый сайт про Kotlin kotlinlang.org, который хостится на Jekyll+Github. Чем это решение хорошо, на Хабре недавно уже писали.
Если в статье какие-то примеры кода показались вам красивыми, то это — несомненная заслуга Натальи Ухорской, которая работает у нас в команде Kotlin. Я очень благодарен Наташе за советы, без которых эта статья оказалась бы короче, а код — менее похожим на классический Kotlin.
Мы будем очень рады, если сэкономленные за счет использования Kotlin часы вы сможете провести на пляже. Хорошего остатка лета!
UPD от 31.07.14, 18:55: поправлены некоторые термины и формулировки.