Вход на сайт

Уважаемые посетители, наш сайт ориентирован на всех, кто интересуется продукцией всемирно известной компании Apple и ее новыми разработками - четырехдиапазонным GSM-телефоном iPhone и iPhone 3G. Появление на рынке iPhone стало настоящим триумфом компании, хотя среди существенных недостатков первой версии iPhone отмечалось отсутствие поддержки 3G. В нынешнем году появилась новая усовершенствованная версия - iPhone 3G, получившая поддержку A-GPS. Споры вокруг iPhone не утихают, и на нашем сайте Вы получите наиболее полную и объективную информацию об этом продукте.
Мы представим Вам и другую разработку компании Apple - семейство ноутбуков MacBook на базе процессоров Intel. После перехода компании на платформу Intel возникла настоятельная необходимость в разработке супер-портативной модели, которая и была анонсирована на конференции MacWorld’08. Новым представителем семейства MacBook стал ноутбук MacBook Air с супертонким корпусом и рекордно низким весом для ноутбуков этого класса. Всю необходимую информацию о ноутбуках MacBook и MacBook Air Вы также можете получить на нашем сайте.

SDK для iPhone и iPod touch


С появлением фирменного ПО версии 2.0 и Software Development Kit (SDK) программисты наконец-то получили возможность разработки собственного ПО для iPhone и iPod touch. Для Mac-программистов пересадка будет достаточно простой, так как на этих мобильных устройствах работает хорошо им знакомая, хотя и «похудевшая» Маc OS X. Знатокам других систем придется немного привыкнуть, впрочем, благодаря понятным структурам это не вызывает проблем.
 
 
Когда в июле открыла свои ворота Арр Store, интернет-лавка фирмы Apple для iPhone-программ, на ее виртуальных полках уже лежало более 500 продуктов. Через три недели число предложений превысило границу в 1 тыс., что говорит о большом интересе к этой мобильной платформе среди разработчиков, даже если они до сих пор и не занимались вплотную программированием Apple-продуктов.
Все программы, необходимые для начала iPhone-разработок, фирма Apple предоставляет бесплатно. Имея Apple-ID, можно загрузить iPhone SDK. Вместе с этим вы получаете доступ и ко всей документации, и к большинству исходных текстов с примерами.
Капля дегтя для тех, у кого нет Mac-компьютера: iPhone-разработка предполагает обязательное наличие компьютера Маc с х86-процессором и ОС Mac OS X 10.5.3. Это необязательно должен быть суперкомпьютер вроде Mac Pro с 8 ядрами, модели Mac mini с процессором 1,83 ГГц Core 2 Duo и 2 Гбайт оперативной памяти будет вполне достаточно для быстрой работы.
В SDK-пакет, наряду с интегрированной средой разработки Xcode и Interface Builder, Apple также добавила инструменты для оптимизации и отладки. Например, Property List Editor позволяет комфортно работать с файлами настройки в двоичном и XML-формате. Также в состав пакета входит эмулятор iPhone. Если говорить об аппаратном обеспечении, то тому, кто решил разрабатывать программы для iPhone, совсем необязательно покупать iPhone вместе с договором на услугу мобильной связи. Для многих приложений будет вполне достаточно плеера iPod touch. Например, при определении места отвечающая на iPod touch за это библиотека Core Location обращается только к WLAN-информации, что хотя и вредит точности и не всегда возвращает позицию, но вполне достаточно для функционального теста программ. Кроме того, оба устройства становятся пригодными для разработки только с версии 2.0 фирменного ПО. Далее речь будет идти об iPhone, но одновременно будет подразумеваться и iPod touch.
Решение о приобретении платной учетной записи разработчика можно отложить до момента, когда возникнет необходимость тестирования собственных программ на настоящем аппаратном iPhone. Сделать это при наличии бесплатного доступа не удастся. Стандартная лицензия стоит €79 в год и будет правильным выбором, если разработчик хочет выставить свою программу в онлайн-магазине Apple App Store.
 
Ремесленный цех
Центральной точкой разработки для iPhone является интегрированная среда разработки (IDE) Xcode. Здесь сходятся все дороги. Кроме исходных текстов, она управляет файлами Interface Builder, файлами настроек или входящими в проект ресурсами, такими как изображения или звуки. В Xcode также не забыты версии файлов, необходимые для адаптации для разных языков. Например, щелчка мышью по Make localizable в информационном окне текста достаточно, чтобы создать версию для другого языка. Xcode автоматически создает нужные файлы и встраивает их в готовое приложение так, что операционная система при необходимости сама их находит; впрочем, переводить по-прежнему придется самому. Xcode также позволяет осуществлять привязку к распространенным системам управления версиями: CVS, Perforce и Subversion.
Make-файлы в Xcode отсутствуют. Информация и настройки, необходимые для процесса создания, запрятаны в проекте. «Проектный файл» (тип xcodeproj) в действительности является пакетом, то есть каталогом с установленным Bundle-битом, который Finder представляет только в виде файла (точнее, подставляет иконку с изображением файла).
Редактор имеет все функции обычного обработчика исходных текстов, в том числе такие, как выделение синтаксиса, свертывание исходного текста (Code Folding) и дополнение имен функций и переменных. С помощью контекстного меню можно быстро перейти из негодного кода сразу в нужный раздел документации. По желанию Xcode обновляет архив документации и примеры программ с сайта Apple.
В качестве компилятора Apple использует - не только для iPhone-разработок - известный из мира Open Source gcc в паре с отладчиком gdb. Его простой текстовый вывод можно увидеть только, если явно открыть Run- или Debug-консоль. В противном случае Kcode интерпретирует вывод и красиво отображает его в функциональных окнах. Управление выполняется с помощью меню и мыши.
Xcode ни в коем случае не ограничена языком Objective-С, родным языком Mac OS X и iPhone OS. По типу файла IDE распознает, какой язык применен в файле, и инструктирует соответствующим образом компилятор. Однако при разработках для iPhone ОС без Objective-C не обойтись. Интегрированный в Xcode организатор (пункт Organizer в меню Window) знает все модели iPhone и iPod. Он показывает, какое дополнительное ПО установлено в устройствах, и позволяет загрузку данных, созданных разрабатываемым приложением. К файлам, созданным не вашими программами, организатор доступа не дает. Кроме того, он является удобным инструментом для удаления и переноса приложений, а также для создания снимков экрана.
Если в качестве цели компиляции выбрать Device, а не Simulator, то Xcode после выдачи команды Run автоматически переносит созданное приложение на подключенное устройство.
Наглядный Interface Builder, второй важный столп SDK, после создания интерфейса пользователя не генерирует исходный код, как это делают другие представители этого программного семейства. Фактически Interface Builder при своей работе создает экземпляры объектов из библиотеки классов Cocoa (Mac OS X) или Cocoa Touch (iPhone OS) и модифицирует по желанию программиста атрибуты этих объектов. При создании приложения ХIВ-файлы «построителя интерфейса» конвертируются в NIB-файлы, знакомые еще из NextStep (предшественницы Mac OS X), и интегрируются в пакет готового приложения (NIB означает Next Interface Builder).
С помощью маленькой хитрости Apple подстраховывает Interface Builder при распознавании важной для него информации, содержащейся в интерфейс-файлах. Стоящий перед определением IBOutlet, например IBOutlet UlView "view; заботится о том, чтобы Interface Builder знал, что он может назначить атрибуту view инстанцию класса UlView. Атрибуты, не обозначенные подобным образом, он игнорирует. IBOutlet представляет собой всего лишь макрос, который «растворяется в воздухе» при компиляции и поэтому никому не мешает.
Связи между двумя объектами в Interface Builder создаются простыми движениями мыши. Щелчок правой кнопкой по объекту показывает в открывающемся окне его атрибуты, называемые outlet'aми. Перетягиванием курсором мыши кружка справа от outlet'a создается соединение с желаемым объектом, например с UlView, и присваивание при этом атрибуту вид (View) в качестве значения.
В контекстном меню также имеются пункты Received Actions (принятые события) и Referencing Outlets (ссылающиеся outlet'ы).
Actions показывают, на какие вызовы методов будет реагировать класс после, например, щелчка по кнопке. Как и в outlet'ах эти методы надо специально обозначить для Interface Builder (с помощью IBAction в качестве возвращаемого значения), например -(IBAction)buttonClick. Однако IBAction является не «растворяющимся» макросом, а синонимом для широко применяемого объекта языка программирования Objective-C типа id. Outlet-ссылки говорят о том, какие другие объекты ссылаются на исследуемый объект.
Применение Interface Builder при разработках программ для iPhone является опциональным. Если кто-то не желает с ним подружиться, то может сам писать исходный код для интерфейса пользователя своего приложения. Однако с помощью Interface Builder не только проще и быстрее выполняется корректное размещение элементов интерфейса, но, кроме того, применение NIB-файлов экономит приличный объем исходного кода - приятный побочный эффект для поиска ошибок, обслуживания и сопровождения. Однако многие разработчики испытывают неудобство из-за того, что Interface Builder не предлагает никакого пути для получения представления об объектах, содержащихся в NIB-файле. В этом случае поможет только открытие и просмотр файла.
 
Фоновый режим
Программный набор iPhone SDK - это значительное достижение Apple. С его помощью быстро и легко создаются элегантные приложения. Присвоение имен методам разных библиотек, благодаря большому прошлому NextStep, последовательно и понятно. Тем не менее поводов для критики все еще достаточно. Многие разработчики жалуются, что им не удается на iPhone запускать приложение в фоновом режиме. Или программа на переднем плане, или она не работает. Если, например, пользователь iPhone принимает входящий звонок, то работающее приложение автоматически завершается. Поэтому приложения должны обязательно запоминать свое текущее состояние и автоматически восстанавливать его при последующем новом запуске. Для этой весьма непростой задачи Apple приводит специальные примеры.
С помощью SDK нельзя создавать фоновые процессы, которые при отсутствии главного приложения могли бы устанавливать контакт с сервером или продолжать свои расчеты. Сама операционная система имеет хорошие мультизадачные способности и управляет многими фоновыми процессами, только вот с SDK их создание невозможно. Apple приводит две главные причины для отказа от фоновых процессов. Во-первых, фоновые процессы якобы создают нагрузку на аккумулятор и уменьшают время работы iPhone. А во-вторых, для пользователя будет совсем неочевидно, что после явного завершения приложения могут продолжать работать его активные части.
Типичными приложениями, интенсивно использующими фоновые процессы, являются Chat-клиенты, желающие поддерживать контакт со своим сервером. Они могут выиграть от применения сервиса Push Notification Service (PNS), с помощью которого Apple пытается смягчить последствия своей политики «нет фоновым процессам». Если подобный мессенджер завершает свою работу или теряет контакт с сетью, то на помощь приходит сервер Apple. Сервер сети обмена сообщениями в такой ситуации уже не пытается передавать сообщения клиенту, а информирует через защищенное соединение Apple-сервер о наличии новых данных. Сервер запоминает в каждом случае только последнее полученное сообщение. Следует заметить: Apple-сервер  получает   только указание о том, что имеются данные, но не сами данные. Эта система предполагает поддержку PNS не только Chat-клиентом, но и Chat-сервером.
Центральная служба на iPhone (а не отдельная для каждого приложения) осуществляет связь с Apple-сервером и информирует пользователя о событиях в системе с помощью числа на значке программы, акустическим сигналом или диалогом. Если затем пользователь запускает приложение, то оно должно загрузить ожидающие данные с сервера.
В общем и целом SDK предлагает достаточно функциональности, но, тем не менее, то тут, то там чего-то не хватает. Например, Apple забыла простой диалог для защиты паролем ввода данных. Что такое все же имеется, показывает приложение из Арр Store. Отображение документов пакета iWorks также до сих пор остается прерогативой Apple-приложений.
Почему Apple не разрешает доступ к библиотеке iTunes или к событиям в календаре, пока тоже остается загадкой. Вызваны ли эти упущения спешкой, с которой Apple вывела SDK в рынок, покажет будущее.
В SDK можно еще многое улучшать, но все же это не повод, чтобы не создавать уже сейчас хорошие программы для iPhone.
 
Как настоящий!
К iPhone SDK, кроме Xcode и Interface Builder, также относится iPhone Simulator. При этом речь идет не об эмуляторе, программно воспроизводящем ARM-процессор и графическую аппаратуру iPhone, а об урезанной версии iPhone-программы для х86-процессора. Если приказать Xcode скомпилировать приложение для симулятора, то компилятор создает нативный х86-код, который Маc может исполнять. Этот двоичный файл использует затем х86-версии библиотек, которые также применяются на iPhone. Это обеспечивает самую широкую совместимость. Симулятор реагирует так же, как и iPhone, на движения мыши (например, прокрутка или перелистывание слева направо). Второй «палец» создается нажатием клавиши Alt. Создать еще больше пальцев, конечно, не удастся. Для тестирования 3-пальцевых жестов для вращения трехмерных объектов никак не обойтись без реального устройства.
Если удерживать нажатой кнопку мыши на символе iPhone-приложения, то появляется стандартный диалог для удаления приложения. Кто хочет делать это напрямую, найдет собственные iPhone-программы в файловой системе Mac -/Library/Application Support/iPhone Simulator/User/Applications. Там можно инспектировать собственные программы и просмотреть файл настроек, содержащий параметры, установленные через NSUserDefaults. Вращение симулятор реализует через команды меню, соответствующие события он, как и iPhone, передает работающему приложению. Конечно, отсутствуют пути для симуляции и тестирования входящего вызова или нехватки памяти, чтобы понять, как поведет себя приложение в таких ситуациях.
На переносных Мас'ах с датчиком ускорения симулятор, хотя и предлагает iPhone-приложениям значения измерений через библиотеку акселератора, однако они значительно отличаются от значений реальной аппаратуры iPhone. Конечно, платформа iPhone или iPod touch также привлечет и разработчиков игр. Что касается графики, то хотя симулятор и поддерживает OpenGL ES (Embedded Systems), однако из-за разных рендереров внешний вид может немного различаться. 3D-Sound полностью отсутствует, так как в симуляторе нет библиотеки OpenAL. Очень хорошо Apple симулирует временные характеристики интерфейса пользователя и анимаций. Несмотря на значительно более мощную аппаратуру, ощущения от скорости работы интерфейса пользователя и GUI-анимации такие же, как на iPhone. Анимацию перелистывания при смене вида симулятор заменяет плавным появлением, в Mac OS X эффект перелистывания отсутствует. Расчеты, выполняемые невидимо на заднем плане, занимают больше времени на iPhone. Поэтому совершенно необходим тест на приемлемость времени ожидания для пользователя.
Повышенная внимательность требуется для Мас-ветеранов: если они по старой привычке используют хорошо знакомые им классы, то при переходе от симулятора к реальной аппаратуре может возникнуть сюрприз. Симулятор разрешает применение классов, которые отсутствуют на iPhone. Так, например, на устройстве отсутствует класс NSURLDownload; его функциональность придется реализовывать с немного большими усилиями на основе класса NSURLConnection. От неожиданностей вас защитит просмотр документации Xcode через меню Help с фильтром поиска iPhone OS 2.0.
 
Засланный в iPhone
Скомпилировать программу, включить iPhone и перенести новое творение в устройство, увы, так просто не получится. Во-первых, Apple дает такую возможность только разработчикам, оплатившим свое членство, при бесплатном членстве программист привязан к симулятору. Во-вторых, сначала надо подготовиться к получению цифровой подписи для своего приложения. С помощью цифровой подписи Apple хочет с самого начала обезоружить писателей вредного ПО. Автор любой программы всегда однозначно идентифицируется с помощью программного сертификата. Если вредоносная программа, например вирус, изменит такое подписанное приложение, то система обнаруживает это и прекращает выполнение приложения.
Apple педантично описала процесс создания сертификата. Соответствующая документация находится в Program Portal, который доступен только заплатившим разработчикам через iPhone Dev Center. Мы кратко опишем только общий порядок действий. На первом шаге с помощью приложения Keychain Access создается так называемый Certificate  Signing  Request  и
отсылается Apple. Затем от нее получаем наш сертификат и импортируем его с помощью Keychain Access. На следующем шаге надо в Program Portal ввести идентификатор iPhone, полученный от организатора из Xcode. Затем вместе с сертификатом и информацией о iPhone создаем в Portal так называемый Development Provisioning Profile, лучше всего с выразительным именем. Xcode сохраняет его в каталоге -/Library/MobileDevice/ Provisioning Profile. В проекте его следует внести в пункте Code Signing Provisioning Profiles, персональный сертификат указывается в пункте Code Signing Identity. Профиль автоматически загружается в устройство при тестировании собственного ПО. Без такого профиля разработчики не могут тестировать свои программы на реальном устройстве.
Чтобы иметь возможность распространения ПО бета-тестерам или предложить его Арр Store, необходимо почти аналогичным способом создать Distribution Provisioning Profile для Ad-hoc- или Арр Store-дистрибутивов. Бета-тестеры для переноса профиля и программы могут использовать iTunes вместо Xcode.
 
 
 

Добавить комментарий

Защитный код
Обновить

На правах рекламы

плотность муравьиной кислоты

Статистика

Яндекс цитирования

Rambler's Top100