i-SDK и A-SDK: две дороги в одном направлении

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

В отличие от iOS SDK, в Android SDK нет собственной среды разработки (IDE). Google рекомендует использовать свободную IDE Eclipse. На сайте Android Developers можно загрузить модуль ADT, предназначенный для Eclipse и интегрирующий в неё такие инструменты, как отладчик и визуальный редактор пользовательских интерфейсов. Помимо официального плагина для Eclipse, поддержка разработки под Android имеется в IDE IntelliJ IDEA.

При желании инструменты Android SDK можно использовать и без IDE, воспользовавшись любым эмулятором терминала (часто называемым консолью). Справедливости ради стоит отметить, что проекты Xcode также можно собирать из консоли, но на деле мало кто этим пользуется.

Главным отличием двух платформ является сильное дробление Android в плане конечных устройств. Поддержка множества разрешений, размеров экранов, наличие или отсутствие физической клавиатуры, большое количество версий платформы, до сих пор работающих на тысячах устройств — всё это превращается для разработчика в головную боль. Работа с iOS в этом плане несколько проще, но при переходе с версий 3.x на 4.x проблема в виде изменения API давала о себе знать.

SDK для iOS включает в себя симулятор устройства. Android SDK поставляется с утилитой, создающей экземпляры эмуляторов устройства.

Симулятор имитирует программную платформу, и приложения под iOS, скомпилированные для отладки на компьютере, собираются под архитектуру того процессора, который установлен в компьютере. Для установки на устройство проект собирается заново, с целевой архитектурой armv6 или armv7. Так как текущие версии iOS SDK работают только на процессорах Intel, архитектурой собираемого приложения будет i386. Скорость работы приложения на симуляторе определяется мощностью железа компьютера или ноутбука, поэтому она может не отражать реальной картины: на устройстве приложение, скорее всего, будет работать медленнее. Сообщения о недостаточном количестве памяти на симуляторе можно сымитировать только вручную (для этого есть специальный пункт меню).

Эмулятор Android воспроизводит аппаратные средства устройств, в нём выполняется настоящая, практически полноценная система. Приложения, собранные для эмулятора, можно без пересборки устанавливать на «живые» устройства. Эмулятор Android в большинстве случаев работает медленнее, чем настоящее устройство, и довольно часто можно приятно удивиться повышению скорости работы приложения после установки на устройство.

Читайте также  Apple строит солнечную электростанцию

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

В Interface Builder, входящем в состав iOS SDK, упор сделан на визуализацию всего. Например, назначение событий на различные действия делается с помощью перетаскивания на соответствующие объекты. Когда я в первый раз попробовал создать интерфейс с помощью этого «монстра», он оставил у меня крайне негативные впечатления. С тех пор я являюсь сторонником программного создания интерфейсов.

В ADT для Eclipse также имеется визуальный редактор интерфейсов. Он гораздо проще и менее функционален, чем Interface Builder. Но здесь в любой момент можно переключиться в текстовый режим (файлы пользовательских интерфейсов ― это простые XML-файлы) и отредактировать нужные параметры: например, задать методы, вызываемые на различные действия. Справедливости ради стоит отметить, что файлы XIB, редактируемые Interface Builder’ом, тоже являются файлами в формате XML, но редактировать их вручную не имеет смысла.

У редактора интерфейсов Android есть проблема с отображением созданного вида. Если в процессе обработки файла, определяющего расположение объектов на экране, возникла ошибка, то вместо редактируемого окна на экране отобразится сообщение об ошибке, и редактор не будет работать в визуальном режиме.

Отладку приложений в iOS SDK можно вести, используя окно отладчика GDB, или же воспользоваться одним из инструментов, предназначенных для более пристального слежения за поведением приложения. В процессе работы, помимо GDB, я пользуюсь в основном инструментами Allocations и Leaks. Первый позволяет отслеживать расход памяти на различные объекты, создаваемые в процессе работы приложения. Второй предназначен для поиска утечек памяти. Оба инструмента довольно удобны: можно посмотреть иерархию вызовов, которые привели к интересующим нас выделениям памяти или утечкам, узнать объёмы используемой памяти и сделать множество других полезных дел.

В ADT для Eclipse имеется инструмент для отладки, который называется DDMS. В отличие от iOS SDK, он не выделен в отдельные окна, а открывается в виде одной из перспектив в Eclipse. Перспектива в Eclipse — это набор окон, предназначенных для работы со своим видом задач: например, есть перспективы для разработки на Java, Python, веб-приложений и т.д. Набор инструментов схож с набором для iOS. Но есть и отличия. Например, можно одновременно запустить несколько приложений и переключать наблюдение на нужный процесс. Имеются инструменты для имитации входящего звонка, отправки SMS и отправки заданных координат для имитации функционала GPS. Если к компьютеру подключено устройство с Android на борту, и на нём включен режим разработки, то DDMS можно подключить к нему, просто выбрав его из списка доступных устройств.

Читайте также  Обзор iPad 2 (такого большого)

Обе платформы предоставляют отличный набор инструментов на все случаи жизни, и умение работать с ними — дело привычки и опыта. Кому-то больше нравится программировать под iPhone, кому-то — под Android. Но одно можно сказать точно: благодаря тому, что для программистов созданы такие хорошие условия для работы, разработка — это не только способ заработка, но и отличный способ провести время и получить удовольствие.

Источник: iphones.ru

TOP TRAVEL