Программирование на языке котлин
Что такое 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 неважно, из какого языка был сделан байт-код.
Выразительность. Kotlin — это компактный язык без кусков избыточного кода:
Безопасность. Язык 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 в разделе «Истории разработчиков».
С чего начать
Почитайте у нас статью про Java — это язык, на котором написано множество приложений, библиотек и фреймворков. Перечисленное часто используется в мобильной разработке и в обозримом будущем не будет переводиться на Kotlin.
Скачайте IntelliJ IDEA или Android Studio. Обе программы — это среда разработки под язык Kotlin. IntelliJ IDEA больше подходит для сайтов и десктопных программ, а Android Studio — для разработки мобильных приложений под андроид.
Введение в язык Kotlin
Что такое Kotlin. Первая программа
Kotlin представляет статически типизированный язык программирования от компании JetBrains. Kotlin можно использовать для создания мобильных и веб-приложений.
Первая версия языка вышла 15 февраля 2016 года. Хотя сама разработка языка велась с 2010 года. Текущей версией языка на данный момент является версия 1.2, которая вышла 28 ноября 2017 года.
Также стоит отметить, что Kotin развивается как opensource, исходный код проекта можно посмотреть в репозитории на github по адресу https://github.com/JetBrains/kotlin/.
Kotlin испытал влияние многих языков: Java, Scala, Groovy, C#, JavaScript, Swift и позволяет писать программы как в объектно-ориентированном, так и в функциональном стиле. Он имеет ясный и понятный синтаксис и довольно легок для обучения.
Самым популярным направлением, где применяется Kotlin, является прежде всего разработка под ОС Android. Причем настолько популярным, что компания Google на конференции Google I/O 2017 провозгласила Kotlin одним из официальных языков для разработки под Android (наряду с Java и C++), а инструменты по работе с данным языком были по умолчанию включены в функционал среды разработки Android Strudio начиная с версии 3.0.
Первая программа на Kotlin
Создадим первую программу на языке Kotlin. Что для этого необходимо? Для набора кода программы понадобится текстовый редактор. Это может быть любой тестовый редактор, например, встроенный блокнот или Notepad++. И для компиляции программы необходим компилятор.
Загрузить компилятор непосредственно для самого языка Kotlin можно по адресу https://github.com/JetBrains/kotlin/releases/tag/v1.2.0.
Далее определим в этом файле код, который будет выводить некоторое сообщение на консоль:
Эта функция принимает параметр args, который представляет массив строк.
Откроем командную строку. Вначале с помощью команды cd перейдем к папке, где находится файл app.kt. Затем для компиляции программы введем следующую команду:
После выполнения этой команды будет создан файл app.jar. Теперь запустим его на выполнение. Для этого введем команду
В данном случае считается, что путь к JDK, установленном на компьютере, прописан в переменной PATH в переменных среды. Иначе вместо «java» придется писать полный путь к утилите java.
В итоге при запуске файла мы увидим на консоли строку «Hello Kotlin».
Основы Kotlin. Введение
Основы языка Котлин
Языки программирования — интереснейшая область современной техники. За последние 30-40 лет информационные технологии разрослись до невероятных пределов, и сейчас мало кто в состоянии обозреть эту область в полном объёме. Компьютерные программы выросли с нескольких сотен строк до десятков миллионов строк, применяются сейчас в самых разных областях и запускаются на самых разных платформах, например:
Языки программирования
Для написания разных видов программ сейчас применяются разные языки программирования. Например, в сфере разработки мобильных приложений основными являются языки Java и Kotlin (устройства под управлением Android), а также Swift (мобильные устройства под управлением iOS).
Системные программы, как правило, пишутся на языках C или C++. Эти же языки долгое время использовались и для создания встраиваемых программ, но в последние годы в этой области набирает популярность язык Java. Для написания web-клиентов часто используется JavaScript, а в простых случаях — язык разметки страниц HTML. Web-серверы используют опять-таки Java (в сложных случаях), а также Python и PHP (в более простых). Наконец, простые desktop-программы сейчас могут быть написаны на самых разных языках, и выбор во многом зависит от сложности программы, области её использования, предполагаемой операционной системы. В первую очередь следует назвать языки Java, C++, C#, Python, Visual Basic, Ruby, Swift.
В каком-то смысле самым универсальным и одновременно самым распространённым языком программирования на данный момент следует считать язык Java. Java в широком смысле — не только язык, но и платформа для выполнения программ под самыми разными операционными системами и на разной аппаратуре. Такая универсальность обеспечивается наличием виртуальной машины Java — специальной системной программы, интерпретирующей Java байт-код в машинные коды конкретного компьютера или системы. Java также включает богатейший набор библиотек для разработки.
Почему Kotlin
Однако для начинающих язык Java является несколько многословным и сложным. Это пособие посвящено другому языку программирования, спутнику Java — языку Котлин. Котлин — молодой, лёгкий для изучения язык программирования, позволяющий писать программы под платформы JVM и Android более лаконично, просто и с меньшим количеством ошибок по сравнению с языком Java. Котлин и Java — полностью интероперабельные языки, поэтому одна и та же программа может быть частично написана на Котлине, частично на Java. Программы на Котлине могут использовать все имеющиеся Java-библиотеки, и наоборот. На данный момент программы на Котлине пишут сотни тысяч программистов, основная ниша его промышленного применения — мобильные приложения под платформу Android и, в несколько меньшей степени, web-разработка.
В ходе изучения Котлина мы изучим также многие элементы стандартной библиотеки Java, а понимание работы программ на Котлине во многом упростит понимание работы Java-программ. После освоения основ языка Kotlin вы сможете уверенно освоить уроки по разработке андроид-приложений на языке Котлин.
Также на нашем сайте есть Продвинутые курсы по созданию реальных андроид-приложений на языке Котлин
Что требуется для начала
Самый простой способ начать программировать на Котлине — зайти на сайт http://try.kotlinlang.org. Имеющаяся там «песочница» позволяет писать программы прямо в браузере, с возможностью выполнять и сохранять свои программы и проходить обучающие курсы.
Масштабы песочницы, однако, достаточны только для небольших программ, а более-менее серьёзные программы, как правило, разрабатываются в интегрированной среде (IDE). Разработка под платформу Java в любом случае требует установки пакета JDK, который необходимо скачать с сайта компании Oracle. Первое время вам потребуется Java Platform, Standard Edition, рекомендуется 8-я её редакция, на сентябрь 2018 года последняя её версия — Java SE 8u181.
Среда разработки IntelliJ IDEA
В качестве интегрированной среды разработки рекомендую установить IntelliJ IDEA Community Edition, её следует брать отсюда. Community Edition является полностью бесплатной, базовая версия обеспечивает поддержку программирования на Java, Kotlin, Scala, Groovy, поддержку систем контроля версий Git, Mercurial, SVN, интеграцию с системами сборки Maven и Gradle.
Для интеграции IDEA с системой контроля версий Git необходимо установить один из клиентов Git. Таких клиентов существует много; «родной» Git клиент можно скачать здесь. Имейте в виду, что в IDEA интегрирован собственный Git-плагин, уже имеющий графический интерфейс, поэтому скачивать и устанавливать клиенты Git с графическим интерфейсом (GUI Clients) необязательно.
Учебный проект
В ходе обучения мы будем активно использовать проект «Котлин как первый язык программирования», содержащий текст данного пособия и около сотни различных задач на языке Kotlin. Оригинальный код данного проекта доступен по адресу https://github.com/Kotlin-Polytech/KotlinAsFirst2018 на сайте GitHub, который является специализированным хранилищем программных кодов и основан на системе контроля версий Git. Для того, чтобы начать работать с этим проектом, Вам необходимо выполнить следующие действия.
Список уроков по основам Котлин
Вопросы
В ходе изучения нового языка у вас, конечно, будут возникать вопросы, не стесняйтесь их задавать. У вас есть следующие возможности:
Kotlin Slack — это система общения, созданная специально для программистов на Котлине. Система состоит из множества каналов, посвящённых разным аспектам программирования на Котлине — в большинстве из них общение идёт на английском языке. Нашему курсу посвящён канал russian-kotlinasfirst, и там вы сможете задать любые вопросы по этому курсу на русском языке. В качестве других важных каналов имеется general — канал с общими обсуждениями, касающимися Котлина, и russian — общий канал для русскоязычных Котлин-программистов.
Часто задаваемые вопросы (F.A.Q.)
Откройте окно Maven Projects на панели в правой части окна IDEA (если вы не видите там такой надписи, откройте его через меню — View > Tool Windows > Maven Projects) и нажмите в нём на кнопку с изображением двух стрелок в круге. Дождитесь окончания импортирования Maven-проекта (наблюдайте за надписями в нижней части окна IDEA), после чего зелёные треугольники должны появиться. Проверьте также отсутствие надписи Project SDK is not defined в верхней части окна (см. вопрос выше).
Если вам не удаётся открыть окно Maven Projects, попробуйте выйти из Intellij IDEA и войти в неё заново.
Также предлагаем Продвинутые курсы:
Использованы материалы онлайн-курса «Котлин как первый язык программирования» в соответствии с лицензией
1) Учебник по Котлину
Что такое Котлин?
Kotlin — это язык программирования с открытым исходным кодом, который может работать на виртуальной машине Java (JVM). Это язык, который сочетает в себе объектно-ориентированное программирование (ООП) и функциональное программирование на неограниченной, самодостаточной и самобытной платформе.
Kotlin — это язык программирования, который был предложен JetBrains. Он может работать на многочисленных платформах. Вы можете применить дублирование функциональности по миниатюрным кодам в Kotlin.
Из этого основного руководства для начинающих Kotlin вы узнаете:
История Котлина
Здесь находятся важные ориентиры из истории Котлина:
Год | Событие |
2016 | Kotlin v1.0 был запущен |
2017 | Объявление Google о первоклассной поддержке kotlin в android |
2018 | Kotlin v1.2 поставляется с надстройкой по распределению кодов между JVM и JavaScript |
2019 | Google объявил Kotlin своим предпочтительным языком программирования для разработчиков приложений для Android |
Причины использования Kotlin
Вот несколько важных причин, по которым Котлин широко используется:
Особенности Котлина
Вот несколько особенностей Kotlin, которые позволят вам убедиться в прогрессе языка программирования.
Урезанная кодировка:
Kotlin — это язык программирования на основе ООП, где строка кода может быть урезана до 40%, что делает Kotlin идеальным выбором для разработки программного обеспечения или веб-разработки.
Открытый исходный код:
Kotlin использует JVM и сочетает в себе функции ООП и функционально-ориентированного программирования.
Быстрая компиляция:
код легко компилируется при работе с Kotlin, что приводит к повышению производительности для разработки под Android, а также объясняет, какой тип функции данных можно использовать во всем коде.
Функции расширения:
Kotlin может поддерживать различные функции расширения, не внося никаких изменений в код. это помогает сделать существующий код более привлекательным и великолепным для разработчиков.
Например:
Этот код поможет обрезать первый и последний символ строки, мы можем применить его как:
Нулевая безопасность:
В Kotlin система различает пустые ссылки и ненулевые ссылки.
Например, переменная String не может содержать ноль:
Interoperable:
Код Kotlin может использоваться Java, а коды Java могут использоваться с Kotlin. Итак, если у вас есть знания о программировании OOPS, легко перейти к разработке Kotlin. Кроме того, если есть некоторые приложения, написанные на Java, то их можно использовать в среде Kotlin.
Надежные инструменты:
Как и Java, код Kotlin также может быть написан с использованием IDE или интерфейса командной строки. С IDE легко работать, и синтаксические ошибки также значительно сокращаются. В то же время, когда вы работаете с интерфейсом командной строки, сначала необходимо скомпилировать код.
Smart Cast:
Интеллектуальное литье в основном помогает сократить расходы на приложение и повышает его скорость или производительность. Он работает над управлением эффективностью кода, используя приведение типов или неизменяемые значения.
Например, если строка идентифицирована, то ее длина и количество могут быть найдены с помощью функции Smart Cast:
Низкая стоимость усыновления:
Предприятия предпочитают Kotlin из-за потери затрат на усыновление. Самое главное, что разработчики легко учатся, особенно имея опыт программирования.
Kotlin Environment Setup
Ниже приведены шаги, которые помогут вам в настройке рабочей среды путем установки Kotlin.
Шаг 1) Установите Java
Шаг 2) Установите Java IDE
К счастью, есть несколько Java IDE на выбор. Здесь мы дали ссылки для скачивания, чтобы вам было легче.
В этом уроке мы будем использовать Eclipse.
Шаг 3) Установите Kotlin
Для установки Kotlin в Eclipse перейдите в раздел справки в Eclipse и выберите опцию Eclipse Marketplace.
Теперь введите ключевое слово Kotlin в поле поиска. Нажмите на кнопку Go, чтобы получить список плагинов. Он даст вам ссылку на плагин Kotlin, вам нужно установить плагин по указанной ссылке.
Пожалуйста, перезапустите Eclipse IDE после завершения установки. Вы можете найти ярлык в правом верхнем углу Eclipse IDE. Это метод быстрого доступа.
Другой способ получить доступ к Kotlin в Eclipse IDE — перейти в Windows, «Перспективы», «Открыть проекции», а затем выбрать «Другие». Здесь вы можете проверить список плагинов, установленных позже, как указано ниже.
После того, как вы проверили установку Kotlin, давайте создадим первую программу Kotlin на следующем шаге.
Шаг 4) Первая программа Kotlin
Начните с вашего первого проекта Kotlin. В меню File выберите опцию New, затем выберите другие и начните с нового проекта Kotlin из списка.
Теперь вам нужно определить имя для проекта, и вы готовы работать с Kotlin.
Этими простыми шагами можно легко загрузить Eclipse и Kotlin в свою систему и сразу же написать свою первую программу Kotlin.
Архитектура Котлина
Хорошо продуманная архитектура важна для того, чтобы приложение расширяло свои возможности и соответствовало ожиданиям конечных пользователей. Kotlin имеет свою особую и отличительную архитектуру для распределения памяти и получения качественных результатов для разработчиков и конечных пользователей.
Сопрограммы и классы Kotlin строят ядро таким образом, чтобы производить меньше стандартного кода, повышать производительность и повышать эффективность. Существует множество сценариев, в которых компилятор kotlin может реагировать по-разному, особенно когда он выделяет различные языки.
На диаграмме архитектуры ясно, что выполнение кода выполняется в три простых шага.
Когда в JVM работает несколько байт-кодированных файлов, они разжигают взаимное общение между собой, поэтому особенность в Kotlin, называемая интероперабельностью для рождения java ook
Транспортировка Kotlin в JavaScript происходит, когда Kotlin нацелен на JavaScript.
Когда цель JavaScript выбрана, любой код Kotlin, входящий в состав библиотеки, которая поставляется вместе с Kotlin, затем заливается JavaScript. Однако Java Development Kit (JDK) или любая используемая библиотека Java исключаются.
Из обсуждения становится ясно, что компиляторы Kotlin могут создавать более эффективный, компетентный и независимый код, который в дальнейшем приводит к созданию высокопроизводительного программного продукта.
Переменная Котлина
Переменные используются для хранения данных для манипулирования и обращения к ним в программе. По сути, это единица хранения данных и их маркировки, которая ждет объяснительного псевдонима, поэтому программа проста для чтения и понятна. Другими словами, мы можем сказать, что переменные являются контейнерами для сбора информации.
В Kotlin все переменные должны быть объявлены. Однако, если какая-либо переменная не объявлена, возникает синтаксическая ошибка. Кроме того, объявление переменной определяет тип данных, которые мы разрешаем хранить в переменной. В Kotlin переменные могут быть определены с помощью ключевых слов val и var. Вот синтаксис объявления переменных в Kotlin:
Здесь мы объявили локальную переменную day со значением «Monday» и типом которой является String, а также другой номер локальной переменной со значением 3 и с типом Int, поскольку здесь литерал имеет целочисленное значение типа 3.
Локальные переменные обычно объявляются и инициализируются одновременно. Мы также можем выполнять определенные операции при инициализации переменной Kotlin.
Мы можем выполнить операцию с переменной того же типа данных, так как здесь num1 и num2 имеют одинаковый тип данных Int, а day — строковый тип данных. Ergo, он покажет ошибку. Вот еще один метод, как вы можете определить переменные в Kotlin.
Давайте посмотрим, как ключевые слова var и val отличаются друг от друга.
Var подобен универсальной переменной, используемой в любом языке программирования, который может использоваться несколько раз в одной программе. Более того, вы можете изменить его значение в любое время в программе. Поэтому он известен как изменяемая переменная.
Вот пример изменяемой переменной в Kotlin:
Здесь значение num1, равное 20, перезаписывается предыдущим значением num1, равным 10. Следовательно, вывод num1 + num2 равен 40 вместо 30.
Val похожа на постоянную переменную, и вы не можете изменить ее значение позже в программе, которую нельзя назначать несколько раз в одной программе и можно использовать только один раз в конкретной программе. Ergo, это известно как неизменяемая переменная.
Вот пример неизменяемых переменных в Kotlin:
Here, the value of num1 that is 10 cannot be overwritten by the new value of num1 that is 20, as it is of val type that is constant. Therefore, the output is 30 instead of 40.
Note: In Kotlin, immutable variables are preferred over mutable variables.
Data Types in Kotlin
Data types are set of relatable values and describe the operations that can be operated on them. Similar to other programming languages, Kotlin also has its predefined set of data types like Int, Boolean, Char, Double, etc.
In Kotlin, every data type is considered as an object.
Now, let’s dive deeper into the predefined data types used in Kotlin.
Numbers :
Kotlin serves a set of built-in data types known as numbers, which are sub-categorize as Integers and Floating-Point Numbers.
Integers :
Integers are the category of numbers that has four types:
Type | Size (bits) | Min value | Max value |
Byte | 8 | -128 | 127 |
Short | 16 | -32768 | 32767 |
Int | 32 | -2,147,483,648 (-231) | 2,147,483,647 (231 — 1) |
Long | 64 | -9,223,372,036,854,775,808 (-263) | 9,223,372,036,854,775,807 (263 — 1) |
Floating Point Numbers :
Floating Point Numbers are the non-Integer numbers that carry some decimal values.
Float: Float is a 32- bit single-precision floating-point value.
Example: var: Float x = 3.25600
Double: Double is a 64- bit double — precision floating point value.
Example: var: Double y = 2456.345587
Booleans :
Booleans data type in Kotlin is significant to represent the logical values. There are only two possible values in Boolean that is either true or false.
For Example : val day = true
Character :
Characters in Kotlin are represented with the help of the keyword called char. In Kotlin, single quotes represent the declaration of char. In java, char are sometimes used as numbers that is not possible in kotlin.
Kotlin Type Conversion or Kotlin Type Casting
Type Conversion is a procedure of converting one type of data variable into another data type variable. It is enormously, also known as Type Casting.