Чтение онлайн

ЖАНРЫ

Программирование на Objective-C 2.0
Шрифт:

В начале 1980-х гг. Бред Кокс (Brad J. Сох) разработал язык Objective-C. Этот язык основывался на языке SmallTalk-80. Objective-C был создан поверх языка С, то есть к языку С были добавлены расширения для создания нового языка программирования, который позволял создавать объекты и работать с ними.

Компания NeXT Software в 1988 г. лицензировала язык Objective-C, а также разработала его библиотеки и среду разработки под названием NEXTSTEP. В 1992 г. поддержка Objcctivc-C была добавлена в среду разработки GNU организации Free Software Foundation. Авторские права на все продукты Free Software Foundation (FSF) принадлежат FSF. Они выпускаются как лицензия GNU General Public License.

В 1994 r. NeXT Computer и Sun Microsystems выпустили стандартизованную спецификацию системы NEXTSTEP

под названием OPENSTEP. Реализация OPENSTEP, выпущенная Free Software Foundation, называется GNUStep. Версия для Linux, включающая также ядро Linux и среду разработки GNUStep, называется поэтому LinuxSTEP.

20 декабря 1996 г. компания Apple Computer объявила, что приобретает NeXT Software, и среда NEXTSTEP/OPENSTEP стала основой для следующей основной версии операционной системы Apple — OS X. Версия компании Apple этой среды разработки была названа Cocoa. Встроенная поддержка языка Objectivc- С в сочетании со средствами разработки, такими как Project Builder (или его преемника Xcode) и Interface Builder, позволила Apple создать мощную среду разработки для разработки приложений в Mac OS X.

В 2007 г. Apple выпустила обновление языка Objcctive-C и назвала его Objective-C 2.0. Эта версия языка описывается в настоящем (втором) издании этой книги.

После выпуска iPhone в 2007 г. разработчики программ потребовали, чтобы им предоставили возможности разрабатывать приложения для этого передового устройства. Поначалу компания Apple сомневалась, стоит ли предоставлять разработку приложений сторонним компаниям. Для «умиротворения» требо-вательных разработчиков компания предоставляла им возможность разработки веб-приложений. Такое веб-приложение выполняется в iPhone под управлением встроенного веб-браузера Safari и требует, чтобы пользователь подсоединялся к веб-сайту, где содержится приложение, чтобы запускать его. Разработчики были недовольны из-за многих ограничений, присущих веб-приложениям, и вскоре компания Apple объявила, что разработчики смогут разрабатывать так называемые собственные (native) приложения для iPhone.

Собственное приложение хранится на самом iPhone и выполняется под уп-равлением операционной системы iPhone таким же образом, как встроенные приложения iPhone {такие как Contacts, iPod и Weather). OS iPhone является фактически версией Mac OS X, а это означает, что приложения для iPhone можно разрабатывать и отлаживать, например, на MacBook Pro. И действительно, компания Apple вскоре выпустила мощный комплект разработки программ (Software Development Kit, SDK), который позволил быстро разрабатывать и отлаживать приложения iPhone. Наличие имитатора (simulator) iPhone позволило разработчикам отлаживать свои приложения на их компьютерах, без не-обходимости загрузки и тестирования программ непосредственно на iPhone или iPod Touch. 1.1. Что вы узнаете из этой книги

Обдумывая, как писать учебник по Objective-C, я должен был принять важное решение. Как и в других книгах по Objective-C, я мог бы предположить, что читатель уже знает, как писать программы на языке С. Я мог бы обучать этому языку, исходя из возможностей обширной библиотеки процедур, например, в фреймворках Foundation и Application Kit. В некоторых книгах принято обучать использованию средств разработки, таких как Xcodc и Interface Builder на Маках.

Однако такой подход имеет несколько проблем. Во-первых, изучение всего языка С перед изучением Objective-C неприемлемо. Процедурный язык С содержит много средств, которые не являются необходимыми для программирования на Objective-C, особенно на уровне новичков. На самом деле обращение к некоторым из этих средств противоречит методологии надежного объектноориентированного программирования. Также нет смысла в изучении деталей процедурного языка перед изучением объектно-ориентированного. Это дезориентирует профаммиста и мешает осваивать объектно-ориентированный подход к профаммированию. То, что Objective-C является расширением языка С, вовсе не означает, что нужно сначала выучить С.

Поэтому я решил, что нс буду начинать с обученпия языку С и не буду пред-полагать, что читатель знает С. Вместо этого я принял необычный подход: обу-чение языку Objective-C и базовому языку С как

одному объединенному языку сточки зрения объектно-ориентированного профаммирования. Цель этой книги определена се названием — обучение тому, какпрофаммировать на Objective- С. Она не содержит подробных сведений о том, как использовать средства раз-работки, доступные для ввода и отладки программы, и не содержит полных инструкций по разработке интерактивных фафических приложений с помощью Cocoa. Вы можете ознакомиться с этим материалом где-либо еще после этого, как научитесь писать профаммы на Objective-C. На самом деле все это будет намного проще после того, как вы разберетесь с профаммированием на Objective-C. В этой книге не предполагается, что читатель имеет серьезный опыт программирования (или вообще имеет такой опыт). И если вы новичок в программировании, то сможете изучать Objcctive-C как свой первый программный язык.

Эта книга учит языку Objectivc-C с помощью примеров. Представляя каждое новое средство языка, я обычно привожу пример небольшой законченной программы, иллюстрирующей это средство. Правильно выбранный пример программы действует подобно изображению, которое может заменить тысячу слов. Я настоятельно рекомендую выполнить каждую программу (все они дос-тупны в Интернете) и сравнить результаты, полученные на вашем компьютере, с результатами, показанными в книге. Это позволит вам не только изучать язык и его синтаксис, но и знакомиться с компиляцией и выполнением программ на Objective-C. 1.2. Как организована эта книга

Эта книга разделена на три логические части. В части I, «Язык Objectivc-C 2.0», излагаются основы самого языка. В части II,» Framework Foundation «, описывается работа с обширным набором готовых классов, которые образуют фреймворк Foundation. В части III, «Сосоа и SDK iPhone», дастся обзор фреймворка Cocoa Application Kit и приводится процесс разработки простого приложения iPhone с использованием фреймворка UIKit, а также разработка и отладка кода с помощью Xcode и Interface Builder.

Фреймворк — это набор классов и процедур, логически сгруппированных для упрощения разработки программ. Многие возможности программирования на Objective-C основываются на использовании существующих разнообразных фреймворков. В главе 2 вы напишете свою первую профамму на Objective-C.

Поскольку это не книга по профаммированию для Сосоа, здесь не приводится подробное описание фафических пользовательских интерфейсов (GUI), и они почти не затрагиваются до части III. Поэтому мне потребовался подход, позволяющий вводить данные в профамму и выводить результаты. В большинстве примеров этой книги ввод в профамму выполняется с клавиатуры, а вывод выполняется в окне: это терминальное окно (Terminal), если вы используете дсс из командной строки, или консольное окно (Console), если используется Xcode.

В главе 3, «Классы, объекты и методы», излагаются основы объектно-ори-ентированного профаммирования. В этой главе вводится некоторая терминология, но она сведена к минимуму. Там же вводится механизм определения класса и средства передачи сообщений экземплярам или объектам. Преподаватели и опытные профаммисты отмстят, что для объявления объектов я использую статический контроль типов. Я считаю, что это наиболее подходящий способ для начала обучения, поскольку компилятор может обнаруживать больше ошибок, делая профамму более понятной и позволяя начинающему программисту явно объявлять типы данных, когда они известны. Поэтому понятие типа id и описание его возможностей нс затрагиваются в полной мере до главы 9, «Полиморфизм, динамический контроль типов и динамическое связывание».

В главе 4, «Типы данных и выражения», описываются базовые типы данных Objective-C и их применение в ваших программах.

В главе 5, «Циклы в программах», вводятся три оператора цикла: for, while и do.

Принятие решений является основой любого языка программирования. В главе 6, «Принятие решений» подробно описываются операторы if и switch языка Objective-C.

В главе 7, «Более подробно о классах», приводится более глубокое изложение работы с классами и объектами. Здесь подробно описывается, как работать с методами, передавать несколько аргументов методам и использовать локальные переменные.

Поделиться с друзьями: