Тарифы Услуги Сим-карты

Сложно ли научиться программировать на ios. Как грамотно начать погружаться в разработку под iOS и что для этого нужно

Здравствуйте, друзья.

Решил кардинально сменить сферу своей деятельности (оптимизация и продвижение сайтов, и интернет-магазины) и серьёзно подойти к iOS-разработке. Какого-то конкретного опыта в программировании нет вообще, всё только в общих понятиях на уровне базовой теории. К самой разработке подхожу с точки зрения профессионального развития и заработка на этом, а также с точки зрения просто интересного дела и возможных своих проектов.

Тостер по моей теме читал, поэтому вопросов а-ля "какие книги читать?" задавать не буду.

1. Насколько срочно мне понадобится MacBook для погружения в разработку? Однозначно знаю, что без него в итоге никуда. Дело в том, что купить не проблема (не миллионер, но для серьёзных профессиональных перемен готов потратить 1000-1500$ на рабочую технику), но есть ли смысл, не зная ещё абсолютно ничего по теме, в таких начальных тратах? Достаточно ли, скажем, установить на Windows 7 (если что: HP, 2 x 1.7 ГГц, 2 ГБ памяти, встроенное видео ) какой-либо эмулятор и хотя бы первые пару месяцев разобраться с начальной базой и основными понятиями?

2. Насколько мощный нужен MacBook для iOS-разработчика? Скажем, достаточно ли будет MacBook Air 13" (Intel Core i5, 4 Гб, 128 Гб (SSD), Intel HD Graphics 5000 )? Или смотреть какой MacBook Pro 13"" Retina (Intel Core i5, 8 Гб, 128 Гб (SSD), Intel Iris graphics 5100 )? Или, может, ещё что мощнее нужно (процессор i7, памяти 16 Гб, видео не встроенное)? Понятное дело, что если деньги позволяют, лучше брать пошустрее, но, к сожалению, покупать MacBook топовой конфигурации -- ну совсем сейчас неудобно в финансовом плане. С другой стороны, взять старенький MacBook у кого-то с рук, чтобы потом менять его через полгода -- тоже не очень хочется.

3. Нужен ли сам девайс с iOS для старта обучения разработки? Или на Windows 7 / OS X можно будет как-то эмулировать iPhone, чтобы смотреть, что получается? Или это как-то вообще по-другому делается? :-) Опять же, купить не большая проблема, но нужно ли мне это сейчас? И, если он необходим, ещё один смежный вопрос: покупать что-то свежее (5 / 5s) или не важно (4s)?

4. Есть ли необходимость в классических курсах по Objective-C? Или же лучше самостоятельно разбираться с нуля? Живу в Минске, курсы ничего особенного не представляют, всё обычное (подходы, методики, общий уровень). Ещё знаю, что программирование -- это постоянное самообучение. Вопрос: есть ли смысл пройти месячные курсы, чтобы получить стартовую базу, а уже дальше двигаться самостоятельно? Или же без проблем можно старт взять дома?

5. Как планировать процесс самообучения? Ничего нового: прочитал -- попробовал сделать, непонятно -- поискал в интернете, сильно непонятно -- вперёд на форум? Просто примерно так давно я учил HTML. Но, понятное дело, Objective-C дело серьёзное, как и все смежные технологии, и будет ли толк с такого обучения? Или нужна какая-то конкретная система и четкая градация повышения своего уровня (сначала прочесть книгу, потом пройти курс, потом изучить эту смежную технологию и так далее)? Подскажите, пожалуйста, как входили в 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. Поэтому тебе неплохо знать оба.

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

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

Как ты знаешь, главный инструмент разработчика под 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 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 занимает не один объемистый томик. Поэтому, чтобы получить объективные знания, удобно пройти курс « ». Целый раздел курса посвящен этому языку.

Разработка приложения для 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. В итоге в код добавится такая строка:

@property (weak, nonatomic) IBOutlet UILabel *lab;

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

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

@property (weak, nonatomic) IBOutlet UIButton *but;

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

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


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

- (IBAction)onClick:(id)sender { }

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

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

Lab.hidden = !_lab.hidden;

В этой строчке кода мы инвертируем значение свойства 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, используемый для разработки мощных и безопасных приложений для «яблочной» экосистемы.

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

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


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

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

Эта статья открывает цикл, предназначенный для новичков. Смею надеяться, что уровень подачи материала позволит разобраться в нем даже людям не знакомым с программированием. Начнем наше повествование с небольшого лирического отступления. Приложения для iPhone и iPad пишутся на языке Objective-C. Этот язык широко использовался в компании NeXT и пришел в Apple после возвращения Стива Джобса. В настоящее время Objective-C является основным языком разработки OS X и iOS приложений.

Для того, чтобы начать программировать под iOS, Вам понадобится компьютер Mac на базе процессора Intel и среда разработки XCode. Если у Вас нет Mac-а - не беда. Возможно Вам подойдет один из описанных методов решения этой проблемы. Мы будем ориентироваться на XCode 4 и iOS5.

Установка XCode

Для начала нам придется зарегистрироваться наApple-овском dev сайте. Перейдите по ссылке и нажмите на register. Щелкните кнопку Get Started и пройдите процесс регистрации. Там все довольно просто, поэтому я не буду останавливаться на этом моменте. После регистрации Вам пришлют письмо с вашим Apple ID. Вернитесь на страницу Apple Developers и используйте его для входа в защищенную зону. В разделе DevCenters щелкните по ссылке iOS. Как видите, Apple предлагает вам кучу документации, исходников и уроков. На этой странице есть все, что нужно для начала разработки под iOS. В самом низу есть кнопка Download Xcode, которую нужно нажать. После загрузки установите Xcode на свой Mac.

Знакомство с интерфейсом XCode 4

Для запуска Xcode перейдите на свой главный диск и щелкнете по developer>Applications.

После того, как Xcode запустится, выберите пункт меню File>New Project, затем "Single View Application" и введите в качестве имени проекта (Product Name) HelloWorld. В результате у вас должно отображаться что-то вроде этого

Весь Ваш код и ресурсы разложены по специальным папкам, которые располагаются в левой части окна Xcode. Панель называется "Project Navigator" и содержит все элементы Вашей программы. Файлы с исходным кодом имеют расширение ".h" и ".m". Если вы щелкните по такому файлу, то в правой части Xcode откроется редактор с кодом.

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

Кнопка "Run" запускает ваш проект. Вы можете протестировать свое приложение и убедиться, что оно ведет себя действительно так, как вы того ожидаете. Кнопка "Tasks" останавливает запущенное приложение.

С помощью кнопки Schemr можно выбрать целевую платформу, где будет запускаться ваше приложение. Здесь вы можете выбрать какой-нибудь simulator, и отлаживать программу на компьютере, или запустить ее на своем iPhone (iOS Device), если Вы заплатили сбор в $99. Единственное преимущество, которое дает этот платеж - возможность запускать программу на реальном устройстве и размещать ее в App Store. Я бы не рекомендовал Вам тратиться до того момента, пока у Вас не будет готова нормальная программа.

Breakpoints (точки остановки) - очень полезная штука. С помощью этой кнопки вы можете отметить в исходном коде строки, и когда в ходе выполнения программы дело дойдет до помеченной строки, программа приостановится, и вы сможете посмотреть состояние переменных. Это очень мощный и повсеместно используемый инструмент.

Нажмите кнопку "Run". Вы увидите окно эмулятора со своим проектом. Как видите, пока он не блещет функциональностью - это просто заготовка.

Программирование для iPhone -Первый шаг

Довольно ходить вокруг да около, давайте что-нибудь закодим. В окне Project Navigator содержатся файлы с исходным кодом. Щелкните по какому-нибудь.m файлу. Обратите внимание, некоторые строки окрашены в зеленый цвет - это комментарии, которые выполняют роль шпаргалок. Чтобы не запутаться в коде, программист может оставлять себе подсказки и пояснения. Для обозначения комментариев в языке C используется сочетание слешей //. Все, что находится в строке правее этих знаков, считается комментарием. Если Вы хотите написать многострочный комментарий, то можете использовать сочетания /* и */ для обозначения начала и конца многострочного комментария.

Прежде чем приступить к написанию кода приложения, я должен а пальцах объяснить вам несколько концепций: ООП (объектно-ориентированное программирование), MVC (Modal View Controller), ".h" и ".m" файлы. Итак... объектно-ориентированное программирование предполагает разделение всего кода на так называемые объекты, внутри которых хранятся данные и обрабатывающие их команды. Объект в Objective-C состоит из двух файлов.h и.m. Файл.h называется заголовком (header) в нем содержится "набросок" объекта - перечисляются все данные и названия блоков команд (методов), содержащихся в объекте. Файл.m называется файлом реализации (implementation) и в нем подробно расписывается все то, что указано в заголовке именно здесь программируется вся логика программы.

MVC (Model View Controller) - это нечто, разделяющее код и интерфейс, который видит пользователь. Model - это данные пользователя и данные, которые вы показываете пользователю. View - это пользовательский интерфейс и код, который обеспечивает связь между View и Model. Концепция MVC может сейчас показаться Вам слишком заумной, однако со временем Вы увидите, что этот подход действительно упрощает жизнь программиста. Эта концепция подразумевает следующий порядок работы: программист отдельно создает шаблон дизайна приложения, где размещает все кнопки, текстовые поля и прочую важную ерунду, и отдельно пишет программ. Потом он показывает XCode какой метод(блок кода) должен вызываться в ответ на то или иное действие пользователя и какое название имеет тот или иной элемент управления в тексте программе.

Разрабатываем дизайн программы для iPhone

Давайте начнем создание нашего приложения с разработки дизайна. Щелкните в окне Project Navigator по строке MainStoryboard_iPhone.storyboard. В результате XCode запустит редактор интерфейса.

В правом нижнем углу Вы видите список объектов (Library), которые можно использовать в своем интерфейсе, в центральной части отображается окно View, которое и представляет макет интерфейса вашей программы. Правое верхнее окно имеет несколько режимов, которые переключаются с помощью расположенных над окном иконок. На рисунке показан режим Atribute Inspector. Здесь можно изменять различные атрибуты объектов, составляющих ваш интерфейс.

Перетащим из окна Library объект Label на наш макет окна. С помощью мышки изменим размер объекта, как показано на экране ниже. В инспекторе отображаются свойства объекта Label. Давайте отцентрируем текст, щелкнув по соответствующей иконке в строке Layout.

Удалим текст в поле Text (там было написано слово Label) и введем там “Some String”.

Аналогичным образом добавьте на макет кнопку (объект Button)

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

Начинаем кодить

Итак, у нас есть два визуальных компонента размещенных на макете. Мы хотим чтобы при нажатии на кнопку менялся текст в строке. Чтобы реализовать эту задумку нам понадобится из кода программы обращаться к стороке (объект Label) и вызывать метод(блок кода) при нажатии на кнопку.

Щелкните по файлу "ViewController.h" в панели слева. Мы собираемся описать IBOutlet. IBOutlet соединяет наш код с визуальным объектом, например с надписью (label) или кнопкой (button). Приведите код в файле ViewController.h к виду

#import @ interface ViewController: UIViewController{ IBOutlet UILabel* label; //присвоим нашей строке имя Label } //это заголовок метода, который будет //вызываться в ответ на нажатие кнопки - (IBAction) buttonClick: (id) sender; @ end

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

Итак, мы сказали, что будем называть строку с текстом label и что в ответ на действие пользователя будет вызываться метод buttonClick. Давайте напишем код этого метода. Переключимся на файл ViewController.m в дереве проектов. После строки@implementation... добавим код

- (IBAction) buttonClick: (id) sender{ label. text= @ ”Hello from Mobilab. ru”; }

Примечание, если Вы скопировали этот код, то вероятно при запуске программы у Вас возникнет ошибка, скорее всего проблема в ковычках. Удалите их и введите с клавиатуры.

Давайте разберемся, что мы тут видим. Мы обращаемся к объекту label - строке текста на экране. Поскольку это объект, у него внутри есть разные данные (которые в ООП также называют свойствами объекта) и методы к которым можно обратиться, поставив точку после имени объекта. Свойство text отвечает за содержащийся внутри строки текст..

Мы завершили кодирование, осталось связать label и buttonClick с элементами внутри макета дизайна. Щелкните в окне Project Navigator по строке MainStoryboard_iPhone.storyboard, чтобы переключиться в конструктор интерфейса. Зетем щелкните по иконке “View controller”. Переключитесь на режим connections в инспекторе (последняя иконка). Посмотрите, в инспекторе в области Outlets появилась строка label. Это то название, которое мы указали в файле ViewController.h. Щелкните по кружочку в правой части строки label и перетащите его на строку с текстом Some Text в макете дизайна.

Аналогичную операцию проделайте с кнопкой. Щелкните по кнопке с кружочком в группе “Received Actions”, потом по buttonClick и перетащите ее на кнопку в макете. В результате раскроется контекстное меню, с помощью которого можно выбрать момент вызова метода. Можно, например, вызывать код, когда пользователь нажмет кнопку, можно когда отпустит. Там много вариантов. Выберите "Touch up Inside".

Вот и все! Сохраняйте проект и щелкайте по кнопке "Run" на панели сверху. Если Вы Все сделали правильно, то должен запуститься эмулятор с Вашей программой. Щелкните по кнопке. Текст в строке должен измениться. Вот и все. С первым уроком покончено

Многие начинающие разработчики или люди, которые просто интересуются программированием, не знают, как можно легко и быстро создать приложение для iOS.

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

Шаг первый. Придумайте идею и название

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

1 Зайдите в AppStore и посмотрите представленные там программы. Возможно, вам что-то придет в голову.

2 Также посмотрите на список своих приложений (установленных ). Вероятно, что не все из них нравятся вам и хотелось бы добавить к некоторым какую-то функцию. Это и будет идея для вашего творения!

3 Посмотрите на приложения своих друзей с той же целью .

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

Что касается названия, то к этому вопросу также стоит отнестись очень серьезно. Для начала посмотрите на самые и их названия. Зайдите на apple.com/ru/itunes/ с этой целью. Обязательно посмотрите раздел бесплатных и платных.

Эксперты выделяют несколько советов относительно того, каким должно быть название, а конкретно:

  • длина около 10 символов (не намного больше, можно меньше, но, опять же, не слишком);
  • желательно английский язык (в интерфейсе, кстати, он тоже должен быть, чтобы расширить потребительскую аудиторию);
  • два слова в названии;
  • одно слово должно полностью отражать предназначение;
  • второе слово должно быть описанием первого.

Шаг четвертый. Разработка концепции

На первом шаге вы уже приняли идею и название будущего приложения. Теперь стоит сделать то, что позволит вам приступить непосредственно к разработке. Речь идет о концепции. В этом понятие включается следующее:

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

  • Функционал. Четко перечислите все функции, которые будет выполнять приложение.
  • Дизайн. Набросайте, пусть даже на листок бумаги, то, как будет выглядеть приложение. Причем вы должны четко понимать, что будет собой представлять стартовый экран, какие на нем будут кнопки, и что будет на дополнительных страницах. Кроме того, добавьте кнопки согласно списку функций. Также разработайте дизайн всех кнопок.

Когда все наброски у вас есть, можно приступать к кодингу!

Шаг пятый. Кодинг

Вот теперь открывайте Xcode и выполняйте следующие этапы создания ПО на iOS:

1 На стартовом экране, в меню слева нажмите «Application» (откройте этот раздел) и выберете «Empty Application» . Нажмите «Next» . Дальше введите свои данные, а в поле идентификатора разработчика (дается Apple) укажите «example» , а в поле префикса класса укажите «XYZ» .

2 Дальше выберете «File» и в выпадающем списке «New» . Дальше последовательно нажмите «User Interface» , «Storyboard» и кнопку «Next» . В меню устройств выберете и в поле имени введите «Main» . Сохраните этот файл в ту же папку, что и основной проект. После этого в древе проекта (слева) появится файл Main.storyboard. Это, как вы уже могли понять, визуальное представление всех экранов вашей программы. В дальнейшем вы будете редактировать именно его.

3 Теперь нужно сделать так, чтобы при запуске приложения открывался именно тот экран, который вы создадите в Storyboard. Для этого в дереве папок слева последовательно выберете свой проект, «Targets» , «General» , «Deployment Info» . Затем возле надписи «Main Interface» выберете «Main» , как на рисунке 8, - именно так мы назвали наш экран на предыдущем этапе.

Рис. 9. Назначение созданного экрана главным в Storyboard

4 Теперь, собственно, нужно создать этот самый главный экран, который откроется первым при запуске. Для этого в дереве слева нажмите на «storyboard» один раз. В основном окне откроется пустое окно. Внизу справа нажмите на иконку в виде куба, это библиотека объектов, которые можно внести на экран. Теперь справа найдите «View Controller» и перетащите его курсором мыши на пустое поле. Появится объект прямоугольного вида. Собственно, туда можно добавлять и все элементы.

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

6 Если вам потребуется добавить еще экран, то сделайте это таким же образом, как и раньше – переместите на пустое место объект «View Controller» . Дальше можно будет так же перемещать различные объекты на него.

7 Теперь нужно сделать так, чтобы пользователь мог перемещаться между этими экранами с помощью свайпа или же путем нажатия на соответствующую ссылку. Для этого существует объект под названием «Navigation Controller» . Переместите его на свой главный экран. Дальше нажмите на «Editor» , затем «Embed In» и на вышеупомянутый объект. Вверху главного экрана появится серая панель. Это и означает, что к нему добавлена так называемая панель навигации.

8 Чтобы добавить кнопку перемещения по экранам, существует объект «Bar Button» . Это кнопка, если сказать проще. Переместите ее на панель навигации и задайте соответствующие свойства.

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

Итак, вы приобрёли iPhone или iPad. Чудесные устройства, не правда ли? Какое-то время спустя пришла мысль “а не создать ли мне под него программу, которая завоюет мир?”. Я расскажу вам, с чего начать.

Первое, что вам понадобится – компьютер с операционной системой Mac OS X. Хотя бы Mac Mini (стоимость от 20000 рублей). По другому никак. На крайний случай, можно поставить под Windows или Linux систему виртуализации (VMWare, VirtualBox и т.д.), и уже там установить Mac OS X (не буду описывать сам процесс – на хабре уже много раз обсуждали).

Второе – нужно знание английского языка. Хотя бы в рамках «перевожу со словариком» - после первых 2-3 книг подтянете ещё и английский (что вообще никогда не помешает) до уровня «свободное чтение технической литературы». Переводные книги выходят с гигантским опозданием – полгода-год минимум. А большинство вообще не выходят на русском языке. Да и большую часть переводной программисткой литературы читать невозможно – переводят люди, далёкие от этой тематики.

Приготовьтесь купить n-ое количество электронных книг (можно и в бумаге, но а: везти будут долго; б: будет дороже). Стоят они примерно 25-80 долларов. Да, дорого, но оно того стоит.

Шаг 0: Необходимый базис

Программировать под iOS вы будете в основном на языке Objective-C. Objective-C - это ООП (объектно-ориентированное программирование) надстройка над языком C. Так что C знать обязательно. Необходимые знания можно почерпнуть в книге
David Mark, James Bucanek. Learn C on the Mac 2nd Edition

Шаг 1: Objective-C

Далее, нужны знания языка программирования Objective-C. Великолепный язык, относительно легко изучаемый.
Итак, основы языка можно изучить по книгам:
Scott Knaster, Waqar Malik, Mark Dalrymple. Learn Objective-C on the Mac 2nd Edition
или
Aaron Hillegass. Objective-C Programming: The Big Nerd Ranch Guide

Следующая книга является, скорее, приложением к предыдущим
Matthew Campbell. Objective-C Recipes

Следующее, что надо знать для полноценного ООП – паттерны проектирования. В идеале, крайне желательно прочесть книгу Банды Четырёх (Gang of Four. Design Patterns). Далее, книга о паттернах применительно к Objective-C:
Carlo Chung. Pro Objective-C Design Patterns for iOS

Шаг 2: iOS SDK и iOS UI

iOS SDK – это комплект средств разработки под iPhone, iPad и iPod. Без его отличного знания – никуда.
iOS UI – пользовательский интерфейс. Проще говоря, это кнопочки, ползунки, надписи и т.д и т.п. – всё что вы видите на экране вашего устройства. Естественно, и это надо знать как «отче наш».
Для начала, следует прочесть эту книгу
David Mark, Jack Nutting, Jeff LaMarche, Fredrik Olsson. Beginning iOS 6 Development

Ну и в довершении, можно пролистать приложение к двум предыдущим книгам
Hans-Eric Gronlund, Colin Francis, Shawn Grimes. iOS 6 Recipes

Весьма хороша следующая книга – вполне тянет на звание «полное руководство по разработке для iOS». К сожалению, книга несколько устаревшая, но это нисколько не умаляет её достоинств.
Joe Conway, Aaron Hillegass. IOS Programming: The Big Nerd Ranch Guide, 3rd Edition

Следующие две книги, так сказать, для совершенствования. Каждая из них является сборником уроков и объяснений тонкостей iOS SDK. Все эти материалы можно найти в разрозненном виде в этих ваших интернетах, но в этих книгах это собрано, отсеяно и отсортировано с особой любовью.
iOS 5 By Tutorials, Second Edition
iOS 6 By Tutorials

Приложение: Игры

Предыдущих книг вам будет достаточно, чтобы написать несложные приложения для вашего мобильного устройства. Сложные вы будете писать после огромного количества практики. В какой-то момент вам захочется написать игру, и этих знаний вам просто не хватит. Для написания игр вам потребуется во много раз больше знаний: математический базис, отличное знание геометрии вплоть до трёхмерной, физический базис, основы проектирования AI и многое, многое, многое другое… Но этим вы займётесь сами. Я же просто перечислю набор книг, которые желательно прочитать разработчику игр под iOS.
Lucas Jordan. Beginning iOS 5 Games Development
Kyle Richter. Beginning iOS Game Center and Game Kit
Steffen Itterheim, Andreas Low. Learn cocos2d Game Development with iOS 5
Jayant Varma. Learn Lua for iOS Game Development
Mike Smithwick. Pro OpenGL ES for iOS
Sue Blackman. Beginning 3D Game Development with Unity
Philip Chu. Learn Unity 4 for iOS Game Development
Robert Chin. Beginning iOS 3D Unreal Games Development

Послесловие

Вы думаете, что прочтя все эти книги, вы станете Senior iOS Developer? Нет, нет, нет и нет!
Когда-то Стив Балмер, став генеральным директором корпорации Microsoft, рассказывал, кто приносит успех операционным системам и платформам: «Developers! Developers! Developers! Developers!».
Я переиначу его слова: что делает разработчика мастером? Практика! Практика! Практика! Практика!
Никакие знания не перевесят практики. Лично мой совет: прочитав по моему обзору все книги от первой до «Beginning iOS 6 Development» включительно, устроиться в любую компанию на должность junior разработчика. На любые условия. На любую зарплату. Этот опыт бесценен – его не получишь из книг.
Удачи!

Update: обзор предназначен для полнейших новичков и не претендует на полноту, непогрешимость и истину в последней инстанции.