Разработка мобильного приложения в Android Studio

Программные решения для бизнеса

Мы рассмотрим некоторые особенности разработки мобильных приложений под Android и разберем несколько важных функций: получение данных с помощью API, вывод информации в список и просмотр детальной информации. Поехали!
Глоссарий
Для успешного освоения материала рекомендуем вам изучить следующие понятия:
API
Application programming interface. Интерфейс, позволяющий двум независимым компонентам программного обеспечения обмениваться информацией
Запрос
Query. Средство выбора необходимой информации из базы данных
Интерфейс пользователя или пользовательский интерфейс
UI. Интерфейс, обеспечивающий передачу информации между пользователем-человеком и программно-аппаратными компонентами компьютерной системы
Класс
Class. Элемент программного обеспечения, описывающий абстрактный тип данных и его частичную или полную реализацию
Конструктор класса
Constructor. Специальный блок инструкций, вызываемый при создании объекта
Мобильное приложение
Mobile application. Программное обеспечение, предназначенное для работы на смартфонах, планшетах и других мобильных устройствах, разработанное для конкретной платформы (iOS, Android, Windows Phone и т. д.)
Намерение
Intent. Программный механизм, который позволяет пользователям координировать функции различных действий для достижения цели
Элемент управления
Control. Элемент, который предназначен для взаимодействия с пользователем или для отображения ему какой-либо информации
Эмулятор
Emulator. Аппаратное или программное обеспечение, которое позволяет одной компьютерной системе (называемой хостом) вести себя как другая компьютерная система (называемая гостем)
Видеолекция
Конспект

Популярность мобильных приложений и их влияние постоянно растет. Например, каким бы популярным ни был банк, обслуживающий платежные карты, в наше время он будет значительно проигрывать тому, который взял на вооружение мобильное приложение. В связи с этим постепенно возрастает число компаний, понимающих важность и ценность приложений для смартфонов. Именно поэтому мобильные приложения стали неотъемлемой частью при разработке программных решений.

Для разработки мобильных приложений под андроид мы рассмотрим две среды разработки. Одна из них — Android Studio, позволяющая писать нативные приложения
1. Создаем новый проект:
  • Выбираем стандартный шаблон
  • Указываем название и выбираем язык для разработки. В этом примере будет показана разработка на языке Java
2. Для начала займемся дизайном приложения. Сверстаем activity для главной страницы, для дополнительной информации и одного объекта — отеля, который будет отображаться в списке
3. Добавляем новую activity для детальной информации. Элемент списка, как и страница с детальной информацией, будет состоять из трех элементов: изображение, название отеля и его рейтинг
4. Создаем класс Hotel для работы с API:
  • Нам нужно создать поля для этого класса в соответствии с тем, что планируем использовать в приложении
  • Попробуем получить ответ и в соответствии с этими полями отразить это в нашем классе
  • Создаем конструктор и методы для установки и получения значений с помощью сочетания клавиш Alt + Insert
  • Затем для передачи данных о классе реализуем интерфейс Parcelable и его методы
  • Кроме того, необходимо добавить метод для преобразования полученных данных в изображении

5. После того, как мы создали класс для работы, необходимо создать для него адаптер. Он позволит связывать данные с элементами управления.

  • Для этого создаем новый класс HotelsAdapter, который унаследуем от BaseAdapter, реализовав необходимые методы
  • Создаем поля, которые потом добавляем для инициализации в конструктор. (Context и список отелей mHotelsList).
  • С помощью сочетания Alt + Insert добавляем конструктор
  • После объявления этих полей немного переписываем методы из BaseAdapter под свои нужды:

  1. GetCount будет возвращать количество элементов в списке
  2. GetItem будет возвращать сам объект
  3. GetItemId — код выбранного элемента
  4. GetView — само представление об элементе в списке
  • Метод GetView показывает загрузку представления каждого элемента. Сначала мы указываем, какой ресурс для отображения будем использовать, а затем находим элементы управления и устанавливаем значения
  • Получаем объект, который выбрали для этого View. Устанавливаем значения
6. Так как в списке будет отображаться только самая общая информация, пользователю может быть интересно узнать детали по каждому элементу в списке. Для этого мы обрабатываем нажатие на элемент в списке. Но сначала определим, каким образом осуществляется навигация в приложении. В Android необходимо создать переменную, которая описывает правила и параметры для вызова новой активности. Обратите внимание, по нажатию на элемент мы будем переходить на другую страницу с информацией. Для этого нужно обработать это нажатие и прописать логику перехода. Делать это мы будем в нашем View внутри адаптера.
  • Устанавливаем слушателя на Click, и между намерениями, прежде чем вызвать его, передаем экземпляр нашего объекта
  • В MainActivity создаем экземпляр для адаптера из списков. ListView можно создать в методе OnCreate и установить для него адаптер
  • Создаем экземпляр адаптера
7. Ранее мы создали и развернули API, который позволяет нам работать с единой базой данных с разных устройств. Давайте выведем в мобильном приложении список отелей. Но сначала эти данные необходимо получить
  • Создаем новый класс, унаследованный от AsyncTask, который будет отвечать за получение и загрузку данных
  • Мы реализуем два метода:
  1. DoingBackground, будет отвечать за загрузку данных
  2. onPostExecute — за их обработу
  • Для обращения к локальному API мы будем переходить по адресу не 127 001, а 10 022 — стандартный для Android
  • Соответственно переходим к обработке данных
  • Добавляем созданный объект в список и обновляем адаптер
  • Вызываем выполнение этого метода при запуске MainActivity
  • Обратите внимание, чтобы работать с интернетом, вам необходимо прописать разрешение на подключение в manifest
8. Попробуем запустить приложение на эмуляторе:
  • Для этого создаем новый эмулятор
  • Выводится список данных. Немного поработаем над версткой, т. к. у нас не совсем корректно выводится рейтинг. Достаточно установить максимальное количество звезд
9. Теперь прописываем логику отображения подробной информации об отеле. И в этом нам поможет Parcelable — переменная, которую мы использовали ранее
  • Переходим в DetailsActivity и выводим данные
  • Запускаем — проверяем
Мы рассмотрели очень важные функции в мобильном приложении: получение данных с помощью API, вывод информации в список, просмотр детальной информации. Это далеко не все, что вам предстоит узнать в мобильной разработке, но уже хорошая основа для последующего изучения.
А теперь предлагаем вам проверить свои знания на практике.
Интерактивное задание
Тест
Для закрепления полученных знаний пройдите тест
Стартуем!
Android Studio. Где в проекте описываются разрешения на доступ к различным функциям?
Дальше
Проверить
Узнать результат
Android Studio. Объект Intent содержит:
Дальше
Проверить
Узнать результат
К сожалению, вы ответили неправильно
Прочитайте лекцию и посмотрите видео еще раз
Пройти еще раз
Неплохо!
Но можно лучше. Прочитайте лекцию и посмотрите видео еще раз
Пройти еще раз
Отлично!
Вы отлично справились. Теперь можете ознакомиться с другими компетенциями
Пройти еще раз