Четыре способа построения мобильного приложения, часть 2: платформа Android.

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

Ранее мы уже создали простой калькулятор для подсчета чаевых. Как и в случае с iOS приложением, мы будем использовать два экрана: основное окно и окно просмотра настроек. Окно настроек по умолчанию позволяет сохранить процентное значение в локальную память с помощью возможности поддержки набора инструментальных средств разработки программного обеспечения Android. (Исходный код для каждого приложения доступен на GitHub).

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

android-example

Собственная Android разработка: инструментальные средства.

Для платформы Android наряду с языком Java используется Eclipse, интегрированная среда разработки (IDE). Компания Google создала плагин Инструментальные средства разработки Android (ADT) для стандартной среды разработки Eclipse, который обеспечивает поддержку таких вещей, как графическое определение шаблона и отладку. На момент написания этой статьи, компания Google выпустила новую IDE под названием Android Studio. Эта среда разработки позволяет переходить в режим предварительного просмотра результатов. Этот продукт основан на JetBrains’ IntelliJ IDE и в скором времени заменит Eclipse в качестве официального средства разработки Android. Поскольку Android Studio все еще находится на стадии доработки, для разработки нашего приложения мы будем использовать Eclipse. Eclipse является очень стабильной средой и многие учебные ресурсы по Android используют именно Eclipse.

Среда разработки Android поддерживается на Windows, Mac и Linux. Все инструментальные средства разработки являются абсолютно бесплатными, и приложения могут быть свободно размещены на устройствах. Чтобы разместить приложение на Google Play, разработчики должны выполнить регистрацию для публикации и заплатить единоразовый сбор в размере $ 25. Размещение приложений на Google Play заметно проигрывает аналогичному процессу для iOS. После того, как ваша заявка будет подана в Google, начнется проверка на наличие вредоносных и общих угроз. Как правило, приложение становится доступным для широкой аудитории уже в течение нескольких часов.

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

  • Eclipse IDE.
  • Android SDK.
  • Android ADT.
  • Системные изображения Android для Android эмулятора.
  • Устройство на базе Android (формально не требуется, но настоятельно рекомендуется).

Выполните установку готового комплекта инструментов для облегчения процесса проектирования.

Я думаю, практически каждому из вас уже приходилось самостоятельно скачивать, устанавливать и настраивать инструменты. Это занимает немало времени и часто приводит к путанице среди новичков в сфере разработки для Android. Чтобы сделать этот процесс проще, Google в настоящее время предлагает полный «комплект», который значительно упрощают процесс установки. Свои комплекты предлагаются для каждой операционной системы и все они доступны на странице, где вы скачиваете SDK разработчика.

Установите Eclipse, набор инструментальных средств разработки программного обеспечения, эмулятор. Для этого нужно просто распаковать ZIP файл в директорию. Если у вас уже есть директория для установки Eclipse и вы предпочитаете выполнить установку именно туда, воспользуйтесь набором инструкций для добавления Android поддержки.

Загрузка существующего приложения в Eclipse.

После того, как были установлены все инструментальные средства разработки Android, вы можете импортировать существующий проект, например, исходный код нашего образца приложения. В меню Eclipse перейдите по маршруту File → Import, который позволит отобразить следующее диалоговое окно:

android-import-step1

Как только вы выбрали опцию импорта существующего Android проекта, нажмите кнопку «Далее», после чего вы сможете указать каталог для размещения кода, с которым вы будете работать в Eclipse.

android-import-step2

После того, как вы выбрали подходящую директорию с помощью кнопки «Обзор», Eclipse автоматически произведет поиск всех Android проектов, находящихся в этой директории, и отобразит его в списке проектов для импорта. Просто нажмите на кнопку «Готово», и проект появится в списке проектов вдоль левой стороны интегрированной среды разработки.

Шаги для создания приложения.

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

  1. Определение пользовательского интерфейса. Пользовательский интерфейс для приложения обычно определяется как ряд компоновочных файлов. Это файлы на основе XML, которые описывают элементы управления на экране и связи шаблонов относительно друг друга.
  2. Добавьте изображения, переводы с одного языка на другой и другие ресурсы. Android определяет любые активы, не содержащие кода, как ресурсы. Они размещаются в проекте в структуре каталогов, определяемой Android SDK. Во время выполнения, Android динамически загружает содержимое из этой структуры каталогов. Позже мы увидим, как могут быть загружены различные активы и шаблоны, которые поддерживали бы широкий спектр Android конфигураций устройств, доступных сегодня на рынке.
  3. Создайте Java код, который бы реагировал на различные события, исходящие от органов управления данного экрана и от изменений в жизненном цикле приложения. Java код также отвечает за загрузку шаблона и меню файлов, связанных с каждым экраном. Этот код также используется для управления переходами от одного экрана к другому.
  4. Экспортируйте завершенное Android приложение в виде файла, который может быть загружен на Google Play или передан другому человеку.

Eclipse ADT для Android разработки.

Eclipse IDE предоставляет стандартные инструменты редактирования исходного кода, а также отладчика на уровне исходного кода, что позволяет проверять приложения, как на симуляторе, так и на физическом устройстве. В отличие от раскадровки, используемой для iOS, редактор шаблона используется для определения экранных шаблонов:

ADT layout editor

(Увеличенная версия изображения).

Редактор шаблона может работать только на одном экране. Отсутствует возможность перехода непосредственно между экранами, как это было в редакторе раскадровки iOS. Однако Android редактор шаблона имеет очень гибкую систему, которая поддерживает широкий диапазон размеров экрана и разрешений устройств на базе Android.

В отличие от редактора раскадровки в iOS, вы можете редактировать шаблоны в любом визуальном режиме, как показано на изображении выше, или в редакторе на основе XML. Для переключения между двумя видами просто используйте вкладки в нижней части редактора шаблона. По мере усложнения шаблонов, очень полезной является возможность редактирования файлов шаблона непосредственно из рабочей области. Фрагмент XML шаблона выглядит следующим образом:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                xmlns:tools="http://schemas.android.com/tools"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                tools:context=".MainActivity" >

    <EditText
            android:id="@+id/billAmtEditText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="20dp"
            android:ems="10"
            android:gravity="right|center_vertical"
            android:hint="@string/billAmount"
            android:inputType="number|numberSigned|numberDecimal" >
        <requestFocus />
    </EditText>

    <Button
            android:id="@+id/calcTipButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/billAmtEditText"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="19dp"
            android:text="@string/calculateTip" />

    <TextView
            android:id="@+id/TextView01"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/billAmtEditText"
            android:layout_below="@id/calcTipButton"
            android:layout_marginTop="18dp"
            android:text="@string/tipPercentage"
            android:textAppearance="?android:attr/textAppearanceMedium"/>
</RelativeLayout>

Android ресурсы: поддержка различных возможностей устройств.

С самого начала Android SDK был разработан с возможностью поддержки широкого спектра функциональных особенностей устройств. Существует большое количество материалов и специальной информации о «фрагментации» устройств на платформе Android. Изначально Android SDK был разработан для идентификации и поддержки различных атрибутов устройств, в том числе размера экрана, пиксельной плотности и Android API (программный интерфейс приложения) версий.

Экранные шаблоны, изображения, стили и другие файлы конфигурации – все объединены в серии вложенных папок под управлением мастера каталога «ресурсов». В Android SDK документации показано, как несколько версий одного и того же файла могут использоваться в однозначно названных каталогах из этой структуры ресурсов. Соответствующая версия будет загружаться в зависимости от возможностей и ориентации устройства в текущий момент времени.

Рассмотрим эту структуру каталогов:

android-file-structure

Изображенная выше структура показывает уникальные имена каталогов с суффиксами -hdpi, -ldpi, -mdpi и так далее. Подобная структура позволяет разработчику использовать различные изображения, которые будут соответствовать DPI (число различимых точек изображения, выводимых [или распознаваемых] устройством на линии длиной в один дюйм) разрешению данного экрана. Подобные возможности распространяются на такие вещи, как файлы шаблона, которые могут выводить уникальный контент в соответствии с размером экрана, пейзажем или портретной ориентацией и т.д. В приведенном выше примере мы видим уникальные папки для values-v11 и values-v14. Это позволяет двум разным файлам styles.xml использоваться для версии 11 (Android 3.x) и версии 14 (Android 4.x) операционной системы Android.

Также обратите внимание на регулярный каталог values. Все версии ниже Android 11 будут получать файл styles.xml из этого каталога. Этот резервный механизм представляет собой место для хранения всех ресурсов. SDK будет пытаться найти ресурс в определенном каталоге, а затем, в случае отсутствия к нему доступа, произойдет возврат к более «общему» ресурсу. Все это происходит без написания разработчиком специального кода. Просто разместите ресурсы в нужных директориях, а Android позаботится об остальном. Доступ к каждому из ваших ресурсов может быть получен как из XML, так и из Java файлов вашего приложения.

Система ресурсов – это довольно мощная структура, которая поддерживает множество различных типов ресурсов. В дополнение к прорисовке, шаблону, меню и стилям для вашего приложения, она также может быть использована для хранения постоянных в массивах или размерных значений в вашем приложении. Таким образом, вы можете загружать различные постоянные значения для различных конфигураций устройств, просто поместив файлы в правильную структуру. Вы также можете использовать эту систему для поддержки локализации (приспособление приложения к языку и рынку страны, где оно будет продаваться или использоваться). Эта возможность достигается через strings.xml файл. Вот пример из strings.xml файла, связанный с нашим приложением:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">FasTip</string>
    <string name="hello_world">Hello World!</string>
    <string name="menu_settings">Settings</string>
    <string name="billAmount">Bill Amount</string>
    <string name="calculateTip">Calculate Tip</string>
    <string name="tipAmount">Tip Amount</string>
    <string name="totalAmount">Total Amount</string>
    <string name="title_activity_settings">Settings</string>
    <string name="saveSettings">Save Settings</string>
    <string name="tipPercentage">Tip Percentage</string>
    <string name="percentSymbol">%</string>
</resources>

Основная строка файла находится в каталоге res/values приложения. Если вы хотите, к примеру, представить испанскую версию того же файла, вам просто необходимо поместить его в res/values-es каталог.

Идентификаторы ресурсов.

В процессе определения шаблонов вы должны связать значения идентификаторов с каждым элементом управления (или виджетом пользовательского интерфейса), на который вы хотите ссылаться из кода. Эта процедура может быть сделана путем указания значения идентификатора в инспекторе свойств в редакторе шаблона:

android-eclipse-id-property-500

(Увеличенная версия изображения).

Менеджеры шаблона.

Android файлы шаблона могут использовать ряд менеджеров компоновки, или инструменты ViewGroups для организации элементов управления на экране. Используемый Android подход для создания шаблонов не является чем-то новым и нечто подобное мы уже видели в iOS. Вот некоторые из наиболее распространенных инструментов ViewGroups, используемых в Android приложениях:

  • LinearLayout. Этот инструмент используется для расположения серии управляющих элементов в горизонтальной или вертикальной ориентации.
  • RelativeLayout. Этот инструмент используется для контроля положения элементов относительно друг друга или границ родительского шаблона. Это гибкая система управления шаблоном, которая часто используется в качестве альтернативы вложенным линейным шаблонам.
  • ListView. Этот инструмент представляет собой серию механизмов вертикальной прокрутки, наподобие функции UITableView, которая должна быть знакома тем, кто работает с iOS. В Android вы записываете ListAdapter для обеспечения представления каждой строки в источнике данных.
  • GridView. Это инструмент похоже на ListView, но кроме всего прочего он обеспечивает возможность представления элементов в двумерной прокручиваемой сетке. Так же, как и в ListView, здесь используется адаптер для обеспечения просмотра содержимого каждой ячейки в сетке.

В нашем примере приложения были созданы два файла шаблона: activity_main.xml для главного экрана и activity_settings.xml для экрана настроек. До настоящего момента мы только определили вид. В отличие от редактора раскадровки iOS, Android не имеет «вспомогательного» инструмента, который бы в визуальном редакторе напрямую соединял элементы управления шаблона и код. Нам нужно написать код для совместного подключения этих компонентов и построить приложение.

Android: цели и действия.

В iOS мы использовали логику, специально созданную для данного экрана в ViewController. В Android все экраны рассматриваются как отдельные объекты. Так же, как в iOS функции UIViewController, здесь существует возможность устанавливать жизненный цикл для активности, которая регулирует начало действий, паузы, возобновление и остановки.


Если вы хотите прочитать полностью статью, посетите сайт наших спонсоров

Comments are closed.