10. Android-разработка. Kotlin. | Технострим
10. Android-разработка. Kotlin. | Технострим
https://www.youtube.com/watch?v=L_q45tkG38I
• Обсуждение работы с Kotlin, его возможностей и отличий от Java.
• Обсуждение работы с ссылками и их защиты от NullPointerException.
05:16 Безопасный вызов и лямбда-выражения
• Обсуждение использования безопасного вызова и лямбда-выражений для работы с ссылками.
• Обсуждение использования оператора "?" для безопасного вызова и оператора "!" для небезопасного вызова.
11:39 Работа с классами и функциями
• Обсуждение работы с классами и функциями в Kotlin.
• Обсуждение возможности создания классов и функций в одном файле.
• Обсуждение типов ссылок и их использования в Kotlin.
• В видео обсуждаются функции в Kotlin, их особенности и отличия от Java.
• Упоминается, что в Kotlin функции могут быть статическими и нестатическими, а также что они могут быть расширены для классов без наследования.
• Экстеншн функции позволяют добавлять функциональность к классам без наследования.
• Они могут быть использованы для добавления новых методов к существующим классам или для создания новых классов.
• Силд классы похожи на перечисления, но могут содержать данные и могут быть расширены.
• Они обеспечивают безопасность и позволяют создавать классы с множественными наследниками.
26:00 Использование силд классов
• Силд классы могут быть использованы для хранения данных и результатов функций.
• Они могут быть использованы для создания классов, которые могут содержать данные и быть расширены.
29:42 Структуры данных и классы
• В видео обсуждаются структуры данных и классы в Kotlin, их основные особенности и использование.
• Упоминается, что классы могут содержать стейт, который может быть использован в качестве результата или другого значения.
• Онлайн функции - это функции, которые могут быть встроены в код, где они вызываются.
• Это позволяет избежать создания анонимных классов и улучшить производительность.
• В онлайн функциях можно использовать вещественные типы, которые не стираются в компиляторе и позволяют выполнять более сложные операции.
39:16 Инлайн-классы и онлайн-классы
• Инлайн-классы - это классы, которые встраиваются в место вызова, что позволяет оптимизировать производительность.
• Онлайн-классы - это классы, которые оборачивают любой параметр и могут быть использованы для защиты от глупых ошибок, таких как путаница параметров функции или перегрузки методов.
45:10 Тайп-классы и дата-классы
• Тайп-классы - это нейминг над типом, который позволяет удобно использовать длинные имена в Kotlin.
• Дата-классы - это классы, которые автоматически генерируют методы для инициализации полей и копирования класса.
• Важно быть аккуратным с использованием дата-классов, так как они могут привести к увеличению количества методов в декс-файлах, что может замедлить работу приложения.
• Каратины - это конструкции в языке программирования Kotlin, которые позволяют легко управлять асинхронной работой.
• Они основаны на саспен-функции, которая может быть приостановлена и возобновлена.
• Каратины используются для запуска и приостановки работы, а также для получения результата.
• В Kotlin есть два основных билдера: лаунч и старт.
• Лаунч используется для запуска работы, а старт - для запуска работы, которая должна быть выполнена в определенное время.
01:00:22 Использование каратин в контексте
• Каратины могут работать на одном и том же треде, но могут быть заморожены и разморожены в зависимости от контекста.
• Каратины легковесны и могут быть созданы пачками, что позволяет оптимизировать использование памяти.
01:05:52 Использование каратин для распараллеливания работы
• Аинг билдер используется для запуска двух каратин одновременно, что позволяет распараллелить работу и использовать несколько ядер процессора.
• Дефиле - это объект, который возвращает результат после вычисления, как и фьюча.
• Дефиле может быть использовано в лаунч, который возвращает джоб для управления его стейтом и проверки состояния.
01:09:44 Использование со спен
• Со спен означает, что функция может быть приостановлена и запущена позже.
• В лаунч можно использовать со спен, чтобы приостановить функцию и запустить ее позже.
01:13:45 Взаимодействие Java и Kotlin
• В Kotlin нет чек-эксцепшенов, что упрощает работу с исключениями.
• В Java в Kotlin нужно помнить о некоторых особенностях, таких как обработка исключений и использование аннотаций.
01:14:54 Обработка исключений в Kotlin
• В Kotlin нет необходимости обрабатывать исключения, так как компилятор автоматически обрабатывает их.
• В Java, однако, необходимо обрабатывать исключения, используя аннотации.
01:17:57 Платформенный тип в Kotlin
• В Kotlin есть платформенный тип, который может быть как нал, так и не нал.
• В Java аннотации не заставляют обрабатывать исключения, что может привести к проблемам.
01:25:03 Использование Kotlin для Android
• Android команда рекомендует использовать Kotlin для разработки новых приложений.
• Kotlin имеет проект Kotlin Native, который позволяет писать код на разных платформах.
01:29:23 Обращение к Kotlin из Java
• В видео обсуждаются особенности обращения к Kotlin из Java, включая использование аннотаций и возможность использования Kotlin в Java.
• Упоминается, что в Kotlin есть функции, которых нет в Java, и как они работают.
01:33:15 Использование аннотаций
• В видео объясняется, как использовать аннотации для обращения к Kotlin из Java.
• Упоминается, что аннотации необходимы для использования Kotlin в Java, и что они могут быть использованы для создания методов и параметров с дефолтными значениями.
01:40:46 Использование Kotlin в Android
• В видео обсуждается использование Kotlin в Android, включая использование аннотации "живой оверлордс" для создания конструкторов и вьюшек.
• Упоминается, что не все вьюшки поддерживают использование этой аннотации, и что это может привести к некорректной работе.
01:43:33 Сборка и минусы использования Kotlin
• В видео обсуждаются минусы использования Kotlin, включая увеличение времени сборки и увеличение размера приложения за счет использования Kotlin.
• Упоминается, что можно разбить приложение на модули и использовать Kotlin в одном модуле, что может ускорить сборку.
01:45:49 Возможности Kotlin для Android
• Обсуждение использования FindViewById для обращения к View по ID.
• Использование Kotlin Android Extensions для упрощения работы с View.
• Создание и использование кастомных View с использованием Kotlin.
01:49:00 Обращение к View по ID с Kotlin
• Использование экспериментальной функции для обращения к View по ID без использования FindViewById.
• Необходимость реализации интерфейса для использования Kotlin Android Extensions.
• Использование аннотации @Parcelize для оптимизации работы с View.
01:55:01 Библиотека Android Kotlin
• Библиотека Android Kotlin содержит набор экстеншенов для класса Uri, Bandal и других классов, которые позволяют удобно работать с ними.
• Экстеншены позволяют создавать файлы, создавать бандалы и использовать инфикс функции для сокращения кода.
• Google IO переводит свои джетпак библиотеки на Kotlin, создавая фреймворк декларативной юай.
• Kotlin также используется для создания новых архитектурных компонентов и фреймворков, облегчающих разработку приложений.
02:02:15 Kotlin DSL и Delegated Properties
• Kotlin DSL (Domain Specific Language) позволяет создавать определенные конструкции для определенных сфер, например, для рисования фигур.
• Delegated Properties - это удобный способ создания свойств, которые автоматически обновляются при изменении других свойств.
02:07:09 Создание класса для работы с линером градиентом
• Создается класс, который принимает функциональный тип лямбды с обработчиком и создает линер градиент с заданными полями.
• Класс имеет ограниченную функциональность, которая нужна для конкретной задачи.
02:09:17 Использование библиотеки для ботапи ху
• Создается библиотека для ботапи ху, которая имеет специальные методы для работы с ботом.
• Эти методы нужны только для этой задачи и понятны для использования.
02:11:37 Использование аннотаций и юнитов в котлине
• В котлине есть аннотации и юниты, которые упрощают работу с классами и функциями.
• Аннотации указывают на тип класса, а юниты позволяют возвращать пустоту.
• Котлин старается упростить и упростить работу с классами и функциями, но иногда это может быть сложно для понимания.
02:15:56 Использование Kotlin для Android разработки
• Kotlin используется для мобильной разработки, но также может быть использован для бэкенд разработки и мультиплатформенных проектов.
• Kotlin позволяет оптимизировать размер APK-файлов и ускорить сборку приложений.
02:19:42 Использование Kotlin для бэкенд разработки
• Kotlin может быть использован для создания бэкенд-приложений, таких как бэкенд фреймворк Kotlin-JS.
• Kotlin также может быть использован для создания фронтенд-приложений, таких как Bacon.
02:21:36 Советы по использованию Kotlin
• Если вы изучаете Kotlin, рекомендуется сначала изучить базовые концепции, такие как аннотации и исключения.
• Если вы начинаете новый проект, Kotlin может быть хорошим выбором, так как Google активно поддерживает его.
• Для домашней работы предлагается конвертировать приложение на Java в Kotlin, а также добавить аннотации для корректной работы в Java.