пишем приложение под android на kotlin
Как создать приложение для Android на языке Kotlin
Курс по разработке android-приложений на языке Kotlin
Начинаем новый курс по разработке андроид-приложений на языке Kotlin. В этом курсе вы узнаете, как создать и запустить свое первое приложение для Android на Котлине. Если вы не знакомы с языком, рекомендуем заглянуть в раздел Основы Котлин
Kotlin это статически типизированный язык программирования, который работает на JVM и полностью совместим с языком программирования Java. Kotlin с 2017 года является официально поддерживаемым языком разработки приложений для Android, наряду с языком Java.
Исторически сложилось, что первым официальным языком для разработки андроид-приложений была Java. Несмотря на появление языка Kotlin и признание его в качестве официального языка для Android в 2017 году, не все разработчики переводят свои проекты с Java на Kotlin. Однако много новых проектов пишется на Котлине, поскольку это удобный и современный язык.
Какой язык учить: Kotlin или Java?
Многих начинающих разработчиков сейчас волнует вопрос, какой язык изучать для разработки андроид-приложений, Java или Kotlin.
Безусловно, Kotlin нужно изучать и применять в разработке. Этот относительно молодой язык быстро завоевывает популярность у разработчиков благодаря его удобству и современному подходу к решению многих задач а Android. Вероятно, Kotlin станет в недалеком будущем основным языком разработки мобильных приложений для Android.
На нашем сайте вы можете изучить Основы Kotlin
Также на нашем сайте есть Продвинутые курсы по созданию реальных андроид-приложений на языке Котлин
Нужно ли учить Java?
Реальность такова, что Java на сегодняшний день пока остается основным языком разработки андроид-приложений. На Java написано очень много кода – по сути, большинство действующих приложений. С использованием Java написано огромное количество примеров, туториалов и мануалов. Kotlin пока отстает в этом плане. Поэтому, если вы не владеете языком Java, вам трудно будет претендовать на вакансию андроид-разработчика. Следовательно, Java тоже необходимо изучать.
Изучать сразу два языка программирования?
Изучение сразу двух языков программирования может показаться трудной задачей. Но в нашем случае есть положительный момент. Как уже говорилось, Kotlin работает на виртуальной машине Java и полностью совместим с языком Java. Это значит, что в код, написанный на Java можно встраивать код на Kotlin и наоборот. То есть вы можете применять оба языка одновременно не только в одной среде разработки, но и в одном приложении. Конечно, для этого нужно изучить основы обоих языков и научиться применять их.
На нашем сайте вы найдете много уроков по разработке мобильных приложений и игр на языке Java.
И теперь мы начинаем серию уроков по разработке андроид-приложений на языке Kotlin.
Как разработать свое первое приложение для Android на Kotlin
Android становится одной из самых популярных операционных систем в эпоху мобильной разработки. ОС дает разработчикам быстрый выход на рынок (TTM), платформу с открытым исходным кодом, которая может адаптироваться к меняющимся бизнес-требованиям, и возможность развертывания на нескольких платформах.
Это делает Android одним из лучших решений для создания приложений с расширенными функциями.
Приложения для Android написаны на Java или Kotlin. Kotlin становится предпочтительным вариантом для разработчиков приложений, и Google даже объявил, что Kotlin является предпочтительным языком. Сегодня мы расскажем вам, как создать приложение для Android с помощью Kotlin.
История развития Android
С момента своего создания в 2003 году Android стала одной из крупнейших в мире операционных систем для разработки мобильных приложений. Изначально стартап, который изначально намеревался улучшить цифровые камеры, Android переключился на мобильные телефоны в 2004 году, а в следующем году был приобретен Google.
Android 1.0 дебютировал в 2008 году в США. С тех пор было выпущено 15 выпусков мобильных телефонов, использующих эту операционную систему, причем последний анонсированный выпуск Android 11 состоялся в феврале 2020 года.
Из этого краткого урока истории о том, как появился Android, мы готовы установить нашу интегрированную среду разработки (IDE): Android Studio.
Что такое Android Studio и SDK?
Android Studio, созданная специально для Google, призвана максимально упростить разработку приложений для Android. Согласно документам разработчика Android,
«Android Studio — это официальная среда IDE для разработки приложений Android на основе IntelliJ IDEA».
С Android Studio вы можете тестировать приложения либо на эмуляторе, либо прямо на устройстве. Для разработки под Android используются несколько языков. Мы обсудим это более подробно позже.
Android Studio поставляется с Android Software Development Kit (SDK), который является важной частью разработки Android. Он включает файлы и библиотеки для создания приложений Android, а также такие инструменты, как диспетчер виртуальных устройств и мост ADB.
Чтобы загрузить Android Studio, перейдите на официальный сайт и следуйте инструкциям, чтобы начать работу в вашей конкретной операционной системе (Windows / Mac / Linux).
Если вы планируете использовать виртуальное устройство Android вместо физического устройства, обратите внимание на дополнительные требования, необходимые для запуска эмулятора.
Особенности Android Studio
В Android Studio есть несколько функций, которые делают его достойной IDE для вашего следующего проекта:
Технологии, используемые в разработке под Android
Теперь, когда мы рассмотрели наиболее интересные части Android Studio, давайте узнаем о некоторых языках программирования, с которыми вы столкнетесь как разработчик Android.
Чтобы понять разницу между Kotlin и Java, сравните этот MainActivity.javaфайл и MainActivity.ktфайл Android.
Теперь, когда у нас есть представление о технологиях, которые используются при создании приложения для Android, давайте соберем все это вместе и создадим базовое приложение с использованием Kotlin!
Как настроить ваше первое приложение
Чтобы создать наше первое приложение для Android, мы хотим убедиться, что у вас установлена Android Studio. Перейдите по ссылке в разделе «Установка Android Studio», чтобы настроить среду, если вы еще этого не сделали.
Настройки в Android Studio
Откройте Android Studio. Вам будет предложено несколько вариантов. Мы ищем для создания нового проекта. Когда вы нажмете на эту опцию, вам будет предложено выбрать свой проект.
Есть всевозможные шаблоны экранов, из которых вы можете выбирать. На данный момент выберите «Основные действия» на вкладке «Телефон и планшет».
Затем вы будете перенаправлены на экран, на котором вам будет предложено назвать свое приложение, где его сохранить, и должно ли оно быть приложением с поддержкой Instant App.
Важный! Обязательно выберите Kotlin в качестве своего языка. На данный момент по умолчанию используется Java.
Минимальный уровень API — это версия Android, для которой вы хотите разрабатывать. Android предоставляет удобную всплывающую подсказку, которая сообщает вам, на каком проценте устройств будет работать выбранный вами API. Ваши потребности могут отличаться, но рекомендуется использовать API 23: Android 6.0 (Marshmallow).
Щелкните Готово. На этом этапе создание проекта займет около минуты. Давайте продолжим и создадим виртуальное устройство Android. Чтобы мы могли предварительно просмотреть наше приложение в эмуляторе Android.
Настройте виртуальное устройство для тестирования вашего приложения
Виртуальное устройство Android (AVD) — это набор характеристик, которые определяют тип устройства, которое вы хотите эмулировать в эмуляторе Android. В Android Studio есть AVD Manager, который помогает нам создавать виртуальные устройства и управлять ими.
Это означает, что в Android Studio есть место, где мы можем создавать наши виртуальные телефоны, планшеты и многое другое, чтобы мы могли тестировать на них наши приложения.
Теперь вы готовы эмулировать Android-устройство в Android-эмуляторе! Нажмите кнопку «Воспроизвести» на панели инструментов, чтобы запустить приложение. В шаблоне «Basic Activity» он поставляется с предварительно запеченной базовой панелью навигации, кнопкой действия и TextView с надписью «Hello, World!».
Android Studio для начинающих (Kotlin)
Курс для начинающих 2021!
Содержание
Курс для начинающих 2021!
На данном уроке устанавливаем Android Studio смотрим какие проблемы могут появиться и устраняем эти проблемы если они есть.
На данном уроке ознакомимся с Android Studio, узнаем что в нем есть, научимся подключать реальное устройство для тестирования.
На этом уроке мы узнаем что такое Activity и его цикл жизни. К данному уроку прилагается теория. Перейти к теории >>>
На этом уроке посмотрим на практике как работает цикл жизни активити, и для этого мы воспользуемся сообщениями Log. С помощью этих сообщений мы сможем писать текс на панели LogCat для тестирования наших приложений. Также в этом видео покажу как можно вернуть состояние кода в определенный момент времени, это на случай если что то испортили и незнаем как было. Для этого используем Local History.
На этом уроке узнаем что такое View, Layout, узнаем как рисуются элементы экрана и как Activity взаимодействует с элементами экрана, зачем нужны id элементов.
На этом уроке 6 по Android Studio и KOTLIN для начинающих поговорим о переменных var и val. Что это такое зачем они нужны и как создавать. Поговорим чем отличается глобальная переменная класса от локальной в Kotlin.
Сегодня продолжаем знакомиться с переменными. На этом уроке мы поговорим про тип данных, сколько занимает место в памяти переменная того или иного типа. Мы остановимся на числовых типах данных. Byte, Short, Int, Long, Float, Double.
На этом уроке поговорим про типы данных String, Char, Boolean а также поговорим про функцию findViewById, и функцию onClick.
На этом уроке узнаем что такое ViewBinding и как этим пользоваться, а также начнем знакомиться с элементами экрана View и изучать основные атрибуты данных элементов.
На этом уроке изучаем что такое условные значения if и when.
На этом уроке у нас практика. Используем условия для создания простого приложения для android.
На этом уроке у нас практика. Используем условия для создания простого приложения для android.
На этом уроке узнаем что такое ресурсы в андроид, зачем они нужны и как ими пользоваться.
На этом уроке я расскажу про квалификаторы и как переводить текст приложение на другие языки.
На этом уроке я расскажу про квалификаторы и как переводить текст приложение на другие языки.
На этом уроке узнаем 2 способа создания Activity и как можно запускать и закрывать Activity из кода при нажатии на кнопку которую мы сами добавим. Дополнительную информацию можно найти вот тут..
Intent и принимать отправленные данные с помощью метода Activity onActivityResult.
На этом уроке делаем практику по уже пройденному материалу, onActivityResult, Intent, Activity, переменные и.т.д
На этом уроке по изучению Android Studio и языка программирования Kotlin научимся принимать результат с другого Activity по новому стандарту. Возможно многие из вас уже заметили что метод onActivityResult перечеркнут в новых версиях Android Studio и отмечен как deprecated. На этом уроке мы узнаем чем заменить onActivityResult.
На этом уроке узнаем как создаются списки с помощью RecyclerView в Android. Узнаем что такое RecyclerView Adapter и как он работает.
На этом уроке дополняем наш проект с прошлого урока 27 про RecyclerView. Сегодня создаем EditActivity для создания растения которое добавляем в наш список RecyclerView. Для передачи данных используем registerForActivityResult функцию о которой узнали на уроке 25.
Сегодня изучаем Toolbar в андроид и создание Menu для Toolbar. А также добавляем слушатель нажатий на элементы из Menu.
Сегодня изучаем BottomNavigationView в андроид и создание Menu для BottomNavigationView. А также добавляем слушатель нажатий на элементы из BottomNavigationView.
На этом уроке изучаем DrawerLayout для выдвежного меню.
Добавляем в DrawerLayout меню NavigationView и учимся с ним работать. NavigationView представляет собой стандартное меню для навигации по приложению Android. Содержимое меню может быть заполнено файлом ресурсов меню.
Начинаем изучать Fragment. Fragment это как бы отдельный модуль который запускается на Activity при этом у него свой собственный цикл жизни который зависит от цикла жизни Activity.
Передача данных между Fragmen с помощью ViewModel класса. Передаем данные между фрагментами и активити.
Урок 1. Разработка на Kotlin. Установка Android Studio
В первом уроке курса по разработке андроид-приложений на языке Kotlin мы установим необходимые средства для разработки приложений, такие как среда разработки Android Studio.
Этот курс предполагает, что вы знакомы с основами программирования. Если вы немного умеете читать код, вы должны разобраться, даже если у вас нет большого опыта программирования. Если вы не знакомы с основами программирования, то мы рекомендуем посмотреть хотя-бы несколько уроков курса CS50.
Установка Android Studio на компьютер
В этом курсе мы создадим приложение Android на языке Kotlin, используя официальную среду разработки Android Studio. Android Studio — это IDE, созданная на базе программного обеспечения IntelliJ IDEA от JetBrains специально для разработки Android-приложений. Для создания приложений в Kotlin необходимо установить Android Studio 3.0 или более поздней версии.
Среда Android Studio доступна для компьютеров под управлением Windows, Mac и Linux. Установка практически аналогична для всех платформ. Некоторые различия описаны в подробной инструкции по установке на нашем сайте fandroid.info.
Примечание: Последние сведения о системных требованиях и инструкциях по установке содержатся в официальной документации на сайте developer.android.com/studio.
Если вы используете компьютер, на котором уже установлена Android Studio версии 3.0 и выше, переходите к следующему уроку, в котором мы создадим первый проект.
Android Studio использует инструменты Java Develipment Kit в работе. До недавнего времени перед установкой Android Studio нужно было скачать и установить JDK версии 7 или 8 с официального сайта Oracle. Сейчас такой необходимости нет, поскольку Android Studio уже содержит встроенный пакет инструментов JDK.
Если вам необходимо установить официальный JDK, следуйте инструкции Установка JDK (Java Development Kit) на нашем сайте fandroid.info, ссылка под видео.
Установка Android Studio
На данный момент доступна для загрузки версия Android Studio 3.0.
Скачайте дистрибутив для вашей операционной системы
В процессе скачивания можно ознакомится с видео инструкциями по установке Android Studio для вашей операционной системы.
К созданию проекта мы перейдем в следующем уроке, а пока на стартовом экране откройте в меню Configure> SDK Manager, который управляет всеми установленными компонентами среды разработки.
На вкладке SDK Platforms можно увидеть, что загружена только последняя версия Android. Нужно пометить для загрузки несколько последних версий, самых популярных на текущий момент, и скачать их. Процесс загрузки и распаковки происходит автоматически, вам следует только набраться терпения и дождаться его окончания. После окончания установки вы увидите в окне SDK Manager, что выбранные компоненты помечены как загруженные.
Самые популярные версии Android на текущий момент можно посмотреть в статистике на официальном сайте https://developer.android.com/about/dashboards/index.html
Возможные проблемы: Если имя пользователя ПК в Windows написано кириллицей, то Android Studio не будет правильно работать, поскольку среда разработки не читает кириллицу в пути к файлам. Переименуйте пользователя английскими буквами.
При возникновении проблем с установкой вы можете задать вопросы в комментариях под видео на канале Start Android и в комментариях ниже. Кроме того, вы можете воспользоваться различными форумами по программированию, такими как StackOverFlow. Обычно бывает достаточно ввести часть текста ошибки в поиске на StackOverFlow, чтобы найти подсказку к решению проблемы.
На этом наш урок подошел к завершению. А на следующем уроке мы создадим проект в среде разработки Android Studio и запустим первое приложение на андроид-устройстве.
Создаём своё первое приложение для Kotlin Multiplatform
Авторизуйтесь
Создаём своё первое приложение для Kotlin Multiplatform
ведущий мобильный разработчик компании Usetech
Основная идея KMP, как и других кросс-платформенных SDK — оптимизация разработки путем написания кода один раз и последующего его использования на разных платформах.
Согласно концепции JetBrains, Kotlin Multiplatform не является фреймворком. Это именно SDK, который позволяет создавать модули с общим кодом, подключаемые к нативным приложениям.
Написанный на Kotlin модуль компилируется в JVM байткод для Android и LLVM байткод для iOS.
27–28 ноября, Онлайн, Беcплатно
Этот модуль (Shared, Common) содержит переиспользуемую бизнес-логику. Платформенные модули iOS/Android, к которым подключен Shared/Common, либо используют написанную логику напрямую, либо имплементируют свою реализацию в зависимости от особенностей платформы.
Общая бизнес-логика может включать в себя:
Также в нее могут входить архитектурные компоненты приложения, напрямую не включающие UI, но с ним взаимодействующие:
Концепцию Kotlin Multiplatform можно сравнить с реализацией Xamarin Native. Однако, в KMP нет модулей или функционала, реализующих UI. Эта логическая нагрузка ложится на подключенные нативные проекты.
Рассмотрим подход на практике и попробуем написать наше первое приложение Kotlin Multiplatform.
Для начала нам потребуется установить и настроить инструменты:
Мы рассмотрим создание проекта с помощью Intelij IDEA.
Выбираем меню File → New → Create Project:
В появившемся окне выбираем тип проекта Kotlin → Mobile Android/iOS|Gradle
Далее стандартно задаем путь к JDK, имя и расположение проекта
После нажатия кнопки Finish проект сгенерируется и будет почти готов к работе.
Рассмотрим, что у нас получилось:
Мультиплатформенные проекты Kotlin обычно делятся на несколько модулей:
В них располагается наша бизнес-логика. Сам код базового примера мы разберем немного позже.
Код нативного Android приложения располагается в каталоге main, как если бы мы создавали проект по шаблону обычного Android.
iOS приложение создается автоматически и располагается в каталоге iOSApp:
Перед тем, как мы проверим работоспособность базового решения, необходимо сделать следующие финальные настройки:
В local.properties зададим путь к SDK Android:
Создадим конфигурацию для работы Android приложения:
Теперь вызовем команду gradle wrapper для сборки нашего модуля общей логики:
После сборки модуль для бизнес-логики для Android приложения доступен в app/build/libs:
Путь к библиотеке прописывается стандартно, в блоке dependencies файла build.gradle:
Теперь наш проект сконфигурирован для запуска Android приложения:
Осталось сделать настройки для запуска приложения iOS.
В файле build.gradle(:app) необходимо изменить настройку архитектура проекта, чтобы наше приложение поддерживало как реальные устройства, так и эмуляторы.
После выполнения сборки создастся фреймворк в app/build/bin/ios:
Intelij IDEA автоматически создает в gradle файле код для генерации, подключения и встраивания фреймворка в IOS проект:
При ручной настройке проекта (например, через Android Studio) этот код потребуется указать самостоятельно.
После синхронизации gradle iOS проект готов к запуску и проверке с помощью XCode.
Проверяем, что у нас получилось. Открываем проект iOS через iosApp.xcodeproj:
Проект имеет стандартную структуру, за исключением раздела app, где мы получаем доступ к коду наших модулей на Kotlin.
Фреймворк действительно подключен автоматически во всех соответствующих разделах проекта:
Запускаем проект на эмуляторе:
Теперь разберем код самого приложения на базовом примере.
Используемую в проекте бизнес-логику можно разделить на:
Переиспользуемая логика располагается в проекте commonMain в каталоге kotlin и разделяется на package. Декларации функций, классов и объектов, обязательных к переопределению, помечаются модификатором expect :
Вызов логики производится в нативном проекте:
Теперь попробуем по тем же принципам сделать что-то посложнее и поинтереснее. Например, небольшое приложение для получения и отображение списка новостей для iOS и Android.
Приложение будет иметь следующую структуру:
В общей части (Common) расположим бизнес-логику:
В модулях iOS/Android приложений оставим только UI компоненты для отображения списка и адаптеры. iOS часть будет написана на Swift, Android – на Kotlin. Здесь в плане работы не будет ничего нового.
Организуем архитектуру приложений по простому паттерну MVP. Презентер, обращающийся к бизнес-логике, также вынесем в Common часть. Также поступим и с протоколом для связи между презентером и экранами UI:
Начнем с бизнес-логики. Т.к весь функционал будет в модуле common, то мы будем использовать в качестве библиотек решения для Kotlin Multiplatform:
1. Ktor – библиотека для работы с сетью и сериализации.
В build.gradle (:app) пропишем следующие зависимости:
Также добавим поддержку плагина сериализации:
2. Kotlin Coroutines – для организации многопоточной работы.
При добавлении зависимости в iOS проект обратите внимание, что версия библиотеки должна быть обязательно native-mt и совместима с версией плагина Kotlin multiplatform.
В commonMain создадим Dispatchers.kt, где объявим переменные:
Реализация в androidMain создается легко. Для доступа к соответствующим потокам используем CoroutineDispatchers Main (UI поток) и Default (стандартный для Coroutine ):
С iOS труднее. Та версия Kotlin Native LLVM компилятора, которая используется в Kotlin Multiplatform, не поддерживает background очереди. Это давно известная проблема, которая к сожалению, еще не исправлена
Поэтому попробуем обходной маневр как временное решение проблемы.
Также нам понадобится свой scope для работы сетевого клиента:
Android
Применим это при реализации сетевого клиента на Ktor:
Вызывать бизнес-логику будем в презентере. Для полноценной работы с coroutines нам надо будет создать scope:
и добавить его в презентер. Вынесем в базовый класс:
Теперь создадим презентер NewsListPresenter для нашего модуля. В инициализатор передадим defaultDispatcher :
Обратите внимание! Из-за особенностей текущей работы Kotlin Native с многопоточностью в IOS работа с синглтонами может привести к крашу. Поэтому для корректной работы надо добавить аннотацию @ThreadLocal для используемого объекта:
Осталось подключить логику к нативным IOS и Android модулям и обработать ответ от Presenter:
Запускаем сборку common модуля gradle wrapper, чтобы сборки обновились. Проверяем работу приложений:
Готово. Вы великолепны.
Оба наши приложения работают и работают одинаково.
Информационные материалы, которые использовались: