UIKit 1 / 1.1. И снова разбираемся с Xcode


Видео


«Темнота. Черная бездна. Огромные и неимоверные мелкие огоньки. Тысячи огоньков, раскиданных по этому темному полотну. Одни неподвижно застыли в невесомости, другие летят с бешеной скоростью навстречу друг другу и вечности. Космос похож на Землю. Все так же куда−то беспорядочно летит, кружится, сталкивается, иногда взрывается, высвобождая энергию… Энергия. Без нее никуда. Из энергии появилось все и все становится ею, когда умирает. Но это на самом деле только кажется, что в космосе нет законов, как и в человеческом мире каждая частица знает свой путь и свое предназначение, хотя в мире людей человеческие частицы живут в большем хаосе, и часто не знают своего пути и предназначения. Странные мелкие людишки. Они кажутся смешными со своими рутинными жизнями и насущными проблемами, особенно за тысячи километров отсюда», − об этом размышлял командир экипажа космического корабля Слава, уставившись в иллюминатор.

− Эй, чего такой кислый? Саша похлопал Славу по плечу, − скоро Новый год!»

Саша – друг по ВУЗу, смешливый, вечно довольный и добрый. Душа компании. Почти полная противоположность Славы, молчаливого и иногда угрюмого.
− Что−то мне не нравятся показатели. Надо бы проверить задний мотор.
− да ладно тебе, ну и фиг с ними, у нас там елка, конфеты с шампанским, давай, ребята уже заждались.
Слава неохотно отрывается от приборной панели:
− так ты ей признаешься? Сколько можно? А вдруг не успеешь, и она замуж выйдет?
− у нас еще полгода, за это время точно не выйдет, − ухмыляется Саша.
− ну−ну, полгода, − по пути в другую камеру бубнит Слава.
Вот они все. Жизнерадостные, веселые, как будто им не предстоит еще треклятых полгода болтаться в этом безвременье.
Вокруг импровизированного стола собралась команда. Ольга – высокая стройная блондинка с голубыми глазами и самыми милыми ямочками на щеках – любовь Саши. Анна – смешная темноволосая южанка, она обычно, как и Слава, мало говорит, но шутить над ней опасно, иногда чересчур резка на слова. И Коля. Коля вызывает странные ощущения. С самой первой встречи такой. Как только познакомились с командой на Земле, у Славы отчего−то к нему недоверие и неприязнь. Вроде спокойный тихий парень, а что−то не то во взгляде, как будто во всем хочет схитрить.
− Ну что, 12,11,10,9,8,7,6,5,4,3,2,1….иииии С НОВЫМ ГОДОМ!!! Шампанское выплывает из бутылки наружу большими золотистыми пузырями, все наперебой ловят его ртами и смеются. – а вообще не очень−то и плохо, даже весело, − улыбается про себя Слава.
− с новым годом, Саша! – Оля подлетела и поцеловала его в щеку. Бедный Саша покраснел и хотел что−то ответить, как вдруг, корабль резко тряхнуло. Свет замерцал, и корабль затрясся сильнее.


Для пользователя - дизайн и есть вся программа.

Аза Раскин

В этом уроке


Особенности работы с iOS

Как правило, в iOS приложения работают только с одним окном, которое занимает весь экран. Здорово? Безусловно. Дизайнеру придётся разработать один вид этого окна, а не думать о многочисленных вариантах размеров. Исключением из правила выступает использование разделённого экрана Split Screen или режима Slide Over - наложение маленького варианта одного приложения поверх другого.

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

Apple требует от приложений мгновенной реакции на всевозможные действия: приложение должно максимально быстро отвечать на запросы пользователя. На самом деле это требование ставится перед Вами и бизнесом - если приложение работает медленно, то речь идёт о плохом пользовательском опыте UX или User Experience, а Вам придётся за это расплачиваться потерей прибыли.

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

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

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


Что такое интегрированная среда разработки?

Удивительно, что Вы можете писать приложения и в блокноте, и в Word, а если прошли наш курс по терминалу в Unix, то и в страшном редакторе Vim.

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

Интегрированная среда разработки (или IDE - Integrated Development Environment) это больше, чем текстовый редактор: это набор инструментов, которые охватывает весь процесс разработки - от написания кода, тестирования, развертывания и до командной работы.

Не переживайте, что придётся потратить время, чтобы освоить Xcode в совершенстве - любой инструмент требует времени на изучение.

Если раньше Вы использовали игровые площадки или онлайн-песочницы, то для этой части придётся перейти на полнофункциональный Xcode.


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

Чтобы начать изучение Xcode, давайте создадим новый проект. Запустите Xcode и выберите Create a new Xcode project

На новом экране Вы увидите множество стартовых шаблонов, разделённых по секциям поддерживаемых платформ:

Выберите iOS > Single View Application и нажмите Next.

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

  1. Задайте название приложения (Product Name)
  2. Выберите команду разработки - если это Ваш первый запуск Xcode и Вы ранее никогда не работали в инфраструктуре Apple, то там будет кнопка Add Account - введите данные своего Apple ID и Вы получите бесплатный аккаунт разработчика. Данного аккаунта Вам хватит вплоть до публикации Вашего первого приложения в App Store.
  3. Введите имя организации в Organization Name - если Вы птица вольного полёта, то придумайте себе название-бренд.
  4. Введите идентификатор организации (Organization Identifier) - как правило, задается домен организации в обратном порядке - то есть swiftworld.ru станет ru.swiftworld. Это связано с внутренней структурой размещения пакетов в Unix, поэтому не парьтесь особо по этому поводу.
  5. Bundle Identifier (идентификатор пакета) - Вы не сможете изменить это поле. Оно формируется из имени продукта и идентификатора фирмы.
  6. Language - здесь Вы можете выбрать язык написания программы. Для приложений под iOS доступно два языка Swift и Objective-C. Нас интересует лишь первый. В конечных приложениях возможно смешивать эти два языка и C, C++.
  7. Снимите галочки, если они присутствуют, с трёх следующих пунктов. Мы расскажем о каждом из них подробнее в дальнейшем.
  8. Нажмите Next

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

Не пугайтесь большому количеству окон на экране. Мы рассмотрим их подробнее.


  1. Проект и цели - то, что Вы открываете в Xcode является проектом (Project) - набором различных целей и элементов.
  2. Цель (Target) - часть проекта, которую можно собрать отдельно, в этом случае у нас одна цель - приложение под iOS.
  3. Информация о развёртывании (Deployment Info) - в этом поле размещена информация о развёртывании или распространении приложения. Здесь Вы можете выбрать:
    1. Цель (Deployment Target) - тут указывается минимально поддерживаемая приложением версия iOS. При обучении выбирайте последнюю версию iOS, чтобы испытывать как можно меньше проблем с актуальностью кода.
    2. Устройства (Devices) - здесь можете выбрать поддерживаемое устройство: Universal - iPad & iPhone или только отдельно iPad, iPhone. iPod Touch относится к семейству iPhone, так как мало отличается от него.
    3. Далее можете выбрать доступные ориентации устройства для приложения в разделе Device Orientation.
    4. Теперь можно выбрать стиль статус-бара (верхняя панель iOS-устройства, где отображается информация о батарее, сети и прочем): по-умолчанию или лёгкий (Status Bar Style)
    5. Чтобы скрыть статус-бар, поставьте галочку у Hide Status Bar.
    6. Чтобы потребовать использования полного экрана, отметьте галочкой пункт Requires Full Screen.

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


О типах файлов в Xcode

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

Верхний файл с типом .xcodeproj- файл проекта Xcode, чтобы перейти в его настройки (в которых мы и так находимся), выберите его.

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

.storyboard - файлы раскадровок или историй. Каждое приложение в Xcode представляет собой пользовательскую историю - как будет пользователь взаимодействовать с программой. Такая ориентация на разработку приложений под потребности пользователя выгодно отличает данную среду от многих других, зацикленных на создании кода ради кода. Основной принцип Swift и Apple - "Write less, do more" ("Пиши меньше, делай больше"): Вам не придётся тратить много времени на написание самого кода - большую часть времени Вы будете разрабатывать модель и бизнес-логику приложения. Такой подход позволяет Вашим приложениям лучше удовлетворять потребности клиентов, а значит и Вам получать больше прибыли.

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

.plist - propertylist - список свойств - специальные файлы для настройки приложений или хранений ассоциативной информации. Если Вы работали на Windows с настройками программ, то часто попадались файлы типа .ini- аналоги списков свойств, однако списки свойств более структурированы и эффективны. Info.plist содержит настройки приложения, которые Вы задаёте через графическое меню.


Клавиатурные сокращения

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

Пока что запишите себе следующие сокращения и используйте их, как только представится шанс:


Базовые настройки Xcode

Зайдите в Xcode -> Preferences. Здесь Вы можете изменить множество настроек системы, чтобы сделать Вашу работу более эффективной.

Сперва проверьте, чтобы на панели General (Общие настройки) стояла галочка у Show live Issues, это позволит отображаться ошибкам в реальном времени без запроса на сборку.

В разделе Text Editing -> Editing проверьте галочку у Line numbers: её наличие будет отображать номера строк, что крайне удобно при разработке.

Напоследок можете выбрать тему для редактора в Font & Colors. Со временем Вы определитесь, какие размер текста, шрифт и прочие параметры Вам подходят. Наиболее часто используют тему по-умолчанию Default или Civic - тёмную тему оформления. Она очень удобна в ночное время суток, и если Вы любите программировать ночью (прямо как мы). Распространено мнение, что ночной режим даёт более сильную нагрузку на глаза. Не переживайте, со временем они Вам больше не понадобятся!