Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Нативная разработка мобильных приложений: перекрестный справочник для iOS и Android

Покупка
Артикул: 748349.01.99
Доступ онлайн
999 ₽
В корзину
В этой книге вы познакомитесь с простыми подходами к разработке мобильных приложений для iOS и Android. Если вашей команде приходится разрабатывать проекты сразу для двух этих систем или вы планируете перейти с одной системы на другую, это практическое руководство покажет вам, как решаются наиболее распространенные задачи на каждой из этих платформ. В первой части представлены решения распространенных задач, которые приходится решать на любой платформе, таких как запись файла в локальное хранилище или создание HTTP-запроса. Вторая часть описывает процесс создания приложения на каждой платформе с использованием приемов из первой части. Примеры кода для Android представлены на двух языках - lava и Kotlin, поэтому книга может служить перекрестным справочником не только между iOS и AOSP, но и между Java и Kotlin для разработчиков на Android. Издание предназначено для программистов, специализирующихся на разработке приложений для iOS и/или Android.
Льюис, Ш. Нативная разработка мобильных приложений: перекрестный справочник для iOS и Android : справочник / Ш. Льюис, М. Данн ; пер. с англ. А. Н. Киселева. - Москва : ДМК Пресс, 2020. - 376 с. - ISBN 978-5-97060-845-6. - Текст : электронный. - URL: https://znanium.com/catalog/product/1210693 (дата обращения: 22.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Шон Льюис и Майк Данн

Нативная разработка  
мобильных приложений

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

Доступ онлайн
999 ₽
В корзину