Программирование под iPhone. С чего начать? Как создать приложение для iOS – от идеи до продажи Программирование для iphone

” Но сегодня повод особый – мне захотелось выделить 10 лучших приложений, на которые стоит обратить внимание любителям программирования. Тут есть обучающие приложения, одна игра для программистов, компиляторы и редакторы кода.

Pythonista 3 – программа для написания приложений на языке Python. Любопытный факт: название языка произошло не от пресмыкающегося питона, а от названия комейдиного британского шоу “Летающий цирк Монти Пайтона”. Пайтон как раз на английском Python.

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

Python – популярный язык, используемых во многих крупных компаниях. Например, Google и Facebook используют его в своих проектах. Pythonista 3 позволяет написать программу и тут же её запустить.

Язык программирования “smart BASIC”

Приложение, которое предлагает пользователю программировать на продвинутой версии самого популярного языка для обучения – Basic. Именно с Basic началось моё знакомство с программированием лет 20 назад.

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

Наш читатель Александр – программист-любитель даже раньше создавал приложения на Smart Basic , которые публиковались в App Store.

Apple разработала язык программирования Swift для программистов на iOS и Mac OS. Apple задумала Swift как более лёгкий и читаемый язык для изучения, чем предшественник – Objective C. В 2014-ом году язык был внедрён в Xcode. А в 2016-ом году Google заявила, что Swift будет первым языком для Android. Вероятней всего, это положительным образом скажется на скорости выхода приложений под Android. Станет меньше эксклюзивов и приложений, которые выходят сначала на iOS, а через несколько месяцев/лет на Android.

Swift Playgrounds от самих Apple позволяет даже новичку погрузиться в мир языка. Изучить новые конструкции, изучить работу кода на живых примерах в игровой форме.

Серия “Учим языки программирования” от Sololearn

Недавно наткнулся на серию занимательных приложений от компании Sololearn, которые предлагают интерактивные уроки по изучению языков программирования. На русском языке доступны следующие языки: JavaScript, HTML, C++, Python, Java, CSS, SQL, PHP, C#, JQuery, Ruby. Уроки по Swift на английском.

Я прошёл несколько уроков по JavaScript. Всё очень доступно и интересно. Даются мини-уроки с примерами, которые можно тут же запустить в эмуляторе. После этого обычно следует вопрос с вариантами ответа или возможностью вписать текстовый ответ. Очень наглядно и удобно для начинающих.

Есть примеры кода и возможность их запустить:

Все приложения бесплатные и без встроенных покупок.

Textastic Code Editor 6

В App Store два приличных редактора текста для кода. Textastic при своей цене в 749 рублей (в американском App Store 10 долларов) является бюджетным вариантом.

Textastic поддерживает синтаксис около 80 языков программирования. Программа служит для красивого отображения и редактирования текстов. Это не компилятор – обратите внимание. Приложение работает так – вы скачиваете код, редактируете его и заливаете затем назад.

Coda

А вот и более дорогой и продвинутый вариант текстового редактора. За 1890 рублей вы получите всё в одном.

  • Редактор кода с подсветкой синтаксиса и удобным редактированием как онлайн, так и оффлайн.
  • Поддержку многих популярных языков.
  • Поддержку сетевых протоколов (в частности FTP) и главное – терминал SSH.
  • Синхронизацию между iOS и Mac (версия для Mac OS покупается на сайте компании Panic).

Наткнулся недавно на занятное приложение-справочник, который содержит примеры коды на 6 языках программирования: Swift, Java, C#, Python, C++, Objective C. Суть его в том, чтобы человек мог быстро найти кусок кода на нужном ему языке. Например, программисту нужно быстро вспомнить как выглядит обработчик ошибок на C++. Он глядит в программу и находит нужный фрагмент, который может применить в своей программе.

Разработчик приложения собрал примеры из этих 6 языков программирования и судя по обновлениям ещё и актуализирует их постоянно.

Программа условно-бесплатная, но полная версия стоит всего 2 доллара.

Codea

Codea появилась в 2012-ом году, как первое приложение в App Store, на котором можно было писать приложения для iOS. И по сей день программу обновляют. В Codea используется язык программирования Lua, который был придуман в Бразилии, и больше всего по идеалогии походит на JavaScript.

Codea создана, чтобы упростить программирование для iOS. То есть цель разработчиков была визуализировать процесс и сделать его за счёт этого более удобным.

В качестве примера разработчики выложили в App Store весьма годную полностью бесплатную игру Cargo Bot (она написана на Codea). В ней необходимо переставлять цветные ящики с помощью руки-манипулятора, чтобы получилось заданное расположение. Для этого нужно придумывать алгоритмы с помощью доступных команд.

Hopscotch: Make Games

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

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

Всем хороша программа, но подписка 5000 рублей в год – это за гранью добра и зла. Поэтому единственная программа в этом топ-10, которую я включил по принципу: “Круто! Надо, чтобы посмотрели читатели”. Рекомендовать её с таким ценником не могу.

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

В сегменте мобильных технологий, без сомнения, лидирует 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-компании. А дальше все зависит от тебя, если ты покажешь себя как грамотный специалист, тебя пригласят на работу.

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

Без финансовых вложений и специальных знаний.

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

Примечание для пользователей Windows: чтобы создавать приложения для iOS вам необходимо установить OS X на виртуальной машине (VirtualBox, VMware). Это процесс отнюдь не прост и для его осуществления требуется отдельная инструкция.

1. Идем в App Store и устанавливаем среду разработки XCode :

Если у вас уже стоит XCode, то необходимо обновить его.

2. Запускаем xCode и выбираем пункт меню File -> New -> Project :

3. Выбираем платформу и тип приложения:

4. Указываем информацию о проекте. Обратите внимание, что мы выбрали тип приложения «Universal»:

5. Нажимаем на кнопку New Folder и указываем имя папки, в которой будем хранить файлы приложения:

6. Снимаем галочку с чекбокса Create Git Repository и нажимаем кнопку Create . В результате вы должны попасть на стартовый экран работы над приложением:

7. Нажимаем на пункт Main.storyboard в правом меню, перетаскиваем на основное поле элемент Label и добавляем в него текст Hello_world :

8. Теперь надо сделать иконку для приложения. Подбираем картинку и загружаем ее на mapappicon.com :

9. Ждем когда веб-приложение закончит работу и указываем свой адрес электронной почты для получения архива с иконками:

10. Возвращаемся в XCode и в левом меню выбираем раздел Assets.xassets :

11. Открываем архив из почты и перетаскиваем иконки оттуда на рабочее пространство XCode:

12. Выбираем один из симуляторов устройств, нажимаем на кнопку запуска приложения (черный треугольник) и включаем на своем Mac Developer Mode :

13. Повторяем попытку запуска. Ждем, когда на симуляторе загрузится iOS:

14. Убеждаемся, что приложение работает:

Смотрим готовое приложение на устройстве

Теперь можно посмотреть, как работает приложение на устройстве. Перед выполнением инструкции убедитесь, что у вас свежие версии XCode и iOS.

1. Идем в xCode -> Preferencies -> Accounts и добавляем свой Apple ID:

2. Подсоединяем iOS-устройство к компьютеру:

3. Выбираем нужное устройство в списке и нажимаем на кнопку запуска. Ждем некоторое время.

4. Если вылезло сообщение о проблемах с безопасностью, то на iOS-устройстве идем в Настройки -> Основные -> Управление устройством и разрешаем запуск приложений от разработчика с вашим Apple ID:

5. Идем на рабочий стол и находим иконку нового приложения:

6. Запускаем:

7. Отсоединяем устройство от компа. Теперь приложением можно пользоваться.

Что делать, если хочешь больше?

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

Ведь Apple предъявляет очень высокие требования к приложениям. App Store Review Guidelines включает в себя 29 пунктов и более сотни подпунктов. Для того, чтобы приложение им соответствовало и было принято для публикации в магазине, разработчику требуется большой объем технических знаний.

Если хотите создавать качественные приложения для iOS предназначенные для массового использования, надо учиться !

Эта статья открывает цикл, предназначенный для новичков. Смею надеяться, что уровень подачи материала позволит разобраться в нем даже людям не знакомым с программированием. Начнем наше повествование с небольшого лирического отступления. Приложения для 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? Тогда тебе должны быть известны различные варианты разработки. А если в твоей голове только появилась мысль о разработке под iOS, то за ней должны последовать следующие вопросы:

  • какой язык нужно изучать?
  • где брать материалы для изучения?
  • нужен ли Mac?
  • нужно ли iOS-устройство?
  • какой редактор подойдет для написания кода?

Статья даст ответы на эти вопросы и поможет достичь поставленной цели.

Операционная система iOS была выпущена компанией Apple в 2007 году. Она не ограничивается iPhone и iPad, но я расскажу о разработке приложений только для этих устройств. Статья разделена на несколько частей:

  1. Разработка нативных приложений.
  2. Языки программирования для создания iOS-приложений.
  3. Среда разработки.
  4. Разработка iOS-приложений и игр с дополненной реальностью при помощи фреймворка ARKit.
  5. Разработка игр при помощи фреймворка SpriteKit.

Кроме нативной разработки существует ещё и кроссплатформенная, когда приложение пишется сразу для iOS и Android на языке, отличном от нативного. Об этом мы поговорим в другой раз, но можете утолить любопытство уже сейчас и прочитать , написанной для Лайв Тайпинг.

Разработка нативных приложений

Процесс разработки нативного приложения — это написание программы на одном из основных языков для платформы iOS: Objective-C или Swift. Этот путь создан корпорацией Apple и предполагает следование всем её идеям. Apple обеспечивает разработчиков последними версиями SDK (software development kit — набор средств разработки), документацией, а также средой разработки Xcode.

Преимущества нативной разработки:

  • приложение оптимизировано под платфому iOS, а значит, будет работать быстро и корректно;
  • приложение реагирует на нажатия мгновенно, отсутствуют задержки в анимации и при скроллинге контента;
  • понятный и простой доступ к аппаратной части устройств — камере, микрофону, акселерометру, геолокации, адресной книге, плееру и т. д. На этих и других возможностях устройства можно базировать функциональность приложения;
  • родной для платформы интерфейс. Нативные приложения обычно оперируют «платформенными» элементами интерфейса: меню, навигация, формы и все остальные элементы дизайна берутся от операционной системы и потому привычны и понятны пользователю;
  • с каждым обновлением iOS синтаксис языка Objective-C практически не меняется, поэтому поддержка приложения происходит практически безболезненно — изменить или переписать придётся лишь незначительное количество кода.

Недостатки:

  • поддержка приложения на языке Swift. Регулярные обновления версий платформы iOS вынуждают обновлять код, но с приходом пятой версии Swift компания Apple обещает облегчить этот процесс;
  • большинство текущих проектов написаны на языке Objective-C . С каждым годом всё труднее найти программиста, желающего писать на нём, а переписывать проекты на Swift многие компании отказываются, так как это огромный и невероятно трудоёмкий процесс.

Для клиентов студий разработки вопрос о том, за какую разработку платить — нативную или кроссплатформенную — тоже актуален. Кроссплатформенную разработку можно посоветовать тогда, когда бюджет ограничен, нужно узнать спрос на мобильное приложение или если на стороне клиента есть свой веб-программист. В остальных случаях выбор лучше делать в пользу нативной разработки. В Лайв Тайпинг могут помочь и с тем, и с другим. , если намерены начать работать над своим мобильным приложением для iOS — мы готовы всё обсудить.

На каком языке пишут приложения для iOS

Разработчики из компании Apple предоставили два варианта:

  • Objective-C . Ветеран с большой историей, постепенно отходящий на второй план;
  • Swift. Очень молодой и быстро набирающий популярность среди разработчиков.

Оба языка относятся к объектно-ориентированному программированию (ООП) и успешно выполняют его основные парадигмы: наследование, полиморфизм, инкапсуляцию и абстракцию. Простыми словами, ООП — это стиль написания кода, который позволяет разработчику группировать схожие задачи в классы. Код соответствует принципу DRY (don’t repeat yourself — не повторяй самого себя) и становится лёгким для сопровождения.

Objective-C

Язык программирования, созданный в начале 1980-х годов прошлого века путём скрещивания С (Си) с популярным в то время Smalltalk (связь с объектами через сообщения). Objective-C изначально воспринимался, как простая надстройка над языком C, модифицирующая его некоторые синтаксические конструкции, но после того, как за лицензирование взялась сначала компания Next Step, а потом на правах преемника и Apple, Objective-C стал одним из наиболее популярных языков для разработки приложений для iOS. Поэтому многие типы данных в Objective-C унаследовали префикс NS (Next Step). Это основной язык, используемый компанией Apple, знание которого позволяет писать под любые платформы Apple, в том числе macOS.

Плюсы:

  • высокая степень поддерживаемости кода: с каждым обновлением изменения в Objective-C минимальны;
  • большое количество документации, технической литературы и огромное сообщество. Apple предоставляет и регулярно обновляет официальные книги и ресурсы. Какие именно знания нужны iOS разработчику, ты можешь узнать из ;
  • быстрый переход с одного из языков семейства C. Objective-C — это расширение языка С. Это означает, что любой код на С является также корректным кодом и для Objective-C , нужно только привыкнуть к синтаксису;
  • совместимость Objective-C внутри проектов, написанных на Swift, позволит тебе применять два языка одновременно.

Минусы:

  • если ты никогда не сталкивался с программированием и решил сразу начать с Objective-C , то могут возникнуть сложности понимания принципов ООП и нагромождённого синтаксиса. Трудности исчезнут по ходу обучения;
  • низкая читаемость кода: в начале изучения синтаксис покажется сложным;
  • динамическая система типов данных, которая также является плюсом, предполагает возможность появления или пропуска ошибок даже во время компиляции. В частности, затянуть процесс могут опечатки;
  • низкая по сравнению с языком Swift производительность;
  • взаимодействие с файлами Swift происходит при помощи «моста» (условный адаптер, который переводит код на Swift в формат Objective-C), что сильно тормозит процесс сборки.

Примеры приложений, разработанных нашей командой на языке Objective-C:

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

Swift



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

Swift покажется знакомым Objective-C-разработчикам. Он сочетает в себе читабельность именованных параметров и мощь динамической объектной модели Objective-C .

Плюсы:

  • скорость. Сейчас язык почти на одном уровне с C++ , и в Купертино обещают, что это не предел;
  • упрощённая навигация по файлам проекта. В отличие от Objective-C , который создаёт два файла для объявления и реализации, Swift обходится всего одним. Кроме того, имена методов и комментарии между файлами синхронизируются автоматически;
  • лёгкая читаемость, поскольку данный язык не построен на C. Например, не нужно ставить точку с запятой в конце строки и писать скобки для окружения выражения внутри if/else. Никаких квадратных скобок, Swift напоминает обычный английский язык, является гораздо более чистым и имеет упрощённый синтаксис;
  • лаконичность. Количество кода со Swift становится гораздо меньше. К примеру, для добавления двух строк можно воспользоваться оператором «+«;
  • бо льшие возможности по сравнению с Objective-C . Например, дженерики (универсальные шаблоны). Универсальный код позволит тебе писать гибкие, общего назначения, функции и типы, которые могут работать с любыми другими типами. Ты можешь написать код, который не повторяется и выражает свой контент в абстрактной форме;
  • полное взаимодействие с кодом, написанным на Objective-C , позволит тебе применять два языка одновременно;
  • повышенная безопасность. Swift, в отличие от Objective-C , строго типизирован, то есть при объявлении именованных параметров нужно явно указывать тип данных, иначе при исполнении кода компилятор вызывает ошибку. Это облегчит процесс устранения багов, поскольку ты можешь решить проблему сразу;
  • поддержка динамических библиотек. Одно из значимых изменений в Swift — переход от статических библиотек к динамическим, которые по сути являются исполняемыми кусками кода. Они присоединяются к приложению и «связываются» с новыми версиями языка, что позволяет программе работать стабильно.

Минусы:

  • Swift постоянно развивается и меняется. Например, вызов метода может измениться после обновления. Благо Apple выстроили этот процесс таким образом, что код написанный на более ранних версиях не будет сломан. Ты только увидишь предупреждение о том, что твой код написан на старой версии, и редактор предложит переход на более новую и поможет выполнить этот процесс построчно;
  • взаимодействие с файлами Objective-C происходит при помощи «моста», который сильно тормозит процесс сборки.

Бо льшая часть проектов нашей компании написана на языке Swift. Вот некоторые примеры:

  • — приложение магазина парфюмерии и косметики;
  • — сервис для покупки абонементов в кино;
  • — приложение магазина одежды;
  • — приложение со статьями об информационной безопасности.

C++ (Си плюс)



Компилируемый, статически типизированный язык программирования общего назначения. Поддерживает такие парадигмы программирования, как процедурное программирование, объектно-ориентированное программирование, обобщённое программирование.

С++ поддерживается iOS, но есть одно «но»: всё приложение целиком на нём написать не удастся. С++ подойдёт для решения логических задач или целых модулей приложения, а также для написания сложных алгоритмов, но пользовательский интерфейс должен быть написан на Objective-C или Swift.

Один из вариантов такого взаимодействия — это использование диалекта Objective-C ++, некое объединение Objective-C и C++ . Зачем их смешивать? Например, самая хорошая библиотека для текущей задачи была написана на С++ , иногда решение проблемы можно было более лаконично сделать на С++ или необходимо вызывать функции Objective-C из проекта С++ . Распространённый пример — портирование игры или движка под платформы Apple.

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

Какой язык выбрать?

Objective-C постепенно уступает дорогу молодому Swift, который Apple всячески популяризирует. В прошлом 2018 году в рейтинге Tiobe Objective-C занимал более низкую позицию по отношению к Swift. Исходя из этой статистики и вышеперечисленных плюсов языка Swift, я бы рекомендовал именно его.

Но совсем не знать Objective-C не получится, так как в ходе разработки приложений под iOS он будет встречаться, и тебе придется читать и понимать его.

Что касается языка C++ , то его знание — это полезный навык, но только как опция, поэтому решать тебе.

Где брать материалы для изучения?

Материалы по языку Swift:

Стоит отметить, что помимо рекомендованных мной видеокурсов, большое количество как платных, так и бесплатных обучающих материалов по Swift и Objective-C есть на Youtube и специальных обучающих порталах, таких как Udemy и SwiftBook .

Материалы по языку C++

  • Язык программирования С++ . Учебник, который используют в большинстве ВУЗов;
  • бесплатный видеокурс по С++ от канала #SimpleCode .

Источники актуальной информации

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

  • raywenderlich.com . Неисчерпаемый источник бесплатных руководств. Подходит и новичкам, и профессионалам, которым нужно быстро понять работу нового фреймворка;
  • NSHipster . Блог дизайнера и разработчика облачного сервиса Heroku, который он ведёт уже не в одиночку. Фреймворки, объекты фреймворков, Objective-C , Swift, Xcode, важны open source-проекты — здесь есть полезные статьи про всё;
  • Natasha The Robot . Отличный блог iOS-разработчицы Наташи Мурашев. Обязателен всем, кто разбирается со Swift и не только;
  • Блог iOS-разработчика студии Plausible Labs Майка Эша. То, о чём здесь говорится, требуются знания чуть глубже базовых;
  • Little Bites of Cocoa . Блог со всякими полезными руководствами. Новички и опытные разработчики полюбят его за лаконичность постов и широту освещаемых вопросов;
  • iOS Dev Weekly . Cрез новостей из мира мобильной iOS-разработки. Приходит в виде почтовой рассылки по пятницам. Куратор — Дэйв Вервер;
  • Github известной компании Rambler&Co. Содержит множество интересного из Open source. Также их внутренний спейс и блог ;
  • Блог про разработку под iOS на «Хабрахабре»;
  • Cайт iosgoodreads.ru и канал в Telegram от Rambler. Самые интересные статьи, видео и новости, связанные с разработкой на iOS.

Среда разработки iOS приложений

Самыми популярные среды разработки приложений на iOS, или IDE (Integrated Development Environmetn) — это Xcode от Apple и AppCode от JetBrains.

Xcode



Быстрый редактор, укомплектованный полным набором инструментов для разработки под iOS, macOS и др. Скачивается из App Store бесплатно.

Плюсы:

  • IB (Interface Builder). IB — это приложение с набором инструментов для разработки графических интерфейсов, интегрированное в Xcode. Процесс работы напоминает создание дизайна «на холсте». Всю вёрстку можно сделать в IB, а затем связать визуальные элементы с файлом реализации, в котором описана вся логика взаимодействия с ними.

Плюсом Interface Builder является наглядная вёрстка, настраивание стилей, бэкграунда, шрифтов и т. д. , а минусом будет, например, работа с анимацией, её можно выполнить только кодом.

  • симулятор. Предоставляет полный набор iOS-устройств, на которых можно запустить и протестировать своё приложение;
  • отладчик. Умеет разбирать визуальную часть поэлементно для поиска ошибок в вёрстке, также поможет отловить баг и разобраться с проблемой утечки памяти. В добавок ко всему отладчик может производить все эти операции и UI-тесты в «беспроводном» режиме;
  • встроенная система контроля версий в GitHub. Помимо стандартных функций ветвления, в режиме разделённого экрана позволяет просматривать изменения в различных «ветках»;
  • функция имитации геолокации. Незаменима при работе с картой. Имеет «зашитый» набор городов, список которых можно дополнить;
  • содержит Swift Playground, так называемую «песочницу», которая позволяет быстро проверить новый алгоритм или графическую рутину (например, несколько строчек кода), не создавая целое приложение;
  • может собирать приложение сразу на iOS-устройство;
  • поддержка «тёмной темы» macOS.

Минусы:

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

AppCode



Как и Xcode, содержит полный набор необходимых средств для эффективной и удобной работы с языком Objective-C , Swift, C++ и на 100% совместима с Xcode.

Плюсы:

  • стабилен. Внезапных закрытий, как в Xcode, нет;
  • автодополнение не отваливается и работает быстрее, чем в Xcode;
  • интеграция с баг/ issue-трекерами, такими как JIRA, YouTrack, Lighthouse, Pivotal Tracker, GitHub, Redmine и т. д. ;
  • более подробное описание ошибок и предупреждений;
  • может собирать приложение сразу на iOS-устройство, как и Xcode.

Минусы:

  • для сборки приложения всё равно нужен Xcode;
  • нет Intreface Builder. Открытие IB-файла из AppCode происходит в Xcode;
  • нет визуального отладчика, а также нет беспроводной отладки;
  • нет Swift Playground;
  • запуск приложения происходит на Xcode-симуляторе;
  • AppCode — платный продукт, для бесплатного ознакомления даётся 30 дней. На момент написания статьи расценки такие: за первый год пользования придется заплатить 199 $, второй — 154 $, последующие — 119 $ (данные взяты с официального сайта);
  • обновление языка приходит с некоторой задержкой. В Xcode ты получишь свежую версию ещё на бета-тестировании.

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

Нужен ли Maс?

Да. Для разработки нужна Xcode IDE (Integrated Development Environment — интегрированная среда разработки). Установить Xcode ты сможешь только на Mac. Выбирай из этих вариантов: MacBookPro/Air, iMac, MacPro или Mac mini (самый бюджетный вариант). Не обязательно покупать новый, но чтобы твой Mac мог поддерживать последнюю версию macOS хотя бы два года, советую брать тот, что не старше пяти лет.

Вариант для ознакомления — поставить на свой PC виртуальную машину при помощи, например, VirtualBox . Статья Installing MacOS to VirtualBox подробно описывает, как это сделать. Работать будет медленно, но для «быстрого старта» вполне подойдет.

Нужно ли iOS-устройство?

Необязательно. IDE Xcode от Apple содержит в себе симулятор устройств. Например, можно выбрать iPhone XR и вживую проверить результат своей работы. К сожалению, симулятор полностью не заменит реальное устройство (например, камера или акселерометр в нём отсутствуют).

Разработка приложений и игр с дополненной реальностью при помощи ARKit



ARKit — фреймворк, разработанный компанией Apple для работы с AR. Что такое AR и как это работает? AR — это технология, которая способна сканировать окружающее пространство и максимально достоверно интегрировать виртуальные объекты в реальную жизнь. Эти самые виртуальные элементы могут отображать специальные устройства, поддерживающие эту технологию:

  • cмартфоны и планшеты. В нашем случае — это iPhone и iPad;
  • AR-шлемы и очки. Одна из последних разработок — очки Magic Leap ;
  • компьютеры.

Сканирование пространства происходит при помощи камеры устройства. Что может AR-приложение? Например, онлайн магазин кроссовок, в котором, помимо покупки, есть возможность отсканировать свою ногу и «примерить» понравившуюся модель, таким образом на экране твоего iPhone или iPad твоя нога будет в выбранном кроссовке. Еще один из примеров применения AR — приложение от IKEA

Учебные материалы по SpriteKit:

Важно! Разработка игр для iOS не ограничивается фреймворком SpriteKit. Существует огромное количество движков для создания 2D и 3D игр. Самые популярные из них — Unity и Unreal . А создании хардкор-аркады Trigono разработчики Лайв Тайпинг использовали движок OpenFL с применением кастомных доработок.

Заключение

Самым актуальным языком мобильной разработки под iOS в 2019 году является Swift. Причина не только в его скорости и лаконичном синтаксисе, но и в том, что он становится стандартом разработки-де-факто и получает всё больше поддержки со стороны разработчиков Apple.

Это не отменяет необходимости знакомиться с Objective-C: на этом языке созданы полезные библиотеки, а поддержка старых, но больших и интересных проектов хорошо оплачивается.

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

А если вы уверены, что готовы работать над iOS-приложением, то — мы свяжемся с вами для бесплатной консультации.