Создание приложений для Android — старт для начинающих

В этой статье рассказывается о том как создать свое приложение для Android. Описываются основы работы и структура программы Android Studio, а также процесс создания с ее помощью простейшего приложения.

Разработка мобильного программного обеспечения может стать интересным и полезным занятием. В этой статье мы расскажем, как создать приложение для Android .

Android Studio — создание приложения

Чтобы написать приложение, нужно будет загрузить и установить Android Studio . В комплект поставки входит пакет разработки программного обеспечения со всеми библиотеками и кодами Android , необходимыми для разработки приложения. А также эмулятор Android , позволяющий сначала протестировать приложение на своем ПК, не устанавливая его на реальном мобильном устройстве.

Но сначала нужно загрузить и установить Java Development Kit ( JDK ) от Oracle . Найдите раздел « Java SE Development Kit 7u79 » и загрузите версию для своего ПК. Важно загрузить правильную версию ( 32-разрядную или 64-разрядную ), иначе Android Studio не сможет найти Java Runtime Environment ( JRE ).

Примечание: Oracle не будет публиковать на своих общедоступных сайтах какие-либо обновления Java SE 7 , и предполагается, что пользователи массово перейдут на Java 8 . Но в настоящий момент Android Studio требует наличия Java 7 . Это может измениться в будущем.

После того, как вы установили JDK , нужно инсталлировать Android Studio . Во время установки необходимо указать, сколько памяти зарезервировать для эмулятора Android . Он запускает Android в виде виртуальной машины, как смартфон с процессором Intel . Это быстрее, чем эмуляция процессора ARM на ПК. Но для запуска этой виртуальной машины эмулятор должен выделить некоторый объем памяти. Но перед тем как создать приложение для Андроид самому, имейте в виду, что сочетание Android Studio , Java и эмулятора будет довольно ресурсоемким, и компьютер может подтормаживать.

Google говорит, что необходимо как минимум 2 ГБ оперативной памяти, а рекомендуется 4 ГБ. Но мой основной ПК имеет 8 ГБ, и все равно иногда тормозит:

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

Разработка приложений для Android — cоздаем новый проект

Нажмите « Start a new Android Studio project » и введите название своего приложения в поле « Application name ». В поле « Company Domain » введите официальный домен вашей компании. Если вы независимый разработчик или любитель, введите собственный домен. Если вы просто экспериментируете с Android и не собираетесь в ближайшее время публиковать свои приложения в Google Play , просто оставьте пример домена, только измените « user » на ваше имя ( без пробелов ):

В диалоговом окне « Add an activity to Mobile » оставьте значение по умолчанию « Blank Activity » и нажмите « Next ». В диалоговом окне « Customize the Activity » оставьте все значения и нажмите « Finish »:

По умолчанию, рабочее пространство среды IDE делится на три основные части ( не считая панели инструментов и т. д. ). Слева сверху находится дерево проекта. Справа от него — редактор кода, а под ними сообщения.

Перед тем, как создать приложение для Андроид с нуля, уже можно скомпилировать и запустить автоматически созданное приложение, но это не очень интересно. Вместо этого мы добавим несколько мелочей, чтобы вы познакомились с разработкой Android-приложений .

Как сделать приложение для андроид — дерево проекта

Дерево проекта содержит все файлы и ресурсы, необходимые для создания Android-приложения . Если вы знакомы с написанием простых программ на Java , C , Python и т. д., то могли бы подумать, что все будет содержаться только в одном или двух файлах. Но разработка Android-приложений немного сложнее:

В “ manifests ” располагается файл « AndroidManifest.xml », каждое приложение должно содержать его. Это XML-файл с информацией о приложении, включая его название. Часто добавляемым в этот файл элементом является список разрешений, необходимых для приложения. Для этого простого приложения не нужно здесь ничего менять.

В разделе « java » располагается Java-код приложения. Он будет находиться в подкаталоге, с именем com.example.user.myfirstapp . Это имя домена компании, которое вы ввели ранее, только наоборот, плюс название приложения. В этой папке находится файл MainActivity.java . Это точка входа в приложение и единственный файл Java , который нам понадобится.

Продолжаем создавать простое приложение для Андроид . В разделе « res » есть несколько папок для графики, меню и элементов пользовательского интерфейса. Нас интересуют « layout » и « values ». В папке « layout » находится файл под названием « activity_main.xml ». Это XML-файл , описывающий пользовательский интерфейс. Редактировать его можно двумя способами. Первый — непосредственное редактирование XML-кода , второй — использование встроенного дизайнера пользовательского интерфейса:

Чтобы создать приложение для Андроид самому, нужно будет изменить файлы MainActivity.java , activity_main.xml и strings.xml .

Как сделать свое приложение для Android — написание приложения

Для нашего примера мы добавим кнопку с меткой « Tap Me! », изменим приветствие по умолчанию « Hello world! » на « Tap me if you dare! ». А также поменяем его, чтобы оно находилась в центре. И добавим код, чтобы при нажатии кнопки отображался текст « toast »!

Начнем с изменения текста приветствия и его выравнивания. Сначала найдите в дереве проекта файл « activity_main.xml » и дважды кликните по нему. Помните, что « activity_main.xml » — это файл, который содержит определение пользовательского интерфейса. В нижней части окна кода есть две вкладки: « Design » и « Text ». Перейдите на вкладку « Design ».

Теперь нажмите на текст « Hello world! », который показан в окне предварительного просмотра экрана смартфона. Если он слишком мал, используйте кнопку масштабирования ( лупа со значком «плюс» ).

В окне свойств, расположенном справа от изображения телефона, прокрутите экран вниз до тех пор, пока не найдете надпись « layout: centerInParent ». Кликните по пробелу рядом с ней и выберите « horizontal ». После этого текст « Hello world! » переместится в центр:

Найдите эту строку:

И измените ее на:

Мы изменили выравнивание приветствия и его текст. Теперь добавим кнопку. Вернитесь на вкладку « Design » файла « activity_main.xml », найдите в списке « Palette » слева от изображения смартфона пункт « Button » и нажмите на него. Теперь кликните где-нибудь под надписью « Tap me if you dare! ».

Дважды кликните по кнопке, чтобы изменить ее текст. В конце поля “ text: ” расположена кнопка с тремя точками, нажмите на нее. В окне « Resources » нажмите « New Resource », а затем « New String Value… ». В поле « Resource name: » введите « tapme », а в поле « Resource value: » — “ Tap me! ”. Затем нажмите « ОК ». Теперь у нас есть кнопка “ Tap me! ”.

Последний шаг создания простого приложения для Андроид — добавить Java-код , который реагирует на нажатие кнопки. Один из элементов пользовательского интерфейса Android — это “ toast. ”. Он предоставляет простое сообщение в небольшом всплывающем окне. Вы, несомненно, видели это. Например, в Gmail при выходе из электронной почты до отправки письма выводится сообщение « Сообщение сохранено в черновики ». Спустя определенное время оно исчезает.

Для нашего примера приложения мы будем отображать сообщение каждый раз, когда нажимается кнопка. Первым шагом является добавление Java-кода . Найдите файл « MainActivity.java » и добавьте следующий код в « onCreate «:

Слово « View » во фразе «( View v )» будет красным, рядом с ним отображается сообщение, что вы использовали новую конструкцию ( View ), не импортируя ее в разделе импорта, в верхней части Java-кода . Это легко исправить. Нажмите на слово « View », а затем ALT + ENTER . Если слово “ Toast ” отмечено красным цветом, проделайте то же самое еще раз:

Теперь функция onButtonTap() будет вызываться всякий раз, когда будет нажиматься кнопка. Чтобы вывести сообщение, мы вызываем myToast.show() .

Вот и все, что касается создания приложения для Андроид самому, теперь протестируем его в эмуляторе.

Создание приложения для андроид — построение и тестирование

В меню « Tools » перейдите к Android- AVD Manager . Этот инструмент отображает список текущих настроенных виртуальных Android-устройств . У вас будет одно устройство, настроенное по умолчанию, возможно, Nexus 5 . Нажмите на значок воспроизведения ( треугольник ) в столбце « actions ». Это запустит эмулятор.

В зависимости от производительности вашего ПК и объема выделенной памяти запуск эмулятора может занять несколько минут. После того, как эмулятор будет запущен, перейдите в меню « Tools » и нажмите « Run ‘app ». Приложение будет скомпилировано и отправлено в эмулятор. Во время этого Android Studio спросит вас, какой эмулятор использовать. Вы увидите в списке свой текущий эмулятор. Это должна быть опция по умолчанию, поэтому просто нажмите « OK »:

Что делать дальше и заключение

Также можно запустить приложение на реальном устройстве. Самый простой способ сделать это — включить USB-отладку на Android -устройстве и подключить его к компьютеру. Опцию отладки по USB можно найти в разделе Настройки – Для разработчиков . Если у вас нет этого раздела, откройте « Настройки » — « О телефоне », а затем нажмите « Номер сборки » семь раз.

Когда устройство будет подключено, нажмите « Run ‘app » в меню « Tools », но на этот раз не отправляйте приложение на виртуальное устройство, а отправьте на реальное устройство. Если устройство отсутствует в списке, это означает, что вы не включили отладку по USB или необходимо установить соответствующий USB-драйвер . Смотрите разделы USB-драйверы OEM и USB-драйвера Google в документации Google.

Вы успешно создали простое приложение для Андроид . Следующее, что нужно сделать, это написать второе приложение и продолжить работу. Google предоставляет много учебных материалов для Android-разработчиков , а также обширную документацию и множество примеров кода .

? Как стать Android-разработчиком: с нуля до публикации приложения на Google Play

Android-разработчик – профессия будущего. Основные тенденции в развитии мобильных технологий в ближайшие годы будут связаны со следующими направлениями:

  • Дополненная и виртуальная реальности.AR и VR уже применяются в мобильных играх и при посещении интерактивных музеев. Особый шик придает совместное использование с сервисами геолокации. Мобильные устройства – самый доступный вариант, чтобы воспользоваться этими технологиями.
  • Алгоритмы машинного обучения (ML). Мы и не замечаем, сколько различных ML-решений мы уже используем в наших смартфонах: распознавание текста, детектирование лиц, чтение штрихкодов, распознавание достопримечательностей, преобразование аудиозаписей в речь, консультации с чат-ботами и т. д. Все эти технологии делают нашу жизнь проще. По мере роста производительности устройств и большей доступности облачных вычислений будут «входить в моду» всё более ресурсоемкие алгоритмы.
  • Облачные вычисления. Доля мобильного трафика растёт, всё больше пользователей с помощью мобильных устройств получают доступ к различным приложениям и ресурсам. Информационный бум требует производительных мощностей, и облачные вычисления – эффективный способ удовлетворить эти потребности.
  • Электронные платежи. Покупать товары с помощью смартфонов становится всё проще: и с помощью NFC , и онлайн. А новые технологии, такие, как блокчейн, обеспечивают лучшую безопасность платежей.
  • Кибербезопасность. Существенная часть нашей жизни проходит со смартфоном в руке, здесь хранится много важного. Мобильные устройства – привлекательная мишень для хакерских атак. Большинство уязвимостей являются следствием недостаточной проработки концепции защиты. Улучшение качества защиты будет стимулировать развитие рынка.

Но какие навыки нужны, чтобы стать успешным Android-разработчиком? С чего начать?

1. Выберите язык программирования

Два основных языка программирования для разработки приложений на Android – Java и Kotlin. По факту, если вы будете заниматься разработкой серьезно, то вам не обойтись без обоих языков. Однако на конференции Google I/O 2019 было объявлено, что Kotlin является предпочтительным и официальным языком для Android. Использование Kotlin сокращает число ошибок в коде, язык легко интегрируется в существующие приложения. Чтобы освоить этот язык, вы можете воспользоваться нашей подборкой ресурсов для изучения Kotlin.

2. Выберите интерактивную среду для Android-разработки

Интерфейс Andoid StudioИнтерфейс Andoid Studio

Выбор среды разработки – дело вкуса. Однако на первом этапе целесообразнее использовать Android Studio. Последняя версия IDE 4.0 от мая 2020 года, доступна для загрузки на официальном сайте Android. О последнем релизе мы писали в нашей публикации.

3. Изучите манифест и компоненты Android-приложения

Когда вы создадите черновик своего первого проекта в среде проектирования, среда автоматически создаст в папке Android-проекта файл манифеста AndroidManifest.xml .

Файл манифеста содержит уникальный идентификатор приложения и описывает компоненты приложения. Пройдитесь по этому списку компонентов, вам станет понятно, что потребуется изучить:

    – экран приложения с пользовательским интерфейсом. Особое внимание следует уделить изучению жизненного цикла активности (Activity Lifecycle). (Service) – компоненты, работающие в фоновом режиме. Например, службы могут обрабатывать сетевые транзакции, воспроизводить музыку, выполнять ввод-вывод файла или взаимодействовать с поставщиком контента. (Content providers). Часто возникают ситуации, когда необходимо получить доступ к информации из другого приложения. Поставщики контента управляют данными: аудио, видео, изображениями и личной контактной информацией (контакты, список вызовов). Это единственный способ совместного использования данных приложениями в Android. (Broadcast receiver) – компонент, реагирующий на сообщения системы Android и иных приложений: сообщения о низком заряде батареи, недоступности мобильной сети, появлении в зоне действия Wi-Fi-сетей. – объекты, связывающие отдельные компоненты (Activity, Service и Broadcast receiver) во время работы приложения.

4. Изучите основные элементы пользовательского интерфейса Android-приложения

Основные элементы пользовательского интерфейса приложения представляют собой:

    – макеты экранов приложения; – поля ввода/вывода, кнопки, тулбары, элементы отображения и работы с мультимедиа, элементы отображения данных, например, RecyclerView; – ресурсы приложения: строки, шрифты, стили, растровая и векторная графика, иконки и анимация; – модуль пользовательского интерфейса Activity. Особое внимание при разработке пользовательского Fragment следует уделить изучению его жизненного цикла (Fragment Lifecycle); (поисковый интерфейс, диалоговые окна, ProgressBar, Toast/SnackBar).

Макеты экранов приложения (UI Layouts) имеют разную структуру:

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

5. Изучите хранилища данных Android

Узнайте, как хранить данные приложения и пользователя на устройстве: в парах ключ-значение, базе данных или других типах данных.

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

  • Хранилище приложения (app-specific storage) хранит файлы, предназначенные только для вашего приложения. Либо в выделенных каталогах на внутреннем накопителе, либо в каталогах внешнего хранилища. Если информация носит конфиденциальный характер, лучше хранить ее во внутреннем хранилище.
  • Общее хранилище (shared storage) хранит файлы, которые приложение намеревается предоставить другим приложениям: мультимедиа, документы и другие файлы.
  • Настройки (preferences) используются для хранения примитивных данных в парах ключ-значение.
  • Базы данных (databases) применяются для хранения структурированных данных в частной базе данных с помощью библиотеки Room.

6. Изучите, как работает сборка Android-приложений и плагин Gradle

Система сборки Android собирает ресурсы приложения и исходный код, упаковывает их в APK-файлы. Их можно тестировать и распространять. Android Studio использует Gradle – продвинутый инструмент автоматизации и управления процессом сборки. Это позволяет определить разные настройки конфигурации для разных проектов.

7. Научитесь создавать многопоточные Android-приложения

Каждый Android-разработчик сталкивается с необходимостью использования потоков. Когда приложение запускается, оно создает основной поток выполнения. Чтобы приложение сохраняло отзывчивость, необходимо избегать использования основного потока для выполнения операций, которые приводят к его блокировке: сетевые операции, обращение к базе данных, загрузка компонентов. Такие процессы выполняются в отдельных потоках. Android предоставляет множество способов создания и управления потоками. При использовании языка Kotlin для этих задач можно использовать Coroutines.

8. Изучите методы отладки Android-приложения

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

Окно для отладки приложения в Android StudioОкно для отладки приложения в Android Studio

Отладка приложения осуществляется стандартными средствами, предоставляемыми средой разработки Android Studio.

9. Научитесь работать со сторонними библиотеками

Далеко не любую задачу можно решить с помощью стандартных средств Android. Для многих задач уже разработаны собственные решения, которыми грех не воспользоваться. Для обработки и загрузки изображений это Glide и Picasso, для внедрения зависимостей (Dependency Injection) – Dagger, Koin, Kodein и Hilt, для сетевых взаимодействий – Retrofit, для многопоточного программирования – RxJava. Не поленитесь также изучить библиотеки Google: Firebase, Google Play Services, Google Maps. Знакомство с устройством сторонних библиотек также научит вас писать более качественный код в собственных проектах.

10. Изучите Android Jetpack – набор библиотек и инструментов, ускоряющих работу Android-разработчика

Android JetpackAndroid Jetpack

Android Jetpack – это набор библиотек и инструментов, созданный командой Google для упрощения разработки под Android. Библиотеки, входящие в Jetpack, разделены на четыре вида:

  • Foundation – базовые библиотеки, помогающие сократить шаблонный код.
  • Architecture Components – библиотеки, используемые для построения архитектуры приложения .
  • Behavior – библиотеки-обертки для функциональности, предоставляемой Android SDK. Созданы для улучшения стандартного Android API: Permissions, Notifications, CameraX и другие.
  • UI – компоненты для работы с фрагментами, элементами пользовательского интерфейса и анимацией.

11. Изучите архитектурные шаблоны проектирования

По мере роста приложения вы неизбежно столкнетесь с вопросами проектирования, использования наработанных практик и опыта других разработчиков. Вместо того чтобы изобретать велосипед, быстро и элегантно катайтесь на проверенных моделях. Как можно раньше начните разбирать шаблоны проектирования – они описывают типичные способы решения распространенных проблем при проектировании Android-приложений.

По умолчанию, корпорацией Google задокументирована архитектура MVVM , но нужно использовать ту, которая лучше соответствует нашим потребностям.

Распространены три шаблона проектирования:

    (Model-View-ViewModel) – используется для разделения модели и её представления. Разработчик задаёт логику работы с данными, а дизайнер работает с пользовательским интерфейсом. (Model-View-Presenter) – шаблон, облегчающий автоматическое модульное тестирование. (Model-View-Intent) – архитектурный шаблон, позволяющий улучшить масштабируемость приложения.

12. Изучите методы тестирования Android-приложений

Тестирование приложения является неотъемлемой частью процесса разработки. Постоянно выполняя тесты, вы можете проверить правильность, функциональность и удобство использования приложения до его публикации.

Тестирование дает следующие преимущества:

  • Быстрая реакция в случае сбоя приложения.
  • Раннее обнаружение неисправностей.
  • Более безопасный рефакторинг кода.
  • Стабильная скорость разработки.

13. Изучите вопросы обеспечения безопасности Android-приложения

14. Изучите работу с сенсорами

Программирование – это круто, но ещё более классно использовать физические компоненты телефона: GPS, камеру, NFC, акселерометр. Работы с этими датчиками по увлекательности близка к высокоуровневому программированию микроконтроллеров – приятно видеть, как написанный тобой абстрактный алгоритм взаимодействует с внешним миром.

15. Опубликуйте приложение на Google Play. Поздравляем, вы Android-разработчик!

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

С описанным багажом знаний вы смело можете двигаться вперёд! Вопросы, рассмотренные в данной статье, помогут в создании портфолио и трудоустройстве.

Как видите, разработка на Android – дело не простое, но очень увлекательное. Для желающих освоить профессию Android-разработчика с нуля с использованием новейших технологий, видеоуроков и работой с преподавателями имеется возможность пройти образовательный курс на факультете Android-разработки GeekBrains . В рамках курса Вы создадите несколько рабочих приложений для своего портфолио и получите диплом. В случае успешного прохождения команда университета поможет с трудоустройством.

В программе образовательного курса GeekBrains рассмотрены практически все вопросы данной статьи: языки программирования Java и Kotlin, основные компоненты и элементы пользовательского интерфейса Android-приложения, жизненный цикл компонентов Activity и Fragment, работа с базами данных, архитектурные шаблоны проектирования, работа со сторонними библиотеками и тестирование приложений. Также рассматриваются сопутствующие вопросы: работа с системой контроля версий Git, подготовка к собеседованию Android-разработчика, поиск работы и трудоустройство.