Ios разработка — Рисовать в Swift(Xcode). С чего начать

Содержание

Что нужно знать и уметь, чтобы работать iOS-разработчиком

Операционные системы для iPhone выходят одна за другой, и пока ничто не говорит о том, что в обозримом будущем этот процесс остановится. Сообщество iOS-разработчиков всегда нуждается в свежей крови, но проблема в одном: учиться придётся самостоятельно. Часы — главный ресурс разработчика, и мне пришлось потратить очень много часов на поиск и чтение правильных статей и книг. Чтобы вы не шли моей сложной дорогой, я собрал здесь всё самое важное, что может понадобиться при разработке под iOS для начинающих: требования, публикации и бесперебойные источники актуальной информации и полезных знаний.

Что нужно знать и чем уметь пользоваться

  • Английский язык на уровне чтения
  • Принципы ООП. Как пример
  • Паттерны программирования на примере iOS. Мы часто используем: MVC , Singleton, Делегирование, Категории и другие. Подробнее
  • Objective-C или Swift язык программирования
  • Xcode в качестве основной IDE и её компоненты (iOS Simulator, Interface Builder, Source Control). Как альтернатива AppCode
  • Быстрые клавиши Xcode
  • Git — система контроля версий
  • Разбираться в архитектуре MVC и иметь представление о других архитектурах, таких как MVVM , MVP , VIPER . Подробнее — здесь и здесь
  • Жизненный цикл iOS-приложения
  • Жизненный цикл UIViewController
  • Иметь представление о всевозможных элементах верстки iOS
  • Уметь верстать экраны с помощью Interface Builder в Storyboard, XIB .
  • Уметь верстать экраны только кодом без Interface Builder.
  • Инструменты списков: UITableView и UICollectionView. Подробнее — здесь и здесь
  • Autolayout. Подробнее — здесь и здесь
  • Работа с API в Objective-C
  • CoreData в Objective-C. Подробнее — здесь и здесь
  • Кэширование картинок в Objective-C
  • Атрибуты в Objective-C
  • Категории в Objective-C
  • Многопоточность в Objective-C
  • Работа с API в Swift
  • CoreData в Swift. Подробнее — здесь и здесь
  • Удобная работа с CoreData в Swift
  • Локализация строк
  • Уметь комментировать свой код правильно
  • Добавлять библиотеки в проект через Pods
  • Добавлять библиотеки в проект через Carthage
  • Unit-тестирование. Подробнее — здесь и здесь
  • Генератор ссылок на ресурсы в проекте Xcode в Swift
  • Платные программы разработки от Apple:
  1. iOS Developer Program
  2. iOS Enterprise Developer Program

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

  • Знание Swift (если вы разрабатываете на Objective-C) и Objective-C (если вы знаете Swift)
  • Знание UNIT -тестирования и его использования
  • Знание Continuous Integration и его использования в iOS-разработке
  • Знание основ SOLID

С чего начать разработку iOS-приложений

Чтобы начать, вам понадобятся:

  • Mac или Хакинтош
  • Устройство iPhone/iPad или iPod с iOS не ниже iOS 7
  • Xcode не ниже версии 6.1 (установить на свой Mac с App Store, он бесплатный)
  • зарегистрированный аккаунт на основе вашего Apple ID . Подробнее можно прочитать на портале разработчиков в разделе Apple Developer Program

Objective-C или Swift?

Рекомендую изучать сразу Swift. В большинстве IT -компаний существуют множество Objective-C проектов, которые необходимо поддерживать, а в интернете есть тонны документации, уже написанной под этот язык. Полностью от него отказаться не получится. Знать Objective-C нужно, но начать лучше со Swift. Впрочем, поймите лично для себя, хотите ли вы стать олдскульным империалистом и начать изучать C-подобный язык, разработанный ещё в начале 80-х (!), или стартовать со Swift, одного из самых современных инструментов разработки на сегодняшний день.

Материал для старта на английском

После прочтения стартового курса от Apple и просмотра Стэнфордских курсов нужно закрепить полученные знания:

  1. мобильные приложения призваны решать человеческие проблемы и задачи. Найдите себе такую. Она должна быть небанальной, но реальной и решаемой, поэтому не ударьтесь в фантазии;
  2. теперь пустите всё, что вы узнали к этому моменту про iOS-разработку, на поиски решения. Если вы пишете что-то сложнее калькулятора (а вы пишете — задача, повторюсь, не должна быть совсем заезженной), решение вряд ли придёт к вам сразу же. Упрощайте работу, разбивайте задачу на подзадачи и не бойтесь просить совета опытных разработчиков.
  3. ищите ответы в Интернете — почти не осталось таких проблем, которые не были бы описаны в книгах, статьях или видеоуроках;

Когда ваша задача решена, и вы уже считаете себя крутым iOS-разработчиком, советую прочитать какую-нибудь хорошую книгу по улучшению полученных навыков, к примеру «Swift. Основы разработки приложений под iOS и OS X» Василия Усова или «Swift. Разработка приложений в среде Xcode для iPhone и iPad с использованием iOS SDK ». Дэвида Марка, Джека Наттинга и других.

Стоит яростно следить за

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

Руководство по разработке приложений в Xcode 8.2

Swift Xcode: руководство по разработке мобильных приложений

Это руководство по Xcode 8.2. Если у вас более ранняя версия, рекомендуем обновить среду разработки, поскольку за последнее время язык программирования Swift существенно изменился, и эти изменения доступны только в последней версии Xcode.

В этой статье вы узнаете:

  • о пяти главных составляющих среды разработки Xcode,
  • и как тестировать приложение с помощью iOS-эмулятора.

По прочтении руководства вы получите четкое представление о том, как создавать проекты в Xcode.

1) Где скачать Xcode?

Проще всего найти Xcode в Mac App Store. Или по ссылке Apple Developer page for Xcode.

2) Интерфейс Xcode

Вы также можете почитать официальную документацию Apple Documentation for XCode.

Обратите внимание на это изображение. Если ваш интерфейс отличается, убедитесь, что установлена именно Xcode 8, а не более ранняя версия.

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

4 основных раздела: Navigator (навигатор), Editor (редактор), Debug Area (область отладки) и Utility Area (утилиты).

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

Когда пишете код, область утилит или отладки не нужна. Скрыв эти панели, вы тем самым расширьте рабочую зону редактора.

3) Область навигатора (Navigator)

В этой панели присутствует несколько навигаторов, вы можете переключаться между ними с помощью Navigator selector bar (см. изображение). Три часто используемых навигатора: проект (Project), поиск (Search), проблема(Issue).

Здесь вы увидите все файлы проекта.

В рамках навигатора проекта можно создавать группы файлов: кликнуть правой кнопкой и выбрать Create Group. Группа существует только в проекте Xcode — в файловой системе папка не создается, т.е. на жестком диске файлов не будет. Есть мнение, что лучше использовать фактические директории на жестком диске, организовывать файлы, а затем переместить их обратно в проект Xcode.

Вы можете кликнуть правой кнопкой по навигатору проекта, чтобы создать новые файлы или добавить уже существующие. Или же переместить папки или файлы с компьютера непосредственно в навигатор проекта. Затем появится диалоговое окно с вопросом: как вы хотите добавить файлы? Если кликнуть на файл в навигаторе проекта, высветится содержимое области редактора (Editor). Двойной клик по файлу откроет новое окно (так удобнее, если вы используете два монитора).

Корневой узел навигатора проекта — это файл проекта Xcode (отмеченный синей иконкой). Если кликнуть, свойства проекта откроются в области редактора.

Во вкладке навигатор поиска удобно просматривать отдельные части текста в вашем проекте.

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

Данный навигатор покажет все имеющиеся у приложения проблемы.

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

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

4) Область редактора (Editor)

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

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

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

Еще один способ быстро перейти к искомому файлу — функция Jump Bar (см. изображение). С помощью Jump Bar вы можете быстро просмотреть группы и найти нужный файл.

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

Если кликнуть по хвостовому сегменту Jump Bar, откроется меню с методами в файле. Это не только позволит перейти в другой раздел файла, но и покажет, какие методы доступны в этом файле.

Три вида окна редактора

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

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

Средняя кнопка — опция помощник редактора (Assistant Editor), показывает дополнительный файл текущего файла в формате разделенного экрана. К примеру, если слева файл ViewController.swift, в окне справа будет файл соответствующего класса для ViewController. В каждой панели есть опция быстрого перехода (jump bar). С ее помощью можно изменить то, что показывается в каждом файле.

Правая кнопка — редактор версии (Version Editor), в котором можно сравнить два разных файла; больше информации об этой функции в Apple Documentation.

Окно конструктора интерфейса

До сих пор речь шла о редактуре файлов с кодом и написании кода, но в Xcode интегрирован конструктор интерфейса, в котором вы можете просматривать Storyboard или файлы XIB. Область редактора становится визуальным конструктором.

Поиск и замена в файле

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

Переход к определениям

Если вы видите название определенного класса и хотите перейти к его определению, зажмите Command и кликните название класса, чтобы быстро перейти к файлу.

Контрольные точки

Здесь (см. изображение) вы можете установить контрольные точки/точки останова в определенных линиях кода. Устанавливая эти точки, вы заметите индикатор синего цвета. Чтобы отменить контрольную точку, кликните по синему индикатору — он станет темнее.

Если кликнуть и перетащить синий индикатор, контрольная точка полностью удалится.

Просмотреть список всех контрольных точек проекта можно с помощью вкладки навигатор контрольных точек в области навигатора.

5) Область утилит

Область утилит Xcode состоит из двух панелей: панель-инспектор и библиотека.

Панель-инспектор расскажет подробности о файле, который выделен в навигаторе проекта. Однако если вы рассматриваете файл XIB/StoryBoard, панель-инспектор покажет разные атрибуты, которые можно изменить для избранного элемента.

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

Есть мнение, что при редактировании кодовых файлов целесообразнее скрывать всю область утилит (Utility Area), дабы предоставить редактору больше пространства. Ведь панель-инспектор или панель-библиотека не требуются.

6) Область отладки

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

Это часто используется при поиске просчетов и ошибок.

7) Панель инструментов

Слева расположена кнопка запуска (Run). Она создает и запускает приложение, а также запускает приложение в iOS-эмуляторе. Соседняя кнопка останавливает приложение и возвращает вас к Xcode.

Если нажать и зажать кнопку Run, появится больше опций для работы с приложением:

Test запускает модульное тестирование, если это предусмотрено в проекте.

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

Analyze дает возможность анализировать код и выявлять потенциальные ошибки.

Больше информации об этом вы найдете в Apple iOS Documentation.

В выпадающем списке возле кнопки Stop содержатся названия устройств, на которых будет работать приложение (это может быть и Apple Watch). Вы также можете выбрать эмуляторы iPhone или iPad (или другие версии, если они установлены). Раздел iOS device запускает приложения на электронном устройстве, если оно подключено и должным образом настроено.

И, наконец, в правой верхней части панели инструментов есть редакторские кнопки, кнопки переключения между несколькими панелями Xcode и кнопка Organizer.

8) Органайзер

Располагается в пункте меню: Window -> Organizer. Данная опция появляется в отдельном окне. Органайзер нужен для нескольких задач.

Устройства

В окнах устройств вам доступно множество действий (шорткат ⌘ ⇧). Но главное — это управление профилями (Provisioning profile) в системе и на различных устройствах. Профили позволяют размещать приложения на iOS-устройствах.

Ошибки

Вы можете посмотреть отчет об ошибках на нескольких подключенных устройствах.

Репозитории

В Xcode 8 можно находить различные хранилища данных: Source Control >> Check Out. Во соответствующей вкладке вы сможете управлять и удалять репозитории (GitHub и др.).

Проекты

Во вкладке проекты доступен список проектов, которые открывались прежде. Таким образом, их можно быстро открыть вновь. У вас есть возможность управлять вводными данными.

Архивы

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

Документация

В Xcode 8 документация и API доступны в справочном меню Help.

9) iOS-эмулятор

К Xcode 8 прилагается несколько полезных эмуляторов для тестирования. Более того, большую часть времени разработки вы можете использовать эмуляторы, а для тестирования, когда уже практически все сделано, выбрать смартфон или планшет.

В частности, эмулятор позволяет:

  • Менять расположения экрана (ландшафтный/портретный режимы)
  • Моделировать различные GPS-координаты
  • Моделировать сценарии с низким объемом памяти

(С выходом версии Xcode 6.3 появился эмулятор Apple Watch для тестирования приложений под эту ОС).

Подведем итоги

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

  • навигатор, редактор, утилита, отладка, панели инструментов;
  • функция редактирования кода;
  • органайзер Xcode;
  • и iOS-эмулятор.

Разработка Как программировать под Swift. Делаем первое приложение

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

Как создать приложение для iOS

Сегодня мы сделаем простое приложение для расчета индекса массы тела и необходимого количества калорий для поддержания веса. Для этого будем использовать формулы Гарисса Бенедикта и индекса массы тела.

1. Для начала давайте создадим проект: запустите Xcode и нажмите комбинацию клавиш CMD+Shift+N или выберите в меню File->New->Project

2. Теперь выберите Tabbed Application и нажмите Next.

3. На этом этапе надо придумать имя для приложения (Product Name), нажать Next и выбрать папку для сохранения. Параметры Organization Name и Organization Identifier можете не менять.

Главное, чтобы значение в поле Language было равно Swift.

4. После того, как вы сохраните проект, перед вами появится рабочее пространство Xcode.

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

Например, первая влкадка в панеле Navigator показывает список файлов проекта, третья позволяет производить поиск по проекту и так далее.

5. Найдите в списке файлов проектов файл с именем Main.storyboard и нажмите на него.

Файл Main.storyboad определяет, какие экраны (контроллеры) есть в приложении. Вы можете добавлять элементы на экраны, задавать связи между экранами и так далее.

Если вы выберите какой-нибудь контроллер, он подсветится синей рамкой:

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

6. Запустим наше шаблонное приложение и посмотрим, как оно выглядит в симуляторе. Для этого надо в верхнем левом углу выбрать тип симулируемого устройства и нажать комбинацию клавиш CMD+R или кнопку с икокой Play.

Как видите, у нас есть приложение с двумя экранами, преключение между которым осуществляется при помощи таб-бара.

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

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

8. Теперь в панели Utilities выбирайте Attributes Inspector и меняйте значение в поле Title на BMR/BMI для первого таба и Килокалории для второго.

Сейчас на первом контролере размещены всякие надписи. Их надо удалить. Для этого выделите их и нажмите Delete.

9. Теперь добавим свои элементы управления. Внизу панели Utilities есть Object Library, в которой можно выбрать объекты и добавить их к сцене. Найдите объект Label и перетащите его на контроллер BMR/BMI. Перед этим не забудьте два раза тапнуть на сцене, чтобы масштаб стал стандартным.

Должно получиться примерно так.

В панели Utilities можно поменять текст, размер шрифта и так далее.

10. Перетащите еще несколько лейблов и поставьте им такой же текст, как и на картинке. Для последнего лейбла нужно поставить Lines в 2, чтобы текст переносился на другую строку.

11. Теперь добавьте 3 текстовых поля (Text Field).

И разместите их, как на картинке.

У текстовых полей поставьте параметр keyboard type в Number Pad.

И установите текст по умолчанию.

12. Теперь добавим элементы управления для выбора пола и кол-ва тренировок в неделю. В Object Library ищете Segmented Control и добавляйте на экран.

У Segmented Control можно менять количество сегментов и текст для каждого сегмента.

Сделайте так, чтобы сегменты выглядели, как на скриншоте.

13. Теперь добавьте кнопку (button).

И установите ей заголовок.


После этого добавьте еще один label с lines равным 4.

14. Выберите контроллер BMI/BMR, нажмите два пересекающихся кольца в правом верхнем углу и откроется Assistant Editor. Он показывает код, ассоцированный с этим контроллером.

15. Протащим элементы управления.

Цукерберг рекомендует:  Html - Обучаюсь HTML

Для этого выберите первый text field (в нашем случае это будет возраст), нажмите Ctrl, кликните на него еще раз и, не отпуская кнопки, перетащите внутрь класса. Если все сделано правильно, то вы увидите посказку “Insert Outlet, Action, …”.

Теперь отпустите курсор, и вы увидете окошко для создания связи. В качестве имени введите ageTextField и нажмите Connect.

16. У вас появится переменная ageTextField.

Проделайте эту процедуру для оставшихся text field, segmented controls и label с текстовым результатом. У вас должно получиться так:

Теперь протащите кнопку, но тип соединения укажите не Outlet, а Action. И в качестве имени используйте calculateTapped.

17. Теперь скопируйте следующий код в метод calculateTapped.

Этот код выполняет расчет и выводит результат на экран.

18. Пришло время подвести итог. Давайте запустим и проверим:

Ваша первая программа готова! Молодцы!

Задавайте вопросы

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

Над текстом трудился Руслан Гуменный — ведущий разработчик e-Legion. Компания является лидером на рынке заказной мобильной разработки в Европе, входит в состав холдинга DZ Systems. За 9 лет существования были созданы приложения для РайффайзенБанка, Яндекса, BMW, Банка Москвы, Первого Канала, Aviasales, Sports.ru, ВГТРК, Mail.Ru Group и многих других компаний.

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

Уверен, все остальные давно мечтали «сделать свое приложение для айфона». Это ваш шанс. До скорых встреч в следующих статьях цикла!

(4.00 из 5, оценили: 1)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Xcode 8 в Mac App Store

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

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

Язык Objective-C

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Язык Swift

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

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

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

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

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

App Store

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

Итоги

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

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

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

Цукерберг рекомендует:  Почему я оставил юридическую карьеру и стал тестировщиком

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

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

Разработка приложений для iOS: с чего начать?

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

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

Разработка приложений для iOS, либо как полюбить Apple еще сильнее

Заработная плата iOS разработчиков варьируется от 60 000 до 250 000 рублей. Актуальность разработки под iOS неоспорима.

В рамках этой статьи мы создадим приложение, где выведем сообщение “Hello World” на главном экране и не напишем ни строчки кода.

Давайте разберемся, что нам потребуется, для того, чтобы разработать самое примитивное iOS приложение:

  1. Устройство с MacOS на борту
  2. Скачанный Xcode
  3. Руки

Голова нам, как видите, не потребуется. Да, компания Apple приложила максимум усилий, чтобы как можно сильнее упростить процесс и сократить время разработки мобильных приложений под их платформы, такие как: iOS, tvOS, macOS, watchOS. Также Apple представила в 2014 году язык программирования Swift, который очень прост для начинающих разработчиков и очень функциональный для профессионалов. Если вы сможете создать приложение для одной платформы Apple, к примеру для iOS, то вам не составит труда создать приложение и под другие платформы. Все унифицировано до такой степени, что вы можете использовать чуть ли не один и тот же код, запуская его на разных типах устройств.

СОЗДАНИЕ ПРОЕКТА

И так, как говорилось ранее, нам потребуется компьютер Apple, и установленное приложение Xcode, которое находится в App Store в свободном доступе.

Давайте разберемся, что такое Xcode и зачем он нам нужен.
Xcode — это программная среда разработки, которая включает в себя: редактор кода, редактор графических интерфейсов, систему контроля версий и инструменты для отладки и выкладки, написанных нами приложений. Одним словом, это программа, в которой ведется 90% всех взаимодействий в разработке приложений под семейство операционных систем Apple.

И так, запустив программную среду разработки мы видим приветственное окно, где мы можем открыть, создать или клонировать проект. Нам нужно создать новый, нажав на “Create a new Xcode project”. Да, весь интерфейс Xcode на английском языке, поэтому советую запастись англо-русским словарем.

Следующим шагом мы видим данное окно:
где нам предлагают выбрать платформу и тип приложения. Нам нужно программное обеспечение iOS (в верхней части диалогового окна) и Single View App. Любые приложения начинаются с Single View, а потом разрастаются до 50 View App.

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

Давайте по-порядку:

  1. Product Name — имя проекта
  2. Team — команда разработки. Установим None. Это поле нам потребуется на этапе выкладки и тестирования, чтобы сертифицировать приложение аккаунтом разработчика.
  3. Organization Name — название организации которой принадлежат права на исходный код. Имя организации и некоторые другие параметры будут находиться заголовком в каждом файле.
  • Organization Identifier — идентификатор организации. Как правило, это обратный домен. Если компания называется example и адрес в интернете у нее example.ru, то ее идентификатор будет равен ru.example
  • Bundle Identifier — идентификатор пакета приложения. Уникальный идентификатор приложения, который будет использоваться при выкладке в App Store и будет фигурировать при подписи программы.
  • Language — язык программирования. У нас есть две опции: Objective-C и Swift. Первый, на сегодняшний день, считается немного устаревшим, на нем, как правило, новых проектов уже не пишут, но поддерживают старые, а так как мы создаем новый — выбираем Swift. Отмечу, что для наших сегодняшних задач не потребуется писать код.
  • Use Core Data — параметр, который добавит в наш проект базу данных, которая обычно используется для больших объемов данных. В рамках нашей сегодняшней работы мы не подразумеваем, что будем вообще хранить какие-либо данные, поэтому отключаем этот параметр.
  • Include Unit Tests — автоматизированное тестирование кода. Так как кода у нас не будет — необходимо отключить этот параметр.
  • Include UI Tests — автоматизированное тестирование пользовательского интерфейса. Отключаем этот параметр, так как у нас будет всего один элемент пользовательского интерфейса, и его невозможно протестировать.
  • Заполнив информацию, нажимаем Next, и выбираем местонахождение проекта на нашем компьютере и жмем Create

    ОБЗОР СРЕДЫ РАЗРАБОТКИ

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

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

    Также мы видим строку состояния, в которой можно наблюдать текущую задачу, которую выполняет среда разработки, правее мы можем увидеть настройки вида редактора: стандартный редактор, редактор с ассистентом и просмотр изменений в системе контроля версий, а также есть кнопки, чтобы показать/скрыть части среды, которые мы будем рассматривать далее: снизу (отладочная информация), справа (навигация) и слева (утилиты)

    Слева мы видим несколько кнопок, которые будут переключать функционал левой панели, а именно:

    1. Навигация по файлам и папкам
    2. Система контроля версий
    3. Иерархия классов в проекте
    4. Поиск по проекту
    5. Уведомления о предупреждениях и ошибках при сборке
    6. Автоматизированные тесты
    7. Отладка
    8. Точки останова
    9. Логи сборок

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

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

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

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

    1. Identity
      1. Display Name — имя приложения, которое будет выводиться на домашнем экране устройства
      2. Bundle ID — Уникальный идентификатор, который будет использоваться в App Store
      3. Version -текущая версия проекта, которая ведется используя семантическое версионирование
      4. Build — Номер сборки, который стоит увеличивать на единицу с каждой установкой приложения на устройство
    2. Signing
      1. Automatically manage signing — автоматическое управление подписью приложения
      2. Team — наименование вашей команды
      3. Provisioning profile — профиль, для подписи приложения
      4. Signing Certificate — сертификат, который позволяет подписывать приложение в Apple
    3. Deployment Info
      1. Deployment Target — минимальная версия iOS, на которую может быть установлено приложение
      2. Devices — Типы устройств
        • iPhone
        • iPad
        • Универсальное
      3. Main Interface — Storyboard файл, с которого будет начинаться приложение после
      4. Device Orientation — Возможные ориентации устройства при работе с приложением
        • Портретное
        • Вверх ногами
        • Альбомный против часовой
        • Альбомный по часовой
      5. Status Bar Style — Цвет статус бара (верхняя панель информации со временем, оператором и батареей)
        • Светлый
        • Темный
        • Скрыть
    4. App Icons and Launch Images
      1. App Icons Source — иконка приложения
      2. Launch Screen File — экран, который показывается пока приложение запускается

    Остальные пункты нам пока не потребуются.

    Теперь, когда мы разобрались с тем, из чего состоит наша среда разработки, можно приступить к созданию нашего “Hello World” приложения.

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

    СОЗДАНИЕ ПРИЛОЖЕНИЯ

    Открыв файл, мы видим экран приложения. Теперь нам нужно перетащить элемент под названием Label на этот экран. Этот элемент находится слева внизу.
    Перетаскиваем его на экран в любое место. Затем в панели утилит, ищем поле, в котором написано “Label”.
    И изменяем Label на Hello World. После этого, мы увидим, что наш элемент на экране не показывает полностью нашего текста, который мы вписали, так как у него был текст изначально меньше, и он принял его размеры.
    Заставим данный элемент зафиксироваться по-центру экрана и принять правильную форму, чтобы наш текст полностью отобразился. Для этого, нам нужно найти вторую кнопки внизу слева, которая называется Align и нажимаем на нее.

    Здесь мы видим некоторые параметры расположения нашего элемента. Нам требуются два последних параметра. Активируем их и нажимаем “Add 2 Constraints”. После этого, мы можем наблюдать, как наш элемент зафиксировался посередине экрана и принял форму, в которой отображается наш текст полностью.

    С чего начать разработку мобильного приложения на Swift

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

    С чего начать разработку на Swift

    Для написания кода на Swift понадобится среда разработки Xcode, которую можно скачать и установить с сайта http://developer.apple.com. Кликаем по кнопке Xcode, скачиваем бесплатно среду разработки и регистрируемся как разработчик приложений Apple.

    Пишем первое приложение на Swift

    Запускаем Xcode и на стартовом экране создаем новый проект, выбираем iOS > Application > Single View Application для создания шаблонов. Введите настройки для проекта, затем нажмите Next и начинайте работу.

    В Xcode слои для разработки приложения (экраны) называются Storyboards. Кликните на Main.storyboard слева на экране в Навигаторе проектов (Project Navigator), чтобы открыть историю правок. Выберем к примеру параметр разработки приложения под размер экрана iPhone. Кликните внизу посредине экрана, где видна надпись “w Any h Any”, а затем нажмите на нижний левый квадрат для того, чтобы размер изменился до размера экранного отображения на iPhone.

    Тестовый пример — создание простого веб-браузера. Код и последовательность действий к этом проекту можно найти здесь.

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

    Что почитать для изучения языка

    Изучение языка и его практическое использование рекомендуем основывать на следующих материалах:

    Максим Михеев

    . о Mac OS, iOS, Xcode, Objective-C и не только.

    Как научиться программировать под iOS

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

    Зачем мне учиться программировать под iOS?

    Для начала давайте ответим на вопрос “а зачем оно вообще мне надо?”. Очевидно, что изучение даже основ программирования может занять значительное время, которое можно было бы потратить на что-то другое. Так зачем же вообще учиться программировать под iOS? На мой взгляд, есть, минимум, две весомые причины, по которым стоит этим заняться:

    Во-первых, это интересно. Особенно это интересно, если у Вас есть устройство от яблочной компании — представьте себе ощущение, что Вы можете достать из кармана телефон и показать своим друзьям своё собственное приложение, делающее что-то полезное (или бесполезное).

    Во-вторых, за это хорошо платят. В настоящее время на рынке труда наблюдается дефицит хороших программистов для платформы iOS. Сама же платформа постоянно обрастает новыми возможностями и устройствами: с момент релиза iOS, как операционной системы первого iPhone, количество устройств работающей на этой операционной системе пополнилось не только планшетами iPad, но и часами Apple Watch, а также мультимедийной приставкой Apple TV. Для всех этих устройств уже можно писать программы! Одним словом, как я уже отмечал в своей заметке o перспективах iOS-программистов перспективы трудоустройства программистов для этой платформы самые радужные.

    Что выбрать: кросс-платформенную или нативную разработку?

    Надо признать, идея разработки мобильного приложения сразу для нескольких платформ (например, для iOS и Android), на первый взгляд, выглядит весьма заманчиво: пишешь код один раз, а он потом работает везде. Особенно этой идеей любят увлекаться руководители фирм или структурных подразделений компаний, которые (особенно в условиях кризиса) постоянно ищут пути сокращение издержек. Казалось бы, вот она — экономия: платишь один раз, а работает сразу на нескольких платформах! По крайней мере, в теории.

    На практике, к сожалению, всё совсем не так. Не случайно говорят, что “скупой платит дважды”. И мой собственный опыт работы с кросс-платформенными решениями и рекомендации “ведущих собаководов”, работающих в отрасли профессиональной разработки мобильных приложений, однозначно свидетельствует о том, что кросс-платформенная разработка подходит только для очень простых приложений, и то не всегда. Как только у Вас или у Вашего начальства/клиентов/инвесторов возникает желание сделать что-то, что хотя бы немного выходит за рамки возможностей кросс-платформенного решения, начинаются большие проблемы и пляски с музыкальными инструментами народов Севера. В лучшем случае удаётся решить проблему написанием нативного кода для каждой отдельной платформы, который потом неким образом интегрируется в кросс-платформенное решение. В худшем — приложение переписывается для каждой платформы нативными средствами, при этом тратятся время и деньги. Таким образом, кросс-платформенная разработка не избавляет от необходимости знать, как разрабатывать приложения для каждой из поддерживаемых платформ.

    Иными словами, я настоятельно не рекомендую начинать знакомство с iOS с кросс-платформенной разработки. Если же выбора у Вас нет, то из собственного опыта могу посоветовать для разработки игр обратить внимание на Unity, а для разработки неигровых приложений — на Xamarin, купленный на днях корпорацией Microsoft. Эти два решения лучше всего подходят для кросс-платформенной разработки. Всяческие Титаниумы и Фонгэпы рекомендую обходить стороной — наберётесь седых волос работать с ними.

    Что нужно, чтобы начать

    Для начала изучения iOS-разработки необходимо несколько стартовых условий:

    1. Наличие устройства, на котором Вы будете вести разработку: Mac или, на худой конец, Хакинтош, на которые надо будет установить Xcode из Apple App Store. К сожаление, для Windows Xcode пока не выпустили, и у меня мало надежды, что он когда-либо появится. Я настоятельно рекомендую использовать Мак, а не Хакинтош, поскольку с Хакинтошем неизбежно возникнет много проблем, причём ещё на этапе его создания. Мак же подойдёт практически любой, самый бюджетный вариант — Mac Mini в минимальной комплектации, этой машинки вполне хватит для разработки мобильных приложений для iOS.

    Некоторое время назад я уже описывал процесс установки Xcode на Windows с использованием Хакинтоша, однако с тех пор прошло много времени, поэтому при выборе варианта Хакинтоша, рекомендую искать более свежие инструкции в Интернете, обе мои заметки устарели.

    2. Знание английского языка хотя бы на уровне чтения технической литературы. iOS-разработка весьма динамична: новая версия iOS выходит каждый год (на момент написания данной заметки актуальна iOS 9). Из-за такой частоты обновления, хорошие книги по этой области программирования просто не успевают переводить на русский язык: пока книгу пишут и переводят, выходит новая версия iOS. Во многом поэтому качественной литературы на русском языке по теме совсем немного, чуть далее я укажу основные книги, на которые стоит обратить внимание.

    Отсюда и требование к знанию английского: почти всё по теме — документацию от Apple, книги, тематические блоги — хороший iOS-разработчик читает на английском языке.

    3. Для запуска приложений на устройстве, необходимо иметь это самое устройство, например, iPhone или iPad. Когда я начинал заниматься iOS-разработкой для запуска своих приложений на устройстве необходимо было стать зарегистрированным разработчиком и заплатить Apple 99 долларов (платятся ежегодно). С 2015 года платить стало не обязательно, но зарегистрироваться всё равно придётся. Подробнее об этом можно узнать на портале разработчиков в разделе Apple Developer Program.

    Не обязательным, но крайне желательным является наличие предыдущего опыты программирования. Мобильная разработка имеет некоторую специфику по сравнению с императивным программированием на языках, которые, обычно, преподаются в школе. Например, новичку может быть совсем не очевидно, что все программы для смартфонов упрощённо представляют собой набор call-back функций: операционная система при наступлении определённых событий посылает программе сообщения, на которые программа и реагирует кодом, написанным мобильным разработчиком. Кроме того, обычно большая часть типовых задач, которые могут встать перед разработчиком, уже реализована в стандартных библиотеках (в нашем случае — Foundation, UIKit, и т.д.), новички же в силу отсутствия опыта, могут начать изобретать свои “велосипеды” вместо использования функционала этих стандартных библиотек.

    Objective-C или Swift?

    Если Вы начинаете изучать iOS-разработку сегодня, я бы рекомендовал изучать сразу Swift. Несмотря на то, что сама Apple не торопится переводить свои приложения на Swift, значительное количество серьёзных разработчиков уже перешли на него. После почти года разработки на Swift мне этот язык представляется гораздо более удобным и выразительным, чем Objective-C.

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

    Кому стоит изучать Objective-C? Если Вы уверены, что на текущем или новом месте работы Вам придётся поддерживать большое количества legacy-кода, написанного на Objective-C, то в этом случае его изучение может принести Вам пользу. Не будем забывать, что программисты на Фортране до сих пор в цене из-за существования корпоративных систем, написанных на этом языке. Полагаю, что то же самое мы будем наблюдать и через 10-15 лет с программистами, знающими Objective-C.

    Книги

    Начать процесс знакомства с iOS-разработкой я бы посоветовал с сайта от Apple Start Developing iOS Apps with Swift. Сайт предлагает набор последовательных туториалов по построению несложных iOS приложений и прекрасно объясняет, как устроен язык Swift, из чего состоит типичное приложение, как работать с графическим интерфейсом приложения и т.д. Также в конце предлагается список литературы для дальнейшего изучения касательно подготовки приложений к публикации в App Store, работе с различными фреймворками и прочими интересными вещами.

    У меня было две книги, одну из которых я могу порекомендовать: iOS 6 SDK. Разработка приложений для iPhone, iPad и iPod touch Это очень старая версия, рекомендую по возможности найти обновлённое издание для iOS 9. С одним из авторов — Джеком Наттингом, я знаком лично, он живёт в Стокгольме. Так же рекомендую читать эту книгу, как и остальную документацию/книги, на языке оригинала, т.е. на английском — в русском переводе могут быть неточности, опечатки и прочие проблемы.

    Также мне весьма понравилась книга от Аарона Хиллегасса и Джо Конвэя Программирование под iOS. Для профессионалов. Эта книга основана на популярном курсе от Big Nerd Ranch — одного из двух наиболее известных в iOS среде образовательных проектов (второй — Ray Wenderlich). Книжка последовательно поясняет, как устроен Objective-C, как работать с контроллерами представление, Core Data, геолокацией и прочими необходимыми вещами. Из недостатков — книга в настоящее время устарела, ищите более свежее издание.

    Кстати говоря, англоязычные книги как от Big Nerd Ranch, так и от Рея Вендерлиха, также настоятельно рекомендую.

    Видео

    Из видео могу рекомендовать ежегодный курс iOS разработки в iTunes U от Стэнфордского университета. На момент написания этой заметки доступна эта итерация для iOS 8 (когда я начинал изучать iOS-разработку, они преподавали iOS 5).

    Цукерберг рекомендует:  Скрипт - Скрипт для рассылки друзьям сообщений в социальных сетях

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

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

    Тематические блоги

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

    NSHipster — блог, созданный Мэттом Томпсоном, в настоящее время имеет и других контрибьюторов. Имеет солидную базу статей касательно фреймворков, объектов стандартных фреймворков, Objective-C, Swift, Xcode, open-source проектов, включая CocoaPods, ReactiveCocoa, AFNetworking, Alamofire и прочего другого.

    Natasha The Robot — отличный блог от Наташи Мурашевой (Natasha Murashev, надеюсь не переврал имя и фамилию в процессе обратного перевода на русский), содержит большое количество полезной информации об особенностях работы со Swift и не только.

    Ray Wenderlich — уже упоминавшийся ранее прекрасный ресурс со значительным количеством туториалов, доступных бесплатно. Прекрасно подойдёт даже для опытного разработчика, желающего быстро ознакомиться с новым для него фреймворком или сторонней библиотекой.

    NSBlog от Майка Эша. Подойдёт для разработчиков с опытом, поскольку темы, о которых пишет автор, обычно требуют достаточно глубокого понимания того, как устроена платформа iOS, а также объектная модель стандартных библиотек, Objective-C runtime и так далее.

    Little Bites of Cocoa — представляет собой блог с мини-туториалами на определённую тему, начиная с того, как работать с оператором guard в Swift, заканчивая тем, как правильно отправлять баг-репорты в Apple. В силу разнообразия рассматриваемых тем блог подойдёт как начинающим разработчикам, так и опытным.

    iOS Dev Weekly — это, на самом деле, не столько блог, сколько еженедельная почтовая рассылка, на которую можно подписаться и получать самые интересные новости (с точки зрения куратора рассылки — Дэйва Вервера) из мира iOS разработки за прошедшую неделю каждую пятницу в свой электронный почтовый ящик. Удобно, интересно, рекомендую.

    И что мне со всем этим делать?

    Как видите, возможностей для изучения iOS-разработки существует великое множество. Если у Вас уже кружится голова от всего перечисленного, не волнуйтесь, у меня есть простой алгоритм обучения iOS-разработке:

    1. Найдите себе интересную задачу, которую могло бы решить мобильное приложение для платформы iOS. Задача должна быть решаемой в обозримой перспективе, но не тривиальной.
    2. Пройдите курс от Apple Start Developing iOS Apps with Swift, чтобы получить базовое представление о том, как написать простейшее iOS-приложение.
    3. Попробуйте решить свою задачу из шага 1 при помощи полученных знаний. Скорее всего, если задача более или менее не тривиальна, у Вас что-то не получится. В этом случае, разбейте то, что не получается, на несколько логических подзадач и переходите к шагу 4.
    4. Для каждой подзадачи из шага 3 найдите книгу/видео/статью в Интернете о том, как её решить.
    5. Повторяйте шаг 4 до полного решения Вашей задачи.

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

    После того, как Вы ознакомились с базовыми навыками разработки и пришли к выводу, что Вам это нравится и Вы хотите этим заниматься профессионально, я настоятельно рекомендую прочитать хорошую книгу по теме и/или посмотреть целиком Стэнфордский курс лекций. Это необходимо для выработки системного понимания процесса разработки для платформы iOS. Без него Вы рискуете пополнить ряды многочисленных copy-paste программистов, ведущих разработку на языке StackOverflow, чего ни мне, ни Вам, совершенно не нужно. Мне не нужно по причине того, что я не хочу работать с такими ужасными разработчиками (язык не поворачивается назвать их “программистами”). Вам это не нужно потому, что найти работу с такими навыками Вам будет крайне трудно.

    А дальше надо писать код (много кода); думать; переписывать старый код; читать, что пишут другие, более опытные разработчики; участвовать в open-source проектах или хотя бы читать чужой код в этих open-source проектах и т.д..

    Именно практика делает начинающих разработчиков профессионалами.

    Если у Вас возникли идеи или соображения по поводу написанного, а также, если Вы хотите предложить книгу, курс видео, или хороший блог для улучшения данной заметки, напишите мне на hello[at]maxmikheev[dot]org.

    Ios разработка — Рисовать в Swift(Xcode). С чего начать?

    Для разработки под iOS нам потребуется специальная среда программирования, которая называется XCode . XCode позволяет использовать языки Swift и Objective-C для создания приложений под iOS и Mac OSX. Она является бесплатной, ее можно установить из App Store:

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

    В этом окне выберем пункт Get started with a playground .

    После этого надо будет указать тип проекта. Выберем первый тип проекта — Blank :

    Далее надо будет указать, под каким именем будет сохраняться проект. Укажем в качестве имени HelloSwift и нажмем на кнопку Create:

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

    В верхней панели MacOS установится меню для управления XCode. Большую часть самого Playground будет занимать текстовый редактор, в который мы будем вводить команды языка Swift. А справа находится окно консольного вывода, где мы сможем увидеть результат введенных команд.

    Удалим все из текстового редактора и введем в него следующее простейшее выражение:

    print() — это метод, который выводит некоторую строку. В данном случае это строка «Hello world!». И в окне консольного вывода справа мы сможем увидеть это сообщение:

    Это довольно простой пример, но в дальнейшем мы часто будем обращаться к среде Playground в XCode при изучении языка Swift.

    Структура программы

    Вкратце стоит сказать пару вводных слов о структуре программы на Swift. Программа состоит из набора команд, каждая из команд называется инструкцией (statement). Например, выше мы использовали следующую инструкцию:

    Как правило, каждая инструкция помещается на одной строке:

    При этом надо отметить, что Swift в целом имеет си-подобный синтаксис, то есть родственен таким языкам программирования как C, C++, C#, Java, однако однострочные инструкции не завершаются точкой с запятой. Хотя это можно делать. Но если мы помещаем несколько инструкций на одной строке, например:

    То в это случае их следует разделять точкой с запятой.

    Как и в других си-подобных языках в Swift для оформления структурных блоков применяются фигурные скобки. Например:

    Комментарии

    В Swift можно определять комментарии к исходному коду. Для создания многострочных комментариев применяется конструкция /* текст комментария */ :

    Для создания однострочных комментариев применяется двойной слеш:

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

    Уроки iOS Swift на реальных примерах

    В данном разделе сайта будут публиковаться уроки создания iOS приложений на языке программирования Swift в среде разработки XCode. Следует учитывать то, что здесь не будет уроков, связанных с базовыми знаниями, синтаксисом и т.д. языка Swift и основами работы в XCode. Для получения этих стартовых знаний в интернет существует масса ресурсов. Бесплатных и не очень… Много каналов на YouTube на английском языке и на русском, с дикторами, которые нормально декламируют или «Г-экают» и коверкают английские понятия языка, — например слово value они произносят: «валУэ».

    Редакция proSwift.ru рекомендует для изучения книгу по Swift от Apple. На наш взгляд — это лучшее издание для понимания языка.

    Все опубликованные в этом разделе уроки будут на русском языке. Разработка будет вестись с «нуля», а результатом каждого урока станет работающее iOS приложение. Главным отличием от сайтов подобной тематикой редакция считает, что уроки да и статьи на сайте будут взяты «из жизни». Т.е. в уроках будет не теория о принципах программирования, а именно реальные примеры программ на Swift.

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

    Список уроков:

    CALayer, или как закруглить углы, сделать тень и градиент на Swift

    Введение в разработку приложений под iOS. Часть 1.

    Здравствуйте, дорогие читатели.
    Данный блок будет продолжением темы “Введение в разработку под iOS«, которую мы затронули ранее.

    В этом уроке мы:

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

    Работу продолжим на примере приложения Warehouse, который мы создавали в первом уроке.

    В среде разработки Xcode можем видеть две панели. Левая из них — это панель навигации по составляющим проекта:

    Правая делится на панель свойств и панель библиотеки компонентов.

    Также вы можете использовать набор функций в панели инструментов, который находится сверху:

    Обратите внимание на кнопки этой панели справа:

    Нажимая на них, вы будете скрывать или отображать левую, правую, нижнюю панель в среде разработки.

    Левее находится блок функциональных кнопок для отображения данных выбранного модуля:

    Кнопка отображения текущего представления модуля.

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

    Кнопка отображения изменений с момента последней заливки данных в репозиторий. Используется, если ваш проект находится под управлением GIT

    Панель снизу — это панель отладки и логирования:

    В панели навигации откройте модуль Main.storyboard. Обратите внимание на стрелку слева, которая указывает на View. Эту стрелку можно перемещать, зажав ее левой кнопкой мыши.

    Отмечу, что при включении в настройках вашей OS X эмуляции двухкнопочной мыши важно понимать, что на тачпаде нет понятия нажатия левой или правой кнопки мыши, есть просто нажатие.

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

    Нажмите на View, на панели свойств откройте вкладку Show the identity inspector.
    В поле Class содержится класс контроллера, который привязан к нашему представлению (View).

    Рядом с названием класса ViewController есть серая иконка со стрелкой вправо, если вы нажмете на нее, то попадете в модуль контроллера ViewController.

    В свойствах дизайнера внизу выберите устройство iPhone 6s:

    Перенесите из библиотеки компонентов два элемента управления Text Field и один элемент управления Button на View. Выделите элемент управления Text Field справа и слева от него будут видны квадратики, потяните за правый квадратик и растяните поле на всю ширину экрана. То же самое проделайте со вторым элементом управления Text Field и элементом управления Button.

    У вас должно получится так, как на картинке ниже:

    Обратите внимание на кнопки внизу дизайнера:

    Это кнопки для отображения панелей свойств элементов управления. На этих панелях задаются выравнивания элементов управления либо относительно View, на котором они расположены, либо относительно других элементов управления, находящихся с ними по соседству. В терминологии Apple они называются ограничениями (Constraints).

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

    Выделите первый элемент управления Text Field, затем нажмите на кнопку Pin в дизайнере:

    Появится диалог ограничений для данного элемента управления:

    Выпадающие списки сверху, снизу, слева и справа — это допустимое расстояние элемента управления относительно стен View соответственно.

    Нам необходимо задать ограничение, чтобы наш элемент управления остался на том же месте, где он сейчас расположен на View , но при этом, в зависимости от ширины экрана устройства, подстраивался под эту ширину. Чтобы этого добиться, снимите галочку с Constrain to margin, отметьте галочкой поле Height, чтобы высота элемента управления не менялась. Отметьте линии верхняя, левая и правая. У вас должно получиться вот так:

    Заметьте, кнопка Add 4 Constraints стала активной. Нажмите на нее.

    Теперь проделайте ту же самую операцию для второго элемента управления Text Field и элемента управления Button. Значения в выпадающих списках не меняйте.

    Можно запустить приложение и посмотреть, что получилось.

    Откройте модуль Main.storyboard. Теперь нам необходимо привести в порядок пользовательский интерфейс и сделать его понятным для пользователя.

    Выделите первый элемент управления Text Field. В панели свойств откройте вкладку Show the attributes inspector, на этой вкладке найдите поле Placeholder, введите в это поле текст “Введите имя пользователя”. Свойство Placeholder задает текст, который отображается в поле ввода, когда это поле не заполнено.

    Выделите второй элемент управления Text Field, в панели свойств, откройте вкладку Show the attributes inspector, на этой вкладке найдите поле Placeholder, введите в это поле текст “Введите пароль пользователя”. Затем найдите поле Secure Text Entry и отметьте его галочкой. Данное свойство будет отображать звездочки вместо текста, вводимого пользователем, используется для полей ввода паролей.

    Выделите кнопку Button”, в панели свойств, откройте вкладку Show the attributes inspector, найдите поле без названия с текстом Button, удалите этот текст и добавьте текст “Вход”.

    Перетащите из библиотеки компонентов на View под кнопку “Вход” элемент управления Label. Растяните его по ширине экрана. Задайте ему такие же ограничения, как мы задавали выше для прошлых элементов управления.

    Выделите элемент управления Label, в панели свойств, откройте вкладку Show the attributes inspector. На этой вкладке найдите поле без названия с текстом Label. Удалите из него текст, введите текст “Нет ошибок”.

    Найдите поле Alignment, задайте выравнивание текста по центру.

    Выделите View, в панели свойств, откройте вкладку Show the attributes inspector, найдите поле Background, установите фон View “Light Green.

    У вас должно получиться следующее:

    Теперь необходимо добавить действие на нажатие кнопки “Вход” и объявить переменные для полей ввода и элемента управления Label. Для этого в панели инструментов нажмите кнопку Show the assistant editor, экран разделится пополам. Если экран вашего компьютера не позволяет нормально видеть дизайнер и модуль контроллера, скройте панель навигатора и панель свойств.

    Выделите первый элемент управления Text Field в дизайнере, не отводя курсор мыши с этого элемента управления, зажмите кнопку Ctrl, нажмите и удерживайте левую кнопку мыши, затем начинайте вести курсор на окно с модулем контроллера, когда курсор окажется между фигурными скобками класса контроллера, отпустите левую кнопку мыши, появится диалоговое окно параметров элемента управления:

    В данном окне есть несколько полей.

    Давайте их рассмотрим подробнее.

    • Поле Connection”, может принимать несколько вариантов значений, в данном уроке нас будут интересовать всего два значения Outlet (используется для создания переменной, связанной с элементом управления) и Action (используйте для задания обработчика события на какое либо действие элемента управления).
    • Поле Name, сюда вы вводите название вашей переменной, которая будет связана с элементом управления.
    • Поле Type”, содержит тип элемента управления (название класса элемента управления), можно ввести другой класс, если вы знаете иерархию наследования элемента управления UITextField.
    • Поле Storage, содержит вид размещения созданной переменной в памяти операционной системы. Может принимать значения “Weak” или “Strong”.
    • В поле Name введите название переменной userNameTxt и нажмите кнопку Connect или кнопку Enter на клавиатуре. В модуле контроллера добавится строчка с названием переменной, которую вы задали.

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

    Повторите данное действие для остальных элементов управления.

    Для второго текстового поля укажите название переменной passwordTxt.

    Для элемента управления Label укажите название переменной validationLabel.

    Для кнопки выберите в поле Connection значение Action, у вас добавится еще одно поле Event. В данном поле задается событие, на которые вы хотите назначить обработчик в коде контроллера. По умолчанию установлено событие Touch Up Inside, оставьте его как есть.

    В поле Type установлено значение AnyObject (Это класс, который может содержать любые типы данных, аналог подобного класса в других языка программирования, например, C# — это класс Object). Измените это значение на тип элемента управления UIButton, поскольку данный объект будет передан в аргументы метода обработчика назначенного события и намного удобнее будет обращаться явно к экземпляру кнопки, чем распаковывать этот экземпляр путем приведения к типу UIButton из типа AnyObject.

    В поле Name введите loginButtonTapped. У вас должно получиться вот так:

    Нажмите кнопку Connect. Код контроллера должен выглядеть вот так:

    Теперь давайте проверим, работает ли событие нажатия по кнопке “Вход”. Добавьте в метод loginButtonTapped следующий код:

    Давайте разберем этот код.

    На 16 строке идет проверка наличия текста в поле ввода “Имя пользователя”. Ключевое слово “self” означает ссылка на самого себя, в других языках программирования аналог, например, в C# — это ключевое слово “this”.

    Из переменной “userNameTxt” мы обращаемся к свойству “text”, данное свойство возвращает текст, который вы ввели в данный элемент управления. Знак вопроса в конце этого свойства ставится, так как это свойство имеет тип String? и может содержать значение “nil” (аналог “null” в C#).

    Далее мы обращаемся к свойству “characters” , которое содержит массив символов и от этого массива вызываем свойство “count”, чтобы получить количество символов в строке. Такая запись введена, начиная со Swift 3, доступного с обновлением среды разработки до Xcode 8 версии.

    В ранних версиях Swift, например, версии 2.1-2.3 можно было получить длину строки намного короче “self.userNameTxt.text?.length”.

    Если поле ввода “Имя пользователя” не заполнено, мы отображаем сообщение валидации “Имя пользователя не задано”.

    На 18 строке мы делаем аналогичную проверку для поля “Пароль пользователя”.

    На 20 строке мы проверяем, если заполнены оба поля ввода, тогда все хорошо и мы выводим сообщение “Нет ошибок”.

    Обратите внимание на запись “(self.userNameTxt.text?.characters.count)!”, скобки и знак восклицания в конце, на самом деле, применяются к свойству “text”, так как оно имеется Nullable тип. Этой записью мы гарантируем компилятору, что в данном свойстве не будет содержаться значение “nil” и данное свойство будет инициализировано.

    Теперь запустите приложение и проверьте его работу.

    На этом урок подошел к концу.

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

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