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

Разработка мобильных приложений. Первые шаги

Покупка
Артикул: 718137.01.99
Эта книга — практическое руководство для тех, кто уже делает первые шаги в разработке мобильных приложений под Android или пока только мечтает об этом. С ней вы легко освоите основы разработки, познакомитесь со средой разработки Android Studio, создадите собственные приложения, которыми можно поделиться с друзьями и со всем миром. Для дополнительного образования в школе и дома. Будет полезна учащимся 8—11 классов школы, учителям информатики, руководителям кружков, студентам и всем, кто хочет войти в мир Android-разработки.
Федотенко, М. А. Разработка мобильных приложений. Первые шаги / М. А. Федотенко ; под ред. В. В. Тарапаты. - Москва : Лаборатория знаний, 2019. — 338 с. - (Школа юного программиста). - ISBN 978-5-00101-640-3. - Текст : электронный. - URL: https://znanium.com/catalog/product/1040745 (дата обращения: 23.04.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
УДК 004.9
ББК 32.97
Ф34

С е р и я о с н о в а н а в 2018 г.
Федотенко М. А.
Ф34
Разработка мобильных приложений. Первые шаги
[Электронный ресурс] / М. А. Федотенко ; под ред.
В. В. Тарапаты. — Эл. изд. — Электрон. текстовые дан.
(1
файл pdf
:
338 с.). — М.
:
Лаборатория знаний,
2019. — (Школа юного программиста). — Систем. требования: Adobe Reader XI ; экран 10".
ISBN 978-5-00101-640-3
Эта книга — практическое руководство для тех, кто уже
делает первые шаги в разработке мобильных приложений
под Android или пока только мечтает об этом. С ней вы легко
освоите основы разработки, познакомитесь со средой разработки Android Studio, создадите собственные приложения,
которыми можно поделиться с друзьями и со всем миром.
Для
дополнительного
образования
в
школе
и
дома.
Будет
полезна
учащимся
8–11
классов
школы, учителям
информатики, руководителям кружков, студентам и всем,
кто хочет войти в мир Android-разработки.
УДК 004.9
ББК 32.97

Деривативное
электронное
издание
на
основе
печатного
аналога:
Разработка
мобильных
приложений.
Первые
шаги
/
М. А. Федотенко
;
под
ред.
В. В. Тарапаты. —
М.
:
Лаборатория
знаний,
2019. — 335 с.
:
ил. — (Школа
юного программиста). — ISBN 978-5-00101-192-7.

В соответствии со ст. 1299 и 1301 ГК РФ при устранении ограничений,
установленных
техническими
средствами
защиты
авторских
прав,
правообладатель вправе требовать от нарушителя возмещения убытков
или выплаты компенсации

ISBN 978-5-00101-640-3
c○ Лаборатория знаний, 2019

2

Оглавление
Оглавление

От автора . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Благодарности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Загрузка и установка Android Studio  . . . . . . . . . . . . . . . . . . . . . . 9
Разработка Android-приложений  . . . . . . . . . . . . . . . . . . . . . . . . . 13

Глава 1. «Hello, world!» или первое приложение . . . . . . . . . . . 14

1.1. Запуск Android Studio и создание проекта  . . . . . . . . . . 14
1.2. Знакомство с интерфейсом Android Studio  . . . . . . . . . . 20

1.2.1. Структура проекта Android Studio . . . . . . . . . . . . 22

1.3. Работа в режиме дизайна . . . . . . . . . . . . . . . . . . . . . . . . . 27

1.3.1. TextView — текстовые элементы  . . . . . . . . . . . . . 27
1.3.2. Resources — библиотеки ресурсов  . . . . . . . . . . . . 30
1.3.3. ID — уникальный идентификатор . . . . . . . . . . . . 32
1.3.4. ImageButton — изображение-кнопка . . . . . . . . . . 34

1.4. Работа в режиме кода . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

1.4.1. AndroidManifest — файл манифеста  . . . . . . . . . . 47

1.5. Сборка проекта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
1.6. Тестирование приложения. . . . . . . . . . . . . . . . . . . . . . . . . 50

1.6.1. Файл APK  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
1.6.2. Эмулятор  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
1.6.3. USB-отладка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

Итоги главы 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

Глава 2. Основы проектирования интерфейса . . . . . . . . . . . . . . 62

2.1. Макеты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

2.1.1. FrameLayout — расположение элементов 
       друг над другом  . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
2.1.2. LinearLayout (vertical) — линейное 
       расположение элементов по вертикали . . . . . . . . 70
2.1.3. LinearLayout (horizontal) — линейное 
       расположение элементов по горизонтали  . . . . . . 73
2.1.4. GridLayout — сеточное расположение 
       элементов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
2.1.5. Строковые ресурсы . . . . . . . . . . . . . . . . . . . . . . . . . 81

2.2. Ориентация экрана . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
2.3. Разработка приложений для планшетов . . . . . . . . . . . . . 87
2.4. Приложение «Калькулятор» . . . . . . . . . . . . . . . . . . . . . . . 90
Итоги главы 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

Глава 3. Способы оповещения пользователей . . . . . . . . . . . . . 104

3.1. Всплывающие сообщения  . . . . . . . . . . . . . . . . . . . . . . . . 104
3.2. Диалоговые окна  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

3.2.1. Диалоговые окна с множественным выбором . . 113

Оглавление

3.3. Уведомления . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

3.3.1. Удаление уведомлений . . . . . . . . . . . . . . . . . . . . . 118
3.3.2. Большая иконка  . . . . . . . . . . . . . . . . . . . . . . . . . . 119
3.3.3. Приоритет уведомлений . . . . . . . . . . . . . . . . . . . . 119
3.3.4. Звуковое и световое оповещение . . . . . . . . . . . . . 120
3.3.5. Уведомление, отображающее ход 
       выполнения  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
3.3.6. Уведомления на экране блокировки  . . . . . . . . . 121

3.4. Звуковые эффекты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
3.5. Приложение «Маленький принц» . . . . . . . . . . . . . . . . . 126
Итоги главы 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

Глава 4. Дизайн и юзабилити мобильных приложений  . . . . 140

4.1. Дизайн и юзабилити  . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
4.2. Логотип приложения . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

4.2.1. Назначение и роль логотипа . . . . . . . . . . . . . . . . 142
4.2.2. Виды логотипов . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
4.2.3. Создание логотипа . . . . . . . . . . . . . . . . . . . . . . . . . 144
4.2.4. Установка логотипа приложения . . . . . . . . . . . . 151

4.3. Загрузочный экран приложения  . . . . . . . . . . . . . . . . . . 152

4.3.1. Анимация элементов и класс AnimationUtils . . 157
4.3.2. ProgressBar — индикатор загрузки . . . . . . . . . . 159

4.4. Темы и стили . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

4.4.1. Стили  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
4.4.2. Темы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164

4.5. Меню. Виды меню . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167

4.5.1. Меню-шторка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
4.5.2. Фрагменты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
4.5.3. Главное меню . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183

4.6. Навигация. Переключение между несколькими 
     экранами  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
Итоги главы 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194

Глава 5. Работа с текстом, изображениями и жестами . . . . . 195

5.1. Работа с текстом . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195

5.1.1. Длинный текст  . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
5.1.2. ScrollView — контейнер с возможностью 
       прокрутки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
5.1.3. ScrollingActivity — прокручиваемый экран . . . 201

5.2. Обработка касаний и жестов  . . . . . . . . . . . . . . . . . . . . . 204

5.2.1. Двойное нажатие . . . . . . . . . . . . . . . . . . . . . . . . . . 206
5.2.2. Долгое нажатие . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
5.2.3. Отпущенное одиночное нажатие . . . . . . . . . . . . . 207
5.2.4. Скроллинг и свайпинг . . . . . . . . . . . . . . . . . . . . . 208

5.3. Работа с камерой . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208

Оглавление

5.4. Приложение «Скетчбук творческой личности» . . . . . . 212
Итоги главы 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225

Глава 6. Интернет и базы данных  . . . . . . . . . . . . . . . . . . . . . . 226

6.1. Интернет  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
6.2. Базы данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228

6.2.1. Подключение БД к проекту Android Studio . . . 238

6.3. Инструмент Firebase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
6.4. Приложение «Посторонним вход воспрещен» . . . . . . . 249
Итоги главы 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262

Глава 7. Сторонние приложения и встроенные 
          инструменты  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263

7.1. Работа со сторонними приложениями . . . . . . . . . . . . . . 263

7.1.1. Телефон . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
7.1.2. Браузер . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
7.1.3. Электронная почта  . . . . . . . . . . . . . . . . . . . . . . . . 264
7.1.4. Магазин приложений Google Play  . . . . . . . . . . . 265
7.1.5. Фонарик . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
7.1.6. Switch — переключатель . . . . . . . . . . . . . . . . . . . 268

7.2. Конвертация сайта в мобильное приложение  . . . . . . . 270
7.3. Чтение QR-кодов  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
7.4. Работа с картами Google . . . . . . . . . . . . . . . . . . . . . . . . . 283

7.4.1. Установка маркера . . . . . . . . . . . . . . . . . . . . . . . . 287
7.4.2. Изменение типа и настроек карты . . . . . . . . . . . 289
7.4.3. Определение текущего местоположения  . . . . . . 290

7.5. Приложение «Вокруг света за 80 дней» . . . . . . . . . . . . 291
Итоги главы 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298

Глава 8. Итоговый проект «Общалка». Уровень: 
           продвинутый Android-разработчик . . . . . . . . . . . . . . . . .299

Итоги главы 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
Заключение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314

Приложения  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .315

Магазины приложений  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
Девять шагов к идеальному приложению  . . . . . . . . . . . . . . 318
Спортивное ориентирование по проекту Android Studio  . . 319
Исправление типичных ошибок . . . . . . . . . . . . . . . . . . . . . . . 321
Глоссарий . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328

От автора

Посвящается 
Виталию Ивановичу Кулишу

Кажется, что сегодня буквально все можно сделать мобильным 
приложением. А вы как раз давно хотели стать разработчиком 
мобильных приложений, но не знали, с чего начать? Смотрите на 
многочисленные приложения и думаете, что это сложно?
Легко ли создавать приложения для AndroidТМ?1 
Если задать этот вопрос в Интернете — большинство ответов 
будет «сложно». Но в магазине приложений Google Play миллионы приложений. Если бы это было очень сложно, их было бы 
тысячи; невероятно сложно — сотни, причем их разработка была 
бы «по плечу» только крупным компаниям. Но их миллионы! 
А значит, вы вполне можете стать одним из сотен тысяч разработчиков по всему миру и создать новый продукт, который будут 
использовать и любить миллионы пользователей.
Не стоит оглядываться на пессимистов!
В чем отличие этой книги от остальных книг по And roidразработке? Она проста и понятна для начинающих, яркая и 
увлекательная.
Следуя подробным пошаговым инструкциям, вы уже на первом уроке создадите приложение, которое можно запустить и которым можно поделиться с друзьями и не только. 
Думаете, нужно заранее досконально изучить несколько языков 
программирования? Нет, для начала будет достаточно понимания 
их основ, которое вы получите в процессе чтения данной книги2. 
При этом вы сможете называться настоящими Android-разработчиками, в отличие от тех, кто пользуется различными конструкторами приложений.
Вам не придется на протяжении всей книги идти к одному-единственному результату. Результатом изучения нескольких 
уроков будет готовый продукт (калькулятор, скетчбук или викторина), который можно совершенствовать и далее3. А в конце 
вы создадите собственный мессенджер и, при желании, сможете 
развить его до уровня WhatsApp или Viber.
Этому мало где учат. Далеко не во всех, даже ведущих, университетах есть курсы Android-разработки, а значит, с уверенно
1 
Android является товарным знаком Google Inc.

2 
Основы программирования также можно изучить с помощью книг серии 
«Школа юного программиста» издательства «Лаборатория знаний». 

3 
Примеры приложений из этой книги можно найти на ее странице на сайте 
издательства «Лаборатория знаний».

Благодарности

стью можно сказать, что большинство разработчиков — самоучки. Что же мешает вам?
Задача этой книги — дать вам основные инструменты, с помощью которых вы сами сможете создать собственный ВКонтакте, 
или… Кто знает?
Успехов вам, будущие Android-разработчики!

Благодарности

Искренняя признательность профессору МПГУ Надежде Николаевне Самылкиной, благодаря которой написание этой книги стало возможным. 

Благодарю моего научного руководителя, Марину Леонидовну 
Соболеву, за ее поддержку и бесценные советы.

Спасибо моим любимым студентам за проявленный интерес 
и помощь в испытании проектов этой книги на практике.

Отдельная благодарность моим коллегам, Виктору Викторовичу Тарапате и Алене Антоновне Салаховой, а также замечательному коллективу издательства «Лаборатория знаний» — всем, 
кто работал с рукописью и способствовал ее улучшению.

И самая главная благодарность всем, кто прочитает эту книгу.

Сердечно благодарю мою дорогую семью за всестороннюю помощь и веру в мои силы.

Введение

Эта книга посвящена основам разработки мобильных приложений под Android в интегрированной среде разработки1 Android 
Studio.
Android Studio — официальная среда разработки мобильных 
приложений для устройств с операционной системой Android 
от компании Google. Это доступный и универсальный инструмент. Он обладает широкими возможностями и достаточно прост 
в освоении.
Работа в Android Studio с помощью этой книги станет намного 
проще и гораздо интереснее. Например, в разработке мобильных 
приложений под Android задействованы сразу четыре языка программирования и разметки (Java, XML, SQL и Groovy), однако 
мы не будем тратить время на изучение основ каждого языка 
в отдельности — все произойдет в процессе обучения разработке 
мобильных приложений, а на выходе получится довольно внушительный набор IT-навыков.
Глава 1 этой книги мало похожа на стандартную главу учебника, в ней нет блока вводной теории, вопросов, дополнительных 
заданий. Она содержит только один урок, скорее напоминающий 
руководство пользователя IDE Android Studio. Задача главы 1 — 
провести краткий экскурс в мир разработки мобильных приложений, показать весь процесс от запуска Android Studio до запуска приложения на смартфоне. 
Все последующие главы содержат по несколько уроков. В каждом уроке создается мини-приложение с набором основных функций современных мобильных приложений. После прохождения 
нескольких уроков изученные функции объединяются в одно 
полноценное приложение. Завершает книгу итоговый проект, 
в котором мы с помощью всех полученных навыков создадим 
собственный мессенджер.
Развернутое оглавление книги поможет легко ориентироваться 
в расположении описания изученных функций. Если в процессе реализации десятого приложения мы забудем, как создавать 
АРК, достаточно заглянуть в оглавление и глоссарий. Его можно найти в Приложениях, так же как Руководство по исправлению основных ошибок и подробное описание структуры проекта 
Android Studio. 
Готовы стать настоящим Android-разработчиком?
Давайте пройдем этот путь вместе!

1 
Интегрированная среда разработки (Integrated development environment, 
IDE) — среда разработки, которая уже включает в себя все необходимые 
для разработки средства, такие как компилятор, текстовый редактор, средство автоматизации сборки и отладчик.

Загрузка и установка Android Studio

Интегрированная среда разработки Android Studio является свободно распространяемой. Текущая версия доступна для загрузки 
на официальном сайте разработчика https://developer.android.
com/studio/index.html 
На открывшейся странице сайта есть кнопка Download Android Studio (скачать Android Studio). Она запускает скачивание текущей версии для 64-разрядной Windows:

Если на компьютере установлена другая операционная система, нужно пролистать страницу вниз и найти раздел System 
Requirements (системные требования). В нем содержатся заявленные разработчиком системные требования:

Для Windows:

 Microsoft® Windows® 7/8/10 (32- или 64-разрядная версия);
 минимум 3 Гб ОЗУ (рекомендуется 8 Гб) плюс 1 Гб для эмулятора Android (виртуального устройства для тестирования 
приложений);

 минимум 2 Гб доступного места на диске (рекомендуется 
4 Гб);

 минимальное разрешение экрана 1280 800.

Загрузка и установка Android Studio

Для Mac OS:

 Mac® OS X® 10.10 (Yosemite) или выше;
 минимум 3 Гб ОЗУ (рекомендуется 8 Гб) плюс 1 Гб для эмулятора Android;

 минимум 2 Гб доступного места на диске (рекомендуется 
4 Гб);

 минимальное разрешение экрана 1280 800.

Для Linux:

 рабочий стол GNOME или KDE;
 библиотека GNU С (glibc) 2.19 или более поздней версии;
 минимум 3 Гб ОЗУ (рекомендуется 8 Гб) плюс 1 Гб для эмулятора Android;

 минимум 2 Гб доступного места на диске (рекомендуется 
4 Гб);

 минимальное разрешение экрана 1280 800.

Перед разделом системных требований идет раздел Android 
Studio downloads (загрузки), в котором представлены ссылки для 
скачивания Android Studio для разных платформ:Выбираем свою операционную систему и скачиваем соответствующий установочный пакет из поля Android Studio package 
(пакет Android Studio).

Загрузка и установка Android Studio 

В загруженном установочном файле уже имеются все необходимые для разработки инструменты: сама IDE Android Studio 
и Android SDK1. Таким образом, дополнительно ничего скачивать и устанавливать не требуется.
Процесс установки Android Studio стандартный, все опции 
оставляем и принимаем без изменений. Обратить внимание стоит на два момента:

1. При выборе путей установки Android Studio и Android SDK 
следует учесть, что:

 для установки SDK нужно минимум 3.2 Гб свободной памяти на диске;

 выбранные пути не должны содержать букв кириллицы — 
это важно.

2. При первом запуске Android Studio задаст вопрос об импорте 
конфигурации. Выбираем второй пункт — I do not have a previous version of Studio or I do not want to import my settings 
(у меня нет предыдущей версии Android Studio или я не хочу 
импортировать текущие настройки):

1 
Android SDK (Software Development Kit) — набор инструментов для разработки программного обеспечения для операционной системы Android. Включает 
в себя эмуляторы устройств, документацию и все необходимые для разработки пакеты.

Загрузка и установка Android Studio

После этого Android Studio начнет самостоятельно загружать 
Android SDK из сети Интернет. Если загрузка SDK с первого 
раза не получится, Android Studio предложит повторить попытку — обязательно нажимаем Retry (попробовать снова).

Когда установка будет полностью завершена, появится приветственное окно Android Studio:

На панели слева будут отображаться уже созданные проекты 
(при первом запуске она, естественно, будет пуста), в основной 
рабочей области — возможности для работы с проектами (создание нового проекта, открытие уже существующего, загрузка 
и импорт проектов), а внизу — Events (события, например 
оповещения об обновлениях), Configure (переход к настройкам 
Android Studio) и Get Help (меню помощи).
Это означает, что теперь у нас есть все инструменты, необходимые для того, чтобы стать Android-разработчиками. Вперед!

РАЗРАБОТКА 
РАЗРАБОТКА 

ANDROID-ПРИЛОЖЕНИЙ
ANDROID-ПРИЛОЖЕНИЙ

Глава 1. «Hello, World!», 
Глава 1. «Hello, World!», 

или Первое приложение
или Первое приложение

Все программисты начинают освоение нового языка программирования с первой программы — «Hello, World!» (в переводе с 
англ. — «Здравствуй, мир!»). И это не только базовый прием, 
показывающий программисту особенности нового языка и структуру программы. Это традиция, впервые она была введена в книге «Язык программирования Си» Брайана Кернигана и Денниса 
Ритчи в 1978 году.
И мы последуем этой традиции при знакомстве с Android Studio. Ведь «Hello, World!» — это не просто абстрактное приветствие, на самом деле это оптимистичное и довольно амбициозное 
заявление: «Здравствуй, мир! Встречай нового Android-разработчика!»1.

Концепция приложения: при запуске приложения на экране 
отображается кнопка старта, при нажатии на которую появляется приветственный текст и картинка.

1.1. Запуск Android Studio 
и создание проекта

Для создания нашего первого (и любого последующего) приложения необходимо создать новый Android Studio проект.

1 
Изображение робота с леденцом — логотип ОС Android 5.0 Lollipop.