Курс «Основы Kotlin»


Оглавление (нажмите, чтобы открыть):

Изучение языка программирования Kotlin от основ до специалиста (2020) Видеокурс

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

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

Список уроков
Что такое Kotlin и написание первой программы
Функции
Переменные
Пакеты импорты и классы
If enum и when
Циклы
Исключения
Коллекции
Функции
Полиморфизм, наследование и иерархии
Конструкторы
Поля
Переопределение Equals, HashCode и toString
Ключевое слово object
Лямбда выражения
Лямбда и коллекции
Null-абл типы
Примитивные типы
Создание массивов и коллекций
Переопределение операций
Делегирование свойств
Лямбда как параметры
Инлайн функции
Обобщения
Обобщения в рантайме
Ковариантность обобщений
Антотации
Рефлекция

Коротко о видео
Заголовок: Изучение языка программирования Kotlin от основ до специалиста
Автор: Максим Гузив
Создан: 2020
Жанр: Видеокурс
Перевод: Русский
Выпущено: Россия
Длительность: 03:25:08

Файл
Формат: MP4
Видео: AVC, 1280×720,

795 Kbps
Аудио: AAC, 128 Kbps, 48.0 KHz
Файл весит: 1.16 Gb

Основы Kotlin

Первая лекция кружа «Разработка Android-приложений на Kotlin» посвящена введению в язык Kotlin. Описывается основной синтаксис и типы данных, демонстрируется создание программ на Kotlin в IntellijIdea. Примеры — https://github.com/OSLL/kotlin_circle_2020, ссылки на презентации — https://drive.google.com/drive/folders/0B-cth7-Fd75FQnJLYktiX3JhT2c

Вопросы совместимости Kotlin и Java 6:27
HelloWorld 13:50
Синтаксис функций 18:40
Типы данных и переменные 22:18
Условные операторы 37:49
Циклы 41:03
Массивы 42:50
Докладчик: Марк Заславский, сотрудник лаборатории алгоритмов мобильных роботов JetBrains Research, преподаватель СПБГЭТУ «ЛЭТИ», активный участник Open Source and Linux Laboratory, асприант НИУ ИТМО.

Видео Основы Kotlin канала OSLL v >Показать

Оглавление. Глава 2. Основы Kotlin. 39

    Виктор Витвицкий 2 лет назад Просмотров:

1 Оглавление Предисловие Вступление Благодарности Об этой книге Об авторах Об изображении на обложке Часть 1. Введение в Kotlin Глава 1. Kotlin: что это и зачем Знакомство с Kotlin Основные черты языка Kotlin Целевые платформы: серверные приложения, Android и везде, где запускается Java Статическая типизация Функциональное и объектно-ориентированное программирование Бесплатный язык с открытым исходным кодом Приложения на Kotlin Kotlin на сервере Kotlin в Android Философия Kotlin Прагматичность Лаконичность Безопасность Совместимость Инструментарий Kotlin Компиляция кода на Kotlin Плагин для Intellij IDEA и Android Studio Интерактивная оболочка Плагин для Eclipse Онлайн-полигон Конвертер кода из Java в Kotlin Резюме Глава 2. Основы Kotlin Основные элементы: переменные и функции Привет, мир! Функции Переменные Простое форматирование строк: шаблоны Классы и свойства Свойства Собственные методы доступа. 48

2 6 Оглавление Размещение исходного кода на Kotlin: пакеты и каталоги Представление и обработка выбора: перечисления и конструкция «when» Объявление классов перечислений Использование оператора «when» с классами перечислений Использование оператора «when» с произвольными объектами Выражение «when» без аргументов Автоматическое приведение типов: совмещение проверки и приведения типа Рефакторинг: замена «if» на «when» Блоки в выражениях «if» и «when» Итерации: циклы «while» и «for» Цикл «while» Итерации по последовательности чисел: диапазоны и прогрессии Итерации по элементам словарей Использование «in» для проверки вхождения в диапазон или коллекцию Исключения в Kotlin «try», «catch» и «finally» «try» как выражение Резюме. 68 Глава 3. Определение и вызов функций Создание коллекций в Kotlin Упрощение вызова функций Именованные аргументы Значения параметров по умолчанию Избавление от статических вспомогательных классов: свойства и функции верхнего уровня Добавление методов в сторонние классы: функции-расширения и свойства-расширения Директива импорта и функции-расширения Вызов функций-расширений из Java Вспомогательные функции как расширения Функции-расширения не переопределяются Свойства-расширения Работа с коллекциями: переменное число аргументов, инфиксная форма записи вызова и поддержка в библиотеке Расширение API коллекций Java Функции, принимающие произвольное число аргументов Работа с парами: инфиксные вызовы и мультидекларации Работа со строками и регулярными выражениями Разбиение строк Регулярные выражения и строки в тройных кавычках Многострочные литералы в тройных кавычках Чистим код: локальные функции и расширения Резюме. 96

3 Оглавление 7 Глава 4. Классы, объекты и интерфейсы Создание иерархий классов Интерфейсы в Kotlin Модификаторы open, final и abstract: по умолчанию final Модификаторы видимости: по умолчанию public Внутренние и вложенные классы: по умолчанию вложенные Запечатанные классы: определение жестко заданных иерархий Объявление классов с нетривиальными конструкторами или свойствами Инициализация классов: основной конструктор и блоки инициализации Вторичные конструкторы: различные способы инициализации суперкласса Реализация свойств, объявленных в интерфейсах Обращение к полю из методов доступа Изменение видимости методов доступа Методы, сгенерированные компилятором: классы данных и делегирование Универсальные методы объектов Классы данных: автоматическая генерация универсальных методов Делегирование в классах. Ключевое слово by Ключевое слово object: совместное объявление класса и его экземпляра Объявление объекта: простая реализация шаблона «Одиночка» Объекты-компаньоны: место для фабричных методов и статических членов класса Объекты-компаньоны как обычные объекты Объекты-выражения: другой способ реализации анонимных внутренних классов Резюме Глава 5. Лямбда-выражения Лямбда-выражения и ссылки на члены класса Введение в лямбда-выражения: фрагменты кода как параметры функций Лямбда-выражения и коллекции Синтаксис лямбда-выражений Доступ к переменным из контекста Ссылки на члены класса Функциональный API для работы с коллекциями Основы: filter и map Применение предикатов к коллекциям: функции «all», «any», «count» и «find» Группировка значений в списке с функцией groupby Обработка элементов вложенных коллекций: функции flatmap и flatten Отложенные операции над коллекциями: последовательности Выполнение операций над последовательностями: промежуточная и завершающая операции Создание последовательностей Использование функциональных интерфейсов Java Передача лямбда-выражения в Java-метод. 162

4 8 Оглавление SAM-конструкторы: явное преобразование лямбда-выражений в функциональные интерфейсы Лямбда-выражения с получателями: функции «with» и «apply» Функция «with» Функция «apply» Резюме Глава 6. Система типов Kotlin Поддержка значения null Типы с поддержкой значения null Зачем нужны типы Оператор безопасного вызова: «?.» Оператор «Элвис»: «?:» Безопасное приведение типов: оператор «as?» Проверка на null: утверждение «!!» Функция let Свойства с отложенной инициализацией Расширение типов с поддержкой null Параметры типов с поддержкой null Допустимость значения null и Java Примитивные и другие базовые типы Примитивные типы: Int, Boolean и другие Примитивные типы с поддержкой null: Int?, Boolean? и прочие Числовые преобразования Корневые типы Any и Any? Тип Unit: тип «отсутствующего» значения Тип Nothing: функция, которая не завершается Массивы и коллекции Коллекции и допустимость значения null Изменяемые и неизменяемые коллекции Коллекции Kotlin и язык Java Коллекции как платформенные типы Массивы объектов и примитивных типов Резюме Часть 2. Непростой Kotlin Глава 7. Перегрузка операторов и другие соглашения Перегрузка арифметических операторов Перегрузка бинарных арифметических операций Перегрузка составных операторов присваивания Перегрузка унарных операторов Перегрузка операторов сравнения Операторы равенства: «equals» Операторы отношения: compareto Соглашения для коллекций и диапазонов Обращение к элементам по индексам: «get» и «set» Соглашение «in». 230

5 Оглавление Соглашение rangeto Соглашение «iterator» для цикла «for» Мультидекларации и функции component Мультидекларации и циклы Повторное использование логики обращения к свойству: делегирование свойств Делегирование свойств: основы Использование делегирования свойств: отложенная инициализация и «by lazy()» Реализация делегирования свойств Правила трансляции делегированных свойств Сохранение значений свойств в словаре Делегирование свойств в фреймворках Резюме Глава 8. Функции высшего порядка: лямбда-выражения как параметры и возвращаемые значения Объявление функций высшего порядка Типы функций Вызов функций, переданных в аргументах Использование типов функций в коде на Java Значения по умолчанию и пустые значения для параметров типов функций Возврат функций из функций Устранение повторяющихся фрагментов с помощью лямбда-выражений Встраиваемые функции: устранение накладных расходов лямбда-выражений Как работает встраивание функций Ограничения встраиваемых функций Встраивание операций с коллекциями Когда следует объявлять функции встраиваемыми Использование встраиваемых лямбда-выражений для управления ресурсами Порядок выполнения функций высшего порядка Инструкции return в лямбда-выражениях: выход из вмещающей функции Возврат из лямбда-выражений: возврат с помощью меток Анонимные функции: по умолчанию возврат выполняется локально Резюме Глава 9. Обобщенные типы Параметры обобщенных типов Обобщенные функции и свойства Объявление обобщенных классов Ограничения типовых параметров Ограничение поддержки null в типовом параметре. 283

6 10 Оглавление 9.2. Обобщенные типы во время выполнения: стирание и овеществление параметров типов Обобщенные типы во время выполнения: проверка и приведение типов Объявление функций с овеществляемыми типовыми параметрами Замена ссылок на классы овеществляемыми типовыми параметрами Ограничения овеществляемых типовых параметров Вариантность: обобщенные типы и подтипы Зачем нужна вариантность: передача аргумента в функцию Классы, типы и подтипы Ковариантность: направление отношения тип подтип сохраняется Контравариантность: направление отношения тип подтип изменяется на противоположное Определение вариантности в месте использования: определение вариантности для вхождений типов Проекция со звездочкой: использование * вместо типового аргумента Резюме Глава 10. Аннотации и механизм рефлексии Объявление и применение аннотаций Применение аннотаций Целевые элементы аннотаций Использование аннотаций для настройки сериализации JSON Объявление аннотаций Метааннотации: управление обработкой аннотаций Классы как параметры аннотаций Обобщенные классы в параметрах аннотаций Рефлексия: интроспекция объектов Kotlin во время выполнения Механизм рефлексии в Kotlin: KClass, KCallable, KFunction и KProperty Сериализация объектов с использованием механизма рефлексии Настройка сериализации с помощью аннотаций Парсинг формата JSON и десериализация объектов Заключительный этап десериализации: callby() и создание объектов с использованием рефлексии Резюме Глава 11. Конструирование DSL От API к DSL Понятие предметно-ориентированного языка Внутренние предметно-ориентированные языки Структура предметно-ориентированных языков Создание разметки HTML с помощью внутреннего DSL Создание структурированных API: лямбда-выражения с получателями в DSL Лямбда-выражения с получателями и типы функций-расширений Использование лямбда-выражений с получателями в построителях разметки HTML Построители на Kotlin: поддержка абстракций и многократного использования. 363

7 Оглавление Гибкое вложение блоков с использованием соглашения «invoke» Соглашение «invoke»: объекты, вызываемые как функции Соглашение «invoke» и типы функций Соглашение «invoke» в предметно-ориентированных языках: объявление зависимостей в Gradle Предметно-ориентированные языки Kotlin на практике Цепочки инфиксных вызовов: «should» в фреймворках тестирования Определение расширений для простых типов: обработка дат Члены-расширения: внутренний DSL для SQL Anko: динамическое создание пользовательских интерфейсов в Android Резюме Приложение А. Сборка проектов на Kotlin A.1. Сборка кода на Kotlin с помощью Gradle A.1.1. Сборка Kotlin-приложений для Android с помощью Gradle A.1.2. Сборка проектов с обработкой аннотаций A.2. Сборка проектов на Kotlin с помощью Maven A.3. Сборка кода на Kotlin с помощью Ant Приложение В. Документирование кода на Kotlin B.1. Документирующие комментарии в Kotlin B.2. Создание документации с описанием API Приложение С. Экосистема Kotlin C.1. Тестирование C.2. Внедрение зависимостей C.3. Сериализация JSON C.4. Клиенты HTTP C.5. Веб-приложения C.6. Доступ к базам данных C.7. Утилиты и структуры данных C.8. Настольные приложения Предметный указатель. 394

8 Предисловие Впервые оказавшись в JetBrains весной 2010 года, я был абсолютно уверен, чтомиру не нужен еще один язык программирования общего назначения. Я полагал, что существующие JVM-языки достаточно хороши, да и кто в здравом уме станет создавать новый язык? Примерно после часа обсуждения проблем разработки крупномасштабных программных продуктов мое мнение изменилось, и я набросал на доске первые идеи, которые позже стали частью языка Kotlin. Вскоре после этого я присоединился к JetBrains для проектирования языка и работы над компилятором. Сегодня, спустя шесть лет, мы приближаемся к выпуску второй версии. Сейчас в команде работает более 30 человек, а у языка появились тысячи активных пользователей, и у нас осталось еще множество потрясающих идей, которые с трудом укладываются в моей голове. Но не волнуйтесь: прежде чем стать частью языка, эти идеи подвергнутся тщательной проверке. Мы хотим, чтобы в будущем описание языка Kotlin по-прежнему могло уместиться в одну не слишком большую книгу. Изучение языка программирования это захватывающее и часто очень полезное занятие. Если это ваш первый язык, с ним вы откроете целый новый мир программирования. Если нет, он заставит вас по-другому думать о знакомых вещах и глубже осознать их на более высоком уровне абстракции. Эта книга предназначена в основном для последней категории читателей, уже знакомых с Java. Проектирование языка с нуля это сама по себе сложная задача, но обеспечение взаимодействия с другим языком это совсем другая история, полная злых огров и мрачных подземелий. (Если не верите мне спросите Бьярне Страуструпа (Bjarne Stroustrup), создателя C++.) Совместимость с Java (то есть возможность смешивать код на Java и Kotlin и вызывать один из другого) стала одним из краеугольных камней Kotlin, и эта книга уделяет большое внимание данному аспекту. Взаимодействие с Java очень важно для постепенного внедрения Kotlin в существующие проекты на Java. Даже создавая проект с нуля, важно учитывать, как язык вписывается в общую картину платформы со всем многообразием библиотек, написанных на Java. В данный момент, когда я пишу эти строки, разрабатываются две новые платформы: Kotlin уже запускается на виртуальных машинах JavaScript, обеспечивая поддержку разработки всех уровней веб-приложения, и скоро его можно будет компилировать прямо в машинный код и запускать без виртуальной машины. Хотя эта книга ориентирована на JVM, многое из того, что вы узнаете, может быть использовано в других средах выполнения. Авторы присоединились к команде Kotlin с самых первых дней, поэтому они хорошо знакомы с языком и его внутренним устройством. Благодаря опыту выступления на конференциях и проведению семинаров и курсов о Kotlin авторы смогли сформировать хорошие объяснения, предвосхищающие самые распространенные вопросы и возможные подводные камни. Книга объясняет высокоуровневые понятия языка во всех необходимых подробностях. Надеюсь, вы хорошо проведете время с книгой, изучая наш язык. Как я часто говорю в сообщениях нашего сообщества: «Хорошего Kotlin!» Андрей Бреслав, ведущий разработчик языка Kotlin в JetBrains

Мастер Йода рекомендует:  Изучаем нейронные сети с чего начать

9 Вступление Идея создания Kotlin зародилась в JetBrains в 2010 году. К тому времени компания уже была признанным производителем инструментов разработки для множества языков, включая Java, C#, JavaScript, Python, Ruby и PHP. IntelliJ IDEA наш флагманский продукт, интегрированная среда разработки (IDE) для Java также включала плагины для Groovy и Scala. Опыт разработки инструментария для такого разнообразного набора языков позволил нам получить уникальное понимание процесса проектирования языков целом и взглянуть на него под другим углом. И все же интегрированные среды разработки на платформе IntelliJ, включая IntelliJ IDEA, по-прежнему разрабатывались на Java. Мы немного завидовали нашим коллегам из команды.net, которые вели разработку на C# современном, мощном, быстро развивающемся языке. Но у нас не было языка, который мы могли бы использовать вместо Java. Какими должны быть требования к такому языку? Первое и самое очевидное статическая типизация. Мы не знаем другого способа разрабатывать проекты с миллионами строк кода на протяжении многих лет, не сходя при этом с ума. Второе полная совместимость с существующим кодом на Java. Этот код является чрезвычайно ценным активом компании JetBrains, и мы не могли себе позволить потерять или обесценить его из-за проблем совместимости. В-третьих, мы не хотели идти на компромиссы с точки зрения качества инструментария. Производительность разработчиков самая главная ценность компании JetBrains, а для её достижения нужен хороший инструментарий. Наконец, нам был нужен язык, простой в изучении и применении. Когда мы видим в своей компании неудовлетворенную потребность, мы знаем, что есть и другие компании, оказавшиеся в подобной ситуации, и что наше решение найдет много пользователей за пределами JetBrains. Учитывая это, мы решили начать проект разработки нового языка: Kotlin. Как это часто бывает, проект занял больше времени, чем мы ожидали, и Kotlin 1.0 вышел больше чем через пять лет после того, как в репозитории появился первый фрагмент его реализации; но теперь мы уверены, что язык нашел своих пользователей и будет использоваться в дальнейшем. Язык Kotlin назван в честь острова Котлин неподалеку от Санкт-Петербурга в России, где живет большинство разработчиков Kotlin. Выбрав для названия языка имя острова, мы последовали прецеденту, созданному языками Java и Ceylon, но решили найти что-то ближе к нашему дому. По мере приближения к выпуску первой версии языка мы поняли, что нам не помешала бы книга про Kotlin, написанная людьми, которые участ вовали в принятии проектных решений и могут уверенно объяснить, почему Kotlin устроен так, а не иначе. Данная книга результат совместных усилий этих людей, и мы надеемся, что она поможет вам узнать и понять язык Kotlin. Удачи вам, и программируйте с удовольствием!

10 Благодарности Прежде всего мы хотим поблагодарить Сергея Дмитриева и Максима Шафирова за веру в идею нового языка и решение вложить средства JetBrains в его разработку. Без них не было бы ни языка, ни этой книги. Мы хотели бы особо поблагодарить Андрея Бреслава главного виновника, что язык спроектирован так, что писать про него одно удовольствие (впрочем, как и программировать на нем). Несмотря на занятость управлением постоянно растущей командой Kotlin, Андрей смог сделать много полезных замечаний, что мы очень высоко ценим. Более того, вы можете быть уверены, что книга получила одобрение от ведущего разработчика языка в виде предисловия, которое он любезно написал. Мы благодарны команде издательства Manning, которая помогла нам написать книгу и сделать ее легко читаемой и хорошо структурированной. В частности, мы хотим поблагодарить редактора-консультанта Дэна Махари (Dan Maharry), который всегда стремился найти время для обсуждения, несмотря на наш напряженный график, а также Майкла Стивенса (Michael Stephens), Хелен Стергиус (Helen Stergius), Кевина Салливана (Kevin Sullivan), Тиффани Тейлор (Tiffany Taylor), Элизабет Мартин (Elizabeth Martin) и Марию Тюдор (Marija Tudor). Отзывы наших технических редакторов Брента Уотсона (Brent Watson) и Игоря Войды (Igor Wojda) оказались просто бесценны, так же как замечания рецензентов, читавших рукопись в процессе работы: Алессандро Кампеи (Alessandro Campeis), Амита Ламба (Amit Lamba), Анджело Косты (Angelo Costa), Бориса Василе (Boris Vasile), Брендана Грейнджера (Brendan Grainger), Кальвина Фернандеса (Calvin Fernandes), Кристофера Бейли (Christopher Bailey), Кристофера Борца (Christopher Bortz), Конора Редмонда (Conor Redmond), Дилана Скотта (Dylan Scott), Филипа Правика (Filip Pravica), Джейсона Ли (Jason Lee), Джастина Ли (Justin Lee), Кевина Орра (Kevin Orr), Николаса Франкеля (Nicolas Frankel), Павла Гайды (Paweł Gajda), Рональда Тишлера (Ronald Tischliar) и Тима Лаверса (Tim Laver). Также благодарим всех, кто отправил свои предложения в рамках MEAP (Manning Early Access Program программы раннего доступа Manning) на форуме книги; ваши комментарии помогли улучшить текст книги. Мы благодарны всем участникам команды Kotlin, которым приходилось выслушивать ежедневные заявления вроде: «Еще один раздел закончен!» на протяжении всего периода написания этой книги. Мы хотим поблагодарить наших коллег, которые помогли составить план книги и оставляли отзывы о её ранних вариантах, особенно Илью Рыженкова, Хади Харири (Hadi Hariri), Михаила Глухих и Илью Горбунова. Мы также хотим поблагодарить друзей, которые не только поддерживали нас, но и читали текст книги и оставляли отзывы о ней (иногда на горнолыжных курортах во время отпуска): Льва Серебрякова, Павла Николаева и Алису Афонину. Наконец, мы хотели бы поблагодарить наши семьи и котов за то, что они делают этот мир лучше.

11 Об этой книге Книга «Kotlin в действии» расскажет о языке Kotlin и как писать на нем приложения для виртуальной машины Java и Android. Она начинается с обзора основных особенностей языка Kotlin, постепенно раскрывая наиболее отличительные аспекты, такие как поддержка создания высокоуровневых абстракций и предметно-ориентированных языков (Domain-Specific Languages, DSL). Книга уделяет большое внимание интеграции Kotlin с существующими проектами на языке Java и поможет вам внедрить Kotlin в текущую рабочую среду. Книга описывает версию языка Kotlin 1.0. Версия Kotlin 1.1 разрабатывалась параллельно с написанием книги, и, когда это было возможно, мы упоминали об изменениях в версии 1.1. Но поскольку на момент написания книги новая версия еще не была готова, мы не могли полностью охватить все нововведения. За более подробной информацией о новых возможностях и изменениях обращайтесь к документации по адресу: Кому адресована эта книга Книга «Kotlin в действии» адресована в первую очередь разработчикам с опытом программирования на языке Java. Kotlin во многом основан на понятиях и приёмах языка Java, и с помощью этой книги вы быстро освоите его, используя имеющиеся знания. Если вы только начали изучать Java или владеете другими языками программирования, такими как C# или Java Script, вам может понадобиться обратиться к другим источникам информации, чтобы понять наиболее сложные аспекты взаимодействия Kotlin с JVM, но вы все равно сможете изучить Kotlin, читая эту книгу. Мы описываем язык Kotlin в целом, не привязываясь к конкретной предметной области, поэтому книга должна быть одинаково полезна и для разработчиков серверных приложений, и для разработчиков на Android, и для всех, кто создает проекты для JVM. Как организована эта книга Книга делится на две части. Часть 1 объясняет, как начать использовать Kotlin вместе с существующими библиотеками и API: глава 1 рассказывает о ключевых целях, ценностях и областях применения языка и показывает различные способы запуска кода на Kotlin; глава 2 демонстрирует важные элементы любой программы на языке Kotlin, включая управляющие структуры, переменные и функции;

12 16 Об этой книге в главе 3 подробно рассматриваются объявления функций в Kotlin, а также вводятся понятия функций-расширений (extension functions) и свойств-расширений (extension properties); глава 4 посвящена объявлению классов и знакомит с понятиями классов данных (data classes) и объектов-компаньонов (companion objects); глава 5 знакомит с лямбда-выражениями и демонстрирует ряд примеров их использования в стандартной библиотеке Kotlin; глава 6 описывает систему типов Kotlin, обращая особое внимание на работу с типами, допускающими значения null, и с коллекциями. Часть 2 научит вас создавать собственные API и абстракции на языке Kotlin и охватывает некоторые более продвинутые особенности языка: глава 7 рассказывает о соглашениях, придающих особый смысл методам и свойствам с определенными именами, и вводит понятие делегируемых свойств (delegated properties); глава 8 показывает, как объявлять функции высшего порядка функции, принимающие другие функции или возвращающие их. Здесь также вводится понятие встраиваемых функций (inline functions); глава 9 глубоко погружается в тему обобщенных типов (generics), начиная с базового синтаксиса и переходя к более продвинутым темам, таким как овеществляемые типовые параметры (reified type parameters) и вариантность; глава 10 посвящена использованию аннотаций и механизма рефлексии (reflection) и организована вокруг JKid простой библиотеки сериализации в формат JSON, которая интенсивно использует эти понятия; глава 11 вводит понятие предметно-ориентированного языка (DSL), описывает инструменты Kotlin для их создания и демонстрирует множество примеров DSL. В книге есть три приложения. Приложение A объясняет, как выполнять сборку проектов на Kotlin с помощью Gradle, Maven и Ant. Приложение B фокусируется на документирующих комментариях и создании документации с описанием API модулей. Приложение C является руководством по экосистеме Kotlin и поиску актуальной информации в Интернете. Книгу лучше читать последовательно, от начала до конца, но также можно обращаться к отдельным главам, посвященным интересующим вам конкретным темам, и переходить по перекрестным ссылкам для уточнения незнакомых понятий.

13 Соглашения об оформлении программного кода и загружаемые ресурсы Об этой книге 17 В книге приняты следующие соглашения: Курсивом обозначаются новые термины. Моноширинным шрифтом выделены фрагменты кода, имена классов и функций и другие идентификаторы. Примеры кода сопровождаются многочисленными примечаниями, подчеркивающими важные понятия. Многие листинги кода в книге показаны вместе с его выводом. В таких случаях строки кода, производящие вывод, начинаются с префикса >>>, как показано ниже: >>> println(«hello World») Hello World Некоторые примеры являются полноценными программами, тогда как другие лишь фрагменты, демонстрирующие определенные понятия и могущие содержать сокращения (обозначенные как. ) или синтаксические ошибки (описанные в тексте книги или самих примерах). Выполняемые примеры можно загрузить в виде zip-архива на сайте издательства www. manning.com/books/kotlin-in-action. Примеры из книги также выгружены в онлайн-окружение где вы сможете опробовать любой пример, сделав всего несколько щелчков в окне браузера. Авторы онлайн Покупка книги «Kotlin в действии» дает право свободного доступа к закрытому веб-форуму издательства Manning Publication, где можно высказать свои замечания о книге, задать технические вопросы и получить помощь от авторов и других пользователей. Чтобы получить доступ к форуму, перейдите по ссылке На этой странице описывается, как попасть на форум после регистрации, какая помощь доступна и какие правила поведения действуют на форуме. Издательство Manning обязуется предоставить читателям площадку для содержательного диалога не только между читателями, но и между читателями и авторами. Но авторы не обязаны выделять определённое количество времени для участия, т. к. их вклад в работу форума является добровольным (и неоплачиваемым). Мы предлагаем читателям задавать авторам действительно непростые вопросы, чтобы их интерес не угасал! Прочие онлайн-ресурсы Kotlin имеет активное сообщество, поэтому имеющие вопросы или желающие пообщаться с другими пользователями Kotlin могут воспользоваться следующими ресурсами:

Мастер Йода рекомендует:  Какая поисковая система лучше Яндекс, Рамблер или Апорт

14 18 Об этой книге официальный форум Kotlin чат Slack (вы можете получить приглашение по ссылке вопросы и ответы с тегом Kotlin на Stack Overflow Kotlin на форуме Reddit

15 Об авторах Дмитрий Жемеров работает в компании JetBrains с 2003 года и принимал участие в разработке многих продуктов, в том числе IntelliJ IDEA, PyCharm и WebStorm. Был одним из первых участников команды Kotlin, создал начальную версию генератора байт-кода JVM из кода Kotlin и сделал много презентаций о языке Kotlin на различных встречах по всему миру. Сейчас возглавляет команду, работающую над плагином Kotlin IntelliJ IDEA. Светлана Исакова вошла в состав команды Kotlin в 2011 году. Работала над механизмом вывода типов (type inference) и подсистемой компилятора по разрешению перегруженных имен. Сейчас она технический евангелист, рассказывает о Kotlin на конференциях и разрабатывает онлайн-курс по языку Kotlin. Об изображении на обложке Иллюстрация на обложке книги «Kotlin в действии» называется «Одежда русской женщины на Валдае в 1764 году». Город Валдай находится в Новгородской области, между Москвой и Санкт-Петербургом. Иллюстрация взята из работы Томаса Джеффериса (Thomas Jefferys) «Коллекция платьев разных народов, древних и современных», опубликованной в Лондоне между 1757 и 1772 г.. На титульной странице говорится, что это раскрашенная вручную гравюра, обработанная гуммиарабиком для повышения яркости. Томаса Джеффериса ( ) называли географом короля Георга III. Он был английским картографом и ведущим поставщиком карт своего времени. Он гравировал и печатал карты для правительства и других официальных органов, выпускал широкий спектр коммерческих карт и атласов, особенно Северной Америки. Работа картографом пробудила интерес к местным традиционным нарядам в землях, которые он исследовал и картографировал; эти наряды великолепно представлены в четырехтомном сборнике. Очарование дальними странами и путешествия для удовольствия были относительно новым явлением в восемнадцатом веке, и такие коллекции, как эта, были популярны и показывали туристам и любителям книг о путешествиях жителей других стран. Разнообразие рисунков в книгах Джеффериса красноречиво говорит об уникальности и индивидуальности народов мира много веков назад. С тех пор стиль одежды сильно изменился, и разнообразие, характеризующее различные области и страны, исчезло. Сейчас часто трудно отличить даже жителей одного континента от дру-

16 20 Об изображении на обложке гого. Возможно, с оптимистической точки зрения, мы обменяли культурное и визуальное разнообразие на более разнообразную частную жизнь или более разнообразную и интересную интеллектуальную и техническую дея тельность. В наше время, когда трудно отличить одну компьютерную книгу от другой, издательство Manning c инициативой и находчивостью наделяет книги обложками, изображающими богатое разнообразие жизненного уклада народов многовековой давности, давая новую жизнь рисункам Джеффериса.

17 Часть 1 Введение в Kotlin Цель этой части книги помочь начать продуктивно писать код на языке Kotlin, используя существующие API. Глава 1 познакомит вас с языком Kotlin в общих чертах. В главах 2 4 вы узнаете, как в Kotlin реализованы основные понятия языка Java операторы, функции, классы и типы, и как Kotlin обогащает их, делая программирование более приятным. Вы сможете положиться на имеющиеся знания языка Java, а также на вспомогательные инструменты, входящие в состав интегрированной среды разработки, и конвертер кода на Java в код на Kotlin, чтобы быстро начать писать код. В главе 5 вы узнаете, как лямбда-выражения помогают эффективно решать некоторые из распространенных задач программирования, такие как работа с коллекциями. Наконец, в главе 6 вы познакомитесь с одной из ключевых особенностей Kotlin поддержкой операций со значениями null.

18 Глава 1 Kotlin: что это и зачем В этой главе: общий обзор языка Kotlin; основные особенности; возможности разработки для Android и серверных приложений; отличие Kotlin от других языков; написание и выполнение кода на языке Kotlin. Что же такое Kotlin? Это новый язык программирования для платформы Java. Kotlin лаконичный, безопасный и прагматичный язык, совместимый с Java. Его можно использовать практически везде, где применяется Java: для разработки серверных приложений, приложений для Android и многого другого. Kotlin прекрасно работает со всеми существующими библиотекам и фреймворками, написанными на Java, не уступая последнему в производительности. В этой главе мы подробно рассмотрим основные черты языка Kotlin Знакомство с Kotlin Начнем с небольшого примера для демонстрации языка Kotlin. В этом примере определяется класс Person, создается коллекция его экземпляров, выполняется поиск самого старого и выводится результат. Даже в этом маленьком фрагменте кода можно заметить множество интересных особенностей языка Kotlin; мы выделили некоторые из них, чтобы вам проще было отыскать их в книге в будущем. Код пояснен довольно кратко, но не беспокойтесь, если что-то останется непонятным. Позже мы подробно всё обсудим. Желающие опробовать этот пример могут воспользоваться онлайн-полигоном по адресу: Введите пример, щелкните на кнопке Run (Запустить), и код будет выполнен.

19 1.2. Основные черты языка Kotlin 23 Листинг 1.1. Первое знакомство с Kotlin data >) < Функция верхнего уровня val persons = listof(person("alice"), Person("Bob", age = 29)) Именованный аргумент val oldest = persons.maxby < it.age?: 0 >println(«the oldest is: $oldest») > // The oldest is: Person(name=Bon, age=29) 1.2. Основные черты языка Kotlin Лямбда-выражение; оператор «Элвис» Строка-шаблон Возможно, у вас уже есть некоторое представление о языке Kotlin. Давайте подробнее рассмотрим его ключевые особенности. Для начала определим типы приложений, которые можно создавать с его помощью Целевые платформы: серверные приложения, Android и везде, где запускается Java Основная цель языка Kotlin предложить более компактную, производительную и безопасную альтернативу языку Java, пригодную для использования везде, где сегодня применяется Java. Java чрезвычайно популярный язык, который используется в самых разных окружениях, начиная от смарт-карт (технология Java Card) до крупнейших вычислительных центров таких компаний, как Google, Twitter и LinkedIn. В большинстве таких окружений применение Kotlin способно помочь разработчикам достигать своих целей меньшим объемом кода и избегая многих неприятностей. Часть вывода автоматически сгенерирована методом tostring Здесь объявляется простой класс данных с двумя свойствами: name и age. Свойству age по умолчанию присваивается значение null (если оно не задано). При создании списка людей возраст Алисы не указывается, поэтому он принимает значение null. Затем, чтобы отыскать самого старого человека в списке, вызывается функция maxby. Лямбда-выражение, которое передается функции, принимает один параметр с именем it по умолчанию. Оператор «Элвис» (?:) возвращает ноль, если возраст имеет значение null. Поскольку возраст Алисы не указан, оператор «Элвис» заменит его нулем, поэтому Боб получит приз как самый старый человек. Вам понравилось? Читайте дальше, чтобы узнать больше и стать экспертом в языке Kotlin. Мы надеемся, что скоро вы увидите такой код в своих проектах, а не только в этой книге.

20 24 Глава 1. Kotlin: что это и зачем Наиболее типичные области применения Kotlin: разработка кода, работающего на стороне сервера (как правило, серверной части веб-приложений); создание приложений, работающих на устройствах Android. Но Kotlin работает также в других областях. Например, код на Kotlin можно выполнять на устройствах с ios, используя технологию Intel Multi-OS Engine ( На Kotlin можно писать и настольные приложения, используя его совместно с TornadoFX ( и JavaFX 1. Помимо Java, код на Kotlin можно скомпилировать в код на JavaScript и выполнять его в браузере. Но на момент написания этой книги поддержка JavaScript находилась в стадии исследования и прототипирования, поэтому она осталась за рамками данной книги. В будущих версиях языка также рассматривается возможность поддержки других платформ. Как видите, область применения Kotlin достаточно обширна. Kotlin не ограничивается одной предметной областью или одним типом проблем, с которыми сегодня сталкиваются разработчики программного обеспечения. Вместо этого он предлагает всестороннее повышение продуктивности при решении любых задач, возникающих в процессе разработки. Он также предоставляет отличный уровень интеграции с библиотеками, созданными для поддержки определенных предметных областей или парадигм программирования. Давайте рассмотрим основные качества Kotlin как языка программирования Статическая типизация Так же, как Java, Kotlin статически типизированный язык программирования. Это означает, что тип каждого выражения в программе известен во время компиляции, и компилятор может проверить, что методы и поля, к которым вы обращаетесь, действительно существуют в используемых объектах. Этим Kotlin отличается от динамически типизированных (dynamically typed) языков программирования на платформе JVM, таких как Groovy и JRuby. Такие языки позволяют определять переменные и функции, способные хранить или возвращать данные любого типа, а ссылки на поля и методы определяются во время выполнения. Это позволяет писать более компактный код и дает большую гибкость в создании структур данных. Но в языках с динамической типизацией есть свои недостатки: например, опечатки в именах нельзя обнаружить во время компиляции, что влечет появление ошибок во время выполнения. 1 «JavaFX: Getting Started with JavaFX», Oracle,

21 1.2. Основные черты языка Kotlin 25 С другой стороны, в отличие от Java, Kotlin не требует явно указывать тип каждой переменной. В большинстве случаев тип переменной может быть определен автоматически. Вот самый простой пример: val x = 1 Вы объявляете переменную, но поскольку она инициализируется целочисленным значением, Kotlin автоматически определит её тип как Int. Способность компилятора определять типы из контекста называется выведением типа (type inference). Ниже перечислены некоторые преимущества статической типизации: Производительность вызов методов происходит быстрее, поскольку во время выполнения не нужно выяснять, какой метод должен быть вызван. Надежность корректность программы проверяется компилятором, поэтому вероятность ошибок во время выполнения меньше. Удобство сопровождения работать с незнакомым кодом проще, потому что сразу видно, с какими объектами код работает. Поддержка инструментов статическая типизация позволяет увереннее выполнять рефакторинг, обеспечивает точное автодополнение кода и поддержку других возможностей IDE. Благодаря поддержке выведения типов в Kotlin исчезает излишняя избыточность статически типизированного кода, поскольку больше не нужно объявлять типы явно. Система типов в Kotlin поддерживает много знакомых понятий. Классы, интерфейсы и обобщенные типы работают практически так же, как в Java, так что большую часть своих знаний Java вы с успехом сможете применить на Kotlin. Однако есть кое-что новое. Наиболее важным нововведением в Kotlin является поддержка типов, допускающих значения null (nullable types), которая позволяет писать более надежные программы за счет выявления потенциальных ошибок обращения к пустому указателю на этапе компиляции. Мы ещё вернемся к типам, допускающим значение null, далее в этой главе и подробно обсудим их в главе 6. Другим новшеством в системе типов Kotlin является поддержка функциональных типов (function types). Чтобы понять, о чем идет речь, обратимся к основным идеям функционального программирования и посмотрим, как они поддерживаются в Kotlin Функциональное и объектно-ориентированное программирование Как Java-разработчик вы, без сомнения, знакомы с основными понятиями объектно-ориентированного программирования, но функциональное


22 26 Глава 1. Kotlin: что это и зачем программирование может оказаться для вас в новинку. Ниже перечислены ключевые понятия функционального программирования: Функции как полноценные объекты с функциями (элементами поведения) можно работать как со значениями. Их можно хранить в переменных, передавать в аргументах или возвращать из других функций. Неизменяемость программные объекты никогда не изменяются, что гарантирует неизменность их состояния после создания. Отсутствие побочных эффектов функции всегда возвращают один и тот же результат для тех же аргументов, не изменяют состояние других объектов и не взаимодействуют с окружающим миром. Какие преимущества дает функциональный стиль? Во-первых, лаконичность. Функциональный код может быть более элегантным и компактным, по сравнению с императивными аналогами, потому что возможность работать с функциями как со значениями дает возможность создавать более мощные абстракции, позволяющие избегать дублирования в коде. Представьте, что у вас есть два похожих фрагмента кода, решающих аналогичную задачу (например, поиск элемента в коллекции), которые отличаются в деталях (способом проверки критериев поиска). Вы легко сможете перенести общую логику в функцию, передавая отличающиеся части в виде аргументов. Эти аргументы сами будут функциями, но вы сможете описать их, используя лаконичный синтаксис анонимных функций, называемых лямбда-выражениями: fun findalice() = findperson < it.name == "Alice" >fun findbob() = findperson < it.name == "Bob" >Блок кода в фигурных скобках задает свойства искомого элемента Второе преимущество функциональной парадигмы безопасное многопоточное программирование. Одним из основных источников ошибок в многопоточных программах является модификация одних и тех же данных из нескольких потоков без надлежащей синхронизации. Используя неизменяемые структуры данных и чистые функции, можно не опасаться никаких изменений и не надо придумывать сложных схем синхронизации. Наконец, функциональное программирование облегчает тестирование. Функции без побочных эффектов можно проверять по отдельности, без необходимости писать много кода для настройки окружения. В целом функциональную парадигму можно использовать в любом языке программирования, включая Java, и многие ее аспекты считаются хорошим стилем программирования. Но не все языки поддерживают соответствующий синтаксис и библиотеки, упрощающие применение этого стиля; например, такая поддержка отсутствовала в Java до версии Java 8. Функция findperson() описывает общую логику поиска

Мастер Йода рекомендует:  11 отличных плагинов WordPress для дизайнеров

23 1.3. Приложения на Kotlin 27 Язык Kotlin изначально обладает богатым арсеналом возможностей для поддержки функционального программирования. К ним относятся: функциональные типы, позволяющие функциям принимать или возвращать другие функции; лямбда-выражения, упрощающие передачу фрагментов кода; классы данных, предоставляющие емкий синтаксис для создания неизменяемых объектов-значений; обширный набор средств в стандартной библиотеке для работы с объектами и коллекциями в функциональном стиле. Kotlin позволяет программировать в функциональном стиле, но не требует этого. Когда нужно, вы можете работать с изменяемыми данными и писать функции с побочными эффектами без всяких затруднений. Работать с фреймворками, основанными на иерархиях классов и интерфейсах, так же легко, как на языке Java. В программном коде на Kotlin вы можете совмещать объектно-ориентированный и функциональный подходы, используя для каждой решаемой проблемы наиболее подходящий инструмент Бесплатный язык с открытым исходным кодом Язык Kotlin, включая компилятор, библиотеки и все связанные с ними инструменты, это проект с открытым исходным кодом, который может свободно применяться для любых целей. Он доступен на условиях лицензии Apache 2, разработка ведется открыто в GitHub ( jetbrains/kotlin), и любой добровольный вклад приветствуется. Также на выбор есть три IDE с открытым исходным кодом, поддерживаю щих разработку приложений на Kotlin: IntelliJ IDEA Community Edition, Android Studio и Eclipse. (Конечно же, поддержка Kotlin имеется также в IntelliJ IDEA Ultimate.) Теперь, когда вы получили некоторое представление о Kotlin, пришла пора узнать, как использовать его преимущества для конкретных практических приложений Приложения на Kotlin Как мы уже упоминали ранее, основные области применения Kotlin это создание серверной части приложений и разработка для Android. Рассмотрим эти области по очереди и разберемся, почему Kotlin так хорошо для них подходят Kotlin на сервере Серверное программирование довольно широкое понятие. Оно охватывает все следующие типы приложений и многое другое:

24 28 Глава 1. Kotlin: что это и зачем веб-приложения, возвращающие браузеру страницы HTML; серверные части мобильных приложений, открывающие доступ к своему JSON API по протоколу HTTP; микрослужбы, взаимодействующие с другими микрослужбами посредством RPC. Разработчики много лет создавали эти типы приложений на Java и накопили обширный набор фреймворков и технологий, облегчающих их создание. Подобные приложения, как правило, не разрабатываются изолированно и не пишутся с нуля. Почти всегда есть готовая система, которую нужно расширять, улучшать или заменять, и новый код должен интегрироваться с существующими частями системы, которые могли быть написаны много лет назад. Большим преимуществом Kotlin в подобной среде является его взаимодействие с существующим Java-кодом. Kotlin отлично подходит и для создания новых компонентов, и для переноса кода существующей службы на Kotlin. Вы не столкнетесь с затруднениями, когда коду на Kotlin понадобится унаследовать Java-классы или отметить специальными аннотациями методы и поля класса. Преимущество же заключается в том, что код системы станет более компактным, надежным и простым в обслуживании. В то же время Kotlin предлагает ряд новых приемов для создания таких систем. Например, его поддержка шаблона «Строитель» (Builder) позволяет создавать произвольные графы объектов, используя очень лаконичный синтаксис, не отказываясь при этом от полного набора абстракций и инструментов повторного использования кода в языке. Один из простейших примеров использования этой особенности библиотека создания разметки HTML: лаконичное и полностью типобезопасное решение, которое может полностью заменить сторонний язык шаблонов. Например: fun renderpersonlist(persons: Collection

Курс «Основы Kotlin»

Первая лекция кружа «Разработка Android-приложений на Kotlin» посвящена введению в язык Kotlin. Описывается основной синтаксис и типы данных, демонстрируется создание программ на Kotlin в IntellijIdea. Примеры — github.com/OSLL/kotlin_circle_2020, ссылки на презентации — drive.google.com/drive/folders/0B-cth7-Fd75FQnJLYktiX3JhT2c
Вопросы совместимости Kotlin и Java 6:27
HelloWorld 13:50
Синтаксис функций 18:40
Типы данных и переменные 22:18
Условные операторы 37:49
Циклы 41:03
Массивы 42:50

Докладчик: Марк Заславский, сотрудник лаборатории алгоритмов мобильных роботов JetBrains Research, преподаватель СПБГЭТУ «ЛЭТИ», активный участник Open Source and Linux Laboratory, асприант НИУ ИТМО.
Bilim ve Teknoloji

Курс «Основы Kotlin»

Промокод на скидку 15% на все курсы ITVDN- H94BCAB Полный видео курс- .

Основы Kotlin в Android

На вебинаре будут рассмотрены вопросы применения Kotlin в Android-разработке. Внимание уделяется формированию.

Kotlin: Урок 0. Введение

Стань Android-разработчиком: goo.gl/tr57tS. Поспеши, действуют приятные скидки! Сайт: devcolibri.com .

Основы Kotlin

Первая лекция кружа «Разработка Android-приложений на Kotlin» посвящена введению в язык Kotlin. Описывается основной .

Урок 1. Разработка на Kotlin. Установка Android Studio.

Начинаем новый курс по разработке андроид-приложений на языке Kotlin. В этом уроке вы узнаете, как установить.

Kotlin Dil Yapısına Giriş — Profesyonel Kotlin Dersleri — 1. Bölüm

Uzun bir aradan sonra yeni programlama dili derslerim ile karşınızdayım. Evet bu sefer Kotlin öğreniyoruz. Bu videomda kısa bir .

«Kotlin/JS: как и зачем» — Сергей Ростов, JetBrains

Расскажем про цели Kotlin/JS, покажем как настроить Gradle проект с React-ом и мультиплатформенный проект с .

Синтаксис. Основные типы, система типов, базовые типы. Kotlin. Урок 2

Промокод на скидку 15% на все курсы ITVDN- H94BCAB Полный видео курс- .

Войти в IT через Minecraft и Яндекс / Всё о Kotlin и Android / Интервью с Kotlin Developer

В этом интервью мы наконец узнаем про особенности разработки под Android и про язык Kotlin. В гостях у меня молодой.

Урок 2. Kotlin. Создание проекта в Android Studio и запуск приложения на андроид-устройстве

Продвинутые курсы по разработке android-приложений и игр: .

Курс «Основы Kotlin»

Первая лекция кружа «Разработка Android-приложений на Kotlin» посвящена введению в язык Kotlin. Описывается основной синтаксис и типы данных, демонстрируется создание программ на Kotlin в IntellijIdea. Примеры — github.com/OSLL/kotlin_circle_2020, ссылки на презентации — drive.google.com/drive/folders/0B-cth7-Fd75FQnJLYktiX3JhT2c
Вопросы совместимости Kotlin и Java 6:27
HelloWorld 13:50
Синтаксис функций 18:40
Типы данных и переменные 22:18
Условные операторы 37:49
Циклы 41:03
Массивы 42:50

Докладчик: Марк Заславский, сотрудник лаборатории алгоритмов мобильных роботов JetBrains Research, преподаватель СПБГЭТУ «ЛЭТИ», активный участник Open Source and Linux Laboratory, асприант НИУ ИТМО.
Sains & Teknologi

Основы Kotlin

Смотреть видео Основы Kotlin на v4k бесплатно

53 | 2
OSLL v > 2 год.

Первая лекция кружа «Разработка Android-приложений на Kotlin» посвящена введению в язык Kotlin. Описывается основной синтаксис и типы данных, демонстрируется создание программ на Kotlin в IntellijIdea. Примеры — https://github.com/OSLL/kotlin_circle_2020, ссылки на презентации — https://drive.google.com/drive/folders/0B-cth7-Fd75FQnJLYktiX3JhT2c

Вопросы совместимости Kotlin и Java 6:27
HelloWorld 13:50
Синтаксис функций 18:40
Типы данных и переменные 22:18
Условные операторы 37:49
Циклы 41:03
Массивы 42:50

Докладчик: Марк Заславский, сотрудник лаборатории алгоритмов мобильных роботов JetBrains Research, преподаватель СПБГЭТУ «ЛЭТИ», активный участник Open Source and Linux Laboratory, асприант НИУ ИТМО.


Курс «Основы Kotlin»

Стань Android-разработчиком: goo.gl/tr57tS. Поспеши, действуют приятные скидки! Сайт: devcolibri.com .

Урок 1. Разработка на Kotlin. Установка Andro > Start Android 2 years ago

Начинаем новый курс по разработке андроид-приложений на языке Kotlin. В этом уроке вы узнаете, как установить.

Знакомство с Kotlin. Особенности языка. Kotlin. Урок 1

Промокод на скидку 15% на все курсы ITVDN- H94BCAB Полный видео курс- .

Kotlin Course — Tutorial for Beginners

Learn the Kotlin programming language in this introduction to Kotlin. Kotlin is a general purpose, open source, statically typed .

Kotlin Tutorial

Get the Code Here : goo.gl/nGibOC Subscribe to Me: bit.ly/2FWQZTx Best Kotlin Book : amzn.to/2qT2d53 Kotlin .

Kotlin Tutorial for Beginners | Full Course

1. Introduction — 04:13 2. Hello World Program — 08:31 3. How to create Android Project Using Kotlin — 18:38 4. Class & Object .

Andro > jDroidCoder 3 years ago

Android обучение. Kotlin — язык программирования с открытым исходным кодом от компании JetBrains, становится все боле .

Войти в IT через Minecraft и Яндекс / Всё о Kotlin и Andro > АйТиБорода 20 days ago

В этом интервью мы наконец узнаем про особенности разработки под Android и про язык Kotlin. В гостях у меня молодой.

Kotlin обучение. Урок 0. Типы данных

В этом уроке поговорим о типах данных в языке Kotlin. Котлин предлагает все те же типы данных что и java, но более.

Стоит ли учить Scala и Kotlin?

Стоит ли учить Scala и Kotlin? job4j.ru — Курсы Java разработки c трудоустройством.

Урок 2. Kotlin. Создание проекта в Andro > Start Android 2 years ago

Продвинутые курсы по разработке android-приложений и игр: .

Как написать Andro > Образовательный п. Year ago

Начни карьеру с бесплатного курса «Основы программирования» goo.gl/jTP4nP Как написать Android-приложение на.

How Important is Kotlin in 2020?

Kotlin is Java’s version of Swift . a light nimble way to take advantage of the vast Java ecosystem and libraries, without the weight .

Есть ли перспективы у Andro > Sergey Nemchinskiy 7 months ago

Запрос: хотелось бы услышать ваше мнение на тему Android: Стоит ли врываться? Какие перспективы? С чего начать.

Kotlin обучение. Урок 1. Функции (Function)

В этом уроке поговорим о функциях в языке Kotlin. Функции без параметров — fun name(x:Type) Функции с параметрами -.

Синтаксис. Основные типы, система типов, базовые типы. Kotlin. Урок 2

Промокод на скидку 15% на все курсы ITVDN- H94BCAB Полный видео курс- .

Kotlin обучение. Урок 2. Классы в котлин | JDro > jDroidCoder 3 years ago

Kotlin обучение. Урок 2. В этом уроке поговорим о классах в языке Kotlin. О канале .

Курс «Основы Kotlin»


Промокод на скидку 15% на все курсы ITVDN- H94BCAB Полный видео курс- .

Знакомство с Kotlin. Особенности языка. Kotlin. Урок 1

Промокод на скидку 15% на все курсы ITVDN- H94BCAB Полный видео курс- .

На вебинаре будут рассмотрены вопросы применения Kotlin в Android-разработке. Внимание уделяется формированию.

Основы Kotlin в Andro >

На вебинаре будут рассмотрены вопросы применения Kotlin в Android-разработке. Внимание уделяется формированию.

Стань Android-разработчиком: goo.gl/tr57tS. Поспеши, действуют приятные скидки! Сайт: devcolibri.com .

Kotlin: Урок 0. Введение

Стань Android-разработчиком: goo.gl/tr57tS. Поспеши, действуют приятные скидки! Сайт: devcolibri.com .

Первая лекция кружа «Разработка Android-приложений на Kotlin» посвящена введению в язык Kotlin. Описывается основной .

Основы Kotlin

Первая лекция кружа «Разработка Android-приложений на Kotlin» посвящена введению в язык Kotlin. Описывается основной .

Начинаем новый курс по разработке андроид-приложений на языке Kotlin. В этом уроке вы узнаете, как установить.

Урок 1. Разработка на Kotlin. Установка Andro >

Начинаем новый курс по разработке андроид-приложений на языке Kotlin. В этом уроке вы узнаете, как установить.

Начни карьеру с бесплатного курса «Основы программирования» goo.gl/jTP4nP Как написать Android-приложение на.

Как написать Andro >

Начни карьеру с бесплатного курса «Основы программирования» goo.gl/jTP4nP Как написать Android-приложение на.

В этом интервью мы наконец узнаем про особенности разработки под Android и про язык Kotlin. В гостях у меня молодой.

Войти в IT через Minecraft и Яндекс / Всё о Kotlin и Andro >

В этом интервью мы наконец узнаем про особенности разработки под Android и про язык Kotlin. В гостях у меня молодой.

Мероприятие: Android Devs Meetup от 26.04.2020 Выступающий: Светлана Исакова, разработчик и евангелист Kotlin, .

Введение в Kotlin | Технострим

Мероприятие: Android Devs Meetup от 26.04.2020 Выступающий: Светлана Исакова, разработчик и евангелист Kotlin, .

Лекция 1 | Курс: Kotlin: практика разработки современного языка программирования | Лектор: Андрей Бреслав | Орга.

Лекция 1 | Kotlin: практика разработки | Андрей Бреслав | Лекториум

Лекция 1 | Курс: Kotlin: практика разработки современного языка программирования | Лектор: Андрей Бреслав | Орга.

Лекция от 02.03.2020 Лектор: Александр Нозик Снимал: Федор Букреев Монтировал: Артур Кулапин.

Kotlin 1. Основы языка, интерфейс IntelliJ >

Лекция от 02.03.2020 Лектор: Александр Нозик Снимал: Федор Букреев Монтировал: Артур Кулапин.

Продвинутые курсы по разработке android-приложений и игр: .

Урок 2. Kotlin. Создание проекта в Andro >

Продвинутые курсы по разработке android-приложений и игр: .

Основы Kotlin в Andro > hottei83 | 0 комментариев | 138 просмотров

На вебинаре будут рассмотрены вопросы применения Kotlin в Android-разработке. Внимание уделяется формированию функционала UI-компонентов, сохранению и манипулированию данными в приложении при помощи Kotlin.

Вебинар будет интересен для начинающих разработчиков, а также для программистов, желающих мигрировать на Kotlin.

План вебинара:
Введение в Kotlin.
Общее сравнение с Java.
Android User Interface.
Передача данных между двумя Activity.
SharedPreferences.
Работа с локальной базой данных.
Обзор библиотек для Kotlin.

Название: Основы Kotlin в Android
Год выхода: 2020
Жанр: Вебинар, разработка, android, веб-дизайн
Формат видео: PCRec | MP4 1280×720 | AVC/H.264
Формат аудио: MP3 | 320 kb/s | 44 кГц
Язык: Русский
Продолжительность: 01:48:04
Размер: 1.38 Gb

Добавить комментарий