Как написать программу для iPhone

Часть вторая, техническая

В прошлый раз мы с вами начали разговор о создании приложений под iPhone и поговорили о достаточно интересных и важных моментах. Сейчас перейдем к техническим аспектам создания приложений для сверхпопулярного коммуникатора - думаю, именно их многие и ждали от прошлой статьи.

Первую часть статьи многие читатели восприняли как не несущую никакой полезной информации - по крайней мере, об этом свидетельствуют отзывы на форуме. Позволю себе не согласиться с теми, кто считает, что разговор о том, как вдохновиться на написание приложения и как выбрать, что именно писать, бесполезен для того, кто планирует создать своё приложение для самой популярной сегодня мобильной платформы и даже, возможно, заработать с его помощью на хлеб с маслом. Дело в том, что писать программу, не представляя себе даже приблизительно целевой аудитории, - не лучший вариант. Именно поэтому нужно "навести порядок" в голове перед тем, как приступать непосредственно к технической части.


Нужен "Макинтош"

Для начала стоит отметить, что разрабатывать приложения под iPhone можно только из-под операционной системы Mac OS X. Это, думаю, будет не очень приятной новостью для большинства наших читателей, не имеющих в своём распоряжении настольных компьютеров или лэптопов производства Apple. Но, думаю, здесь вряд ли можно в чем-то упрекнуть компанию Apple, которая, безусловно, заинтересована в том, чтобы самая популярная из её разработок, iPhone, продвигала и остальные продукты компании.

Впрочем, ситуация с компьютером, украшенным логотипом надкусанного яблока, не настолько плачевна, как может показаться - все-таки нам нужна именно операционная система MacOS X, а не сам компьютер из семейства "Макинтош". И это очень хорошо, потому что, как известно, есть такая полезная вещь, как "хакинтош", то есть портированная умельцами на обычные PC версия Mac OS X. Но поскольку это не совсем легально, дальше на эту тему распространяться не буду - поможет Google.

Кстати говоря, вполне возможно, что воспользоваться "хакинтошем" придется и тем, у кого есть вполне легальные, но уже достаточно старые компьютеры и ноутбуки, построенные еще на платформе PowerPC - официально она не поддерживается для iPhone SDK, ну а сами понимаете, что там, где заканчивается официальная поддержка чего-либо, вполне могут начаться разные не слишком приятные приключения, разбираться с которыми разработчику придется уже самостоятельно. Тем не менее, если приложение для iPhone начнет приносить более-менее ощутимый доход, имеет смысл все-таки перейти от "хакинтошей" и старых компьютеров Mac на более новое "железо" от Apple, потому что это все-таки правильнее и удобнее.


iPhone SDK

Официально компанией Apple для создания приложений под iPhone предлагается соответствующий набор средств разработчика, или просто SDK. Есть и альтернатива в виде написания под iPhone .NET-приложений с помощью MonoTouch. Каждый из этих вариантов имеет свои плюсы и минусы. Для начала же давайте кратко познакомимся с обоими инструментами разработки.

Официальный SDK от Apple можно найти на developer.apple.com/iphone. Скачать его можно бесплатно, но сделать это не просто, поскольку SDK имеет совершенно монструозные размеры - более трех гигабайт, и при этом сервер Apple не поддерживает докачку. Так что в случае обрыва соединения придется удалять скачанные 2,9 Гб и начинать всё сначала. На помощь, конечно, можно призвать торренты, на которых наверняка найдутся более старые версии SDK, но лучше постараться скачать самую новую версию с официального сайта Apple.

Зато в этом большом SDK вы найдете реально всё, что только может пригодиться для разработки iPhone-приложений. Самая важная часть, кроме, конечно, компилятора и компоновщика, - это интегрированная среда разработки XCode, в которой, кстати, можно разрабатывать софт и для самой Mac OS X. Среда разработки отвечает современным требованиям и поддерживает современные средства работы с кодом (автодополнение, подсветку синтаксиса и прочее), а также средства визуального редактирования интерфейса, привычные разработчикам благодаря современным средам быстрой разработки (RAD-средам). Что весьма удобно, среда даёт возможность подключить устройство (если оно у вас есть) и отлаживать приложение на нём. Правда, для этого необходимо оформить платную подписку разработчика, которая, кстати говоря, пригодится и для распространения приложений под "яблочный" коммуникатор.

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

Пожалуй, самый большой минус стандартного SDK заключается в языке программирования, на использование которого этот инструмент ориентирован. Дело в том, что компания Apple в силу ряда причин посчитала идеальным для iPhone-разработки Objective C - язык, безусловно, мощный, очень интересный и перспективный, но не слишком привычный большинству разработчиков и вообще мало распространенный. Конечно, если сильно захотеть, то можно довольно значительную часть кода приложения написать и на C/C++, но, как отмечают те, кто всерьез брался за такую задачу, вообще без использования Objective C обойтись практически нереально в силу того, что практически все API для iOS рассчитаны именно на применение Objective C, а потому код на этом языке так или иначе нужен для нормального функционирования приложения.

Вообще же, нужно сказать, что Objective C многим кажется настолько удобным языком, что, изучив его при создании приложений для iPhone и сталкиваясь с необходимостью переписывания Objective C кода на Java, например, при создании версии приложения для Google Android, многие отмечают ограниченность Java, не позволяющей реализовывать многие вещи так же просто и изящно, как это даёт делать Objective C. Впрочем, надо сказать, что язык программирования номер один для платформы iOS - это тема для отдельного разговора.


MonoTouch

Видимо, именно необходимость использовать Objective C при написании приложения для iPhone стала тем самым стимулом, который заставил разработчиков платформы Mono создать инструмент, позволяющий, фактически, писать под этот коммуникатор на главном языке платформы .NET - C#. Как всё было на самом деле, конечно, знают только авторы этой идеи, но, так или иначе, сегодня мы имеем возможность воспользоваться плодами их деятельности.

Напомню, что Mono - это платформа, разработанная для того, чтобы делать .NET-приложения переносимыми между различными операционными системами, которая разрабатывается при активнейшем участии компании Novell под руководством достаточно известного в open-souce сообществе Мигеля де Икасы. MonoTouch тоже разрабатывается в рамках этого проекта, но, к сожалению, в отличие от самой среды Mono, этот программный продукт уже относится не к свободному, а к коммерческому программному обеспечению. Стоит MonoTouch в самой дешевой версии для одного разработчика $399. Думаю, что те, кто экономит на покупке iPhone и не имеет "маковских" компьютеров, вряд ли особенно загорятся покупкой лицензии на MonoTouch, но если вы всерьез намерены заработать достаточно заметную денежную сумму продажей приложений в магазине AppStore, покупку лицензии за четыре сотни "вечнозелёных" можно рассматривать как первоначальные инвестиции в ваш новый бизнес.

Для того, чтобы работать с MonoTouch, вам, помимо самого SDK для него, потребуется также iPhone SDK (да-да, никуда от этих трёх гигабайт не деться), среда разработки MonoDevelop для Mac OS X, ну и, конечно же, сама среда Mono для той же самой операционной системы. По сравнению с "весом" официального SDK от Apple, размеры остальных компонентов, нужных для разработки приложений с использованием MonoTouch, пренебрежимо малы, так что с их скачиванием проблем возникнуть не должно. После того, как вы это всё установите, можно приступать непосредственно к разработке приложения на C#.

Если вы хорошо владеете языком C#, то, в принципе, MonoTouch действительно будет достаточно неплохим вариантом, потому что вы сможете быстрее разработать качественное приложение и приступить к его продажам, чем в случае с использованием Objective C. С другой стороны, как видите, такой вариант приводит к дополнительным расходам - ведь всё равно для добавления приложения в AppStore придется покупать подписку разработчика, так что если вы хотите сэкономить, придется изучить Objective C.

Лично мне кажется, что изучение Objective C и написание приложений для iPhone на нём - стратегически более верное решение, поскольку вы овладеете новым навыком, и даже если ваше приложение для iPhone "не пойдет", все равно сможете заработать деньги как наёмный iPhone-разработчик - спрос на таких специалистов сейчас достаточно высокий.

(Продолжение следует)

Вадим СТАНКЕВИЧ,
dreamdrusch@tut.by

Версия для печатиВерсия для печати

Номер: 

31 за 2010 год

Рубрика: 

Software
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!

Комментарии

Аватар пользователя Алексей
Докачка поддерживается. Проверено на iMac :)
Аватар пользователя Инкогнито
Еще гонорарчик "оправдал" .....
Аватар пользователя Инкогнито
Я бы ему за такие статьи ни о чем гонорар процентов на 70 урезал.
Аватар пользователя Лонг
Там когда тянешь с эпла, меняется гуид в ссылке, если устарел в течении суток, то сервак ихний может не отдавать. Тогда надо залогиниться на сайте повторно, получить новую ссылку, и изменить ее в доунлоад менеджере.
Аватар пользователя Вадим Станкевич
Лонг, понял, спасибо.
Аватар пользователя Инкогнито
расскажите как правильно зарегистрироваться в эппле и как оформить счет в банке для получения денег за продажу ПО?! Слышал, что выгоднее оформлять не как ИП, а как получение отчислений за авторские права на ПО. При условии, что это единственный источник получения средств. Так ли это?