«Темнота. Черная бездна. Огромные и неимоверные мелкие огоньки. Тысячи огоньков, раскиданных по этому темному полотну. Одни неподвижно застыли в невесомости, другие летят с бешеной скоростью навстречу друг другу и вечности. Космос похож на Землю. Все так же куда−то беспорядочно летит, кружится, сталкивается, иногда взрывается, высвобождая энергию… Энергия. Без нее никуда. Из энергии появилось все и все становится ею, когда умирает. Но это на самом деле только кажется, что в космосе нет законов, как и в человеческом мире каждая частица знает свой путь и свое предназначение, хотя в мире людей человеческие частицы живут в большем хаосе, и часто не знают своего пути и предназначения. Странные мелкие людишки. Они кажутся смешными со своими рутинными жизнями и насущными проблемами, особенно за тысячи километров отсюда», − об этом размышлял командир экипажа космического корабля Слава, уставившись в иллюминатор.
− Эй, чего такой кислый? Саша похлопал Славу по плечу, − скоро Новый год!»
Саша – друг по ВУЗу, смешливый, вечно довольный и добрый. Душа компании. Почти полная противоположность Славы, молчаливого и иногда угрюмого.
− Что−то мне не нравятся показатели. Надо бы проверить задний мотор.
− да ладно тебе, ну и фиг с ними, у нас там елка, конфеты с шампанским, давай, ребята уже заждались.
Слава неохотно отрывается от приборной панели:
− так ты ей признаешься? Сколько можно? А вдруг не успеешь, и она замуж выйдет?
− у нас еще полгода, за это время точно не выйдет, − ухмыляется Саша.
− ну−ну, полгода, − по пути в другую камеру бубнит Слава.
Вот они все. Жизнерадостные, веселые, как будто им не предстоит еще треклятых полгода болтаться в этом безвременье.
Вокруг импровизированного стола собралась команда. Ольга – высокая стройная блондинка с голубыми глазами и самыми милыми ямочками на щеках – любовь Саши. Анна – смешная темноволосая южанка, она обычно, как и Слава, мало говорит, но шутить над ней опасно, иногда чересчур резка на слова. И Коля. Коля вызывает странные ощущения. С самой первой встречи такой. Как только познакомились с командой на Земле, у Славы отчего−то к нему недоверие и неприязнь. Вроде спокойный тихий парень, а что−то не то во взгляде, как будто во всем хочет схитрить.
− Ну что, 12,11,10,9,8,7,6,5,4,3,2,1….иииии С НОВЫМ ГОДОМ!!! Шампанское выплывает из бутылки наружу большими золотистыми пузырями, все наперебой ловят его ртами и смеются. – а вообще не очень−то и плохо, даже весело, − улыбается про себя Слава.
− с новым годом, Саша! – Оля подлетела и поцеловала его в щеку. Бедный Саша покраснел и хотел что−то ответить, как вдруг, корабль резко тряхнуло. Свет замерцал, и корабль затрясся сильнее.
Для пользователя - дизайн и есть вся программа.
Как правило, в 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, чтобы приучить программистов к единому стилю именования. Кроме того, многие термины слабо переводимы на русский язык, как мы видели это в предыдущих курсах.
Add Account
- введите данные своего Apple ID и Вы получите бесплатный аккаунт разработчика. Данного аккаунта Вам хватит вплоть до публикации Вашего первого приложения в App Store.Organization Identifier
) - как правило, задается домен организации в обратном порядке - то есть swiftworld.ru станет ru.swiftworld
. Это связано с внутренней структурой размещения пакетов в Unix, поэтому не парьтесь особо по этому поводу.Bundle Identifier
(идентификатор пакета) - Вы не сможете изменить это поле. Оно формируется из имени продукта и идентификатора фирмы.Language
- здесь Вы можете выбрать язык написания программы. Для приложений под iOS доступно два языка Swift и Objective-C. Нас интересует лишь первый. В конечных приложениях возможно смешивать эти два языка и C, C++.Next
Выберите папку для размещения проекта. Если нужен локальный контроль версий, то выберите галочку Source Control
.
Не пугайтесь большому количеству окон на экране. Мы рассмотрим их подробнее.
Project
) - набором различных целей и элементов.Target
) - часть проекта, которую можно собрать отдельно, в этом случае у нас одна цель - приложение под iOS.Deployment Info
) - в этом поле размещена информация о развёртывании или распространении приложения. Здесь Вы можете выбрать:
Deployment Target)
- тут указывается минимально поддерживаемая приложением версия iOS. При обучении выбирайте последнюю версию iOS, чтобы испытывать как можно меньше проблем с актуальностью кода.Devices
) - здесь можете выбрать поддерживаемое устройство: Universal - iPad & iPhone или только отдельно iPad, iPhone. iPod Touch относится к семейству iPhone, так как мало отличается от него.Device Orientation
.Status Bar Style
)Hide Status Bar
.Requires Full Screen
.Как Вы заметили, заголовки в английском языке пишутся чаще чуть иначе, чем в русском - каждое слово в заголовке начинается с большой буквы.
Рассмотрим здесь типы файлов Xcode, с которыми придётся столкнутся в ближайшем будущем. Для их изучения рассмотрим панель или область навигатора в Xcode (номер 3 на рисунке выше).
Верхний файл с типом .xcodeproj
- файл проекта Xcode, чтобы перейти в его настройки (в которых мы и так находимся), выберите его.
.swift
- содержит код на языке Swift, транслируемый при сборке программы в язык, понимаемый целевым устройством.
.storyboard
- файлы раскадровок или историй. Каждое приложение в Xcode представляет собой пользовательскую историю - как будет пользователь взаимодействовать с программой. Такая ориентация на разработку приложений под потребности пользователя выгодно отличает данную среду от многих других, зацикленных на создании кода ради кода. Основной принцип Swift и Apple - "Write less, do more" ("Пиши меньше, делай больше"): Вам не придётся тратить много времени на написание самого кода - большую часть времени Вы будете разрабатывать модель и бизнес-логику приложения. Такой подход позволяет Вашим приложениям лучше удовлетворять потребности клиентов, а значит и Вам получать больше прибыли.
.xcassets
- каталог даст Вам возможность собрать в одном месте ресурсы приложения - иконки, изображения, звуки и тому подобное. Ещё одна польза подхода - Вы можете задать разные размеры изображений под различные экраны, а в коде использовать абстрактный вид изображения без привязки к размерам.
.plist
- propertylist - список свойств - специальные файлы для настройки приложений или хранений ассоциативной информации. Если Вы работали на Windows с настройками программ, то часто попадались файлы типа .ini
- аналоги списков свойств, однако списки свойств более структурированы и эффективны. Info.plist
содержит настройки приложения, которые Вы задаёте через графическое меню.
Со временем однозначно заметите пользу использования клавиатурных сокращений - намного быстрее использовать команды на клавиатуре, чем продираться мышкой через множество меню.
Пока что запишите себе следующие сокращения и используйте их, как только представится шанс:
Зайдите в Xcode -> Preferences
.
Здесь Вы можете изменить множество настроек системы, чтобы сделать Вашу работу более эффективной.
Сперва проверьте, чтобы на панели General
(Общие настройки) стояла галочка у Show live Issues
, это позволит отображаться ошибкам в реальном времени без запроса на сборку.
В разделе Text Editing -> Editing
проверьте галочку у Line numbers
: её наличие будет отображать номера строк, что крайне удобно при разработке.
Напоследок можете выбрать тему для редактора в Font & Colors
. Со временем Вы определитесь, какие размер текста, шрифт и прочие параметры Вам подходят.
Наиболее часто используют тему по-умолчанию Default
или Civic
- тёмную тему оформления. Она очень удобна в ночное время суток, и если Вы любите программировать ночью (прямо как мы). Распространено мнение, что ночной режим даёт более сильную нагрузку на глаза. Не переживайте, со временем они Вам больше не понадобятся!