May 17, 2024

10. Android-разработка. Kotlin. | Технострим  

10. Android-разработка. Kotlin. | Технострим

https://www.youtube.com/watch?v=L_q45tkG38I

00:04 Введение в Kotlin

• Обсуждение работы с Kotlin, его возможностей и отличий от Java.
• Обсуждение работы с ссылками и их защиты от NullPointerException.

05:16 Безопасный вызов и лямбда-выражения

• Обсуждение использования безопасного вызова и лямбда-выражений для работы с ссылками.
• Обсуждение использования оператора "?" для безопасного вызова и оператора "!" для небезопасного вызова.

11:39 Работа с классами и функциями

• Обсуждение работы с классами и функциями в Kotlin.
• Обсуждение возможности создания классов и функций в одном файле.
• Обсуждение типов ссылок и их использования в Kotlin.

14:50 Обзор функций в Kotlin

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

17:03 Экстеншн функции

• Экстеншн функции позволяют добавлять функциональность к классам без наследования.
• Они могут быть использованы для добавления новых методов к существующим классам или для создания новых классов.

21:54 Силд классы

• Силд классы похожи на перечисления, но могут содержать данные и могут быть расширены.
• Они обеспечивают безопасность и позволяют создавать классы с множественными наследниками.

26:00 Использование силд классов

• Силд классы могут быть использованы для хранения данных и результатов функций.
• Они могут быть использованы для создания классов, которые могут содержать данные и быть расширены.

29:42 Структуры данных и классы

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

32:00 Онлайн функции

• Онлайн функции - это функции, которые могут быть встроены в код, где они вызываются.
• Это позволяет избежать создания анонимных классов и улучшить производительность.
• В онлайн функциях можно использовать вещественные типы, которые не стираются в компиляторе и позволяют выполнять более сложные операции.

39:16 Инлайн-классы и онлайн-классы

• Инлайн-классы - это классы, которые встраиваются в место вызова, что позволяет оптимизировать производительность.
• Онлайн-классы - это классы, которые оборачивают любой параметр и могут быть использованы для защиты от глупых ошибок, таких как путаница параметров функции или перегрузки методов.

45:10 Тайп-классы и дата-классы

• Тайп-классы - это нейминг над типом, который позволяет удобно использовать длинные имена в Kotlin.
• Дата-классы - это классы, которые автоматически генерируют методы для инициализации полей и копирования класса.
• Важно быть аккуратным с использованием дата-классов, так как они могут привести к увеличению количества методов в декс-файлах, что может замедлить работу приложения.

53:28 Введение в каратины

• Каратины - это конструкции в языке программирования Kotlin, которые позволяют легко управлять асинхронной работой.
• Они основаны на саспен-функции, которая может быть приостановлена и возобновлена.

56:47 Использование каратин

• Каратины используются для запуска и приостановки работы, а также для получения результата.
• В Kotlin есть два основных билдера: лаунч и старт.
• Лаунч используется для запуска работы, а старт - для запуска работы, которая должна быть выполнена в определенное время.

01:00:22 Использование каратин в контексте

• Каратины могут работать на одном и том же треде, но могут быть заморожены и разморожены в зависимости от контекста.
• Каратины легковесны и могут быть созданы пачками, что позволяет оптимизировать использование памяти.

01:05:52 Использование каратин для распараллеливания работы

• Аинг билдер используется для запуска двух каратин одновременно, что позволяет распараллелить работу и использовать несколько ядер процессора.

01:06:25 Дефиле и лаунч

• Дефиле - это объект, который возвращает результат после вычисления, как и фьюча.
• Дефиле может быть использовано в лаунч, который возвращает джоб для управления его стейтом и проверки состояния.

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 и других классов, которые позволяют удобно работать с ними.
• Экстеншены позволяют создавать файлы, создавать бандалы и использовать инфикс функции для сокращения кода.

02:00:04 Google IO и Kotlin

• 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.