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

Никита Narmo Дёнин avatar | 47
FavoriteLoading В закладки

На сегодняшний день у 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 в большинстве случаев работает медленнее, чем настоящее устройство, и довольно часто можно приятно удивиться повышению скорости работы приложения после установки на устройство.

Создание пользовательского интерфейса для 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 можно подключить к нему, просто выбрав его из списка доступных устройств.

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

1 Звезд2 Звезды3 Звезды4 Звезды5 Звезд (Проголосуйте первым за статью!)
undefined
iPhones.ru
На сегодняшний день у iOS есть один достойный конкурент в области мобильных платформ — это платформа Android. Как для iOS, так и для Android есть свои наборы инструментов для разработки. В этой статье я не буду принижать или восхвалять ту или иную платформу, а продемонстрирую различные подходы к вопросам разработки и отладки приложений. В отличие...
Прокомментировать

🙈 Комментарии 47

  1. iSavelik avatar
    iSavelik20 марта 2011
    0

    Извиняюсь за ОФФТОП.

    Добрые люди, помогите пожалуйста. На iPad осталось 6.8 Гб свободной памяти. Я установил VLC плеер (скачан из App Store, пока он был там)и пытаюсь закинуть филмы размером в 6.1 Гб. Но iTunes выдает ошибку, что недостаточно памяти, и так кажды раз, даже тогда, когда закидываю 1 фильм.

    В чем может быть дело? Того, кто мне поможет, награжу промо-кодом на игру Ready Action!

    P.S. Надеюсь на благосклонность авторов, т.к. завтра уезжаю в дорогу… фильмы нужны.

    Bacaramba avatar
    Bacaramba20 марта 2011
    0

    @iSavelik, это вроде как для работы компа нужно ~300 мб свободново места. Т. е. система требует, инече бы тунец не видел этого места. Скорее всего таГ, но возможно ты супер хитрожопый мутант и сделал в системе что-то не так. Если не трогал – гони печеньку :)

    Bacaramba avatar
    Bacaramba20 марта 2011
    0

    @iSavelik, Хотя, пара гигов это уж слишком много.

    iBeerman avatar
    iBeerman20 марта 2011
    0

    @iSavelik, просто в айпеде должно быть свободно несколько мегабайт чтоб не лагал, и айпед сам не позваляет закачать файлы после того как вы все заполните. Удалите что нибудь и закачайте свои фильмы, и вообще зачем вам такие тяжелые фильмы, закачайте такие мегабайт по 600 которые для iPhone и номально будете смотреть. Сайт называется филмс-айфон.ру или ком эта два сайта очень много фильмов.

    iSavelik avatar
    iSavelik20 марта 2011
    0

    @iBeerman, На нем остается свободная память.

    А фильмы весят как раз так, просто их много :-)

    iSavelik avatar
    iSavelik20 марта 2011
    0

    Не знаю что это было, но все удалось сделать. Целый день мучений… И вот все готово!

    Все кто отозвался, напишите свой e-mail, вышлю вам печеньки в виде промо-кодов! :-)

  2. NightPeople avatar
    NightPeople20 марта 2011
    0

    А стоимость китов одинаковая?

    Никита Дёнин avatar
    Никита Дёнин20 марта 2011
    0

    @NightPeople, Android SDK доступна для свободной загрузки без регистрации и оплаты.

    DomenER avatar
    DomenER21 марта 2011
    0

    @NightPeople, Android SDK совершенно бесплатен как и сама ОС Андройд.

    А iOS SDK $99/year ($99 в год надо заплатить).

    flunik avatar
    flunik22 марта 2011
    0

    @DomenER, плюс мак. Или уже хкод для винды появился?

  3. DaZzBouRGh avatar
    DaZzBouRGh20 марта 2011
    0

    Очень много умных слов

    Никита Дёнин avatar
    Никита Дёнин20 марта 2011
    0

    @DaZzBouRGh, Это же хорошо.

    kiphon3 avatar
    kiphon320 марта 2011
    0

    @Никита Дёнин, большое спс автору.хотелось бы побольше новостей типа этого.у меня такой вопрос.на какой платформе легче писать код,если человек не имеет опыта ни на одном из них,и еще один.что мне нужно для регистрации в iphone dev center и публикации прог(какой тип кредитки и имеет ли значение в какой стране я живу или че то еще),зараее очень признателен за ответы

    iSavelik avatar
    iSavelik20 марта 2011
    0

    @kiphon3, Вот тут, есть все: http://www.iphones.ru/forum/index.php?s=b1eaa070088a47e719f62e314026d3e2&showforum=59

    setmaster avatar
    setmaster21 марта 2011
    0

    @iSavelik, очень здОрово! ) только вот регистрация на форуме закрыта… А хотелось бы.

    kiphon3 avatar
    kiphon321 марта 2011
    0

    @iSavelik, оч спасибо

    Никита Дёнин avatar
    Никита Дёнин20 марта 2011
    0

    @kiphon3, Меня опередили :-)

    iSavelik avatar
    iSavelik20 марта 2011
    0

    @Никита Дёнин, можно с тобой связаться? Например, в ICQ или в Skype?

    Никита Дёнин avatar
    Никита Дёнин21 марта 2011
    0

    @iSavelik, Можно. Напиши в личку на форуме. Ник: Narmo.

  4. Wickedgnome avatar
    Wickedgnome20 марта 2011
    0

    Мораль басни такова… Я не понял нифига=)

    mikla avatar
    mikla20 марта 2011
    0

    @Wickedgnome, я тоже ничего не понял, но я молчу 8)

    josser avatar
    josser21 марта 2011
    0

    @mikla, рекомендую к прочтению http://neponyal.net/

  5. kerkomen avatar
    kerkomen20 марта 2011
    0

    Спасибо за статью! Было любопытно почитать и сделать соответствующие выводы!

    kerkomen avatar
    kerkomen20 марта 2011
    0

    @kerkomen, у айфона огромный плюс в плане программирования – мало девайсов и сходство разрешений (iphone’овское, ipad’овское и ретина) и железа

    у андроида очень различается железо разных девайсов и разрешения экрана колеблются от очень маленьких до слишком больших…

    насчёт айФона не знаю, а Eclipse кривоватый =)

    flunik avatar
    flunik22 марта 2011
    0

    @kerkomen, всегда можно использовать размеры в процентных соотношениях. Для мобилы и планшета. В чем проблема? Андроид работает под вм. Разработчику вообще наплевать на железо если он пишетхороший код.

  6. Forsaken25 avatar
    Forsaken2521 марта 2011
    0

    Я долгое время програмировал по иОС, а когда пришлось сесть за Андроид я просто …. охренел, такого медленного емулятора и ИДЕ я еще нигде не встречал. Первый запуск емулятора занимает около 3 минут, да бог с ним, простой деплоймент апликухи на емулятор – 30-50 секунд, Еклипс тормозит безбожно. Вобщем впечатления после иОС да даже ВинМобайл (и таким грешил :) ) просто не передать словами.

    А вообще, пока Гугл опирается на Ява – не быть Андрюшке конкурентом Яблочкам.
    Кстати, для кодеров (if you dare) ха-ха: http://www.zdnet.com/blog/burnette/program-for-android-in-cc-with-the-native-development-kit-if-you-dare/1284

    Никита Дёнин avatar
    Никита Дёнин21 марта 2011
    0

    @Forsaken25, Согласен, тормоза при запуске очень печалят.

    iSavelik avatar
    iSavelik21 марта 2011
    0

    @Forsaken25, Тоже скачал, ужасно долго запускалось.

    i.band avatar
    i.band21 марта 2011
    0

    @Forsaken25, Вообще ничего удивительного, что первый запуск так много времени занимает. Всё, что работает через прослойку в виде Java-машины требует времени. Любое IDE на java запускается долго.

    Forsaken25 avatar
    Forsaken2523 марта 2011
    0

    @i.band, Это да, но почему тогда симулятор блекберри работает – ну просто несравненно быстрее? Та же ява…

    DemonSoftII avatar
    DemonSoftII21 марта 2011
    0

    @Forsaken25, попрограммируйте для Windows Mobile…. iOS эмлятор – самый быстрый из всех известных платформ. Но сама IDE – самая убогая. Даже DeveloperX для программирования под тот же iOS ее перплевыввает. Хотя, стоит признать, что Form Builder все тот же.

    artbasil avatar
    artbasil21 марта 2011
    0

    @DemonSoftII, Что еще за DeveloperX?

    Forsaken25 avatar
    Forsaken2523 марта 2011
    0

    @DemonSoftII, програмировал я под вин моб, там скорость работы была хотя бы приемлимой! А тут просто ужас какой то. Я не представляю как можно написать под ведроид что-то более менее серьезное. Попробую еще на коре и7 поганять, но боюсь результат будет неутешительный. Единственный совет который нашел в сети – использовать не симулятор а сразу устройство.
    По поводу xcode – после визуал студии конечно не то :) но общий инструментарий там на уровне, тот же самый инструмент Leaks – сказка просто :)

  7. zanzy avatar
    zanzy21 марта 2011
    0

    Спасибо автору за статью) Сам сейчас “зарыт в этом сене” и соответственно читать тоже интересно. А интересно в квадрате потому, что “все познается в сравнении” =)

  8. zanzy avatar
    zanzy21 марта 2011
    0

    Только один нюанс, если бы не картинка никогда не понял, что такое A-sdk. Думаю правильно было бы написать все таки Android-SDK

  9. artbasil avatar
    artbasil21 марта 2011
    0

    Ставлю 5+ за сравнение IDE! Так держать! :)
    Теперь пожалуйста статью с более углубленным сравнением Objective-C с Java и фреймворков из обоих SDK! ;)

    Никита Дёнин avatar
    Никита Дёнин21 марта 2011
    0

    @artbasil, Только я сравнивал не IDE, а SDK :-)

    Сравнивать фреймворки и библиотеки не имеет смысла. Во-первых, разные языки программирования, во-вторых, для Java написано несравненно больше сторонних библиотек.

    artbasil avatar
    artbasil21 марта 2011
    0

    @Никита Дёнин, Прочитав статью складывается общее впечатление именно об IDE и симуляторах. А вот фреймворки тоже было бы интересно сравнить. Например как строится интерфейс в андроид по сравнению с айфон? Что в андроиде есть на подобие UIKit и в чем отличия? Ну и языки тоже подравнивать.. Можно в отдельных статьях все.. Будет очень интересно!

  10. Entze avatar
    Entze21 марта 2011
    0

    Кто бы рассказал про альтернативные SDK для iPhone. Monotouch, firedragon, есть еще какието. И главное некоторые позволяют разрабатывать под Win.

    artbasil avatar
    artbasil21 марта 2011
    0

    @Entze, Монотач платный, стоит как Юнити почти. Но толковый. То что надо для дотнетчиков. Есть еще AirPlay — кроссплатформный SDK на C++, почти все платформы кроме Blackberry. Подходит для игр или прог с кастомным интерфейсом. Вывод на экран через OpenGL, никакого UIKit, если нужен UI, все делается ручками.

  11. progn avatar
    progn21 марта 2011
    0

    приятно видеть на iphones.ru очень хорошее начинание, статьи по разработке, так держать. Подфорум для разработчиков уже лучший в рунете.

    но, от субъективных оценок можно было воздержаться

    > Когда я в первый раз попробовал создать интерфейс с помощью этого «монстра», он оставил у меня крайне негативные впечатления. С тех пор я являюсь сторонником программного создания интерфейсов.

    ничего сложного там нет, тем более много туториалов имеется

    Никита Дёнин avatar
    Никита Дёнин21 марта 2011
    0

    @progn, Я не говорил, что он сложный, я сказал, что он неприятный в использовании.

  12. beavis avatar
    beavis21 марта 2011
    0

    А не покажете ли, Никита, пару проектов, в которых участвовали? Ну, если есть готовые игры или приложения.

    Никита Дёнин avatar
    Никита Дёнин22 марта 2011
    0

    @beavis, Когда-то давно участвовал в создании Айчиталки для iPhone.

  13. pin505 avatar
    pin50521 марта 2011
    0

    извините пожалуйста за нубство,но языки програмирования какие?
    PS
    спасибо заранее

    Hizgil avatar
    Hizgil22 марта 2011
    0

    @pin505, В смысле?Они все разные, я, например, в работе использую HTML/CSS/PHP/JS.Если вы про программирования под iOS, то вроде питон и еще несколько.

    Никита Дёнин avatar
    Никита Дёнин22 марта 2011
    0

    @pin505, Под iOS ― Objective-C / C / C++. Под Android ― Java / C / C++.

Вы должны авторизоваться или зарегистрироваться для комментирования.

Нашли орфографическую ошибку в новости?

Выделите ее мышью и нажмите Ctrl+Enter.

Как установить аватар в комментариях?

Ответ вот здесь