ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
Обзор Технологий iOS
1. Программирование в iOS<br />iOS — это операционная система, которая запускается на устройствах iPhone, iPod touch и iPad. Эта операционная система управляет оборудованием этих устройств и предоставляет технологии необходимые для написания платформенно-ориентированных приложений. Операционная система поставляется с различными системными приложениями, такими как «Телефон» (“Phone”), «Почта» (“Mail”) и браузер «Сафари» (“Safari”), которые предоставляют стандартные системные службы пользователю.<br />Набор средств разработки приложений для iOS (iOS SDK) включает инструменты и интерфейсы, необходимые для разработки, установки, запуска и тестирования платформенно-ориентированных приложений. Платформенно-ориентированные приложения собираются, с помощью системных библиотек iOS и языка программирования Objective-C и запускаются непосредственно в операционной системе iOS. В отличие от веб-приложений, такие приложения устанавливаются на устройство физически и поэтому всегда доступны пользователю, даже если устройство находится в режиме «Полета». Они располагаются вместе с другими системными приложениями, и, одновременно, сами приложения и пользовательские данные синхронизированы с компьютером пользователя через программу iTunes.<br />Архитектура iOS<br />Архитектура iOS схожа с базовой архитектурой операционной системы Mac OS X. На самом высоком уровне, iOS представляет собой промежуточный слой между оборудованием устройства и приложениями, которые отображаются на экране, как показано на рисунке 1-1. Очень редко приходится создавать приложения, которые будут обращаться к оборудованию напрямую. Вместо этого, приложения взаимодействуют с оборудованием через набор четко-определенных системных интерфейсов, которые защищают приложения от изменений оборудования. Эта абстракция позволяет очень легко писать приложения, которые корректно работают на устройствах с различными аппаратными возможностями.<br />Рисунок 1-1 Приложения расположенные в верхнем слое iOS <br />1714512065<br />Примечания: Хотя приложения в целом защищены от изменений оборудования, вам все равно приходится учитывать различия между устройствами при написании кода. Например, у некоторых устройств есть камера, а у некоторых ее нет. Если приложение умеет работать при наличии или отсутствии какой-то функции, то используя интерфейсы соответствующей библиотеки можно определить, доступна эта функция или нет.<br />Приложения, которым требуется наличие определенного оборудования, должны декларировать это требование в файле со списком свойств приложения (Info.plist). Для получения большей информации о декларировании необходимого оборудования смотрите раздел «Особенности конфигурирования приложений во время сборки» в «Руководстве написания приложений для iOS». <br />Реализация технологий iOS может быть представлена в виде набора слоев, которые показаны на рисунке 1-2. На самом нижнем слое операционной системы находятся основные службы и технологии, от которых зависят все приложения; на более высоких уровнях находятся более сложные службы и технологии. <br />Рисунок 1-2 Слои системы iOS<br />17145111125При написании своих приложений, везде, где это возможно, рекомендуется использовать библиотеки более высокого уровня, чем библиотеки низкого уровня. Библиотеки более высокого уровня написаны для того, чтобы обеспечить объектно-ориентированные абстракции для низкоуровневых структур. Эти абстракции существенно облегчают написание кода, потому что они уменьшают объем кода, который необходимо написать и скрывают достаточно сложные функции, такие как сокеты и потоки. И хотя они скрывают низкоуровневые функции, эти функции по-прежнему доступны для разработчиков. Разработчики, которые предпочитают использовать низкоуровневые библиотеки или хотят использовать возможности, которых не предоставляют высокоуровневые библиотеки, могут их использовать. <br />Технологии и библиотеки каждого уровня описаны в последующих главах этой документации. <br />Что включено в набор средств разработки приложений для iOS?<br />Набор средств разработки поставляется со всеми интерфейсами, инструментами и ресурсами, которые необходимы для разработки приложений iOS на вашем компьютере Macintosh с процессором Intel.<br />Apple предоставляет большую часть системных интерфейсов, расположенных в специальных пакетах, называемых библиотеками. Библиотека — это каталог, который содержит общие динамические модули, и ресурсы (такие как заголовочные файлы, картинки, вспомогательные приложения и т.д.), необходимые для работы этих модулей. Для использования библиотек, вам необходимо подключить их в проекте своего приложения, так же как и любой другой общий модуль. Связав библиотеку со своим модулем, у вас появляется доступ к функциям этой библиотеки. Это также позволяет инструментам разработки определить нахождение заголовочных файлов и других ресурсов библиотеки.<br />В дополнение к библиотекам, Apple также поставляет некоторые технологии в виде стандартных общих модулей. Так как iOS основана на системе UNIX, многие из них являются низкоуровневыми технологиями с открытым исходным кодом. Интерфейсы для этих технологий доступны в стандартной библиотеке и в каталоге с интерфейсами.<br />Некоторые другие ключевые компоненты средств разработки включают:<br />Инструменты Xcode — это инструменты, для разработки iOS приложений, в которые входят следующие ключевые компоненты:<br />Xcode — интегрированная среда разработки, которая управляет проектами приложений и позволяет редактировать, компилировать, выполнять и отлаживать ваш код. В Xcode интегрировано много других инструментов, но он является главным приложением, используемым во время разработки. <br />Interface Builder — инструмент, для графического создания пользовательского интерфейса. Создаваемые объекты интерфейса сохраняются в файле ресурсов и загружаются приложением во время выполнения. <br />Instruments— утилита для анализа производительности и отладки приложений во время выполнения. Вы можете использовать эту программу для сбора информации о поведении вашего приложения во время выполнения и для поиска потенциальных проблем.<br />Эмулятор iOS — это приложения для Mac OS X, которое эмулирует работу операционной системы iOS, позволяя вам тестировать ваши iOS приложения локально на компьютере Macintosh с процессором Intel. <br />Библиотека Разработчика iOS — справочная документация, в которой находится информация о технологиях и процессе разработки приложений iOS. Для получения подробной информации, смотрите раздел “Как использовать «Библиотеку разработчика iOS»”. <br />Хотя вы можете запускать приложения в эмуляторе iOS, инструменты Xcode также позволяют запускать и отлаживать приложения непосредственно на присоединенном устройстве. Эмулятор идеально подходит для сборки и быстрого тестирования приложений, но он не является заменой для тестирования на реальном устройстве. Разработка на реальном устройстве требует подписки в платной программе от Apple “iOS Developer Program” и конфигурирования устройства для разработки. Более подробную информацию о программе “iOS Developer Program” вы сможете найти в центре разработки под iOS (http://developer.apple.com/devcenter/ios). <br />Для получения подробной информации об установке набора средств разработки приложений для iOS и его использования при разработке приложений для iOS смотрите «Руководство разработки приложений для iOS». <br />Какие приложения вы можете создавать?<br />iOS поддерживает разработку приложений двух типов:<br />Платформенно-ориентированные приложения<br />Веб-приложения<br />Набор средств разработки приложений для iOS позволяет создавать платформенно-ориентированные приложения, которые отображаются только на Главном экране устройства. Но не поддерживается создание приложений других типов, например драйверов, библиотек, динамически подгружаемых модулей. Если вы хотите интегрировать код из библиотеки или динамически подгружаемой библиотеки в свое приложение, вам необходимо связать этот код статически с исполняемым файлом во время сборки проекта.<br />Для создания интерактивных веб-приложений, располагающихся на сервере, используют связку HTML, каскадных таблиц стилей (CSS) и JavaScript кода. Эти приложения передаются через сеть интернет и запускаются внутри веб-браузера “Сафари”. В отличие от таких приложений, платформенно-ориентированные приложения установлены непосредственно на устройство и могут запускаться при отсутствии сетевого соединения.<br />