В 2008 году компания Google впервые выпустила операционную систему "Андроид", которая тут же завоевала сердца любителей гаджетов. Разработчики сделали новую ОС бесплатной и с открытым исходным кодом. Помимо данного факта, стремительное развитие "Андроид" произошло за счёт обширной политики поддержки разработчиков. Таким образом, в сферу девелопмента ринулись сотни свободных программистов.
В то время было написано много руководств о том, как создать приложение для iOS, а вот серьёзных мануалов для "Андроид" было мало.
Работа операционной системы "Андроид" основана на ядре Linux. А каждое приложение выполняется в отдельной виртуальной машине. Их код для ОС "Андроид" пишется на языке программирования высокого уровня Java. Однако если требуется создать продукт, использующий доступ к устройствам напрямую или нужно максимальное быстродействие, применяется NDK — набор для разработки на C++.
На данный момент официальный магазин Google Play содержит около 2 млн программных продуктов, так как создать мобильное приложение сегодня может каждый.
Как создать своё приложение
Для написания программного кода для "Андроид" приложения применяется специальная среда разработки. С момента создания операционной системы для программирования использовались продукты Eclipse и IntelliJ IDEA. Для этого были выпущены плагины, специально ориентированные для создания приложений "Андроид". Однако после выхода официальной среды разработки от Google - Android Studio, плагины перестали поддерживаться, и программирование теперь происходит преимущественно в этом программном комплексе.
Для того чтобы Android Studio мог работать в системе, в ней должна присутствовать Java Development Kit — бесплатный комплекс для разработки, в который входит компилятор Java-кода, библиотеки и JRE — среда исполнения. Помимо JDK, для создания приложения понадобится скачать Android SDK — набор компонентов для разработки непосредственно для Android, содержащий комплекс тестирования и отладки приложений. С помощью данных средств автоматизации написать первую программу так же легко, как создать приложение "Вконтакте".
Среда разработки
В первую очередь устанавливается свежая версия JDK, скачать которую можно с официального сайта компании Oracle. Затем инсталлируется Android Studio, доступная для загрузки с developer.android.com. После установки среда сможет самостоятельно скачать Android SDK, проведя пользователя по всем необходимым этапам.
Перед тем как создать своё приложение, стоит понять, как реализована их загрузка и работа. После преобразования программного кода в специальный байт-код среда создаёт архив с расширением APK. Он содержит:
- исходный код приложения, размещённый в файлах DEX;
- дополнительные ресурсы, находящиеся в папке assets;
- ресурсы для отображения;
- главный файл архива — AndroidManifest, в котором указаны разрешения для приложений, требования к версиям, список участвующих в работе классов и т. д.
При запуске приложения виртуальная машина Dalvik, или действующая с версии "Андроид 5.0" система Art, создаёт отдельный процесс, в котором на лету компилируется исполняемый код.
Первые шаги
Перед тем как создать своё приложение, Android Studio предложит несколько вариантов развития событий. Нужно выбрать первый — создать новый проект Android Studio.
Далее программа попросит указать название будущего приложения, домен компании и физическое расположение проекта на диске компьютера.
В следующем окне нужно будет ввести минимальную версию Android, на которой сможет работать приложение. При выборе разных вариантов в описании ниже будет указано, какой процент устройств с текущими параметрами зарегистрирован в Google Play. Это позволяет выбрать наибольшую аудиторию для своего продукта. Так как создать новые приложения может каждый, конкуренция в это сфере огромна. А значит, чем больше будет охват, тем лучше.
На следующем шаге система представит несколько стандартных схем разметки приложения. Они отвечают за расположение компонентов на экране. Самый простой вариант для того, чтобы создать приложение для "Андроид" — пустая разметка. После нажатия по кнопке Next, программа перебросит разработчика непосредственно в редактор кода.
Анатомия программирования для "Андроид"
Чтобы создать приложение самостоятельно, нужно понять структуру проекта. В левом окне расположена иерархия элементов будущей программы. В корневом разделе app содержатся все подкаталоги приложения.
Папка manifests содержит главный файл любой программы для "Андроид" — AndroidManifest. Он несёт в себе множество технической информации для работы приложения. В большинстве случаев вручную править его не придётся, так как SDK чаще всего автоматически генерирует нужные строки и их параметры.
Папка java содержит основной исходный код. Здесь расположены файлы с расширением .java. В них и будет происходить большая часть разработки.
В папке res определены несколько подпапок с ресурсами. Подкаталог drawable предназначен для графических файлов, необходимых для визуального оформления проекта. Layout содержит файлы с расширением .xml, которые определяют характеристики и расположение элементов на экране — кнопки, текстовые поля, переключатели и т. д. Внутри mipmap копируются иконки для приложения в нескольких разрешениях для оптимизации на разных диагоналях экранов. Именно из этой папки будет браться изображение для создания иконки на рабочем столе гаджета. В каталоге values определяются постоянные величины, периодически необходимые для приложения. Например, коды цветов, строки для часто встречающихся кнопок и описаний, характеристики стилей.
Раздел Gradle Scripts создан для хранения служебной информации. Она нужна для системы сборки проектов Gradle, которая на основе введённых параметров соберёт и скомпилирует проект.
Непосредственно код
Перед тем как создать приложение в ВК, необходимо пройти курс хотя бы поверхностного обучения его API и языка. Также и здесь, нужно будет предварительно подтянуть знания по Java.
Главный класс, создаваемый по умолчанию, называется MainActivity.java. Именно с него начнётся загрузка приложения на устройстве. Android Studio сама автоматически уже сгенерировала необходимый для первого запуска код.
Перед тем как создать своё приложение, нужно понять базовые принципы и разобраться в написанном.
Верхняя строка package отвечает за расположение файлов проекта. Import показывает нам, какие библиотеки были подгружены.
Классы и методы
Сам класс начинается со спецификатора доступа public. Он служит для разграничения прав на использование классов. Слово public говорит о том, что MainActivity.java открыт и его можно использовать из других мест проекта. Далее идёт ключевое слово class, его имя и самое интересное — extends. Этот термин означает, что текущий класс наследуется от Activity. А стало быть, и получает все его методы и поля.
Тело класса огорожено фигурными скобками. Внутри них расположены методы и поля, образующие структуру всего кода.
@Override — это аннотация, которая предупреждает среду о том, что следующий за ней метод будет переопределен. Это означает, что нужно взять его из класса-родителя и добавить в него уникальные для данного кода изменения. Таким образом в Java работает механизм наследования.
После аннотации следует спецификатор доступа protected, который означает, что к данному методу можно будет обратиться, как в этом классе, так и из наследников, и нигде больше.
Ключевое слово void показывает тип метода, а точнее то, что он должен вернуть в результате работы. Данный тип говорит о том, что ничего не возвращает, а лишь выполняет то, что находится в теле. Методы могут иметь типы String, int, double и другие, в зависимости от значений.
Имя OnCreate — это имя переопределенного метода из родительского класса Activity. Чтобы показать системе исполнения, что вызывается именно то, что надо, в тело добавляется ключевое слово super с вызовом OnCreate.
Следующая строка представляет не меньший интерес. Метод setContentView() «прикручивает» к классу MainActivity.java файл разметки, говоря ему, как должен выглядеть экран данной Activity.
Отображение
За то, какие элементы буду расположены на экране, отвечают файлы разметки. Они содержат строки с параметрами, в которых указаны константные или переменные значения. Данный язык разметки выполнен по спецификации XML. Таким образом формат объявления параметра строго стандартизирован.
Чтобы правильно создать приложение для "Андроид", нужно немного разобраться в разметке. Android Studio любезно сама сгенерировала простой файл.
Элементы экрана
Корневой контейнер разметки в данном случае — RelativeLayout говорит о том, что все элементы внутри него будут размещаться относительно. Он содержит два параметра — android:layout_width="match_parent" и android:layout_height="match_parent". Первый обозначает ширину контейнера RelativeLayout, а второй — его высоту. Константа match_parent говорит о том, что оба показателя должны соответствовать родителю, а стало быть, элемент развернётся во весь экран.
Далее в RelativeLayout вложен TextView, который представляет собой не что иное, как обычную надпись.
В нем имеются знакомые параметры layout_width и layout_height, атрибут которых равен wrap_content, что значит — вокруг содержимого. То есть размеры элемента будут подстроены под объем текста.
Следующие два параметра означают выравнивание текста внутри элемента.
Параметр padding берет цифровое значение для создания отступа в надписи из папки с ресурсами value.
Самый главный параметр для надписи — строка с текстом. Ее можно вписать прямо в атрибут, но это называется хардкод и считается недопустимым, так как может сильно затруднить локализацию приложения. Стоит обратить внимание на то, что данные, которые нужно отобразить, а именно текстовая строка, также берётся из файла strings.xml, что в папке values.
Первый запуск
Штатный эмулятор устройства "Андроид" требует просто сверхъестественной производительности. Можно запустить приложение на нем, или скачать и установить альтернативный аналог, именуемый Genymotion.
Запуск приложения осуществляется путем нажатия зелёной кнопки Run, на панели управления Android Studio. Если никаких ошибок при сборке проекта не будет обнаружено, то приложение запустится и поприветствует мир.
Выводы
Вот теперь стало понятно, как создать мобильное приложение.
Программировать для "Андроид" немного проще, чем под iOS. Цена аккаунта разработчика ниже, чем у Apple. Весь необходимый софт бесплатен, и работает на многих платформах. Перед тем как создать приложение для iOS, так же, как и в "Андроид", требуется освоить язык программирования. Платформа набирает обороты, выпускаются новые версии, так что разработка приложений для мобильных становится все актуальнее.