Вандад Нахавандипур - iOS. Приемы программирования
Ознакомительный фрагмент
В книге я буду часто упоминать пакеты (bundles) и говорить о том, как загружать из пакетов изображения и данные. В издании будет кратко рассказано о пакетах, но если хотите разобраться с ними подробнее, прочтите Bundle Programming Guide (Руководство по программированию пакетов) по адресу: https://developer.apple.com/library/ios/#documentation/CoreFoundation/Conceptual/CFBundles/Introduction/Introduction.html.
Условные сокращения, используемые в данной книге
В данной книге применяются следующие условные обозначения.
Шрифт для названий
Используется для обозначения URL, адресов электронной почты, а также сочетаний клавиш и названий элементов интерфейса.
Шрифт для команд
Применяется для обозначения программных элементов — переменных и названий функций, типов данных, переменных окружения, операторов, ключевых слов и т. д.
Шрифт для листингов
Используется в листингах программного кода.
Данный символ означает совет, замечание практического характера или общее замечание.
Данный символ означает предостережение.
Работа с примерами кода
Эта книга написана для того, чтобы помочь вам в работе. В принципе, вы можете использовать код, содержащийся в этой книге, в ваших программах и документации. Можете не связываться с нами и не спрашивать разрешения, если собираетесь воспользоваться небольшим фрагментом кода. Например, если вы пишете программу и кое-где вставляете в нее код из этой книги, разрешения не требуется. Однако если вы запишете на диск примеры из книг издательства O’Reilly и начнете раздавать или продавать такие диски, на это необходимо получить разрешение. Если вы цитируете эту книгу, отвечая на вопрос, или воспроизводите код из нее в качестве примера, на это не требуется разрешения. Если вы включаете значительный фрагмент кода из этой книги в документацию по вашему продукту, на это требуется разрешение.
Нам интересны ваши отзывы
Все примеры кода из этой книги были протестированы на iPhone 4, iPhone 3GS и эмуляторе iPhone/iPad, но не исключено, что у вас все же возникнут какие-то сложности. Например, у вас будет иная версия SDK, нежели та, в которой компилировался и тестировался код из примера. Информация, изложенная в этой книге, проверялась на каждом этапе подготовки издания. Тем не менее мы могли допустить какие-то ошибки или чего-то недосмотреть, поэтому с благодарностью примем от вас информацию о любых подобных недочетах, которые могут вам встретиться, а также все ваши предложения о том, как можно было бы улучшить будущие издания книги. С автором и редакторами можно связаться по следующему адресу:
O’Reilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
(800) 998-9938 (в США или Канаде)
(707) 829-0515 (международный или местный телефон)
(707) 829-0104 (факс)
Благодарности
Энди Орам, мой любезный редактор, вновь потрудился на славу и внимательно проработал все изменения, появившиеся в новом издании книги. Фактически эта книга переработана полностью, это касается и содержащихся в ней скриншотов и примеров кода. Я хотел бы поблагодарить также Кшиштофа Гробельного и Кшиштофа Гутовского — моих хороших друзей и коллег, выполнивших техническое рецензирование книги. Без их участия она ни за что не оказалась бы в ваших руках.
Особой благодарности заслуживает Рэйчел Румелиотис, поддерживавшая меня и Энди. В первую очередь спасибо ей за ту административную работу, которая на первый взгляд как будто не видна. Кроме того, с наилучшей стороны себя показала Меган Конноли из издательства O’Reilly. Она терпеливо сносила мои причитания о бумажной работе, сотрудничество с ней доставило одно удовольствие. Благодарю Джессику Хозман за то, что помогла нам справиться с проблемами, которые возникали с Git. Я и поверить не мог, что те простые решения, которые она мне подсказывала, действительно сработают. Но они работали, а я порой чувствовал себя идиотом.
Последние, но немаловажные благодарности хочется высказать Алине Риззони, Бруно Пэкхему и Томасу Пэкхему за их преданную дружбу. Я счастлив, что знаю их, и высоко ценю их помощь и поддержку.
От издательства
Ваши замечания, предложения и вопросы отправляйте по адресу электронной почты [email protected] (издательство «Питер», компьютерная редакция).
Мы будем рады узнать ваше мнение!
На сайте издательства http://www.piter.com вы найдете подробную информацию о наших книгах.
Глава 1. Реализация контроллеров и видов
1.0. Введение
В iOS 7 появилось множество новых пользовательских возможностей, а также масса новых API, с которыми мы, программисты, можем вволю экспериментировать. Вероятно, вы уже знаете, что в iOS 7 разительно изменился пользовательский интерфейс. Во всех предыдущих версиях он оставался практически неизменным по сравнению с первой версией iOS, и поэтому многие приложения разрабатывались так, как будто пользовательский интерфейс никогда не изменится. В настоящее время графические дизайнеры столкнулись с целым букетом проблем, так как теперь требуется создавать интерфейсы и продумывать пользовательские взаимодействия с программой так, чтобы программа хорошо смотрелась и в iOS 7, и в более ранних версиях.
Чтобы программировать приложения для iOS 7, вы должны знать основы языка Objective-C, с которым мы будем работать на протяжении всей этой книги. Как понятно из названия, язык Objective-C основан на С, но имеет определенные расширения, которые облегчают оперирование объектами. Объекты и классы имеют фундаментальное значение в объектно-ориентированном программировании (ООП). К числу объектно-ориентированных языков относятся Objective-C, Java, C++ и многие другие. В Objective-C, как и в любом объектно-ориентированном языке, вы имеете доступ не только к объектам, но и к примитивам. Например, число –20 (минус двадцать) можно выразить в виде примитива следующим образом:
NSInteger myNumber = -20;
В этой простой строке кода определяется переменная myNumber, относящаяся к типу данных NSInteger. Ее значение устанавливается в 20. Так определяются переменные в языке Objective-C. Переменная — это простое присваивание имени местоположению в памяти. В таком случае если мы задаем 20 в качестве значения переменной myNumber, то сообщаем машине, что собираемся выполнить фрагмент кода, который поместит указанное значение в область памяти, соответствующую переменной myNumber.
В сущности, все приложения iOS используют архитектуру «модель — вид — контроллер» (MVC). C архитектурной точки зрения модель, вид и контроллер — это три основные составляющие приложения iOS.
Модель — это мозг приложения. Она выполняет все вычисления и создает для себя виртуальный мир, в котором может существовать сама, без видов и контроллеров. Иными словами, вы можете считать модель виртуальной копией вашего приложения, без интерфейса.
Вид — это окно, через которое пользователь взаимодействует с вашим приложением. В большинстве случаев вид отображает содержимое модели, но, кроме того, он же воспринимает и действия пользователя. Любые контакты между пользователем и вашим приложением отправляются в вид. После этого они могут быть перехвачены контроллером вида и переданы в модель.
Контроллеры в программах iOS — это, как правило, контроллеры видов, которые я только что упомянул. Контроллер вида является, в сущности, переходным звеном между моделью и видом. Он интерпретирует события, происходящие с одной стороны, и по мере необходимости использует эту информацию для внесения изменений на другой стороне. Например, если пользователь изменяет какое-либо поле в виде, то контроллер гарантирует, что и модель изменится соответствующим образом. А если модель получит новые данные, то контроллер прикажет виду отобразить их.
В этой главе вы узнаете, как выстраивать структуру приложения iOS и использовать виды и контроллеры видов для создания интуитивно понятных приложений.
В этой главе мы будем создавать большинство компонентов пользовательского интерфейса на базе шаблона Single View Application из Xcode. Чтобы воспроизвести приведенные инструкции, следуйте рекомендациям, приведенным в подразделе «Создание и запуск вашего первого приложения для iOS» данного раздела. Убедитесь в том, что ваше приложение является универсальным, а не ориентировано только на iPhone или на iPad. Универсальное приложение может работать как на iPhone, так и на iPad.
Создание и запуск вашего первого приложения для iOS
Прежде чем подробнее познакомиться с возможностями Objective-C, вкратце рассмотрим, как создать простое приложение для iOS в среде Xcode. Xcode — это интегрированная среда разработки (IDE) для работы с Apple, позволяющая создавать, строить и запускать ваше приложение в эмуляторе iOS и даже на реальных устройствах с iOS. По ходу книги мы подробнее обсудим Xcode и ее возможности, а пока научимся создавать и запускать самое простое приложение. Я полагаю, что вы уже скачали Xcode из Mac App Store и установили ее на своем компьютере. В таком случае выполните следующие шаги.
Откройте для себя мир чтения на siteknig.com - месте, где каждая книга оживает прямо в браузере. Здесь вас уже ждёт произведение Вандад Нахавандипур - iOS. Приемы программирования, относящееся к жанру Программирование. Никаких регистраций, никаких преград - только вы и история, доступная в полном формате. Наш литературный портал создан для тех, кто любит комфорт: хотите читать с телефона - пожалуйста; предпочитаете ноутбук - идеально! Все книги открываются моментально и представлены полностью, без сокращений и скрытых страниц. Каталог жанров поможет вам быстро найти что-то по настроению: увлекательный роман, динамичное фэнтези, глубокую классику или лёгкое чтение перед сном. Мы ежедневно расширяем библиотеку, добавляя новые произведения, чтобы вам всегда было что открыть "на потом". Сегодня на siteknig.com доступно более 200000 книг - и каждая готова стать вашей новой любимой. Просто выбирайте, открывайте и наслаждайтесь чтением там, где вам удобно.


