Нативная разработка мобильных приложений: перекрестный справочник для iOS и Android
Покупка
Тематика:
Другие операционные системы
Издательство:
ДМК Пресс
Перевод:
Киселев Артём Николаевич
Год издания: 2020
Кол-во страниц: 376
Дополнительно
Вид издания:
Справочная литература
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-97060-845-6
Артикул: 748349.01.99
В этой книге вы познакомитесь с простыми подходами к разработке мобильных приложений для iOS и Android. Если вашей команде приходится разрабатывать проекты сразу для двух этих систем или вы планируете перейти с одной системы на другую, это практическое руководство покажет вам, как решаются наиболее распространенные задачи на каждой из этих платформ. В первой части представлены решения распространенных задач, которые приходится решать на любой платформе, таких как запись файла в локальное хранилище или создание HTTP-запроса. Вторая часть описывает процесс создания приложения на каждой платформе с использованием приемов из первой части. Примеры кода для Android представлены на двух языках - lava и Kotlin, поэтому книга может служить перекрестным справочником не только между iOS и AOSP, но и между Java и Kotlin для разработчиков на Android.
Издание предназначено для программистов, специализирующихся на разработке приложений для iOS и/или Android.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
- 09.03.04: Программная инженерия
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Шон Льюис и Майк Данн Нативная разработка мобильных приложений
Native Mobile Development A Cross-Reference for iOS and Android Shaun Lewis and Mike Dunn Beijing • Boston • Farnham • Sebastopol • Tokyo
Нативная разработка мобильных приложений Перекрестный справочник для iOS и Android Шон Льюис и Майк Данн Москва, 2020
УДК 004.43 ББК 32.972 Л91 Льюис Ш., Данн М. Л91 Нативная разработка мобильных приложений / пер. с англ. А. Н. Киселева. – М.: ДМК Пресс, 2020. – 376 с.: ил. ISBN 978-5-97060-845-6 В этой книге вы познакомитесь с простыми подходами к разработке мобильных приложений для iOS и Android. Если вашей команде приходится разрабатывать проекты сразу для двух этих систем или вы планируете перейти с одной системы на другую, это практическое руководство покажет вам, как решаются наиболее распространенные задачи на каждой из этих платформ. В первой части представлены решения распространенных задач, которые приходится решать на любой платформе, таких как запись файла в локальное хранилище или создание HTTP-запроса. Вторая часть описывает процесс создания приложения на каждой платформе с использованием приемов из первой части. Примеры кода для Android представлены на двух языках – Java и Kotlin, поэтому книга может служить перекрестным справочником не только между iOS и AOSP, но и между Java и Kotlin для разработчиков на Android. Издание предназначено для программистов, специализирующихся на разработке приложений для iOS и/или Android. УДК 004.43 ББК 32.972 This translation is published and sold by permission of O’Reilly Media, Inc., which owns or controls all rights to publish and sell the same. Russian language edition copyright © 2020 by DMK Press. Authorized Russian translation of the English edition of Native Mobile Development ISBN 9781492052876. All rights reserved. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. ISBN 978-1-492-05287-6 (англ.) Copyright © 2020 Shaun Lewis and Mike Dunn ISBN 978-5-97060-845-6 (рус.) © Оформление, издание, перевод, ДМК Пресс, 2020
Содержание Об авторах ........................................................................................................11 О колофоне .......................................................................................................12 Вступление ........................................................................................................13 Часть I. ЗАДАЧИ И ОПЕРАЦИИ .............................................................17 Примечание о текущем положении дел в сфере разработки мобильных приложений ......................................................................................17 Глава 1. Контроллеры пользовательского интерфейса ..................19 Задачи ....................................................................................................................19 Android ...................................................................................................................20 Как создать начальный контроллер пользовательского интерфейса приложения .......................................................................................................20 Как изменить активный контроллер пользовательского интерфейса .........22 Основные этапы жизненного цикла контроллера пользовательского интерфейса .......................................................................................................27 iOS ..........................................................................................................................30 Как создать начальный контроллер пользовательского интерфейса приложения .......................................................................................................30 Как изменить активный контроллер пользовательского интерфейса .........34 Основные этапы жизненного цикла контроллера пользовательского интерфейса .......................................................................................................38 Что мы узнали .......................................................................................................42 Глава 2. Представления................................................................................43 Задачи ....................................................................................................................43 Android ...................................................................................................................43 Создание нового представления .....................................................................44 Вложение представлений друг в друга ............................................................49 Изменение состояния представлений ............................................................50 iOS ..........................................................................................................................50 Создание нового представления .....................................................................51 Вложение представлений друг в друга ............................................................53 С помощью Interface Builder ............................................................................56 Изменение состояния представлений ............................................................57 Изменение позиции .........................................................................................58 Что мы узнали .......................................................................................................59
Содержание Глава 3. Пользовательские компоненты ...............................................60 Задачи ....................................................................................................................60 Android ...................................................................................................................60 Как создать свое представление ......................................................................61 Как использовать свое представление ............................................................66 iOS ..........................................................................................................................68 Как создать свое представление ......................................................................68 Как использовать свое представление ............................................................70 Что мы узнали .......................................................................................................72 Глава 4. Пользовательский ввод ..............................................................73 Задачи ....................................................................................................................73 Android ...................................................................................................................73 Получение события касания и реакция на него .............................................74 Получение события ввода с клавиатуры и реакция на него..........................78 Обработка сложных жестов..............................................................................81 iOS ..........................................................................................................................84 Получение события касания и реакция на него .............................................84 Получение события ввода с клавиатуры и реакция на него..........................85 Обработка сложных жестов..............................................................................87 Что мы узнали .......................................................................................................89 Глава 5. Передача сообщений ...................................................................90 Задачи ....................................................................................................................90 Android ...................................................................................................................90 Использование обратных вызовов для реакции на действия .......................91 Передача сообщений подписчикам, заинтересованным в их получении ..................................................................................................95 Получение и обработка сообщений ................................................................96 iOS ..........................................................................................................................98 Использование обратных вызовов для реакции на действия .................................................................................98 Передача сообщений подписчикам, заинтересованным в их получении ................................................................................................104 Получение и обработка сообщений ..............................................................106 Замыкания вместо селекторов ......................................................................107 Отмена подписки на уведомления................................................................108 Что мы узнали .....................................................................................................109 Глава 6. Файлы...............................................................................................111 Задачи ..................................................................................................................111 Android .................................................................................................................111 Определение характеристик файла, таких как размер или дата последнего изменения ...................................................................................112 Чтение и запись данных в файлы ..................................................................113
Содержание 7 Копирование данных из одного файла в другой ..........................................118 iOS ........................................................................................................................119 Определение характеристик файла, таких как размер или дата последнего изменения ...................................................................................119 Чтение и запись данных в файлы ..................................................................122 Копирование данных из одного файла в другой ..........................................123 Что мы узнали .....................................................................................................125 Глава 7. Хранение данных ........................................................................126 Задачи ..................................................................................................................126 Android .................................................................................................................126 Соединение с базой данных ..........................................................................127 Создание таблицы или хранимого объекта ..................................................128 Запись данных в таблицу или хранимый объект .........................................129 Чтение данных из таблицы или хранимого объекта....................................130 iOS ........................................................................................................................133 Настройка соединения со слоем хранения данных .....................................133 Определение и создание таблицы или хранимого объекта ........................135 Запись хранимых данных в SQLite ................................................................136 Чтение данных из SQLite ...............................................................................137 Что мы узнали .....................................................................................................138 Глава 8. Конкурентное (многопоточное) выполнение ..................140 Задачи ..................................................................................................................140 Android .................................................................................................................140 Запуск задачи в фоновом потоке ..................................................................141 Передача результатов из фонового потока в главный .................................144 Завершение потока выполнения ...................................................................145 iOS ........................................................................................................................150 Запуск задачи в фоновом потоке ..................................................................151 Передача результатов из фонового потока в главный .................................152 Что мы узнали .....................................................................................................153 Глава 9. Сетевые взаимодействия .........................................................155 Задачи ..................................................................................................................155 Android .................................................................................................................156 Загрузка текстового файла с удаленного сервера и его вывод ....................156 Создание запроса HTTP POST ........................................................................157 Загрузка двоичного файла .............................................................................159 iOS ........................................................................................................................160 Загрузка текстового файла с удаленного сервера и его вывод ....................161 Создание запроса HTTP POST ........................................................................162 Загрузка двоичного файла .............................................................................166 Что мы узнали .....................................................................................................171
Содержание Глава 10. Обратная связь с пользователем .......................................172 Задачи ..................................................................................................................172 Android .................................................................................................................172 Отображение обратной связи с использованием системных инструментов ..................................................................................................172 Snackbar ...........................................................................................................173 Изменение строки состояния ........................................................................175 iOS ........................................................................................................................177 Отображение обратной связи с использованием системных инструментов ...............................................177 Изменение строки состояния ........................................................................179 Что мы узнали .....................................................................................................180 Глава 11. Предпочтения пользователя ................................................182 Задачи ..................................................................................................................182 Android .................................................................................................................182 Сохранение предпочтений пользователя .....................................................183 Чтение предпочтений пользователя .............................................................184 Работа с предпочтениями в многопользовательских приложениях ..........184 iOS ........................................................................................................................185 Сохранение предпочтений пользователя .....................................................185 Чтение предпочтений пользователя .............................................................188 Работа с предпочтениями в многопользовательских приложениях ..........189 Что мы узнали .....................................................................................................190 Глава 12. Сериализация и транспорты ................................................192 Задачи ..................................................................................................................192 Android .................................................................................................................192 Сериализация и десериализация экземпляров объектов ............................192 iOS ........................................................................................................................200 Сериализация и десериализация экземпляров объектов ............................200 Дополнительные замечания для iOS .............................................................205 Что мы узнали .....................................................................................................206 Глава 13. Расширения .................................................................................207 Задачи ..................................................................................................................207 Android .................................................................................................................207 Добавление новых возможностей в существующие API .............................207 iOS ........................................................................................................................209 Добавление новых возможностей в существующие API .............................209 Что мы узнали .....................................................................................................212 Глава 14. Тестирование ..............................................................................213 Задачи ..................................................................................................................213 Android .................................................................................................................213
9 Как писать и запускать модульные тесты .....................................................217 Как писать и запускать интеграционные тесты ...........................................220 iOS ........................................................................................................................222 Как писать и запускать модульные тесты .....................................................222 Что мы узнали .....................................................................................................225 Часть II. ПРИМЕР ПРИЛОЖЕНИЯ ......................................................226 Глава 15. Добро пожаловать и настройка окружения ..................227 Сравнение нативных и кросс-платформенных инструментов разработки мобильных приложений ................................................................227 Веб-разработка ...............................................................................................228 Другие подходы ..............................................................................................228 Настройка окружения .........................................................................................229 Настройка окружения разработки для Android ............................................229 Настройка окружения разработки для iOS ...................................................235 Что мы узнали .....................................................................................................236 Глава 16. Создание приложения ............................................................237 Создание нового проекта ...................................................................................237 Android Studio .................................................................................................238 Xcode ................................................................................................................242 Архитектура приложения ..................................................................................245 Создание первого экрана ...................................................................................246 Android ............................................................................................................247 iOS ....................................................................................................................249 Что мы узнали .....................................................................................................254 Глава 17. Вывод списка с данными .......................................................255 Оформление представлений .............................................................................255 Android ............................................................................................................255 iOS ....................................................................................................................265 Добавление кнопки ............................................................................................270 iOS ....................................................................................................................271 Списки, списки и еще раз списки! .....................................................................271 Добавление нового представления каталога ................................................272 Подключение кнопки .....................................................................................273 Книги ...................................................................................................................274 Заполнение представления списка ...................................................................278 Android ............................................................................................................278 iOS ....................................................................................................................285 Что мы узнали .....................................................................................................288 Глава 18. Моделирование каталога библиотеки .............................290 Динамические данные в представлениях списков ..........................................290 Android ............................................................................................................291
Содержание iOS ....................................................................................................................294 Пришло время вернуть объекты модели в реальность ....................................298 JSON для одного, JSON для всего .......................................................................298 Переключение слоя данных на использование JSON.......................................300 Android ............................................................................................................300 iOS ....................................................................................................................306 Что мы узнали .....................................................................................................308 Глава 19. Сохранность данных................................................................309 Детализация информации о книгах ..................................................................309 Android ............................................................................................................309 iOS ....................................................................................................................314 Сохранение книг для последующего использования.......................................318 Android ............................................................................................................319 iOS ....................................................................................................................320 Запись книг в хранилище ...................................................................................321 Android ............................................................................................................322 iOS ....................................................................................................................331 Сохранение книг в закладках ............................................................................339 Android ............................................................................................................340 Что мы узнали .....................................................................................................341 Глава 20. Сетевые операции в приложении ......................................342 Поиск в сети ........................................................................................................342 Android ............................................................................................................345 iOS ....................................................................................................................347 Создание службы поиска....................................................................................350 Установка Node и Express ...............................................................................350 Файл JSON с местоположениями библиотек ................................................351 Вызов службы ......................................................................................................352 Android ............................................................................................................352 iOS ....................................................................................................................356 Что мы узнали .....................................................................................................365 Предметный указатель ..............................................................................366