Как запустить kotlin приложение
Писать программы на почти любом языке программирования можно в любом текстовом редакторе. Такие редакторы не следует путать с текстовыми приложениями, предназначенными для набора и оформления обычных текстов, которые читают люди. В то же время современные текстовые редакторы, предназначенные для набора исходного кода программ, поддерживают подсветку синтаксиса (выделяют слова разным цветом в зависимости от их значения), нередко выполняют автодополнение кода и автоматически делают отступы.
Однако подсветка синтаксиса не хранится в самом файле программы. В файле сохраняется только исходный код. Файл может быть открыт в любом другом текстовом редакторе, поддерживающем другой вариант подсветки или вообще ее не поддерживающий.
Чтобы текст программы мог быть исполненным вычислительной машиной, его надо подвергнуть компиляции или интерпретации. Следовательно, кроме текстового редактора у разработчика должна быть программа-транслятор, которая преобразует исходный код в исполняемый.
В случае Kotlin исходный код компилируется (в одном из вариантов) в байт-код Java. Такой код исполняется посредством виртуальной машины Java, следовательно, на компьютере также должна быть установлена JVM.
В настоящее время программисты реже озадачивают себя подбором наиболее подходящего редактора и установкой компиляторов. Чаще используют готовые среды разработки – приложения по принципу "все в одном". Здесь и редактор, и возможность запускать программу нажатием одной кнопки. За сценой среда сама компилирует и, в случае байт-кода вызывает JVM для его исполнения. Также такие IDE (integrated development environment – интегрированная среда разработки) содержат множество дополнительных инструментов, плагинов, возможность подключать различные библиотеки, расширяющие средства языка. Все, что необходимо для профессиональной разработки.
Самой адаптированной под Kotlin средой разработки является IntelliJ IDEA. Раньше в ней писались преимущественно программы на Java. Однако с появлением Kotlin данная среда стала поддерживать и его, так как разработчиками IntelliJ IDEA и языка Kotlin является одна и та же фирма – Jet Brains. Это не значит, что программировать на Котлин можно только в IntlliJ IDEA. Однако, особенно для начинающих, ее следует считать лучшим выбором, так как она помогает определять не только ошибки в коде, но также указывает на любые недочеты.
Если ни одни из предыдущих проектов не открыт, вы увидите окно "Welcome", в котором надо выбрать "Create New Project".
Далее в первом окне "New Project" в списке слева выбираем "Kotlin". Правее – способ сборки и исполнения – "JVM | IDEA".
В следующем окне вам надо как-нибудь назвать свой проект и указать место его размещения на диске (можно оставить предложенные средой). Поскольку в курсе мы будем создавать множество мелких программ, и если вы захотите сохранить некоторые из них, имеет смысл делать это в одном проекте, создавая в нем разные файлы. В данном случае создавать под каждый урок отдельный проект будет не рационально.
После того как вы нажмете кнопку Finish, среда начнет генерировать систему каталогов и конфигурационные файлы проекта. Это может занять некоторое время. В конечном итоге слева на вкладке Project вы увидите дерево каталогов.
Файлы с вашим программным кодом лучше всего помещать в каталог src . Он для этого и предназначен. Src – по всей видимости сокращение от "source code" – исходный код.
Создавать новые файлы можно как через главное меню ( File → New → … ), так и через контекстное. В последнем случае надо кликнуть по каталогу src правой кнопкой мыши, выбрать New → Kotlin File/Class .
В дальнейшем, если потребуется организовать файлы по каталогам внутри src , то подкаталоги можно создавать командой New → Package . И уже в них создавать новые файлы.
При создании файла указывается его имя (произвольно), можно без расширения. В данном курсе мы не будем создавать классы, поэтому всегда выбираем вариант File .
Среда сама добавит к файлу расширение ".kt", так как файл будет содержать код на Kotlin. Также файл откроется в рабочей области окна. Запишем в него небольшую программу на языке 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 …".
После этого среда выполнит компиляцию и сборку проекта, а также выполнит его. Результат выполнения программы вы увидите внизу на вкладке "Run". В данном случае это будет строка "hello - привет".
Строка "Process finished with exit code 0" говорит, что программа закончилась так как надо, а не аварийно или с ошибкой.
Снова обратим внимание на структуру каталогов проекта. В нем появится каталог "out", в котором находятся скомпилированные файлы проекта.
Мы можем посмотреть, что содержит StartKt.class, например, с помощью консольной утилиты cat.
Так выглядит байт-код Java нашей простейшей программы.
После первого запуска программы IntelliJ IDEA сама создаст конфигурацию запуска, после чего программу также можно запускать, нажимая треугольник на панели инструментов (Shift + F10).
IntelliJ IDEA – настраиваемая среда. Если вас не устраивают, например, размер шрифта и тема оформления, их можно поменять. Делается это в окне настроек (File → Settings).
Darcula – темная тема оформления.
Для того, чтобы размер шрифта в редакторе кода можно было менять, прокручивая колесо мыши при зажатом Ctrl, надо установить соответствующий флажок в разделе Editor → General .
Вопросы:
Каким цветом IntelliJ IDEA подчеркивает и выделяет ошибки в коде?
Есть ли разница между командами println() и print() ?
Что будет, если в конце выражения println("…") поставить точку с запятой?
Содержание статьи
Основным инструментом, который мы будем использовать для создания проектов на Kotlin, является IntelliJ IDEA от JetBrains. JetBrains также является компанией, стоящей у истоков самого языка, поэтому разработка на Kotlin тесно интегрирована в IntelliJ IDEA.
IntelliJ IDEA является Интегрированной средой разработки, или IDE. Она похожа на другие IDE вроде Visual Studio или Xcode. IntelliJ IDEA предоставляет основу для многих других IDE от JetBrains, включая Android Studio для разработки приложений на Android, PyCharm для программирования на Python и CLion для программирования на C и C++.
IDE используется для написания кода в редакторе, компиляции кода для запуска на компьютере, просмотра результатов программы, исправления ошибок кода и многого другого! В этом уроке мы познакомимся с возможностями IntelliJ IDEA, и это станет важной подготовкой к дальнейшему изучению языка Kotlin.
Установка и настройка IntelliJ IDEA
IntelliJ IDEA можно скачать с сайта JetBrains. В наличии есть версии Community и Ultimate. Для работы с примерами из уроков подойдет версия Community, которая является бесплатной для скачивания.
Перед запуском IntelliJ IDEA требуется также установить Java Development Kit, или JDK, который нужен для запуска Kotlin кода на компьютере.
Java и JDK
Kotlin позволяет программировать на нескольких различных платформах. Двумя наиболее популярными являются Java Virtual Machine, или JVM и Android.
По большому счету, изначально Kotlin задумывался как современная замена языку Java. Java был создан в девяностых, став ранней попыткой кроссплатформенного прикладного языка программирования. Подход “Write Once, Run Everywhere” звучал многообещающе.
Вместо компиляции в нативный машинный код на каждой платформе, программы на Java компилируются в формат, который называется байт-кодом. Байт-код выполняется внутри приложения на Java Virtual Machine. JVM можно рассматривать как слой над вашей реальной машиной. Запустив байт-код на виртуальной машине, можно совместно использовать Java-код и приложения на многих типах компьютерных систем.
Одной из целей языка Kotlin является 100% совместимость с языком Java. Это включает конвертацию Kotlin-кода в Java-совместимый код с помощью компилятора Kotlin, чтобы Kotlin-код мог запускаться на JVM.
На заметку: Будьте внимательны, скачайте и установите JDK, а не только JRE, так как JRE позволяет запускать только Java-приложения и не включает инструменты для создания новых.
Запуск IntelliJ IDEA
После установки IntelliJ IDEA и JDK выполните обычный процесс запуска приложения IntelliJ IDEA на вашей платформе.
Если вы ранее устанавливали предыдущие версии IntelliJ IDEA на тот же компьютер, установщик, скорее всего, предложит импортировать настройки из предыдущей версии. В противном случае вам будет предложено выбрать цветовую тему и плагины для установки в IDE. Можете просто выбрать настройки по умолчанию и продолжить.
После этих действий вы увидите окно Welcome to IntelliJ IDEA.
Из приветственного окна можно создать новый проект, импортировать или открыть существующие проекты, извлечь код из системы контроля версий вроде Git, запустить инструменты настройки или получить справку по IDE.
Создание простого проекта на Kotlin
В приветственном окне выберите пункт Create New Project. Вы увидите первый экран конфигурации.
Выберите Kotlin из списка опций слева, Kotlin JVM в качестве типа проекта и нажмите Next.
Вы должны увидеть следующее:
Введите hellokotlin для названия проекта, выберите место для проекта или просто оставьте значения по умолчанию. Ничего больше не указывайте и нажмите Finish.
IntelliJ IDEA создает и конфигурирует ваш проект.
По завершении вы попадете в окно Tip of the Day, или Совет дня, в котором каждый раз при открытии приложения показываются полезные советы по IntelliJ IDEA.
Вы должны увидеть следующее:
Закройте окно подсказки и проверьте панель Project слева от главного окна IntelliJ IDEA. На панели Project можно управлять всеми файлами, связанными с проектом, например файлами исходного кода Kotlin, у которых расширение .kt.
Кликните на стрелку рядом с hellokotlin, чтобы открыть его содержимое, и вы увидите папку src для проекта. Щелкните правой кнопкой мыши на папку src и выберите New ▸ Kotlin File/Class.
Должно открыться новое диалоговое окно New Kotlin File/Class. Введите hello и кликните OK.
Затем файл hello.kt откроется редакторе IntelliJ IDEA.
Базовый макет окна IntelliJ IDEA содержит панель Project слева, панель Editor посередине и Toolbar в верхней правой части, который можно использовать для запуска кода.
По ходу настройки проекта мы разобрали главные части окна IntelliJ IDEA. Пришло время для запуска Kotlin-кода!
Пример программы на Kotlin!
В данном уроке мы просто напишем в редакторе код на Kotlin и запустим его, для чего необязательно разбирать все его части. Каждый элемент кода будет подробнее разобран в дальнейшем. Если у вас есть опыт программирования в Java, Swift или Python, вы быстро вникните в ход дела.
В этом уроке мы создадим новый проект для первого приложения и запустим это приложение на андроид-устройстве.
Что вы узнаете
- Как создать проект в среде разработки Android Studio
- Как создать виртуальное андроид-устройство AVD
- Как запустить приложение на эмуляторе андроид
- Как запустить приложение на реальном устройстве
Создание нового проекта
- Откройте Android Studio
- В диалоге Welcome to Android Studio выберите Start a new Android Studio project.
- В диалоге NewProject, дайте имя вашему приложению, например MyFirstApp.
- Имя домена можете принять по умолчанию.
- Для поддежки языка Котлин отметьте чекбокс IncludeKotlinsupport.
- Местоположение проекта можете оставить по умолчанию. Обычно проекты сохраняются в папке с именем AndroidStudioProjects в документах пользователя. Здесь могут возникнуть проблемы, если имя пользователя указано русскими буквами, потому что среда разработки не воспринимает кириллицу в пути к файлам. В таком случае вы увидите предупреждение. Сохраните проект в другом месте.
- Нажмите Next.
- В диалоге TargetAndroidDevices выберите тип платформы PhoneandTablet и минимально поддерживаемую версию Android API 17 или выше. Поддержка более старых версий нам пока не нужна, поскольку отражается на доступном функционале инструментов разработки. Нажмите Next.
- В диалоге добавления активити нужно выбрать шаблон предустановленых окон приложения и компонентов интерфейса. Выберите EmptyActivity. Нажмите Next.
- В диалоге CоnfigureActivity оставьте все по умолчанию. Нажмите Finish.
После этих шагов, Android Studio:
Окно Android Studio должно выглядеть примерно так:
Скриншот 1. Интерфейс Android Studio
Рассмотрим интерфейс Android Studio
Главное окно можно упорядочить, чтобы предоставить больше места на экране, скрывая или перемещая панели инструментов и окна инструментов. Для доступа к большинству функций IDE также можно использовать сочетания клавиш.
В любой момент можно выполнить поиск по исходному коду, базам данных, командам, элементам пользовательского интерфейса и т. д., дважды нажав клавишу Shift или щелкнув увеличительное стекло в верхнем правом углу окна Android Studio. Это может быть очень полезно, если, например, вы пытаетесь найти конкретную команду IDE, которую вы забыли, как запустить.
Окно структуры проекта
Скриншот 2. Окно структуры проекта Android Studio
Изучение структуры и макета проекта
Можно посмотреть иерархию файлов приложения несколькими способами.
- Окно структуры проекта (1) с отображением дерева файлов. (См. 1 на Скриншоте 2)
- Кнопка Project(2) скрывает и отображает окно структуры проекта. Включите пункт меню View>ToolButtons чтобы увидеть эту кнопку.
- Текущий выбор вида проекта Project>Android. Нажмите выпадающий список Android(3) для просмотра других доступных видов проекта.
В виде отображения Project > Project вы увидите полную структуру папок проекта, как она выглядит на диске. Здесь много файлов и папок и новичку здесь можно запутаться. Главное, на что следует обратить внимание: проект имеет модульную структуру и основной модуль нашего приложения – app.
Скриншот 3. Окно структуры проекта Android Studio в виде Project> Project
Если раскрыть папку app, мы увидим такие папки:
Также в папке модуля app имеется файл системы сборки build.gradle, мы рассмотрим его позже.
Если переключиться на вид проекта Project > Android, вы увидите только папку модуля app с упрощенной структурой проекта. Это представление удобнее, поскольку здесь отфильтрованы только те файлы, с которыми мы непосредственно будем работать. Но следует помнить, что в таком виде структура папок проекта не соответствует той, что хранится на диске. Например, вы не найдете на диске в папке проекта папку manifests. А в дереве папок в таком режиме не отображаются папки src и main.
Скриншот 4. Окно структуры проекта Android Studio в виде Project>Android
В виде Project > Android вы увидите в папке app такие папки: manifests, java, и res.
- Раскройте папку manifests.Эта папка содержит файл AndroidManifest.xml. Этот файл описывает все компоненты приложения Android и считывается системой среды выполнения Android при запуске приложения.
- Раскройте папку java. Все файлы кода на языке Котлин и Java организованы здесь. Папка java содержит три подпапки:com.example.android.myfirstapp (или указанное имя домена): Эта папка содержит файлы исходного кода Котлин и Java для вашего приложения. С этой папкой мы будем работать большую часть времени, поскольку это главный пакет проекта.
com.example.android.myfirstapp (androidTest): эта папка для размещения инструментальных тестов.
com.example.android.myfirstapp (test): эта папка для размещения модульных тестов.
Подробнее о тестах вы можете узнать из Курса по архитектуре андроид-приложений.
- Раскройте папку res. Эта папка содержит все ресурсы для вашего приложения, включая изображения, файлы макетов экранов, строковые ресурсы, значки и иконки, цвета и стили оформления. Она включает такие вложенные папки:drawable: Все изображения для вашего приложения будут сохранены в этой папке.layout: Эта папка содержит файлы макета для активити – экранов приложения. В настоящее время ваше приложение имеет одно активити с файлом макета activity_main.xml.mipmap: Эта папка содержит значки запуска приложения – это те значки, которые отображаются на андроид-устройстве после установки приложения.values: Содержит ресурсы, такие как строки и цвета, используемые в приложении.
Также в окне структуры проекта есть папка Gradle Scripts. Раскройте ее. В начале списка есть два файла с одинаковыми именами build.gradle. Это файлы сборки для системы Gradle, которая используется для компиляции, построения и упаковки приложений и библиотек. В скобках после имени файлов указана принадлежность файла модулю App или всему проекту. Файл сборки уровня проекта содержит настройки для всего проекта, а файл сборки уровня модуля содержит настройки для модуля. Чаще всего мы будем работать именно с файлом сборки уровня модуля. Он содержит такие основные секции, как:
- android…>, где указаны версии инструментов разработки, минимальная поддерживаемая версия API, идентификатор и версия приложения для Google Play, и другие параметры
- dependencies…>, которая содержит список библиотек, подключаемых к проекту. Могут быть подключены как локальные (помещенные в папку libs), так и хранящиеся удаленно библиотеки.
Запуск android-приложения
Наиболее очевидный способ проверить работу приложения в процессе разработки – установить и запустить его на андроид-устройстве.
Для запуска приложения из среды разработки Android Studio мы можем использовать 2 способа:
- подключенный к ПК смартфон или планшет под управлением системы Android
- эмулятор Android
Оба этих способа имеют свои преимущества и недостатки, и какой использовать, выбирать вам. Для начинающего разработчика подойдет любой способ.
Что такое андроид-смартфон, вы наверняка уже знаете, раз заинтересовались темой разработки приложений. А что такое эмулятор Android? Это запуск системы Android на ПК в отдельной виртуальной машине.
Существует много эмуляторов Android, например BlueStacks, Droid4X, Nox APP Player, Genymotion, и другие. Большинство из них разработаны для игр и не очень подходят для тестирования приложений, кроме Genymotion.
В Android Studio есть собственный эмулятор, который может запускать образы виртуальных устройств с различными характеристиками, таких как смартфоны Nexus и Pixel, а также планшеты наиболее распространенных типов.
Создание виртуального android-устройства (эмулятора)
В Android Studio есть утилита Android Virtual Device (AVD) manager для создания виртуального устройства (также известного как эмулятор), моделирующего конфигурацию определенного типа андроид-устройства.
Первым шагом является создание конфигурации, описывающей виртуальное устройство.
Возможные проблемы
Если у вас на компьютере установлена операционная система Windows, а процессор AMD, то скорее всего вы увидите такое предупреждение в окне выбора оборудования для виртуального устройства. Дело в том, что образы виртуальных устройств с типом x86 не работают на связке Windows + AMD. Причем на связке Linux + AMD таких проблем нет. Процессоры Intel поддерживают образы x86 на любой операционной системе. Для Windows + AMD вы можете использовать образы типа arm, но они гораздо более медленные. Выходом будет использование реального устройства – андроид-смартфона или планшета, подключенного к компьютеру.
Другой распространенной проблемой является отключенная виртуализация процессора. Включить виртуализацию можно в биосе, в интернете можно найти много инструкций, как это делается.
Также нужно в SDK Manager на вкладке SDK Tools установить Intel x86 Emulator Accelerator для лучшей производительности и скорости работы. Только для процессоров Intel.
Если в окне выбора системного образа нет активных образов для установки, загрузите образ необходимой версии Android в SDK менеджере. Откройте окно SDK Manager и на вкладке SDK Platforms справа внизу установите флаг Show Package Details для отображения всех компонентов платформы (см. Скриншот 5). Отметьте для загрузки нужный файл System Image. После загрузки выбранный образ будет доступен в окне AVD Manager.
Скриншот 5. Установите флаг Show Package Details для отображения всех компонентов платформы
Запуск приложения на эмуляторе
Эмулятор запускается и загружается как физическое устройство. В зависимости от скорости компьютера это может занять некоторое время. Можно посмотреть в маленькую горизонтальную строку состояния в самом низу окна Android Studio, чтобы увидеть ход выполнения.
После того как приложение будет построено и эмулятор будет готов, среда Android Studio установит приложение в эмулятор и запустит его. Вы увидите ваше приложение, как показано на следующем снимке экрана.
Замечание: рекомендуется запускать эмулятор в начале сеанса. Не закрывайте эмулятор до тех пор, пока не будет выполнена проверка приложения, чтобы не дожидаться повторной загрузки эмулятора. Кроме того, не следует одновременно запускать несколько эмуляторов, чтобы уменьшить использование памяти.
Запуск приложения на реальном андроид-устройстве
- Устройство на Android, например, смартфон или планшет.
- Кабель USB для подключения устройства Android к компьютеру.
Запуск приложения на устройстве
- Подключите ваш смартфон к компьютеру с помощью кабеля USB. Если вы разрабатываете на Windows, вам может потребоваться установить соответствующий драйвер USB для вашего устройства. Для получения справки по установке драйверов см. Драйвера OEM USB.
- Включите Отладка через USB на вашем устройстве.
- На большинстве устройств под управлением Android 3.2 или старше, вы можете найти опцию в меню Настройки > Приложения > Разработка.
- На Android 4.0 и новее, это находится в Настройки > Для разработчиков.
Примечание: На Android 4.2 и новее, пункт меню Для разработчиков по умолчанию скрыт. Чтобы сделать его доступным, перейдите к Настройки > О телефоне и нажмите Номер сборки семь раз. Вернитесь к предыдущему экрану, чтобы найти пункт меню Для разработчиков.
Чтобы запустить приложение из Android Studio:
Откройте один из файлов вашего проекта и нажмите Run app на панели инструментов. Или нажмите комбинацию клавиш Shift+F10.
Откроется окно выбора подключенного реального устройства или эмулятора. Выберите ваше устройство и нажмите OK.
Android Studio устанавливает приложение на выбранное устройство и запускает его.
Неполадки
В случае неполадок при запуске приложения в нижней части окна Android Studio открывается окно Logcat, где можно увидеть текст ошибки и возможное решение проблемы. Если вам непонятно, о чем там написано, попробуйте загуглить часть текста ошибки. Очень вероятно, что вы найдете в результатах поиска решение вашей проблемы на форумах для программистов.
Если Приложение не запускается, закройте среду Android Studio и перезапустите ее.
Если среда разработки Android Studio не распознает устройство, попробуйте выполнить следующие действия.
- Отключите устройство от компьютера и снова подключите его.
- Перезапустите среду Android Studio.
Возможно, потребуется установить соответствующий драйвер USB для устройства. См. Using Hardware Devices documentation.
Все ссылки на дополнительные материалы по теме есть в текстовой версии урока на сайте fandroid.info. Вопросы задавайте в комментариях к уроку на сайте.
Надеемся, у вас все получилось и вы запустили приложение на устройстве. А на следующем уроке мы более подробно разберемся в приложении и попробуем изменить его. Всем добра!
Туториал по Kotlin для начинающих: создаем простой квиз
Kotlin - один из двух официальных языков, используемых при разработке под Android, и язык, который стоит выбрать, говоря о платформе Google. Для тех, кто начинает изучать Kotlin это хорошая новость, ведь это простой и приятный для изучения язык. Пройти туториал по Kotlin проще, чем вы думаете, а это значит, что теперь любой может начать создавать приложения под Android!
Kotlin стал участником этого праздника позже, чем его брат Java - ведь официальный статус получил только с 2017 года. Кроме того, он реже используется за пределами Android, поэтому многие авторитетные разработчики до сих пор сторонятся его.
В этом туториале по Kotlin мы рассмотрим процесс создания простого приложения на Kotlin - квиза, что послужит отправной точкой для изучения Kotlin в целом. Приступим!
Создаем ваш первый Android-проект на Kotlin
Чтобы изучить Kotlin для разработки под Android, вам сначала нужно скачать Android Studio и все настроить.
Как только это будет сделано, создайте новый проект и убедитесь, что вы выбрали Kotlin в качестве языка в раскрывающемся меню. Теперь выберите Empty Activity в качестве начального шаблона.
Вас встретит код, выглядящий следующим образом:
Этот шаблонный код находится в вашем файле MainActivity.kt и является первым, запускающемся при создании приложения. Этот код сообщает Android, что нужно отобразить файл макета: activity_main.xml. Android Studio легко делает это для нас в другой вкладке в верхней части основного окна. Вы можете перейти в эту вкладку в любое время, чтобы увидеть визуальный дизайнер, в котором вы можете перетаскивать элементы, такие как кнопки и текст вью. Если при открытии этого файла вы видите только код, вам нужно переключиться в «Design», нажав кнопку в правом верхнем углу.
В разработке под Android вам нужно будет работать не только с Kotlin/Java, но и с XML. XML означает "Extensible Markup Language" (расширяемый язык разметки) и является "markup language" (языком разметки). Это означает, что он не диктует логику или динамические действия, а просто определяет, где происходит что-то на странице.
При создании приложений под Android вам нужно будет создать макеты с помощью XML и визуального дизайнера, а затем определить, как эти элементы отрабатывают в соответствующем коде на Kotlin или Java.
А пока просто следуйте инструкциям, и, надеюсь, все станет ясно!
Kotlin: начало работы и создание макета
Прежде чем мы начнем изучать программирование на Kotlin, мы сначала внесем некоторые изменения в XML-файл, чтобы создать дизайн, который хотим.
Упростить все можно, просто нажав на Code, а затем вставив следующее, чтобы перезаписать то, что уже есть:
Это, в свою очередь, означает, что мы можем сосредоточиться на программировании на Kotlin и не беспокоиться о том, как выглядит наше приложение. По крайней мере сильно.
Заставляем кнопки хоть что-то делать!
Теперь у нас есть макет, и хорошая новость заключается в том, что ссылаться на эти элементы и изменять их в программе Kotlin очень легко.
Для этого нам нужно обратиться к "ID" (идентификатору), которые мы предоставили нашим вьюшкам. View - это техническое название виджетов, составляющих наш макет, таких как кнопки и текстовые метки.
Вы увидите, что мы уже сделали это в XML:
В данном случае «ID» кнопки - «button». Обратите внимание, что написание чувствительно к регистру. Слово Button с заглавной буквы B на самом деле относится к более широкой концепции всех кнопок в Kotlin.
Следовательно, мы можем ссылаться на кнопку в нашем коде. Если бы мы написали button.setText ("Right Answer!") , тогда текст на первой кнопке изменился бы на Right Answer! .
Но мы не хотим этого делать. Вместо этого мы сделаем так, чтобы при нажатии первой кнопки появлялось CORRECT (ПРАВИЛЬНО!) и этим мы сообщаем нашему игроку, что он выбрал правильное решение.
Поместите этот код в функцию onCreate (это весь код в фигурных скобках после слова onCreate). В Kotlin, как и в Java, код можно «заблокировать», поместив его в фигурные скобки. Такое группирование полезно, если мы хотим, чтобы определенный набор кода выполнялся, например, за пределами прямолинейной траектории. И совсем скоро мы узнаем, что же такое "function" (функция).
Kotlin туториал - Использование функций в Kotlin
Вы можете подумать, что уже создали свое первое приложение на Kotlin под Android, но на самом деле программирования на Kotlin здесь мало. Скорее, мы полагаемся в основном на XML для внешнего вида и на Android SDK для производительности. Например, setText не является примером Kotlin, а скорее является частью класса Android (TextView). То есть сам Kotlin не поддерживает эти типы кнопок и текстовых лейблов, а просто используется в данном случае для структуры.
Чтобы определить функцию, нам нужно дать ей имя, которое будет описывать то, что она делает. Затем мы добавляем к этому префиксу слово " fun " (развлечение) и ставим за ним фигурные скобки. Убедитесь, что вы делаете это вне функции onCreate , но внутри класса MainActivity (хотя это очень упрощенное решение, но фактически это имя файла).
Запускаем. Код будет вести себя точно так же, как и раньше. Единственная разница в том, что он стал лучше организован.
Для этого мы собираемся использовать две новые концепции программирования на Kotlin.
Аргументы, переменные и условные операторы Kotlin
Теперь вы знаете, как использовать функции для группировки разделов кода в Android, и в следующей части этого руководства по Kotlin произойдет настоящее волшебство. Вы овладеете тремя бесценными навыками программирования на Kotlin и любом другом языке!
Во-первых, переменная - это «контейнер» для данных. Другими словами, переменная позволяет использовать слово для обозначения другого слова, числа или даже списка элементов. Скорее всего, вы помните переменные из уроков алгебры:
a + 2 = 3, найдите a!
Здесь, очевидно, используется для обозначения «1». Мы аналогичным образом используем переменные в программировании, чтобы у нас была возможность изменять поведение нашего кода в зависимости от взаимодействия с пользователем или других входных данных.
Что мы также можем делать с переменными, так это передавать их между функциями. Когда мы это делаем, мы называем это «аргументом». По сути, это позволяет нам передавать входные данные в нашу функцию для изменения выходных данных.
Чтобы определить аргументы, которые будет принимать функция, нам просто нужно поместить их в фигурные скобки.
Мы используем тип переменной, называемый интеджером (или целым числом), который в Kotlin называется Int . Интеджеры, как вы также можете помнить из математики, - это целые числа без десятичных знаков.
Поэтому нам нужно обновить нашу функцию, чтобы она выглядела так:
Здесь имя функции - answer (ответ), и она имеет целочисленный тип. Теперь, когда мы впоследствии вызываем нашу функцию, нам нужно добавить целое число в фигурные скобки:
Вы можете передать в функцию столько аргументов, сколько захотите, при условии, что вы определите их каждый и разделите запятыми.
В этом случае мы собираемся присвоить каждой кнопке номер. A = 1, B = 2 и C = 3. Теперь функция showToast знает, какую кнопку нажал пользователь!
Это инструкция if , и она покажет код внутри фигурных скобок только в том случае, если инструкция в обычных скобках имеет значение true . В этом случае, если переменная answer содержит значение 1 , мы можем запустить код!
Что делать, если ответ - 2 или 3 ? Что ж, мы всегда можем использовать еще две условные инструкции! Но более быстрым решением было бы использовать инструкцию else . Она делает именно то, что вы ожидаете, когда следует за инструкцией if :
Делаем игру увлекательной
Если вы не усвоили информацию с первого раза, рекомендую перечитать несколько раз. Это самая важная часть туториала по Kotlin, и с помощью всего лишь нескольких навыков вы сможете обрабатывать очень много кода!
Затем мы изменим наши новые приемы программирования, чтобы превратить это в настоящую игру.
Сначала мы создадим еще три переменные. Это будут глобальные переменные, созданные вне каких-либо функций и, следовательно, доступные для всех функций.
Обратите внимание, что в Kotlin вам не нужно назначать тип переменной. В таких языках, как Java, вам нужно сразу указать, является ли ваша переменная Int (целым числом), String (строкой), Float (числом с плавающей точкой) и т. д. В Kotlin мы можем просто написать var и позволить Kotlin разбираться самостоятельно!
Перед функцией onCreate() добавьте эти три строки:
Переменная questionNo - это целое число и будет использоваться для отслеживания номера вопроса, который мы задаем. Переменная questions представляет из себя список, означающий, что это переменная, которая может содержать несколько значений - в данном случае несколько строк. Каждая из наших строк разделена запятой, и ей будет присвоен индекс, на который можно будет ссылаться позже (обратите внимание, что первому элементу в списке присваивается индекс: 0). Важно, что символ \n распознается Kotlin (и большинством языков) как символ "новой строки" и фактически не отображается в нашем выводе.
(Это выглядит некрасиво, и если вы создаете реальное приложение, то лучше хранить эти значения в отдельном XML-файле.)
Последняя строка создает еще один список, на этот раз заполненный целыми числами. Это правильные ответы на каждый наш вопрос!
Затем мы создаем новую функцию с названием updateQuestion . Все, что мы собираемся здесь сделать, это изменить наш вопрос в зависимости от номера вопроса. Делаем это так:
Поскольку мы вызываем эту функцию только тогда, когда кто-то получает правильный ответ, мы можем безопасно увеличить значение нашей переменной questionNo в начале функции. Затем мы собираемся задать вопрос, который отображается, обновив textView.
Когда мы используем get со списком как в коде выше, нам нужно только вставить индекс в скобки, чтобы получить значение, которое там помещено. Таким образом, мы можем перейти к следующему вопросу, постепенно увеличивая это значение.
Продолжаем
Запустите этот код, и теперь вы должны обнаружить, что вопрос обновляется каждый раз, когда вы получаете правильный ответ! Это полноценная игра, и вы могли бы создать гораздо больше подобных проектов, используя приобретенные навыки.
Единственная небольшая проблема со всем этим заключается в том, что прямо сейчас игра вылетает, как только у вас закончатся вопросы!
Но вместо того, чтобы принести вам решение на блюдечке с золотой каемочкой, я призываю вас найти ответ самостоятельно. В конце концов, именно так вы по-настоящему изучите Kotlin: создавая свои собственные проекты и узнавая, как реализовывать каждую новую задачу по мере необходимости.
Читайте также: