Привет, Хаброжители! У нас вышло 3-е издание книги Пола и Харви Дейтл, Александера Уолда:
Предлагаем подробно ознакомится с разработкой приложений для смартфонов и планшетов Android с использованием Android Software Development Kit (SDK). Многие навыки программирования для Android, представленные в книге, также применимы к разработке приложений для Android Wear и Android TV.
В книге представлены передовые технологии разработки мобильных приложений для профессиональных программистов. В основу книги заложен принцип разработки, ориентированной на приложения, — концепции разработки продемонстрированы на примере полностью работоспособных приложений Android, а не фрагментов кода. Каждая из глав 2–9 начинается с вводной части, в которой вкратце описано разрабатываемое приложение. Затем приводятся результаты тестирования приложения и обзор технологий, применяемых в процессе его разработки. Далее выполняется подробный анализ исходного кода приложения.
Целевая аудитория
Предполагается, что читатели этой книги знают язык Java и имеют опыт объектно-ориентированного программирования. Также предполагается, что читатель знаком с XML — как вы увидите, проекты Android содержат много файлов XML, хотя программист часто работает с XML в редакторе, в основном скрывающем значительную часть XML. Мы используем только завершенные рабочие приложения, поэтому, даже не зная Java, но имея опыт объектно-ориентированного программирования на С++, C#, Swift или Objective-C, вы сможете быстро освоить излагаемый в книге материал, а заодно узнать много полезного о Java и объектно-ориентированном программировании.
Эта книга не является учебником по Java.
Особенности книги
Разработка, ориентированная на приложения. В каждой из глав 2–9 представлено одно полное приложение — рассмотрены функции приложения, приведены снимки экрана выполняющегося приложения, результаты тестовых запусков и обзор технологий и архитектуры, используемых при создании приложения. Затем мы строим графический интерфейс приложения, представляем его полный исходный код и проводим подробный анализ этого кода; обсуждаем концепции, применяемые в программировании, и демонстрируем функциональность Android API, используемую при создании приложения.
Android 6 SDK. В книге рассматриваются новые возможности Android 6 SDK (Software Development Kit).
Android Studio IDE. Бесплатная среда Android Studio (созданная на базе IntelliJ IDEA Community Edition) в настоящее время является основной интегрированной средой, рекомендуемой для разработки приложений Android (исходные средства разработки Android работали на базе Eclipse IDE). Среда Android Studio в сочетании с бесплатным пакетом Android Software Development Kit (SDK) и бесплатным пакетом Java Development Kit (JDK) предоставляет все необходимое для создания, запуска и отладки приложений Android, поддержки их распространения (например, отправки в магазин Google Play) и т. д. Инструкция по поводу загрузки и установки этих продуктов приведена в разделе «Подготовка».
Материальный дизайн. В Android 5 компания Google представила новый стиль приложений, основанный на спецификации материального дизайна.
В этой спецификации Google приводит обзор целей и принципов материального дизайна, а также подробную информацию по методам анимации, стилевому оформлению экранных элементов, позиционированию элементов, использованию конкретных компонентов интерфейса пользователя, стандартным схемам взаимодействия с пользователем, доступности, интернационализации и т. д. В настоящее время компания Google использует принципы материального дизайна как в своих мобильных приложениях, так и в приложениях для браузеров.
Материальный дизайн — весьма обширная тема. В этой книге мы сосредоточимся на следующих его аспектах:
Использование встроенных материальных тем Android — темы гарантируют, что внешний вид встроенных компонентов Android будет соответствовать принципам материального дизайна.
Использование встроенных шаблонов приложений Android Studio — эти шаблоны были разработаны компанией Google в соответствии с принципами материального дизайна.
Использование компонентов интерфейса пользователя, рекомендованных в спецификации Google для конкретных целей, таких как FloatingActionButton, TextInputLayout и RecyclerView.
Поддержка и библиотеки совместимости. При использовании новых возможностей Android разработчики часто сталкиваются с проблемой обеспечения обратной совместимости с более ранними платформами Android. Многие новые возможности Android теперь вводятся через библиотеки поддержки. Это позволяет разработчику использовать новые возможности в приложениях, ориентированных как на современные, так и на старые платформы Android. К числу таких библиотек принадлежит и AppCompat. Шаблоны приложений в Android Studio были обновлены; теперь в них используется библиотека AppCompat и ее темы, что позволяет новым приложениям, которые вы создаете, работать на большинстве устройств на базе Android. Если вы создаете приложения, изначально ориентированные на библиотеку AppCompat, вам не придется изменять реализацию кода, если вы захотите поддерживать старые версии Android в более широкой аудитории пользователей.
REST-совместимые веб-сервисы и JSON. В главе 7 представлено приложение Weather Viewer, демонстрирующее использование веб-сервисов с поддержкой архитектурного стиля REST (Representational State Transfer) — в данном случае сервиса получения 16-дневного прогноза погоды с сайта OpenWeatherMap.org. Этот веб-сервис возвращает прогноз в формате JSON (JavaScript Object Notation) — популярном текстовом формате обмена данными, используемом для представления объектов в виде пар «ключ—значение». Приложение также использует классы из пакета org.json для обработки ответа веб-сервиса.
Разрешения Android 6.0. В Android 6.0 используется новая модель разрешений, разработанная для удобства пользователя. До выхода Android 6.0 пользователь обязан был во время установки заранее предоставить все разрешения, которые могли когда-либо понадобиться приложению. Нередко это отпугивало пользователей от установки приложений. В новой модели приложение устанавливается, не запрашивая никаких разрешений. Вместо этого пользователю предлагается запросить разрешение только при первом использовании соответствующей возможности. Глава 5 знакомит читателя с новой моделью разрешений и демонстрирует, как в ней запросить у пользователя разрешение на сохранение изображения на внешнем носителе.
Фрагменты. Начиная с главы 4 мы будем использовать фрагменты для создания и управления частями графического интерфейса каждого фрагмента. Объединяя несколько фрагментов, можно создавать интерфейсы, эффективно использующие пространство экрана планшетов. Разработчик может легко заменять фрагменты, что делает графический интерфейс более динамичным; пример переключения фрагментов рассматривается в главе 9.
Паттерн View-Holder, компоненты ListView и RecyclerView. Каждое из приложений в главах 7–9 отображает прокручиваемый список данных. В главе 7 данные отображаются в списке ListView; также в ней описан паттерн View-Holder, повышающий скорость прокрутки за счет повторного использования компонентов графического интерфейса, выходящих за пределы экрана. При работе с ListView применение паттерна View-Holder желательно, но не обязательно. В главах 8 и 9 данные выводятся в более гибком и эффективном компоненте RecyclerView, для которого паттерн View-Holder обязателен.
Печать. Возможности печати из приложений продемонстрированы на примере класса PrintHelper (глава 5), входящего в инфраструктуру печати Android. Класс PrintHelper предоставляет пользовательский интерфейс для выбора принтера, метод для проверки того, поддерживает ли заданное устройство печать, а также метод для печати объектов Bitmap. Класс PrintHelper является частью библиотеки Android Support Library.
Режим погружения. Панель состояния в верхней части экрана и кнопки меню в нижней части можно скрыть, чтобы ваши приложения могли использовать большую часть экрана. Чтобы получить доступ к панели состояния, пользователь проводит пальцем от верхнего края экрана, а к системной панели с кнопками Back, Home и Recent Apps — от нижнего края.
Тестирование на смартфонах Android, планшетах и в эмуляторе. Для достижения оптимального результата приложения следует тестировать на физических смартфонах и планшетах Android. Полезную информацию также можно получить при тестировании в эмуляторе Android (см. раздел «Подготовка»), однако эмуляция создает существенную нагрузку на процессор и может работать медленно, особенно в играх с большим количеством подвижных объектов. В главе 1 перечислены некоторые функции Android, не поддерживаемые эмулятором.
Cloud Test Lab. Google работает над новым сервисом Cloud Test Lab — сайтом для тестирования приложений на широком спектре устройств, ориентаций устройства, локальных контекстов, языков и состояний сети. Вы сможете проводить автоматизированные тесты и получать подробные отчеты со снимками экранов и видеороликами, а также протоколами ошибок, которые помогут найти проблемы и улучшить приложения.
Android Wear и Android TV. Android Wear работает на «умных часах»; Android TV работает на некоторых умных телевизорах и медиаплеерах, подключаемых к телевизору (обычно кабелем HDMI). Многие приемы программирования для Android, представленные в книге, также относятся и к разработке приложений для Android Wear и Android TV. Android SDK предоставляет эмуляторы для Android Wear и Android TV, поэтому вы сможете тестировать свои приложения для этих платформ, даже если у вас нет самих устройств.
Мультимедиа. В приложениях используются разнообразные мультимедийные возможности Android, включая графику, изображения, покадровую анимацию, анимацию и работу с аудио.
Отправка приложений в Google Play. В главе 10 описан процесс регистрации в Google Play и настройки учетной записи для продажи приложений. Вы узнаете, как подготовить приложение к отправке в Google Play, как установить цену на приложение, и познакомитесь с возможностями монетизации приложений через размещение рекламы и внутренние продажи. Также будут представлены ресурсы, которые могут использоваться для маркетинга приложений. Главу 10 можно читать после главы 1.
Рецензенты книги
Мы хотим поблагодарить рецензентов этого и двух предыдущих изданий книги. Они тщательно проверили текст и предоставили множество рекомендаций по его улучшению: Пол Бойстерьен (Paul Beusterien), главный специалист компании Mobile Developer Solutions; Эрик Дж. Боуден (Eric J. Bowden), главный управляющий компании Safe Driving Systems, LLC; Тони Кантрелл (Tony Cantrell) (Северо-западный технический колледж штата Джорджия); Иэн Дж. Клифтон (Ian G. Clifton), независимый подрядчик, разработчик приложений Android и автор книги «Android User Interface Design: Implementing Material Design for Developers, 2nd Edition»; Даниэль Гэлпин (Daniel Galpin), энтузиаст Android Гэннон и автор книги «Intro to Android Application Development»; Джим Хэзевэй (Jim Hathaway), разработчик из компании Kellogg; Дуглас Джонс (Douglas Jones), старший инженер-программист, компания Fullpower Technologies; Чарльз Ласки (Charles Lasky), муниципальный колледж Нагаутук; Энрике Лопес-Манас (Enrique Lopez-Manas), старший специалист по архитектуре Android и преподаватель информатики в Университете Алькала, Мадрид; Себастиан Никопп (Sebastian Nykopp), главный архитектор, компания Reaktor; Майкл Пардо (Michael Pardo), разработчик Android, компания Mobiata; Ронан «Зеро» Шварц (Ronan «Zero» Schwarz), директор по информационным технологиям, компания OpenIntents; Ариджит Сенгупта (Arijit Sengupta), Государственный университет Райта; Дональд Смит (Donald Smith), Колумбийский колледж; Хесус Убальдо (Jesus Ubaldo), Кеведо Торреро, Университет штата Висконсин, Парксайд; Дон Уик (Dawn Wick), Юго-Западный муниципальный колледж; Фрэнк Сю (Frank Xu), Университет Гэннон.
Об авторах
Пол Дж. Дейтел (Paul J. Deitel), генеральный и технический директор компании Deitel & Associates, Inc., окончил Массачусетский технологический институт (MIT) по специальности «Информационные технологии» (Information Technology). Обладатель сертификатов Java Certified Programmer, Java Certified Developer и Oracle Java Champion. Пол также получил премию Microsoft Most Valuable Professional (MVP) по C# в 2012–2014 годах. В Deitel & Associates, Inc. он провел сотни занятий по всему миру для корпоративных клиентов, включая Cisco, IBM, Siemens, Sun Microsystems, Dell, Fidelity, NASA (Космический центр имени Кеннеди), Национальный центр прогнозирования сильных штормов, ракетный полигон Уайт-Сэндз, Rogue Wave Software, Boeing, SunGard Higher Education, Stratus, Cambridge Technology Partners, One Wave, Hyperion Software, Adra Systems, Entergy, CableData Systems, Nortel Networks, Puma, iRobot, Invensys и многих других. Пол и его соавтор, д-р Харви М. Дейтел, являются авторами всемирно известных бестселлеров — учебников по языкам программирования, предназначенных для начинающих и для профессионалов, а также видеокурсов.
Харви М. Дейтел (Dr. Harvey M. Deitel), председатель и главный стратег компании Deitel & Associates, Inc., имеет 50-летний опыт работы в области информационных технологий. Он получил степени бакалавра и магистра Массачусетского технологического института и степень доктора философии Бостонского университета. В 1960-е годы он работал в группах, занимавшихся созданием различных операционных систем IBM, в Advanced Computer Techniques и Computer Usage Corporation, а в 1970-е годы занимался разработкой коммерческих программных систем. Харви имеет огромный опыт преподавания в колледже и занимал должность председателя отделения информационных технологий Бостонского колледжа. В 1991 году вместе с сыном — Полом Дж. Дейтелом — он основал компанию Deitel & Associates, Inc. Харви с Полом написали несколько десятков книг и выпустили десятки видеокурсов LiveLessons. Написанные ими книги получили международное признание и были изданы на китайском, корейском, японском, немецком, русском, испанском, французском, польском, итальянском, португальском, греческом, турецком языках и на языке урду. Дейтел провел сотни семинаров по программированию в крупных корпорациях, академических институтах, правительственных и военных организациях.
Александер Уолд (Alexander Wald), практикант в компании Deitel, помог нам преобразовать книгу и приложения для Android 4.3 и 4.4 с использованием Eclipse на Android 6 с использованием Android Studio. В настоящее время Александер собирается получить ученую степень бакалавра в области «Информационные технологии» в Уорчестерском политехническом институте с непрофильным образованием в области электротехники. Он заинтересовался математикой и наукой в раннем возрасте и пишет программный код около 9 лет. Его вдохновляет страсть к творчеству и новшествам, а также желание поделиться своими знаниями с другими.
Более подробно с книгой можно ознакомиться на сайте издательства
Оглавление
Отрывок
Для Хаброжителей скидка 25% по купону — Android for Programmers
По факту оплаты бумажной книги отправляем на e-mail электронные версии книг, при покупке электронной книги — все доступные версии отправляются пользователям.
Автор: Издательский дом «Питер»