Программирование на Kotlin для Android

Оглавление⌄
Содержание....6 Об авторах....12 Предисловие....14 Кому адресована эта книга....15 Почему мы написали эту книгу....16 Как организована эта книга....16 Условные обозначения и соглашения....17 Примеры кода....18 Благодарности....18 ГЛАВА 1. Основы языка Kotlin....20 Система типов Kotlin....21 Примитивные типы....21 Null-безопасность....22 Тип Unit....24 Функциональные типы....25 Обобщенные типы....26 Переменные и функции....26 Переменные....27 Лямбда-выражения....27 Функции-расширения....28 Классы....30 Инициализация класса....30 Свойства....32 Модификатор lateinit....33 Свойства с отложенной инициализацией....35 Делегаты....36 Объекты-компаньоны....37 Классы данных....38 Классы перечислений....39 Запечатанные классы....41 Модификаторы видимости....42 Резюме....43 ГЛАВА 2. Фреймворк коллекций Kotlin....46 Основные понятия....46 Совместимость с Java....47 Изменяемость....47 Перегруженные операторы....49 Создание контейнеров....50 Функциональное программирование....51 Сравнение функционального и процедурного программирования: простой пример....51 Функциональное программирование в Android....52 Функции-преобразователи....53 Булевы функции....53 Фильтры....54 Функция тар....54 Функция flatMap....56 Группировка....57 Сравнение итераторов и последовательностей....58 Пример....60 Проблема....60 Реализация....61 Резюме....67 ГЛАВА 3. Основы Android....68 Стек Android....68 Аппаратное обеспечение....68 Ядро....69 Системные службы....69 Среда выполнения Android....70 Приложения....70 Прикладное окружение Android....70 Намерения и фильтры намерений....71 Контекст....74 Компоненты приложения Android: строительные блоки....76 Компонент Activity и его друзья....77 Службы....81 Провайдеры контента....86 BroadcastReceiver....87 Архитектуры приложений Android....89 MVC: основы....89 Виджеты....90 Локальная модель....90 Паттерны Android....91 Model-View-Intent....91 Model-View-Presenter....91 Model-View-ViewModel....92 Резюме....93 ГЛАВА 4. Параллельное программирование в Android....95 Потокобезопасность....96 Атомарность....96 Видимость....97 Модель многопоточного выполнения Android....98 Пропуск кадров....99 Утечка памяти....102 Инструменты для управления потоками....104 Looper/Handler....105 Исполнители Executors и объекты ExecutorService....107 Инструменты для управления заданиями....108 JobScheduler....110 WorkManager....112 Резюме....113 ГЛАВА 5. Потокобезопасность....114 Пример проблемы, связанной с потокобезопасностью....114 Инварианты....116 Мьютексы....117 Потокобезопасные коллекции....117 Привязка к потоку....120 Конфликт потоков....121 Сравнение блокирующего и неблокирующего вызовов....122 Очереди работ....123 Противодавление....124 Резюме....126 ГЛАВА 6. Организация параллелизма с использованием обратных вызовов....128 Пример: функция обработки покупок....129 Создание приложения....131 Компонент ViewModel....131 Представление....132 Реализация логики....136 Обсуждение....137 Ограничения модели многопоточного выполнения....139 Резюме....140 ГЛАВА 7. Сопрограммы....142 Что такое сопрограмма?....142 Наша первая сопрограмма....143 Функция async....145 Краткий обзор структурированного параллелизма....147 Связь "родитель — потомок" в структурированном параллелизме....149 CoroutineScope и CoroutineContext....151 Функции, поддерживающие возможность приостановки....156 Функции, поддерживающие возможность приостановки, ’’под капотом”....157 Использование сопрограмм и функций, поддерживающих возможность приостановки: практический пример....161 Не ошибитесь с модификатором suspend....164 Резюме....165 ГЛАВА 8. Структурированный параллелизм и сопрограммы....167 Функции, поддерживающие возможность приостановки....167 Настройка места действия....168 Традиционный подход с использованием java.util.concurrent.ExecutorService....169 Вспомним, что такое HandlerThread....173 Использование приостанавливаемых функций и сопрограмм....176 Сравнение приостанавливаемых и традиционной многопоточности: итоги....180 Отмена....180 Жизненный цикл сопрограмм....181 Отмена сопрограммы....183 Отмена задачи, делегированной сторонней библиотеке....185 Сопрограммы, которые действуют согласованно, чтобы их можно было отменить....189 Функцию delay() можно отменить....191 Обработка отмены....192 Причины отмены....193 Супервизия....196 Функция supervisorScope....198 Параллельная декомпозиция....198 Автоматическая отмена....200 Обработка исключений....200 Необработанные и открытые исключения....200 Открытые исключения....202 Необработанные исключения....205 Резюме....208 Размышления напоследок....209 ГЛАВА 9. Каналы....210 Обзор каналов....210 Рандеву-канал....212 Неограниченный канал....216 Объединенный канал....217 Буферизованный канал....218 Функция produce....219 Взаимодействующие последовательные процессы....220 Модель и архитектура....220 Первая реализация....221 Выражение select....226 Собираем все воедино....228 Мультиплексор и демультиплексор....229 Проверка производительности....230 Противодавление....232 Сходства с моделью акторов....233 Последовательное выполнение внутри процесса....233 Размышления напоследок....234 Взаимоблокировки в CSP....234 Каналы и взаимоблокировки....237 Ограничения каналов....237 «Горячие» каналы....239 Резюме....240 ГЛАВА 10. Потоки....242 Введение в потоки....242 Более реалистичный пример....243 Операторы....245 Терминальные операторы....246 Примеры использования холодного потока....247 Вариант 1: интерфейс с API на базе функции обратного вызова....247 Вариант 2: параллельное преобразование потока значений....252 Вариант 3: создание собственного оператора....254 Обработка ошибок....258 Блок try/catch....258 Разделение ответственности важно....261 Нарушение прозрачности исключения....261 Оператор catch....262 Материализация исключений....265 Горячие потоки и SharedFlow....268 Создаем Shared Flow....269 Регистрируем подписчика....269 Отправляем значения в SharedFlow....270 Использование SharedFlow для потоковой передачи данных....270 Использование SharedFlow в качестве шины событий....276 StateFlow. специализированная версия SharedFlow....277 Пример использования StateFlow....278 Резюме....280 ГЛАВА 11. Вопросы производительности и инструменты профилирования Android....281 Android Profiler....283 Network Profiler....286 CPU Profiler....292 Energy Profiler....302 Memory Profiler....304 Обнаружение утечек памяти с помощью LeakCanary....309 Резюме....313 ГЛАВА 12. Снижение потребления ресурсов за счет оптимизации производительности....315 Достижение плоской иерархии представлений с помощью ConstraintLayout....316 Сокращение количества операций рисования с помощью экземпляров класса Drawable....320 Минимизация данных в сетевых вызовах....325 Организация пула и кэширование объектов Bitmap....325 Избавляемся от ненужной работы....327 Использование статических функций....330 Минификация и обфускация с R8 и ProGuard....330 Резюме....332 Предметный указатель....334
Описание
В этом материале разберём тему: kotlin.
Рассмотрены основные структуры и элементы языка, подробно описан фреймворк коллекций Kotlin. Книга посвящена разработке мобильных приложений для Android на языке Kotlin. Показана архитектура операционной системы Android, приложений и их контейнеров, изучаются основы параллельного программирования. Отдельная глава посвящена специальным конструкциям Kotlin — сопрограммам, с акцентом на структурированный параллелизм. Рассказано о потокобезопасности, работе с параллелизмом с использованием обратных вызовов. Рассматриваются каналы, использование потоков для асинхронной обработки данных. Изучаются вопросы повышения производительности приложений с использованием инструментов профилирования Android и снижения потребления ресурсов за счет оптимизации производительности.
Для программистов
Речь идет о Kotlin, ставшем официальным языком разработки для этой операционной системы. Разработка мобильных приложений для Android может показаться сложной задачей, особенно если для этого требуется изучить новый язык программирования. Книга поможет оперативно освоить этот язык, обладающий целым рядом технологических преимуществ, а также перейти с Java на Kotlin.
Авторы приводят реализацию наиболее распространенных задач в нативной разработке для Android и показывают, как Kotlin помогает решить проблему параллелизма. Делая акцент на структурированном параллелизме, новой парадигме асинхронного программирования, книга помогает освоить одну из самых мощных конструкций Kotlin — сопрограммы.
Файл доступен для загрузки ниже.
Поделиться
Частые вопросы
Можно ли скачать «Программирование на Kotlin для Android» бесплатно?
Да, «Программирование на Kotlin для Android» доступна для бесплатного скачивания на нашем сайте в формате PDF. Ссылка на файл находится на этой странице.
В каком формате и какого размера файл?
Книга предоставляется в формате PDF, размер файла 8,4 МБ.
Кто автор и когда вышла книга?
автор — Данн Майк , Лоранс Пьер-Оливье , Мик Дж. Блейк , Хинчман-Домингес Аманда, издательство БХВ-Петербург, год выпуска 2024, 338 страниц.
О чём книга «Программирование на Kotlin для Android»?
Книга посвящена разработке мобильных приложений для Android на языке Kotlin.