5 книг для начинающих разработчиков Objective-C


Содержание

С чего начать изучение Objective-C?

Такой вопрос, скорее всего, уже поднимался, но у всех бывают разные ситуации. Задался целью выучить Objective-C и программировать под iOS/Mac OS. Потому ищу литературу, которая подойдет для изучения Objective-C с абсолютного нуля т.к опыта в программировании нету и никогда таким не занимался. Часто встречал вопросы от пользователей подобного характера, но в большинстве случаев у людей уже был фундамент в мире программирования, будь то C++ или PHP.

В просторах интернета узнал об авторе Стивен Кочан и его книге Программирование на Objective-C. Есть два вида данной книги и несколько изданий. Т.к я предпочитаю всегда актуальную и свежую информацию, выбрал данный вариант: Программирование на Objective-C, 6е издание. 2014 год.
Вариант 2014го года, 6е издание. Вторая книга по данной тематике: http://www.ozon.ru/context/detail/id/28001113/
Уже всем известный вариант книги Кочана Objective-C 2.0: http://www.ozon.ru/context/detail/id/5430044/

Книга полностью посвящена языку Objective-C и потому столкнулся с некоторыми вопросами. В основе Objective-C лежит язык C и в книге о нем ничего нету. Хватит ли данной книги, что-бы начать изучение Objective-C без потребности в C т.к люди иногда говорят, что лучше начать с C. Или же есть более подходящие для новичка книги, которые помогут углубленно изучить Objective-C?

Вот еще есть книга от другого автора, Программирование для iOS 7. Основы Objective-C, Xcode и Cocoa: http://www.ozon.ru/context/detail/id/26348798/
В ней, вроде как, описывается и язык C, потому не знаю, какую книгу лучше взять. Думаю чтение 2 книг сразу не принесет какого-либо результата.

11.08.2014, 00:12

Начать изучение Xcode
Где можно найти хороший учебник или видеокурс про Xcode?

Как начать изучение разработки под ios?
Добрый день, господа-программисты. Я задумался над тем, чтобы начать изучать как разрабатывать.

С чего начать?
Доброго времени суток уважаемое сообщество программистов! Есть желание разрабатывать приложения.

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

С чего начать ?
Здравствуйте, я начинающий программист, решил заняться созданием программ для Iphone не подскажите.

11.08.2014, 06:24 2

Базовые знания C крайне желательны.

Хорошая книга по C: http://c.learncodethehardway.org/book/ (для начала достаточно первых 18 глав).

Для Objective-C книга Кочана хороша. Нойбурга не читал, но пробежался по оглавлению и думаю тоже сойдет.
Плюс дальше тебе еще понадобится книга непосредственно про разработку под iOS/OS X (UIKit и т.д.).

11.08.2014, 08:29 [ТС] 3

Вот та же беда. Или Кочан или Нойбург. По цене конечно разница есть, первая дороже в 2 раза, но хочется хорошую книгу для хорошего старта. Что делать с самим C — не знаю. Возможно того материала, что предлагает Кочан, хватит для комфортной работы в Xcode?

Начальная цель — писать простенькие программы/2д игры для iOS 7, по пути делать то же самое для Mac OS. Хотя больше интересуют интернет приложения на подобии месенжеров/клиентов соц. сетей.

iOS: джентельменский набор разработчика

Популярность девайсов на платформе iOS (Apple) растет с каждым днем, особенно в России, подогреваемая грамотной работой маркетологов и особенностями национальной распальцовки.

Среди разработчиков – тоже есть своя мера “крутизны”, и в последнее время можно все чаще встретить в резюме среди Java, C#, FLEX, PHP и прочих “простых” средств разработки – слова iOS и Objective-C.

Итак, что нужно чтобы стать разработчиком приложений для iPhone и iPad и тем самым потратив немало времени успешно влиться в коллектив девелоперов iOS:
1) Огромное колличество свободного времени.
2) Вступить в Apple iPhone Developer Program ($99/год). Если Вы хотите официально публиковать свои приложения в App Store, то без этого никуда.
3) Одно из устройств: iPhone, iPad или iPod Touch.
4) Компьютер с Mac OS X версии не ниже 10.5.5.
5) Последняя версия iPhone SDK.
6) Среда для разработки, например, Xcode.

У Вас все это есть – хорошо. Помните, что нужна команда, чтобы продукт был успешным. Вы конечно же можете делать все это один. Но в процессе можете потерять много времени, энергию. Вот основные навыки, которые нужны для хорошего результата:
1) Программирование (Objective C) (подразумеваем, что создается родное для iPhone приложение).
2) Можно пойти по второму пути портирование из FLAS – AIR/FLEX
2) Дизайн интерфейса.
3) Рекламирование приложения и маркетинг.

Cписок литературы, который предстоит изучить:
1) Дж. Здиарски, “iPhone разработка приложений с открытым кодом”.
2) Дж. Здиарски, “iPhone SDK. Разработка приложений”.
3) Махер Али, “Программирование для iPhone”.
4) Крейг Хоккенбери, “Разработка приложений под iPhone. Полное руководство”.
5) Эрика Садун, “Поваренная книга программиста iPhone (разработка приложений для iPhone)”.

Изучение языка Objective-C

  • «Программирование на Objective-C 2.0″ – Стивен Кочан;
  • «Objective-C 2.0 и программирование для Mac» – Марк Далримпл, Скотт Кнастер.

Изучение Xcode и iOS SDK.

Отличным стартом будет прочтение переведенной на русский язык книги «iPhone SDK. Разработка приложений» (Джонатан Здзиарски). Английский в наше время нужно знать.

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

Для отправки комментария вам необходимо авторизоваться.

10 книг для разработчиков приложений под iOS

Собираетесь нырнуть в бездонный океан разработки приложений под iOS? Эти топ-10 книг по версии MakeUseOf помогут начать и матёрому кодеру-эксперту, и зелёному новичку.

Проба пера в разработке под iOS – довольно трудоёмкая задача даже для программистов со стажем. Между началом изучения языка программирования Swift (тем, который используется в экосистеме Apple) и публикацией приложения в магазине App Store есть множество промежуточных шагов, этапов и ступеней. Придётся изучить каждый такой аспект. К счастью, в этом процессе обязательно помогут замечательные книги – их написано немало.

Часть книг до сих пор не переведена на русский язык: что ж, неплохой повод обновить базовые знания английского. Тем более, стиль написания у этих книжек понятный и доступный для всех, у кого есть опыт программирования и вдумчивого чтения других учебников. Некоторые книжки доступны и на русском.

Книги в предложенном списке широчайшим образом охватывают тематику программирования под iOS. Их целевая аудитория разнится от начинающих до весьма опытных кодеров. Вне зависимости от предыдущего опыта читателей, каждый отыщет для себя именно тот учебник, который обязательно введёт его в круг настоящих разработчиков приложений iOS.

Для начинающих

Вам только предстоит впервые погрузиться в мир разработки приложений для iOS? Эта подборка книг содержит всё (и даже больше!) для того, чтобы начать писать свой первый код.

1. Структура и интерпретация компьютерных программ

Авторы: Харольд Абельсон, Джеральд Сассман

Английское название книги: Structure and Interpretation of Computer Programs

Цена: бесплатно

«Структура и интерпретация компьютерных программ» – учебник, который уже не одно десятилетие заслуженно считается «азбукой программистских заклинаний». Благодарные (по-)читатели, особенно за рубежом, называют учебник по аббревиатуре названия – SICP. Несмотря на почтенный возраст, книжка до сих пор является великолепной точкой старта перед восхождением к вершинам программирования. Ещё недавно этот учебник использовался в качестве основного на курсах Массачусетского Технологического Института и других крупнейших университетов планеты.

SICP не сосредоточен на конкретном языке программирования, поэтому на его страницах ничего не рассказывается именно про Swift. Вместо этого читателю предстоит изучить основные концепции, лежащие в основе создания приложений. Чтение довольно сложное, но это очень эффективный способ набраться прочных фундаментальных знаний.

2. Swift Programming: The Big Nerd Ranch Gu > Swift Programming: The Big Nerd Ranch Guide

Русский перевод: отсутствует

Авторы: Matthew Mathias, John Gallagher

Цена: 28 долларов

Потрясающий юмор авторов книги делает чтение по-настоящему занимательным процессом, начиная уже с названия книги (его можно перевести как «Программирование на Swift: подробное руководство для нерда-скотовода»). Читателю предстоит узнать всё про разработку под «железо» Apple. Сложно переоценить роль этой книги для новичков в мире языка Swift. Основатель The Big Nerd Ranch, Аарон Хиллегасс, работал в компании NeXT в 1990х. В 2000х этот человек играл ведущую роль в переводе всего ПО компании Apple на рельсы фреймворка Cocoa API.

Книга «The Big Nerd Ranch guide to Swift programming» предназначена тем, кто лишь начинает изучать язык Swift. Им предстоит начать с самых основ – и продолжать чтение до тех пор, пока они не смогут сами написать первые несколько строк собственного кода. В конце каждой главы есть подборка упражнений, которые помогут протестировать уровень знаний читателя. Эти же упражнения помогают вчитываться в текст глубже. Если вы лишь начинаете изучать язык Swift, лучшей книжки просто не найти.

3. iOS Programming: The Big Nerd Ranch Gu > iOS Programming: The Big Nerd Ranch Guide

Авторы: Christian Keur, Aaron Hillegass

Русский перевод: отсутствует

Цена: 15 долларов

Другая книга серии «The Big Nerd Ranch». Великолепно дополняет предыдущий учебник, посвящённый программированию на Swift. Эта книжка подразумевает наличие у читателя некоторых знаний Swift, однако она сосредоточена на более сложных аспектах этого языка, которые пригодятся при разработке ПО именно под iOS. Изучив эти две книги в тандеме, можно считать, что вы прошли полный курс обучения публикации приложения в App Store.

Читателю предстоит глубоко изучить возможности языка применительно к конкретной платформе, создавая собственные работоспособные приложения. Столь практичный подход позволил авторам раскрыть множество типичных сценариев, с которыми предстоит столкнуться разработчику в реальной работе. Возможно, это не самый полный справочник для программиста, но его определённо следует прочитать.

4. iOS Apprentice

Русский перевод: официальный отсутствует. Существуют неформальные переводы отдельных разделов.

Автор: Matthijs Hollemans

Цена: 55 долларов

Если покупка сразу двух учебников серии «Big Nerd Ranch» кажется избыточно дорогим вложением, следует взглянуть в сторону книги «iOS Apprentice» — «Новичкам в iOS». Целевая аудитория – полные новички, что понятно из названия. Содержит краткий курс буквально по каждому аспекту знаний, необходимых для старта разработки в iOS. Особенность учебника – написание и сопутствующий разбор кода четырёх различных приложений.

Структура текста – «степ-бай-степ» в паре с иллюстрациями и скриншотами, которые помогают вникнуть в процесс. Помимо прочего, здесь присутствует полный исходный код и высококачественные иллюстрации к каждому примеру – неплохое подспорье при написании собственного проекта.

Для программистов с опытом

Посвящается тем, кто уже прошёл «курс молодого бойца-программиста», но хочет обновить и дополнить свои знания, плюс – сделать собственные приложения более яркими и грамотными. Эта подборка книг предназначается для достаточно знающих кодеров, которые пополняют арсенал своих навыков.

5. Swift Pocket Reference: Programming for iOS and OS X

Русский перевод: отсутствует. В интернете встречаются отдельные переведённые отрывки.

Автор: Anthony Gray

Цена: бесплатно

Подобная литература предназначена тем, кто уже набрался некоторого опыта в программировании на Swift. В отличие от книжек, которые можно охарактеризовать общей фразой «для чайников», здесь содержатся материалы справочного характера. Эти статьи пригодятся при поиске ответов на конкретные вопросы. Присутствует подборка задач и упражнений.

К сожалению, у учебника «Swift Pocket Reference: Programming for iOS and OS X» есть изъян: местами книжка несколько устарела. Это издание 2014 года, и охватывает оно лишь Swift версии 2.0. Этот недостаток компенсирован тем, что книга теперь доступна бесплатно. Разделы учебника рассказывают о большом количестве нюансов. Главы сопровождаются подробными примерами. Удачный образец учебника для программистов, которым уже тесно среди начинающих.

6. Pro Swift

Автор: Paul Hudson

Русский перевод: отсутствует

Цена: 30 долларов

Пол Хадсон, автор бестселлера «Хакерам про Swift», написал учебник «Pro Swift» для молодых программистов, которые вскоре собираются перейти в разряд опытных. Книга рассказывает про те области языка программирования, которые вряд ли можно отыскать в учебниках для начинающих:

  • наследование, полиморфизм и инкапсуляция в объектно-ориентированном языке Swift;
  • перегрузка и переопределение операторов;
  • практические аспекты написания сопроводительной документации.

Курс включает в себя 90 сопутствующих видеороликов, доступных для загрузки или онлайн-просмотра (DRM-защита у роликов отсутствует, за что отдельное спасибо автору и его издательству). Видеоуроки пошагово показывают технику написания фрагментов кода. В отличие от классического учебника, такой формат позволяет обучающимся наработать продвинутые навыки в практических задачах.

7. iOS 10 App Development Essentials

Русский перевод: отсутствует.

Автор: Neil Smyth

Цена: 45 долларов

Книга «Основы разработки приложений под iOS 10» – великолепный источник для всех, кто планирует перейти от освоения теории программирования к практике создания приложений. Как и в уже упомянутой книге Swift Pocket Reference, здесь есть примеры и главы, предназначенные для новичков. Но значительно более ценные разделы написаны для уже достаточно опытных программистов. Не следует ориентироваться на название, и считать эту книгу учебником «для чайников».

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

8. The Core iOS Developers Cookbook

Перевод на русский: отсутствует

Автор: Erica Sadun

Цена: 37 долларов

Книга «Core iOS Developers Cookbook» сосредоточена на практических решениях классических проблем, с которыми разработчикам приходится сталкиваться в повседневной практике разработки под iOS development. Добавление анимационных эффектов, привязка к разметке Auto Layout, внедрение API в собственные проекты – всё это становится не столь уж сложной задачей, которой казалось до прочтения этой книги.

Формат «поварских книг для программистов» (или «cookbooks») нравится многим читателям. Вместо последовательной подачи информации, следует пролистать оглавление, и выбрать конкретный «рецепт», подходящий именно под ваше программное «блюдо». Учебник особенно полезен тем кодерам, которые начинают собственный проект – и ищут практическую поддержку в особо сложных вопросах.

Для экспертов программирования

К определённому моменту карьеры программист перестаёт быть «всего лишь» опытным / продвинутым: перед таким профессионалом стоят значительно более масштабные и сложные вызовы. Эти программисты становятся настоящими экспертами. Им посвящается следующая часть подборки лучших учебников по разработке под iOS.

9. Cocoa Design Patterns

Авторы: Eric Buck, Donald Yactman

Цена: 33 доллара

Книга «Cocoa Design Patterns»– одна из самых старых в списке, впервые была опубликована в далёком 2009 году. Однако, благодаря тому, что она описывает целые паттерны, а не «квирки» определённого языка, книжка остаётся весьма релевантной и в наши дни. В разделах содержится множество информации для разработчиков iOS. Впрочем, она посвящена фреймворку Cocoa в целом, а потому может служить ещё и подспорьем для программистов, пишущих под MacOS.

Отметим ещё раз: целевая аудитория книжки – эксперты программирования. Начальный раздел посвящён паттерну Model-View-Controller, и дальше будет лишь сложнее. Вряд ли возможно разместить на страницах обычной книги хотя бы часть необходимых базовых знаний. Авторы подразумевают, что читатель уже обладает такими знаниями. Впрочем, если читатель уже занимался программированием под iOS, он обязательно найдёт множество способов пополнить копилку собственных знаний благодаря этой книге.

10. iPhone App Development: The Missing Manual

Автор: Craig Hockenberry

Цена: 28 долларов

Посвящается тем читателям, кто не просто писал на языке Swift, но делал это со всем мастерством и умением. Тем, кто знает платформу iOS, как свои пять пальцев. Тем, кто хочет продвинуться ещё дальше, вверх к самым звёздам программирования. Успех приложения состоит не только из собственно кода: необходимо разбираться в дизайне, брендинге, иметь чёткие представления о целевой аудитории – и далеко не только это.

Книга «The Missing Manual» поможет трансформировать навыки программирования в нечто большее: в те знания и опыт, которые необходимы для популярности приложения в App Store. Если конечная цель проекта публикация в магазине, то эта книга расскажет о таких вещах, о необходимости которых вы даже не задумывались.

Программирование на Objective-C

О книге

Доставка

В наличии — скоро закончится!

Доставка курьером завтра, 14 ноября

Описание

Objective-C — стандартный язык программирования приложений на платформах Mac OS X и iPhone. Он также распространен в операционных системах Linux, Unix и Windows. Это мощный и вместе с тем простой язык объектно-ориентированного программирования, базирующийся на языке С. Цель этой книги — обучение программированию на Objective-C. Работа с Objective-C показана на множестве подробных примеров, предназначенных для решения повседневных задач. В 6-е издание книги включены изменения, представленные в iOS 7, OS X Mavericks и Xcode 5. Книга разделена на три логические части. В части I излагаются основы самого языка. В части II описывается работа с обширным набором готовых классов, которые образуют фреймворк Foundation. В части III дается обзор фреймворков Cocoa и Cocoa Touch и приводится процесс разработки простого приложения iOS с использованием фреймворка iOS SDK.

Для программистов, от новичков до профессионалов.

Programming in Objective-C (2014)Автор: Стивен

Programming in Objective-C (2014)
Автор: Стивен Кочан

#objective-c@proglib #books@proglib #english@proglib #beginner@proglib

Целевая аудитория: начинающие разработчики.

В настоящее время программирование под платформы iOS, Mac OS X, Linux, Unix и Windows осуществляется с помощью C-подобного объектно-ориентированного язык программирования Objective-C. Именно с этой книги следует начать знакомство с данным языком любому начинающему системному разработчику. Автор приводит понятные примеры и объяснения к нему. Также приводится процесс разработки приложения для iOS с помощью фреймворка iOS SDK и обзор других популярных фреймворков, таких как Foundation и Cocoa Touch.

В книге рассматриваются следующие темы:
фреймворк Foundation;
Cocoa, Cocoa Touch и iOS SDK;
типы данных, циклы и функции;
классы и объекты;
динамическое программирование и многое другое.

Преимущества:
многочисленные примеры.

Текст книги «Программирование на Objective-C 2.0»

Автор книги: Стивен Кочан

Программирование

Текущая страница: 1 (всего у книги 32 страниц)

Table of Contents

Глава 1. Введение

1.1. Что вы узнаете из этой книги

1.2. Как организована эта книга

Глава 2. Программирование на Objective-C

2.1. Компиляция и выполнение программ

2.2. Объяснение вашей первой программы

2.3. Вывод значений переменных

Глава 3. Классы, объекты и методы

3.1. Понятие объекта

3.2. Экземпляры и методы

3.3. Класс Objective-C для работы с дробями

3.4. Секция @interface

3.5. Секция @implementation

3.6. Секция program

3.7. Доступ к переменным экземпляра и инкапсуляция данных

Глава 4. Типы данных и выражени

4.1. Типы данных и константы

4.2. Арифметические выражения

4.3. Операторы присваивания

4.4. Класс Calculator

4.5. Битовые операторы

4.6. Типы: _Bool, _Complex и _Imaginary

Глава 5. Циклы в программах

5.1. Оператор for

5.2. Оператор while

5.4. Оператор break

5.5. Оператор continue

Глава 6. Принятие решений

6.2. Оператор switch

6.3. Булевы переменные

6.4. Условный оператор

Глава 7. Более подробно о классах

7.1. Разделение файлов объявлений и определений (секции interface и implementation)

7.2. Синтезируемые методы доступа

7.3. Доступ к свойствам с помощью оператора «точка»

7.4. Передача методам нескольких аргументов

7.5. Локальные переменные

7.6. Ключевое слово self

7.7. Выделение памяти и возврат объектов из методов

Глава 8. Наследование

8.1. Все начинается с корня

8.2. Расширение посредством наследования: добавление новых методов

8.3. Замещающие методы

8.4. Расширение через наследование: добавление новых переменных экземпляра

8.5. Абстрактные классы

Глава 9. Полиморфизм, динамический контроль типов и динамическое связывание

9.1. Полиморфизм: одно имя, различные классы

9.2. Динамическое связывание и тип id

9.3. Проверка на этапе компиляции и проверка на этапе выполнения

9.4. Тип данных id и статический контроль типов

9.5. Как задавать вопросы о классах

9.6. Обработка исключительных ситуаций с помощью @try

Глава 10. Более подробно о переменных и типах данных


10.1. Инициализация классов

10.2. Снова об области действия

10.3. Описатели хранения для класса

10.4. Перечислимые типы данных

10.5. Оператор typedef

10.6. Преобразования типов данных

Глава 11. Категории и протоколы

11.3. Составные объекты

Глава 12. Препроцессор

12.1. Оператор #define

12.2. Оператор #import

12.3. Условная компиляция

Глава 13. Базовые средства из языка С

13.6. Это не объекты!

13.7. Различные средства языка

13.8. Как это действует

Глава 14. Введение в Foundation Framework

Глава 15. Числа, строки и коллекции

Глава 16. Работа с файлами

Глава 17. Управление памятью

17.1. Автоматически высвобождаемый пул

17.2. Подсчет ссылок

17.3. Пример автоматического высвобождения

17.4. Сводка правил по управлению памятью

17.5. Сборка мусора

Глава 18. Копирование объектов

18.1. Методы copy и mutableCopy

18.2. Поверхностное и глубокое копирование

18.3. Реализация протокола ` `

18.4. Копирование объектов в методах-установщиках и методах-получателях

Глава 19. Архивация

19.1. Архивация со списками свойств XML

Цукерберг рекомендует:  Три заблуждения о big data

19.2. Архивация с помощью NSKeyedArchiver

19.3. Написание методов кодирования и декодирования

19.4. Использование NSData для создания нестандартных архивов

19.5. Использование архиватора для копирования объектов

Глава 20. Введение в Сосоа

20.1. Уровни фреймворков

20.2. Cocoa Touch

Глава 21. Написание приложений iPhone

21.1. Комплект разработки программ (SDK) для iPhone

21.2. Ваше первое приложение iPhone

21.3. Калькулятор дробей для iPhone

21.4. Сводка шагов

Программирование на Objective-C 2.0

Программирование на Objective-C

Классы, объекты и методы

Типы данных и выражени

Циклы в программах

Более подробно о классах

Полиморфизм, динамический контроль типов и динамическое связывание

Более подробно о переменных и типах данных

Категории и протоколы

Базовые средства из языка С

Введение в Foundation Framework

Числа, строки и коллекции

Работа с файлами

Введение в Сосоа

Написание приложений iPhone

Глава 1. Введение

Деннис Ритчи (Dennis Ritchie) был первым, кто в начале 1970-х гг. начал про-граммировать на языке С в компании AT&T Bell Laboratories. Однако до конца 1970-х гг. этот язык не получат широкого распространения и поддержки, по-скольку нс существовало готовых компиля торов с языка С для коммерческого использования вне Bell Laboratories. Росту популярности С способствовал рост популярности операционной системы UNIX, которая почти целиком была на-писана на С.

В начале 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.

Обдумывая, как писать учебник по 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, «Более подробно о классах», приводится более глубокое изложение работы с классами и объектами. Здесь подробно описывается, как работать с методами, передавать несколько аргументов методам и использовать локальные переменные.

В главе 8, «Наследование», вводится ключевое понятие наследования. Это упрощает разработку программ, поскольку вы можете использовать то, что пе-редается из вышележащих уровней. Наследование и подклассы упрощают из-менение и расширение существующих определений классов.

В главе 9 описываются три основополагающие характеристики языка Objective-C. Здесь излагаются три ключевые концепции: полиморфизм, дина-мический контроль типов и динамическое связывание.

В главах 10—13 завершается описание языка Objective-C. Здесь рассматри-ваются такие вопросы, как инициализация объектов, протоколы, категории, препроцессор, и некоторые основ языка С: функции, массивы, структуры и указатели. Эти возможности не обязательно использовать (обычно их нужно избегать) в начальный период разработки объектно-ориентированных приложений. Рекомендуется пропустить главу 13 при первом чтении этой книги и возвращаться к ней по мере необходимости для изучения какого-либо конкретного средства языка С.

Часть II начинается с главы 14, «Введение в Foundation Framework», где дается введение во фреймворк Foundation и описывается доступ к его документации.

В главах 15-19 описываются важные возможности Foundation framework. Это числовые и строковые объекты, коллекции, файловая система, управление па-мятью и процесс копирования и архивации объектов.

Закончив работу с частью II, вы сможете разрабатывать довольно сложные программы на Objective-C, которые используют фреймворк Foundation.

Часть III начинается с главы 20, «Введение в Сосоа». Здесь дается краткий обзор фреймворка Application Kit, содержащего классы, необходимые для раз-работки сложных графических приложений на Маках.

В главе 21, «Написание приложений iPhone», дается введение в SDK iPhone и фреймворк UIKit. Здесь показан пошаговый подход к написанию простого приложения iPhone (или iTouch) и рассматривается приложение-калькулятор, позволяющее выполнять простые арифметические вычисления с дробями с помощью iPhone.

Поскольку объектно-ориентированный подход требует использования до-вольно обширной терминологии, в приложении А, «Словарь», приводятся оп-ределения некоторых распространенных терминов.

В приложении В, «Сводка языка Objective-С», приводится сводка языка Obiective-C для быстрого поиска нужной информации.

В приложении С, «Исходный код адресной книги» приводится листинг ис-ходного кода для двух классов, которые были разработаны и широко использо-вались в части II. В этих классах определяются классы для адресных карточек и адресной книги. Методы этих классов позволяют выполнять такие простые операции, как добавление и удаление адресных карточек из адресной книги, поиск нужного адресата, вывод содержимого адресной книги и т.д.

Изучив написание программ на Objective-C, можно продолжить работу в нескольких направлениях. Можно изучить более глубоко базовый язык про-граммирования С, начать разрабатывать программы Cocoa для выполнения в Mac OS X или более сложные приложения iPhone. В любом случае, приложение D, «Ресурсы» поможет вам продвинуться в нужном направлении.

Часть I. Язык Objective-C 2.0 Глава 2. Программирование на Objective-C

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

Для начала рассмотрим простую программу, которая выводит на экране фразу «Programming is fun!» (Программировать весело!). Эту задачу выполняет программа «Программа 2.1», приведенная ниже. // First program example (Первый пример программы) #import int main (int argc, const char * argv[]) < NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; NSLog ((@"Programming is fun!"); [pool drain]; return 0; >2.1. Компиляция и выполнение программ

Прежде чем приступить к подробному описанию программы, рассмотрим ее компиляцию и выполнение. Для компиляции и выполнения этой программы можно использовать Xcode или компилятор GNU Objective-C в окне Terminal. Мы рассмотрим оба метода, чтобы вы могли решить, каким из них будете работать с программами в остальной части книги.

Примечание. Соответствующие средства уже предустановлены на всех Маках, которые поставляются с системами OS X. Если вы устанавливаете OS X отдель-но, установите также Developer Tools. Xcode

Xcode – это мощное приложение, позволяющее вводить, компилировать, от-лаживать и выполнять программы. Если вы намерены разрабатывать приложения на Маке, вам необходимо освоить это мощное инструментальное средство. Здесь вы только ознакомитесь с ним, в дальнейшем мы разработаем с его помо-щью одно графическое приложение. Xcode находится в папке Developer внутри подпапки Applications. На рис. 2.1 показан значок Xcode. Запустите Xcode. В меню File (Файл) выберите New Project (Новый проект), см. рис. 2.2.

Рис. 2.1. Значок Xcode

Появится окно, показанное на рис. 2.3.

Рис. 2.2. Запуск нового проекта

Рис. 2.3. Запуск нового проекта: выбор типа приложения

Выполните прокрутку в левой панели, пока не появится Command Line Utility (Утилита командной строки). В правой панели выделите Foundation Tool. Теперь появится окно, показанное на рис. 2.4.

Рис. 2.4. Запуск нового проекта: создание инструмента Foundation

Щелкните на Choose (Выбрать). Появится новое окно (рис. 2.5).

Рис. 2.5. Окно списка файлов Xcode

Мы назовем эту программу progl. Введите это имя в поле Save As (Сохранить как). Возможно, для проектов этой книги следует создать отдельную папку. Я держу проекты для этой книги в папке ObjC Progs.

Щелкните на кнопке Save (Сохранить), чтобы создать новый проект. По-явится окно проекта (рис. 2.6).

Ваше окно может выглядеть по-другому, если вы уже работали с Xcode или изменяли какие-то параметры Xcode.

Теперь пора ввести первую программу. Выберите файл progl.m в правой вер-хней панели. Окно Xcode показано на рис. 2.7.

В таблице 2.1 приводится список распространенных расширений имен файлов. Расширение имени для исходных файлов Objective-C – .m.

Табл. 2.1. Распространенные расширения имен файлов Расширение Описание .c Исходный файл на языке С .cc, .cpp Исходный файл на языке C++ .h Файл заголовка (Header) .m Исходный файл Objective-C .mm Исходный файл Objective-C++ .pl Исходный файл Perl .o Объектный (компилированный) файл

Рис. 2.6. ОКНО проекта Xcode prog1

Рик. 2.7. Файл progl.m и окно редактирования (edit)

В окне проекта Xcode (внизу справа) показан файл с именем progl.m, содержащий следующие строки: #import int main (int argc, const char * argv[]) < NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; // insert code here. (введите здесь код) NSLog (@"Hello World!"); [pool drain]; return 0; >

Примечание. Если у вас не отображается содержимое этого файла, попробуйте щелкнуть и вытянуть нижнюю правую панель, чтобы снова появилось окно ре-дактирования. Это может произойти, если вы уже работали с Xcode.

В этом окне Xcode предоставляет файл шаблона, который вы можете редак-тировать. Внесите изменения, соответствующие тексту программы 2.1. Строка в начале файла progl .m, которая начинается с двух слэшей (//), называется ком-ментарием; ниже мы поговорим о них более подробно.

Ваша программа в окне редактирования должна выглядеть следующим об-разом. // First program example #import int main (int argc, const char * argv[])

Обратите внимание на цвета текста. Xcode выделяет разными цветами зна-чения, зарезервированные слова и т.д.

Теперь можно скомпилировать и выполнить программу. В терминологии Xcode эти этапы называются build and run (Сборка и выполнение). Сначала следует сохранить программу, выбрав пункт Save в меню File. Если попытаться ском-пилировать и выполнить программу без сохранения файла, Xcode спросит, хотите ли вы сохранить его.

В меню Build (Сборка) можно выбрать Build или Build and Run. Выберите второй вариант, поскольку программа, скомпилированная без ошибок, будет выполнена автоматически.

Можно также щелкнуть на значке Build and Go, который показан в панели инструментов.

Примечание. Build and Go означает «Выполнить сборку и затем запустить пос-леднюю операцию, которую я просил выполнить». Это может быть Run, Debug, Run with Shark or Instruments и т.д. При первом использовании для проекта Build and Go означает «собрать и выполнить программу» (Build and Run). Однако в дальнейшем «Build and Go» и «Build and Run» не всегда означают одно и то же.

Если в программе имеются ошибки, то на этом этапе вы увидите сообщение об ошибках. Вернитесь назад, исправьте ошибки и повторите процесс. После устранения всех ошибок появится окно progl – Debugger Console (Консоль отладчика). Это окно содержит выходные результаты программы (рис. 2.8). Если это окно не появляется автоматически, перейдите в линейку главного меню и выберите Console в меню Run. Содержимое окна Console будет описано ниже.

Рис. 2.8. Окно Xcode Debugger Console

Вы закончили процедурную часть компиляции и выполнения программы с помощью Xcode. Ниже приводится последовательность шагов для создания новой программы с помощью Xcode.

Запустите приложение Xcode.

Если это новый проект, выберите File, New Project.

Для типа приложения выберите Command Line Utility, Foundation Tool и щел-кните на кнопке Choose.

Выберите имя проекта и папку для сохранения в ней файлов проекта. Щел-кните на кнопке Save.

В верхней правой панели вы увидите файл progl.m (или то имя, которое вы назначили своему проекту, с расширением имени .т). Выделите этот файл. Введите текст программы в окне редактирования (edit), которое появится непосредственно под этой панелью.

Сохраните изменения, выбрав File, Save.

Запустите сборку и выполнение приложения, выбрав Build, Build and Run или щелкнув на кнопке Build and Go.

В случае ошибок при компиляции внесите в программу изменения и повторите шаги 6 и 7. Приложение Terminal

Если вы привыкли использовать оболочку UNIX и средства командной строки, то можете редактировать, компилировать и выполнять программы, используя приложение Terminal. Ниже описывается, как это делать.

Первый шаг – это запуск приложения Terminal на вашем Маке. Приложение Terminal находится в папке Applications внутри Utilities. На рис. 2.9 показан его значок.

Запустите приложение Terminal. Появится окно, аналогичное рис. 2.10.

Рис. 2.9. Значок программы Terminal

Команды вводятся в каждой строке после символа $ (или % – в зависимости от настройки вашего приложения Terminal). Это вполне понятно, если вы знакомы с использованием UNIX,

Сначала нужно ввести в файл строки из программы 2.1. Можно начать с со-здания папки, в которой будут сохраняться примеры ваших программ. Затем для ввода вашей программы нужно запустить текстовый редактор, например, vi или emacs. sh-2.05a$ mkdir Progs # Создание папки для сохранения программ sh-2.05a$ cd Progs # Переход в новую папку sh-2.05a$ vi progl.m # Запуск текстового редактора для ввода программы

Рис. 2.10. Окно Terminal

Примечание. В показанном примере и в остальной части книги команды, которые вводятся пользователем, выделены полужирным начертанием.

Для файлов Objective-C можно выбрать любое имя, но в конце имени должны стоять символы .т, которые указывают компилятору, что используется Objective-C.

Для файла с текстом программы можно выполнять компиляцию и сборку с помощью компилятора GNU Objective-C, который называется дсс. Команда дсс имеет следующий формат: gcc -framework Foundation файлы -о имя_программы

Опция -framework Foundation указывает, что используется информация о Foundation framework.

Эта опция должна быть указана в командной строке. Файлы – это список файлов для компиляции. В нашем примере такой файл только один (с именем progl.m). Имя_программы – это имя исполняемого файла, который будет создан, если файл скомпилируется без ошибок.

Эта программа называется prog 1. Ниже приводится командная строка для компиляции этой программы: $ gcc -framework Foundation progl .m -о progl # Компилировать progl.m и назвать ее prog 1 $

Возврат символа командной строки без каких-либо сообщений означает, что в программе не обнаружено ошибок. Вы можете выполнить такую программу, введя имя progl в командной строке: $ progl Выполнение progl sh: prog 1: command not found (команда не найдена) $

Вы можете получить этот результат, если раньше не использовали Terminal. Оболочка UNIX (то есть приложение, выполняющее вашу программу), «не зна-ет», где находится progl (мы не будем подробно объяснять это здесь). Есть два варианта решения этой проблемы. Первый – поставить перед именем программы символы ./, чтобы оболочка искала программу в текущей папке. Второй– добавить папку, в которой хранится ваша программа (или просто текущей папки), к переменной оболочки PATH. Мы используем первый способ: $ ./progl Выполнение progl 2008-06-08 18:48:44.210 progl [7985:10b] Programming is fun! $

Написание и отладка программ Objective-C из среды Terminal – вполне до-пустимый, но стратегически ошибочный подход. Приложения Mac OS X или iPhone – это не просто исполняемый файл, который должен быть «упакован» в пакет приложения. Создать такие приложения из приложения Terminal очень нелегко, в отличие от специализированной среды Xcode. Поэтому далее мы зай-мемся изучением Xcode как среды для разработки ваших программ. 2.2. Объяснение вашей первой программы

Познакомившись с компиляцией и выполнением программы Objective-C, рас-смотрим эту программу более подробно. Еще раз приведем ее текст. // First program example (Первый пример программы) #import int main (int arge, const char * argv[])

В Objective-C прописные и строчные буквы различаются. Кроме того, для Objective-C не имеет значения, с какого места строки вы начинаете ввод: вводить символы можно с любой позиции строки. Это позволяет сделать программы более удобными для чтения.

В первой строке программы мы встречаем понятие комментария: // First program example

Комментарий используется для документирования программы и удобства ее чтения. Из комментариев читатель программы (программист или человек, поддерживающий программу) видит назначение и логику определенной про-граммы или последовательности операторов.

Комментарии можно вставлять в программу Objective-C двумя способами. Один из них – это использование двух последовательных слэшей (//). Компилятор игнорирует все символы после слэшей, вплоть до конца строки.

Комментарий можно также инициировать с помощью символов / и . Ком-ментарий начинается с символов / и завершается символами / с любым числом предшествующих пробелов. Все символы между открывающими / и зак-рывающими */ считаются частью комментария и игнорируются компилятором Objective-C. Эта форма комментария часто используется, если комментарий занимает несколько строк: /* Этот файл реализует класс с именем Fraction, который представляет дробные числа. Используются методы, которые позволяют работать с дробями, например, addition (сложение), subtraction (вычитание) и т.д. Более подробную информацию см. в документе: /usr/docs/classes/fractions.pdf */

Вы сами выбираете стиль комментариев. Вложенность комментариев в стиле /* не допускается.

Цукерберг рекомендует:  Python - FTP Python

Имеются три причины для того, чтобы вставлять комментарии в программу. Во-первых, намного проще документировать программу, когда вы еще держите в уме ее логику, чем восстанавливать ее логику после того, как программа завершена. Во-вторых, при вставке комментариев на ранних стадиях вы облег-чаете себе этап отладки, когда происходит выявление и отладка ошибок. Ком-ментарий не только помогает вам (и другим) в чтении программы, но и помогает выяснять путь к источнику логической ошибки. И последнее – я не встречал ни одного программиста, которому нравилось бы документирование программы, так что после окончания отладки программы вы вряд ли займетесь вставкой комментариев. Менее скучно – вставлять их при разработке программы.

В следующей строке программы 2.1 вы указываете компилятору, что нужно найти и обработать файл с именем Foundation.h: #import

Это системный файл. #import указывает, что нужно импортировать или включить в программу информацию из этого файла так, как если бы ввели ее в этом месте вручную. Импорт файла Foundation.h выполняется потому, что он содержит классы и функции, используемые в этой программе.

Следующая строка указывает, что программа имеет имя main: int main (int argc, const char *argv[])

Это специальное имя, которое указывает, где должно начаться выполнение программы. Зарезервированное слово int, которое поставлено перед main, ука-зывает тип значения, которое возвращает main – целое (более подробно об этом см. ниже). Между открывающей и закрывающей круглыми скобками находятся аргументы командной строки, которые мы будем рассматривать в главе 13.

iOS-разработка для начинающих: учимся создавать приложения для iOS с нуля

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

В сегменте мобильных технологий, без сомнения, лидирует Apple со своим смартфоном iPhone. На прошедшей в сентябре презентации компания из Купертино продемонстрировала уже 7-ю версию мобильного девайса. Вместе с ней Apple представила новую версию мобильной операционной системы iOS 10. Теперь это самая значимая операционка в мире, как и ее предшественницы. Из этого следует, что изучение разработки для iOS — самое выгодное вложение времени и средств.

«Яблочная» экосистема

Сегодня мы займемся разработкой простого мобильного приложения для iOS. Конечно, лучше всего для этого подходит родной Mac. Но если ты сторонник Windows или у тебя просто нет Мака, можно установить операционную систему macOS под виртуальную машину в Windows. На просторах Сети тебе не составит большого труда найти специально заточенную под PC версию macOS, в народе называемую Хакинтош. Смело ставь ее на виртуалку VMware, VirtualBox — на твой выбор. Сразу предупрежу, что на PC-клавиатуре нет части клавиш, которые есть на Mac-клаве, и многие их сочетания нажать в Хакинтоше невозможно. Это изрядно портит настроение. В остальном все описанные ниже операции можно успешно выполнить на Хакинтоше.

Необходимые знания

Чтобы программировать вообще и для iOS в частности, надо довольно много знать. Математика и логика, может, и не понадобятся вначале, но будут востребованы потом. Современные технологии избавили программиста от необходимости досконально знать архитектуру компьютера, однако понимать базовые механизмы, такие как системы счисления, их преобразование, скорость работы подпрограмм или эффективность алгоритмов (большое O), необходимо.

На более высоком уровне iOS-разработчику надо глубоко знать операционную систему macOS и собственно саму iOS. Также тебе обязательно надо освоить «яблочный» язык программирования. Знание Delphi, C++, C# или VB.NET тебе не сильно поможет. У Apple своя экосистема со своими языками: Objective-C и Swift. Конечно, знание C++ еще никому не навредило, программы и вставки на нем встречаются везде, даже у Apple. Но самый используемый по определению Objective-C, просто потому, что появился гораздо раньше (в середине восьмидесятых годов прошлого века), тогда как Swift лишь два года назад (в 2014-м). Apple возлагает большие надежды на новый язык и много инвестирует в него. Для поддержки старого софта используется Objective-C, а новый пишется на Swift. Поэтому тебе неплохо знать оба.

Чтобы не тратить время зря, все эти языки программирования можно изучить под чутким контролем преподавателей на сайте GeekBrains.

Инструменты для разработки

Как ты знаешь, главный инструмент разработчика под macOS и вместе с ней iOS — среда программирования Xcode. Она включает средства для создания приложений для Mac, iPhone, iPad, Apple TV, Apple Watch. Все платформы Apple. Xcode содержит средство построения интерфейса (Interface Builder), редактор кода, поддерживающего все современные средства работы с кодом. Кроме того, не выходя из Xcode, можно протестировать приложение; если оно разрабатывается для внешнего устройства, то его можно запустить в эмуляторе.

В систему включены эмуляторы всех устройств, новые версии которых можно докачать. В дополнение Xcode содержит графические инструменты для анализа производительности приложения, включая средства диагностирования загруженности CPU, использования накопителя (HDD, SDD и другие), нагрузки на графический адаптер (со стороны OpenGL).

13 сентября вышла новая, горячо ожидаемая версия среды разработки 8.0. Стабильные версии можно бесплатно скачать в App Store. Альфы и беты распространяются по подписке разработчика. Восьмая версия вобрала в себя: новую версию языка Swift 3, средство изучения Swift Playground для iPad, новую версию Interface Builder, которая стала быстрее работать и позволяет просматривать макет приложения на разных платформах, без необходимости развертывать на симуляторе само приложение.

Если у тебя старая версия Xcode, то рекомендуем обновить, поскольку мы будем использовать последнюю версию. Скачать ее можно из App Store:

Xcode 8 в Mac App Store


Xakep #246. Учиться, учиться, учиться!

На Xcode 8 можно разрабатывать приложения для macOS Sierra, iOS 10, watchOS 3 и tvOS 10. Имеются все SDK. Новые версии операционок стали последовательно появляться аккурат после презентации Apple, состоявшейся в начале сентября.

Язык Objective-C

Кратко вспомним основные сведения о языке. Objective-C — компилируемый объектно ориентированный язык программирования, используемый для написания приложений под «яблочные» системы. Представляет собой надмножество или, другими словами, надстройку над C, унаследовав от последнего синтаксис, типы данных, способы контроля за ходом выполнения программы и добавив к нему возможности объектно ориентированного программирования — описание классов и методов.

Как в C++, в Objective-C центральную роль играют объекты, с которыми связаны четыре парадигмы: абстракция, инкапсуляция, наследование, полиморфизм. Язык C++ является строго типизированным, тогда как Objective-C — слабо типизированный или обладает динамической системой типов данных. Подобно Smalltalk, в Objective-C объектам посылаются сообщения. Это исключительная возможность динамических языков, так как тип объектов проверяется во время исполнения программы, а не во время компиляции.

Описание языка Objective-C занимает не один объемистый томик. Поэтому, чтобы получить объективные знания, удобно пройти курс «Mobile-разработчик». Целый раздел курса посвящен этому языку.

Разработка приложения для iOS

В качестве семпла мы разработаем весьма простое приложение. Не будем отступать от священной традиции, поприветствуем мир. Однако с учетом того, что у нас графическое приложение, мы немного разнообразим его: добавим кнопку, нажимая которую будем отображать или скрывать надпись «Hello, World».

Запусти Xcode, в появившемся окне выбери Create new project или в главном меню File -> New -> Project. В следующем окне будет предложено выбрать целевую платформу и тип приложения.

Мастер создания приложений

В данном случае нас интересует платформа iOS. На выбор представлено семь типов приложений. Шесть из них — заготовки типичных приложений операционной системы iOS, по умолчанию содержащие разный набор компонентов. Седьмой тип — игра.

Типы приложений

  • Заготовка Single View Application предназначена для простого приложения с одним экраном. Заготовка включает компонент View Controller, который позволяет настроить вид приложения с помощью конструктора форм Interface Builder.
  • Master Detail Application создает приложение, где в табличном представлении отображается коллекция объектов. После выбора одного из них показываются подробные сведения об этом объекте. Первый вид — мастер, второй — детализация.
  • С помощью Page-Based Application создаются приложения, имеющие несколько экранов, как страницы в книге. Следовательно, из этой заготовки создаются, например, читалки.
  • Tabbed application позволяет создавать приложения, где на каждый экран можно переключиться в любой момент, то есть у каждого экрана есть своя кнопка для его активации, на которой отображается заголовок. В качестве примера можно привести iTunes.
  • Game служит для создания заготовки игры. На выбор предлагаются четыре фреймворка для создания игры: SpriteKit, SceneKit, OpenGL ES, Metal. Вкратце рассмотрим их.
    SpriteKit представляет собой систему для двумерной визуализации и анимации текстурированных прямоугольников — спрайтов. При отображении кадров используется стандартный цикл, кадр выводится после того, как обработку пройдет все содержимое сцены.
    SceneKit — высокоуровневый фреймворк для визуализации трехмерной графики без помощи OpenGL. Он поддерживает загрузку, манипуляцию трехмерными объектами. В него включены: физический движок, генератор частиц и легкий способ скриптования.
    OpenGL ES — стандарт в области компьютерной графики. Позволяет визуализировать 2D- и 3D-сцены. Позволяет описать пайплайн для видеокарты: вершины проходят преобразование, собираются в примитивы, которые растеризуются в двумерное изображение и выводятся на экран. В пайплайн можно включить программируемые шейдеры.
    Metal — представляет собой низкоуровневый API, который позволит тебе выжать все мощности из твоего видеоадаптера. Отлаженные API вместе с предкомпилированными шейдерами и многопоточностью позволяют твоей игре подняться на новый уровень производительности и качества.
  • Sticker Pack Application — новый вид приложений, появившийся в iOS 10 и Xcode 8. Представляет собой набор простых или анимированных изображений, используемых в новом iMessage. Для своего создания не требует кодирования.
  • iMessage Application — новый вид приложений, появившийся в iOS 10 и Xcode 8. Позволяет создавать дополнения для iMessage, например для покупки и загрузки твоего пакета стикеров. Также можно, воспользовавшись API iMessage, создать свой аналог данного приложения, включая проигрывание аудио, видео, использование стикеров и другое.

Создание первого проекта

В качестве заготовки для нашего приложения выберем Single View Application. Поскольку мы не будем разрабатывать большую программу, нам хватит предоставляемой этой заготовкой средств. Нажимаем Next. На следующей странице мастера надо ввести имя проекта, к примеру ShowLab. В ниспадающем списке Language оставим выбранный по умолчанию язык — Objective-C. Далее в ниспадающем списке Devices оставим выбор Universal. Здесь определяется, для какого устройства (iPhone или iPad) создается приложение. Пункт Universal означает для обоих. Снимем флажки Include Unit Tests и Include UI Tests, нам никакие тесты не нужны. Next. Выберем папку для сохранения проекта. Теперь жми кнопку Create.

В результате откроется окно со списком всех примененных к проекту параметров. В этом окне можно изменить установленные ранее в мастере параметры: ориентацию, целевой девайс и прочее.

Сначала нам надо создать интерфейс приложения. Для этого одним кликом выбери файл Main.storyboard в списке слева (если этот файл не видно, разверни содержимое папки ShowLab). Правее списка все окно займет Interface Builder. В центре отобразится макет устройства. В правом нижнем углу окна находится панель компонентов. Перетащи оттуда на макет компоненты Label и Button. Выше панели компонентов находится список свойств. Если у тебя он отсутствует, нажми кнопку Show the Attributes Inspector, находящуюся под заголовком окна в правой части интерфейса.

Выдели в макете компонент Label и настрой его свойство Text: в ниспадающем списке оставь выбор Plain, в строку ниже введи нужную надпись, в нашем случае «Hello, World». Если текст не помещается в границы надписи, измени их, перетаскивая маркеры на краях компонента. Чтобы централизовать его по горизонтали, перейди на страницу Size Inspector, нажав на кнопку Show the Size Inspector (справа от Show the Attributes Inspector). На этой странице из ниспадающего списка Arrange выбери пункт Center Horizontally in Container.

Теперь выбери компонент Button, измени его свойство Text на желаемую метку — Switch. Отцентрировать можешь так же, как описано выше.

Создаем связь между графическими элементами и кодом

В Visual Studio (или Delphi) объект в коде создается автоматически в тот момент, когда кладешь визуальный компонент на форму. В Xcode этого не происходит, но это не создает проблем.

Открой содержимое заголовочного файла ViewController.h в отдельном окне, дважды щелкнув на нем. В этом файле находится объявление расширения класса UIViewController, помечается ключевым словом @interface. Такая возможность была добавлена во вторую версию Objective-C. Теперь выполни такой трюк: перемести курсор мыши на компонент — текстовую метку, зажми клавишу Ctrl и левую кнопку мыши. Перемести курсор в окно с кодом (файл ViewController.h), за курсором потянется синяя линия. Отпусти мышь и клавишу внутри описания интерфейса ViewController.

Появится окно создания Outlet’а.

Это свойство объекта, которое ссылается на другой объект (в данном случае визуальный компонент). Тебе надо ввести имя объекта Outlet, по нему ты будешь обращаться к визуальному компоненту, пускай будет lab. Далее выбирается тип объекта, он выбран правильно: UILabel.

Еще ниже в списке Storage выбирается тип ссылки на объект: weak или strong. Если выбрать strong, то объект, на который указывает свойство, будет существовать до тех пор, пока свойство указывает на него, в таком случае он не сможет автоматически удалиться, когда перестанет использоваться. С другой стороны, когда действует слабая ссылка (weak), объект может самоуничтожиться. Итак, выбираем тип ссылки weak и жмем кнопку Connect. В итоге в код добавится такая строка:

Убеждаемся, что Outlet — это свойство.

Теперь создадим Outlet для кнопки. Алгоритм остался прежним. Только для свойства Name надо ввести другое имя, например but. В код будет добавлена строка:

В результате имеем два указателя на визуальные компоненты: lab и but — соответственно, надпись и кнопку. Теперь, используя указатели, мы можем манипулировать компонентами в коде.

Затем надо создать обработчик события нажатия кнопки. Для этого в отдельном окне открой файл реализации ViewController.m. Точно таким же образом, как ты перетаскивал линию в заголовочный файл для создания аутлета, от кнопки перетащи линию в файл реализации и отпусти до закрывающей командной скобки — @end. Появится окно для создания события, подобное окну создания аутлета. Видишь разницу: в заголовочном файле создается ссылка на объект, в файле реализации — метод.

Создание обработчика события

Заполни поле Name, его значение представляет имя свойства — метода. Пусть будет onClick. Значение поля Type оставь по умолчанию — id. В языке Objective-C данный тип является предком для всех остальных. В ниспадающем списке Event выбрано по умолчанию событие Touch Up Inside, которое происходит в момент отпускания указателя (мыши, пальца. ) над кнопкой, то есть заключительная стадия нажатия кнопки. Это то, что нам нужно. В списке Arguments оставим значение по умолчанию: Sender — это объект, отправивший данный сигнал, в нашем случае им всегда будет кнопка. Жмем кнопку Connect. В итоге будет добавлен следующий код:

Минус в начале означает закрытый метод (private). Ключевым словом IBAction помечаются события (методы) визуальных компонентов из Interface Builder.

Между командными скобками напишем выполняемый при нажатии кнопки код:

В этой строчке кода мы инвертируем значение свойства hidden. Оно имеет тип BOOL, который располагает двумя значениями: YES — истина и NO — ложь (несколько непривычно Windows-программерам, где true и false).

Обрати внимание на символ подчеркивания, стоящий перед именем объекта — надписи (_lab). Без него компиляция завершится с ошибкой. Символ подчеркивания добавляется автоматически для объектов, содержащихся в других объектах; то есть в данном случае объект lab содержится в объекте ViewController. Раньше это было условное правило, используемое для различия объектов, объявленных в качестве членов класса, и локальных объектов. А теперь это строгое правило, реализованное в компиляторе языка.

Сейчас можно скомпилировать приложение и запустить его на симуляторе. Мы выбрали симулятор для iPhone 7, входящий в Xcode 8. Кнопка компиляции и запуска представляет собой черный прямоугольник и находится на панели вверху интерфейса.

После компиляции приложения, запуска симулятора и загрузки нашего приложения на экране симулятора отобразится его интерфейс: надпись «Hello, World» и кнопка Switch. Если нажать последнюю, надпись исчезнет, при повторном нажатии она появится вновь.

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

Язык Swift

В 2014 году Apple представила новый язык программирования — Swift. Он быстро стал самым обсуждаемым и наиболее динамично развивающимся языком в мире. Это надежный, безопасный, интуитивно понятный язык для разработки приложений под операционные системы macOS, iOS, tvOS и watchOS для всего парка устройств от Apple. Swift — эффективный язык программирования. Его легче изучать, чем его предшественника — Objective-C, в то же время Swift позаимствовал из него самые удачные идеи. Вместе с тем разработчики сделали языки совместимыми, то есть в одной программе может быть код как на Swift, так и на Objective-C. В мире имеются миллиарды строк кода и сотни тысяч унаследованных программ, написанные на Objective-C, поэтому от его поддержки точно не будут отказываться.

При разработке Swift ставилась цель создать самый удобный язык системного программирования — быстрый, безопасный и выразительный.

Алгоритм на языке Swift работает в 2,6 раза быстрее, чем такой же алгоритм на Objective-C, и в 8,4 раза быстрее, чем на Python. Использование Swift делает процесс разработки программ более гибким и удобным.

Благодаря своему экспоненциальному развитию, 3 декабря 2015 года язык Swift был передан в сообщество открытых исходников. При этом Apple строго следит за его развитием, организовав комитет для его разработки. Теперь Swift доступен не только в системах Apple, но также в Linux. Все дополнительные инструменты для работы с языком, включая отладчик, стандартную библиотеку, менеджер пакет, тоже свободные и открытые.

За этим языком будущее. Более подробные сведения о нем ты сможешь узнать из упомянутого курса от GeekBrains «Мобильный разработчик», в нем целый месяц отведен на изучение данного языка программирования.

App Store

Попросту говоря, App Store — это магазин контента для всего спектра Apple-девайсов. Здесь можно купить игры и приложения как от больших компаний, так и от независимых разработчиков. Каждый разработчик, в какой бы стране он ни жил, может продавать или распространять бесплатно свои программы на этой площадке цифровой дистрибуции. Чтобы начать это делать, надо зарегистрироваться как разработчик и купить лицензию для продажи своих приложений. Это плата за предоставляемый сервис и развитие магазина App Store.

Итоги

Мы разработали простое приложение для мобильной операционной системы iOS, используя для этого систему программирования Xcode вместе с языком Objective-C. Протестировали готовое приложение на симуляторе iPhone 7. Мы узнали, как построить пользовательский интерфейс с помощью Interface Builder, как связать графические элементы с кодом приложения, как создать обработчики событий. Познакомились с основами Objective-C. Кроме того, мы обратили внимание на перспективный язык Swift, используемый для разработки мощных и безопасных приложений для «яблочной» экосистемы.

Однако изученный материал — это только начало. Чтобы интенсивно прокачаться в направлении мобильного кодинга и разработки реально продаваемых приложений, мы рекомендуем пройти курс «Mobile-разработчик» на сайте наших друзей GeekBrains.

Это достойный курс: пройдя его, ты точно не потратишь время зря. Он начинается с двух подробных курсов по языку Java, затем следует изучение базового программирования под мобильную операционную систему Android. Далее курс по базам данных в общем и языку SQL в частности. Затем углубленный курс по разработке профессиональных приложений для Android. После этого вектор изучения перейдет в сторону Apple-систем: два подробных курса по языку Objective-C и полезный курс по Swift.

Лекции курса ведут профессиональные преподаватели, имеющие большой опыт в разработке программного обеспечения. Если что-то непонятно, можно, не откладывая, задать вопрос. Вообще, обучение на GeekBrains — живой процесс, можно общаться, задавать вопросы, помогать с ответами. Для проверки полученных знаний преподаватели выдают домашнее задание, которое затем проверяется. После прохождения обучения тебя ждет гарантированная стажировка в IT-компании. А дальше все зависит от тебя, если ты покажешь себя как грамотный специалист, тебя пригласят на работу.

Специальный проект с компанией GeekBrains

Programming in Objective-C (2014)Автор: Стивен

Programming in Objective-C (2014)
Автор: Стивен Кочан

#objective-c@proglib #books@proglib #english@proglib #beginner@proglib

Целевая аудитория: начинающие разработчики.

В настоящее время программирование под платформы iOS, Mac OS X, Linux, Unix и Windows осуществляется с помощью C-подобного объектно-ориентированного язык программирования Objective-C. Именно с этой книги следует начать знакомство с данным языком любому начинающему системному разработчику. Автор приводит понятные примеры и объяснения к нему. Также приводится процесс разработки приложения для iOS с помощью фреймворка iOS SDK и обзор других популярных фреймворков, таких как Foundation и Cocoa Touch.

В книге рассматриваются следующие темы:
фреймворк Foundation;
Cocoa, Cocoa Touch и iOS SDK;
типы данных, циклы и функции;
классы и объекты;
динамическое программирование и многое другое.

Преимущества:
многочисленные примеры.

Try Objective-с

Программирование для мобильных устройств на iOS. А. Аллан

[xfvalue_name]

Эта книга поможет вам быстро освоить программирование под iOS и научит создавать приложения для устройств iPhone, iPad и iPod Touch.

Подробно описывается процесс разработки приложения для iOS: от первого запуска Xcode до загрузки приложения в магазин App Store.
Также вы познакомитесь с языком Objective-C и основными библиотеками, необходимыми при разработке для iOS.

[xfvalue_img]
  • Просмотров: 21924
  • Автор: M >

С++ для начинающих. Шаг за шагом. Герберт Шилдт

[xfvalue_name]

Предлагаемая книга представляет собой самоучитель, который шаг за шагом расскажет о всех основных понятиях языка С++, включая:
— переменные,
— инструкции управления,
— функции,
— типы и массивы данных,
— классы и объекты.

Кроме того, вы узнаете о перегрузках, управлении исключениями, наследовании, виртуальных функциях, полиморфизме, вводе/выводе.

Рассмотрены и более сложные средства языка, такие как шаблоны и пространства имен. Начинайте программировать прямо сейчас — данная книга поможет вам в этой работе.

[xfvalue_img]
  • Просмотров: 6138
  • Автор: M >

Регистрация в качестве разработчика приложений apple

Рассмотрим вариант регистрации в качестве разработчика приложений для устройств Apple.

Зарегистрировавшись в качестве разработчика вы сможете скачать дополнительные модули расширяющие функционал среды разработки Xcode
Ранее мы с вами уже рассматривали способы установки данной среды разработки:
— через App Store
— с сайта Apple

Если вы готовы к ежегодной плате 99 USD в качестве разработчика приложений для устройств apple, на странице » Programs » вам необходимо выбрать область разработки, в которой вы будете программировать в дальнейшем.

  • Просмотров: 4378
  • Автор: M >

Полный справочник по C++. Герберт Шилдт

[xfvalue_name]

В четвертом издании этой книги полностью описаны и проиллюстрированы все ключевые слова, функции, классы и свойства языка С++, соответствующие стандарту ANSI/ISO.

Информацию, изложенную в книге, можно использовать во всех современных средах программирования.
Освещены все аспекты языка С++, включая его основу — язык С.

Справочник состоит из пяти частей:

[xfvalue_img]
  • Просмотров: 5001
  • Автор: M >

Язык Си с примерами. Самюел П. Харбисон, Гай Л. Стил

[xfvalue_name]

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

В книгу входят описания стандарта Си 1999, стандарта Си 1989, традиционного Си и Си, совместимого с Си++.
Рассмотрен синтаксис языка, препроцессор, типы, выражения, операторы и функции.
Текст содержит множество тщательно проверенных и подробно откомментированных примеров.

[xfvalue_img]
  • Просмотров: 4677
  • Автор: M >

Как научиться программировать на языке С++ (+ CD-ROM). Фрэнсис Глассборо, Роберта Аллен

[xfvalue_name]

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

Авторы стремятся не столько научить читателя всем тонкостям языка C++, сколько продемонстрировать, что даже не владеющий ни математикой, ни программированием пользователь может писать полезные и нетривиальные программы.

[xfvalue_img]
  • Просмотров: 9257
  • Автор: M >

Установка Xcode — интегрированной среды разработки от фирмы Apple (IDE)

Иногда можно встретить другую аббревиатуру:

Мы уже встречались с вами с IDE — когда рассматривали среду разработки Python.

Итак напомню, что обычно IDE включает в себя:
— текстовый редактор
— компилятор и/или интерпретатор
— средства автоматизации сборки
— отладчик.

  • Просмотров: 4209
  • Автор: M >

C/C++ в задачах и примерах (+ CD-ROM). Н. Культин

[xfvalue_name]

Книга представляет собой сборник примеров и задач по программированию на языке C/C++:
— типовых — ввод-вывод,
— управление вычислительным процессом,
— работа с массивами,
— поиск и сортировка, а также тех, которые обычно не входят в традиционные курсы:
— работа со строками и файлами,
— программирование графики,
— рекурсия.

Для большинства задач приведены решения — хорошо документированные исходные тексты программ.

[xfvalue_img]
  • Просмотров: 3285
  • Автор: M >

1.21 Системные ошибки в процессе отладки программы

  • Просмотров: 2794
  • Автор: M >

Самоучитель C++. В. В. Тимофеев

[xfvalue_name]

Книга содержит краткое, но достаточно полное и точное описание языка C/C++ стандарта ANSI.

iOS-разработка для начинающих: учимся создавать приложения для iOS с нуля

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

В сегменте мобильных технологий, без сомнения, лидирует Apple со своим смартфоном iPhone. На прошедшей в сентябре презентации компания из Купертино продемонстрировала уже 7-ю версию мобильного девайса. Вместе с ней Apple представила новую версию мобильной операционной системы iOS 10. Теперь это самая значимая операционка в мире, как и ее предшественницы. Из этого следует, что изучение разработки для iOS — самое выгодное вложение времени и средств.

«Яблочная» экосистема

Сегодня мы займемся разработкой простого мобильного приложения для iOS. Конечно, лучше всего для этого подходит родной Mac. Но если ты сторонник Windows или у тебя просто нет Мака, можно установить операционную систему macOS под виртуальную машину в Windows. На просторах Сети тебе не составит большого труда найти специально заточенную под PC версию macOS, в народе называемую Хакинтош. Смело ставь ее на виртуалку VMware, VirtualBox — на твой выбор. Сразу предупрежу, что на PC-клавиатуре нет части клавиш, которые есть на Mac-клаве, и многие их сочетания нажать в Хакинтоше невозможно. Это изрядно портит настроение. В остальном все описанные ниже операции можно успешно выполнить на Хакинтоше.

Необходимые знания

Чтобы программировать вообще и для iOS в частности, надо довольно много знать. Математика и логика, может, и не понадобятся вначале, но будут востребованы потом. Современные технологии избавили программиста от необходимости досконально знать архитектуру компьютера, однако понимать базовые механизмы, такие как системы счисления, их преобразование, скорость работы подпрограмм или эффективность алгоритмов (большое O), необходимо.

На более высоком уровне iOS-разработчику надо глубоко знать операционную систему macOS и собственно саму iOS. Также тебе обязательно надо освоить «яблочный» язык программирования. Знание Delphi, C++, C# или VB.NET тебе не сильно поможет. У Apple своя экосистема со своими языками: Objective-C и Swift. Конечно, знание C++ еще никому не навредило, программы и вставки на нем встречаются везде, даже у Apple. Но самый используемый по определению Objective-C, просто потому, что появился гораздо раньше (в середине восьмидесятых годов прошлого века), тогда как Swift лишь два года назад (в 2014-м). Apple возлагает большие надежды на новый язык и много инвестирует в него. Для поддержки старого софта используется Objective-C, а новый пишется на Swift. Поэтому тебе неплохо знать оба.

Чтобы не тратить время зря, все эти языки программирования можно изучить под чутким контролем преподавателей на сайте GeekBrains.

Инструменты для разработки

Как ты знаешь, главный инструмент разработчика под macOS и вместе с ней iOS — среда программирования Xcode. Она включает средства для создания приложений для Mac, iPhone, iPad, Apple TV, Apple Watch. Все платформы Apple. Xcode содержит средство построения интерфейса (Interface Builder), редактор кода, поддерживающего все современные средства работы с кодом. Кроме того, не выходя из Xcode, можно протестировать приложение; если оно разрабатывается для внешнего устройства, то его можно запустить в эмуляторе.

В систему включены эмуляторы всех устройств, новые версии которых можно докачать. В дополнение Xcode содержит графические инструменты для анализа производительности приложения, включая средства диагностирования загруженности CPU, использования накопителя (HDD, SDD и другие), нагрузки на графический адаптер (со стороны OpenGL).

13 сентября вышла новая, горячо ожидаемая версия среды разработки 8.0. Стабильные версии можно бесплатно скачать в App Store. Альфы и беты распространяются по подписке разработчика. Восьмая версия вобрала в себя: новую версию языка Swift 3, средство изучения Swift Playground для iPad, новую версию Interface Builder, которая стала быстрее работать и позволяет просматривать макет приложения на разных платформах, без необходимости развертывать на симуляторе само приложение.

Если у тебя старая версия Xcode, то рекомендуем обновить, поскольку мы будем использовать последнюю версию. Скачать ее можно из App Store:

Xcode 8 в Mac App Store

Xakep #246. Учиться, учиться, учиться!

На Xcode 8 можно разрабатывать приложения для macOS Sierra, iOS 10, watchOS 3 и tvOS 10. Имеются все SDK. Новые версии операционок стали последовательно появляться аккурат после презентации Apple, состоявшейся в начале сентября.

Язык Objective-C

Кратко вспомним основные сведения о языке. Objective-C — компилируемый объектно ориентированный язык программирования, используемый для написания приложений под «яблочные» системы. Представляет собой надмножество или, другими словами, надстройку над C, унаследовав от последнего синтаксис, типы данных, способы контроля за ходом выполнения программы и добавив к нему возможности объектно ориентированного программирования — описание классов и методов.

Как в C++, в Objective-C центральную роль играют объекты, с которыми связаны четыре парадигмы: абстракция, инкапсуляция, наследование, полиморфизм. Язык C++ является строго типизированным, тогда как Objective-C — слабо типизированный или обладает динамической системой типов данных. Подобно Smalltalk, в Objective-C объектам посылаются сообщения. Это исключительная возможность динамических языков, так как тип объектов проверяется во время исполнения программы, а не во время компиляции.

Описание языка Objective-C занимает не один объемистый томик. Поэтому, чтобы получить объективные знания, удобно пройти курс «Mobile-разработчик». Целый раздел курса посвящен этому языку.

Разработка приложения для iOS

В качестве семпла мы разработаем весьма простое приложение. Не будем отступать от священной традиции, поприветствуем мир. Однако с учетом того, что у нас графическое приложение, мы немного разнообразим его: добавим кнопку, нажимая которую будем отображать или скрывать надпись «Hello, World».

Запусти Xcode, в появившемся окне выбери Create new project или в главном меню File -> New -> Project. В следующем окне будет предложено выбрать целевую платформу и тип приложения.

Мастер создания приложений

В данном случае нас интересует платформа iOS. На выбор представлено семь типов приложений. Шесть из них — заготовки типичных приложений операционной системы iOS, по умолчанию содержащие разный набор компонентов. Седьмой тип — игра.

Типы приложений

  • Заготовка Single View Application предназначена для простого приложения с одним экраном. Заготовка включает компонент View Controller, который позволяет настроить вид приложения с помощью конструктора форм Interface Builder.
  • Master Detail Application создает приложение, где в табличном представлении отображается коллекция объектов. После выбора одного из них показываются подробные сведения об этом объекте. Первый вид — мастер, второй — детализация.
  • С помощью Page-Based Application создаются приложения, имеющие несколько экранов, как страницы в книге. Следовательно, из этой заготовки создаются, например, читалки.
  • Tabbed application позволяет создавать приложения, где на каждый экран можно переключиться в любой момент, то есть у каждого экрана есть своя кнопка для его активации, на которой отображается заголовок. В качестве примера можно привести iTunes.
  • Game служит для создания заготовки игры. На выбор предлагаются четыре фреймворка для создания игры: SpriteKit, SceneKit, OpenGL ES, Metal. Вкратце рассмотрим их.
    SpriteKit представляет собой систему для двумерной визуализации и анимации текстурированных прямоугольников — спрайтов. При отображении кадров используется стандартный цикл, кадр выводится после того, как обработку пройдет все содержимое сцены.
    SceneKit — высокоуровневый фреймворк для визуализации трехмерной графики без помощи OpenGL. Он поддерживает загрузку, манипуляцию трехмерными объектами. В него включены: физический движок, генератор частиц и легкий способ скриптования.
    OpenGL ES — стандарт в области компьютерной графики. Позволяет визуализировать 2D- и 3D-сцены. Позволяет описать пайплайн для видеокарты: вершины проходят преобразование, собираются в примитивы, которые растеризуются в двумерное изображение и выводятся на экран. В пайплайн можно включить программируемые шейдеры.
    Metal — представляет собой низкоуровневый API, который позволит тебе выжать все мощности из твоего видеоадаптера. Отлаженные API вместе с предкомпилированными шейдерами и многопоточностью позволяют твоей игре подняться на новый уровень производительности и качества.
  • Sticker Pack Application — новый вид приложений, появившийся в iOS 10 и Xcode 8. Представляет собой набор простых или анимированных изображений, используемых в новом iMessage. Для своего создания не требует кодирования.
  • iMessage Application — новый вид приложений, появившийся в iOS 10 и Xcode 8. Позволяет создавать дополнения для iMessage, например для покупки и загрузки твоего пакета стикеров. Также можно, воспользовавшись API iMessage, создать свой аналог данного приложения, включая проигрывание аудио, видео, использование стикеров и другое.

Создание первого проекта

В качестве заготовки для нашего приложения выберем Single View Application. Поскольку мы не будем разрабатывать большую программу, нам хватит предоставляемой этой заготовкой средств. Нажимаем Next. На следующей странице мастера надо ввести имя проекта, к примеру ShowLab. В ниспадающем списке Language оставим выбранный по умолчанию язык — Objective-C. Далее в ниспадающем списке Devices оставим выбор Universal. Здесь определяется, для какого устройства (iPhone или iPad) создается приложение. Пункт Universal означает для обоих. Снимем флажки Include Unit Tests и Include UI Tests, нам никакие тесты не нужны. Next. Выберем папку для сохранения проекта. Теперь жми кнопку Create.

В результате откроется окно со списком всех примененных к проекту параметров. В этом окне можно изменить установленные ранее в мастере параметры: ориентацию, целевой девайс и прочее.

Сначала нам надо создать интерфейс приложения. Для этого одним кликом выбери файл Main.storyboard в списке слева (если этот файл не видно, разверни содержимое папки ShowLab). Правее списка все окно займет Interface Builder. В центре отобразится макет устройства. В правом нижнем углу окна находится панель компонентов. Перетащи оттуда на макет компоненты Label и Button. Выше панели компонентов находится список свойств. Если у тебя он отсутствует, нажми кнопку Show the Attributes Inspector, находящуюся под заголовком окна в правой части интерфейса.

Выдели в макете компонент Label и настрой его свойство Text: в ниспадающем списке оставь выбор Plain, в строку ниже введи нужную надпись, в нашем случае «Hello, World». Если текст не помещается в границы надписи, измени их, перетаскивая маркеры на краях компонента. Чтобы централизовать его по горизонтали, перейди на страницу Size Inspector, нажав на кнопку Show the Size Inspector (справа от Show the Attributes Inspector). На этой странице из ниспадающего списка Arrange выбери пункт Center Horizontally in Container.

Теперь выбери компонент Button, измени его свойство Text на желаемую метку — Switch. Отцентрировать можешь так же, как описано выше.

Создаем связь между графическими элементами и кодом

В Visual Studio (или Delphi) объект в коде создается автоматически в тот момент, когда кладешь визуальный компонент на форму. В Xcode этого не происходит, но это не создает проблем.

Открой содержимое заголовочного файла ViewController.h в отдельном окне, дважды щелкнув на нем. В этом файле находится объявление расширения класса UIViewController, помечается ключевым словом @interface. Такая возможность была добавлена во вторую версию Objective-C. Теперь выполни такой трюк: перемести курсор мыши на компонент — текстовую метку, зажми клавишу Ctrl и левую кнопку мыши. Перемести курсор в окно с кодом (файл ViewController.h), за курсором потянется синяя линия. Отпусти мышь и клавишу внутри описания интерфейса ViewController.

Появится окно создания Outlet’а.

Это свойство объекта, которое ссылается на другой объект (в данном случае визуальный компонент). Тебе надо ввести имя объекта Outlet, по нему ты будешь обращаться к визуальному компоненту, пускай будет lab. Далее выбирается тип объекта, он выбран правильно: UILabel.

Еще ниже в списке Storage выбирается тип ссылки на объект: weak или strong. Если выбрать strong, то объект, на который указывает свойство, будет существовать до тех пор, пока свойство указывает на него, в таком случае он не сможет автоматически удалиться, когда перестанет использоваться. С другой стороны, когда действует слабая ссылка (weak), объект может самоуничтожиться. Итак, выбираем тип ссылки weak и жмем кнопку Connect. В итоге в код добавится такая строка:

Убеждаемся, что Outlet — это свойство.

Теперь создадим Outlet для кнопки. Алгоритм остался прежним. Только для свойства Name надо ввести другое имя, например but. В код будет добавлена строка:

В результате имеем два указателя на визуальные компоненты: lab и but — соответственно, надпись и кнопку. Теперь, используя указатели, мы можем манипулировать компонентами в коде.

Затем надо создать обработчик события нажатия кнопки. Для этого в отдельном окне открой файл реализации ViewController.m. Точно таким же образом, как ты перетаскивал линию в заголовочный файл для создания аутлета, от кнопки перетащи линию в файл реализации и отпусти до закрывающей командной скобки — @end. Появится окно для создания события, подобное окну создания аутлета. Видишь разницу: в заголовочном файле создается ссылка на объект, в файле реализации — метод.

Создание обработчика события

Заполни поле Name, его значение представляет имя свойства — метода. Пусть будет onClick. Значение поля Type оставь по умолчанию — id. В языке Objective-C данный тип является предком для всех остальных. В ниспадающем списке Event выбрано по умолчанию событие Touch Up Inside, которое происходит в момент отпускания указателя (мыши, пальца. ) над кнопкой, то есть заключительная стадия нажатия кнопки. Это то, что нам нужно. В списке Arguments оставим значение по умолчанию: Sender — это объект, отправивший данный сигнал, в нашем случае им всегда будет кнопка. Жмем кнопку Connect. В итоге будет добавлен следующий код:

Минус в начале означает закрытый метод (private). Ключевым словом IBAction помечаются события (методы) визуальных компонентов из Interface Builder.

Между командными скобками напишем выполняемый при нажатии кнопки код:

В этой строчке кода мы инвертируем значение свойства hidden. Оно имеет тип BOOL, который располагает двумя значениями: YES — истина и NO — ложь (несколько непривычно Windows-программерам, где true и false).

Обрати внимание на символ подчеркивания, стоящий перед именем объекта — надписи (_lab). Без него компиляция завершится с ошибкой. Символ подчеркивания добавляется автоматически для объектов, содержащихся в других объектах; то есть в данном случае объект lab содержится в объекте ViewController. Раньше это было условное правило, используемое для различия объектов, объявленных в качестве членов класса, и локальных объектов. А теперь это строгое правило, реализованное в компиляторе языка.

Сейчас можно скомпилировать приложение и запустить его на симуляторе. Мы выбрали симулятор для iPhone 7, входящий в Xcode 8. Кнопка компиляции и запуска представляет собой черный прямоугольник и находится на панели вверху интерфейса.

После компиляции приложения, запуска симулятора и загрузки нашего приложения на экране симулятора отобразится его интерфейс: надпись «Hello, World» и кнопка Switch. Если нажать последнюю, надпись исчезнет, при повторном нажатии она появится вновь.

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

Язык Swift

В 2014 году Apple представила новый язык программирования — Swift. Он быстро стал самым обсуждаемым и наиболее динамично развивающимся языком в мире. Это надежный, безопасный, интуитивно понятный язык для разработки приложений под операционные системы macOS, iOS, tvOS и watchOS для всего парка устройств от Apple. Swift — эффективный язык программирования. Его легче изучать, чем его предшественника — Objective-C, в то же время Swift позаимствовал из него самые удачные идеи. Вместе с тем разработчики сделали языки совместимыми, то есть в одной программе может быть код как на Swift, так и на Objective-C. В мире имеются миллиарды строк кода и сотни тысяч унаследованных программ, написанные на Objective-C, поэтому от его поддержки точно не будут отказываться.

При разработке Swift ставилась цель создать самый удобный язык системного программирования — быстрый, безопасный и выразительный.

Алгоритм на языке Swift работает в 2,6 раза быстрее, чем такой же алгоритм на Objective-C, и в 8,4 раза быстрее, чем на Python. Использование Swift делает процесс разработки программ более гибким и удобным.

Благодаря своему экспоненциальному развитию, 3 декабря 2015 года язык Swift был передан в сообщество открытых исходников. При этом Apple строго следит за его развитием, организовав комитет для его разработки. Теперь Swift доступен не только в системах Apple, но также в Linux. Все дополнительные инструменты для работы с языком, включая отладчик, стандартную библиотеку, менеджер пакет, тоже свободные и открытые.

За этим языком будущее. Более подробные сведения о нем ты сможешь узнать из упомянутого курса от GeekBrains «Мобильный разработчик», в нем целый месяц отведен на изучение данного языка программирования.

App Store

Попросту говоря, App Store — это магазин контента для всего спектра Apple-девайсов. Здесь можно купить игры и приложения как от больших компаний, так и от независимых разработчиков. Каждый разработчик, в какой бы стране он ни жил, может продавать или распространять бесплатно свои программы на этой площадке цифровой дистрибуции. Чтобы начать это делать, надо зарегистрироваться как разработчик и купить лицензию для продажи своих приложений. Это плата за предоставляемый сервис и развитие магазина App Store.

Итоги

Мы разработали простое приложение для мобильной операционной системы iOS, используя для этого систему программирования Xcode вместе с языком Objective-C. Протестировали готовое приложение на симуляторе iPhone 7. Мы узнали, как построить пользовательский интерфейс с помощью Interface Builder, как связать графические элементы с кодом приложения, как создать обработчики событий. Познакомились с основами Objective-C. Кроме того, мы обратили внимание на перспективный язык Swift, используемый для разработки мощных и безопасных приложений для «яблочной» экосистемы.

Однако изученный материал — это только начало. Чтобы интенсивно прокачаться в направлении мобильного кодинга и разработки реально продаваемых приложений, мы рекомендуем пройти курс «Mobile-разработчик» на сайте наших друзей GeekBrains.

Это достойный курс: пройдя его, ты точно не потратишь время зря. Он начинается с двух подробных курсов по языку Java, затем следует изучение базового программирования под мобильную операционную систему Android. Далее курс по базам данных в общем и языку SQL в частности. Затем углубленный курс по разработке профессиональных приложений для Android. После этого вектор изучения перейдет в сторону Apple-систем: два подробных курса по языку Objective-C и полезный курс по Swift.

Лекции курса ведут профессиональные преподаватели, имеющие большой опыт в разработке программного обеспечения. Если что-то непонятно, можно, не откладывая, задать вопрос. Вообще, обучение на GeekBrains — живой процесс, можно общаться, задавать вопросы, помогать с ответами. Для проверки полученных знаний преподаватели выдают домашнее задание, которое затем проверяется. После прохождения обучения тебя ждет гарантированная стажировка в IT-компании. А дальше все зависит от тебя, если ты покажешь себя как грамотный специалист, тебя пригласят на работу.

Специальный проект с компанией GeekBrains

Понравилась статья? Поделиться с друзьями:
Все языки программирования для начинающих
[xfvalue_img]