Erhalten Sie Zugang zu diesem und mehr als 300000 Büchern ab EUR 5,99 monatlich.
Мечтаете стать iOS-разработчиком, написать собственное приложение и работать в крутой компании? Тогда эта книга для вас! Язык Swift прост, понятен и отлично подойдет как новичкам, так и опытным программистам. Чтобы начать писать код, вам потребуются только эта книга, компьютер и желание учиться. Все базовые концепции программирования и основы синтаксиса объясняются доступным языком, поэтому если вы никогда раньше не занимались разработкой, то эта книга — отличный старт. Теория чередуется с практическими примерами и кодом — так вы сразу сможете связать абстрактные понятия с реальными ситуациями. В каждой главе вас ждут тесты и домашние задания, которые помогут закрепить материал. А еще Swift — это дружелюбное сообщество в Telegram, где можно обсуждать проекты и получать поддержку. Учитесь, создавайте и творите свое будущее!
Sie lesen das E-Book in den Legimi-Apps auf:
Seitenzahl: 580
Veröffentlichungsjahr: 2024
Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:
Литературный редактор М. Петруненко
Художник В. Мостипан
Корректоры С. Беляева, Н. Викторова
Василий Усов
Swift. Основы разработки приложений под iOS, iPadOS и macOS. 6-е изд. дополненное и переработанное. — СПб.: Питер, 2020.
ISBN 978-5-4461-1796-3
© ООО Издательство "Питер", 2020
Все права защищены. Никакая часть данной книги не может быть воспроизведена в какой бы то ни было форме без письменного разрешения владельцев авторских прав.
Посвящается моим родным
Спасибо маме и папе за то, что всегда поддерживали мои интересы и подтолкнули меня к выбору пути, определившего всю мою жизнь.
Спасибо супруге за то, что рядом, за то, что стала моим вдохновением.
Спасибо сестре и брату за то, что были со мной всю мою жизнь и всегда искренне радовались моим успехам.
Спасибо небольшой команде начинающих и состоявшихся разработчиков и IT-специалистов. Без вас книга не была бы такой, какая она есть:
Тимуру — @tima5959
Александру — @mosariot
Виктору — @krylwte
Рустаму — @Zed_Null
Денису — @g01dt00th
Игорю — @iAryslanov
Олегу — @GodOfSwift
Привет! Меня зовут Василий Усов. Я автор учебных материалов по разработке на Swift под iOS и macOS. Прошло уже более пяти лет с написания первой книги по Swift, но ежегодно я обновляю и дополняю ее, описывая нововведения языка, и корректирую в соответствии с вашими рекомендациями и просьбами.
В этой книге я ставлю себе две основные задачи: популяризировать разработку на Swift под платформу Apple, а также найти наиболее эффективные способы и подходы к обучению. Благодаря вам я вижу, что мой многолетний труд не проходит впустую и приносит свои плоды. Многие из тех, кто купил прошлые издания и ввязался в эту вечную гонку за знаниями, уже разрабатывают свои приложения или нашли отличную работу, где могут полностью реализоваться.
ПРИМЕЧАНИЕ Писать книги по программированию, как и любую другую техническую литературу, — дело совершенно неприбыльное и отнимающее просто гигантское количество личного времени. Каждое издание книги пишется не менее 5 месяцев, а основная часть прибыли достается магазинам, дистрибьюторам и издателям, оставляя автору не более 5 %.
Если вы скачали книгу в Сети, но нашли ее очень полезной, то я буду благодарен, если вы внесете вклад в дальнейшее развитие проекта, совершив покупку на сайте https://swiftme.ru. С 2015 года и по сегодняшний день мои книги продаются только благодаря вашей поддержке.
Я рад каждому, кто зарегистрировался на сайте или добавился в Telegram-канал. Неважно, сколько вам лет: 15 или 40. Желание разрабатывать приложения уже само по себе бесценно, так как именно оно приведет вас к тому, чтобы создать «то самое приложение», которое совершит очередную революцию.
Если вы еще учитесь в школе, то это прекрасно, что поздно вечером вы не заставляете своих родителей переживать, а мирно сидите перед монитором с этой книгой в руках и изучаете невероятный язык Swift. Я также уверен, что вы не против купить новую модель iPhone, на который можно заработать, создав свое собственное приложение. И вот что я скажу: у вас все получится!
Если вы уже учитесь в институте, то Swift — это то, что будет держать ваш ум в тонусе. Помните, что многие из известных новаторов придумали и реализовали свои удивительные идеи именно в вашем возрасте. Сейчас вы находитесь на пике активности, воспользуйтесь этим!
Если вы старше, то наверняка у вас созрела гениальная идея, для реализации которой вы и пришли в разработку. Swift — это именно тот инструмент, который вам необходим. Главное, погрузившись в разработку, не забывайте о своих близких, хотя уверен, что они с полным пониманием отнесутся к вашему начинанию.
Дарите этому миру добро и прекрасные приложения! Добро пожаловать во вселенную Swift.
Самые важные ссылки я собрал в одном месте. Обязательно посетите каждую из них, это поможет в изучении материала книги.
Сайт сообщества
https://swiftme.ru
https://Swiftme.ru — это развивающееся сообщество программистов на Swift. Здесь вы найдете ответы на вопросы, возникающие в ходе обучения и разработки, а также уроки и курсы, которые помогут вам глубоко изучить тему разработки приложений.
Курс с видеоуроками, тестами, домашними заданиями и дополнительными материалами
https://swiftme.ru/course16
Материал книги будет усваиваться значительно лучше, если его закреплять просмотром видеоуроков и решением домашних заданий.
Мы в Telegram
https://swiftme.ru/telegramchat или https://t.me/usovswift
Если по ходу чтения книги у вас появились вопросы, то вы можете задать их в нашем чате в Telegram.
Опечатки книги
https://swiftme.ru/typo16
Здесь вы можете посмотреть перечень всех опечаток, а также оставить информацию о найденных вами и еще не отмеченных. Документ создан в Google Docs, для доступа нужен Google-аккаунт.
Листинги
https://swiftme.ru/listings16
Здесь вы можете найти большую часть листингов и проектов, создаваемых в книге.
На ежегодной конференции для разработчиков Apple WWDC (WorldWide Developers Conference) 2 июня 2014 года компания удивила iOS-общественность, представив новый язык программирования — Swift. Это стало большой неожиданностью: максимум, на что рассчитывали разработчики, — это обзор возможностей iOS 8 и новые API для работы с ними.
Начиная с 2014 года и по настоящий момент Swift активно развивается. Сегодня он стал основным языком разработки под платформу Apple, опередив все еще популярный язык Objective-C1. Swift — это язык программирования с открытым исходным кодом, а значит, он скоро будет поддерживаться и другими операционными системами2.
Если вы когда-либо программировали на других языках, то могу предположить, что после знакомства со Swift и со всем многообразием его возможностей вы не захотите возвращаться в «старый лагерь». Имейте в виду, что Swift затягивает и не отпускает!
Ответьте для себя на следующие вопросы:
• Хотите ли вы научиться создавать программы под iOS, iPadOS, macOS, watchOS и tvOS?
• Вам больше нравится обучение в практической форме, чем скучные и монотонные теоретические лекции?
Если вы ответили на них утвердительно, то эта книга для вас.
Материал в книге подкреплен практическими домашними заданиями. Мы вместе пройдем путь от самых простых понятий до решения наиболее интересных задач, которые заставят ваш мозг усердно работать.
Не стоит бояться, Swift вовсе не отпугнет вас (как это мог бы сделать Objective-C), а процесс создания приложений окажется очень увлекательным. А если у вас есть идея потрясающего приложения, то совсем скоро вы сможете разработать его для современных мобильных систем iOS и iPadOS, стационарной системы macOS или Linux, смарт-часов Apple Watch или телевизионной приставки Apple TV.
Единственное и самое важное требование — уметь работать с компьютером: скачивать, устанавливать и открывать программы, пользоваться мышью и клавиатурой, а также иметь общие навыки работы с операционной системой. Как видите, для начала надо не так уж много.
Если вы раньше программировали на каких-либо языках, это очень поможет, так как у вас уже достаточно базовых знаний для успешного освоения материала. Если же это не так, не переживайте — я попытаюсь дать максимально полный материал, который позволит проходить урок за уроком.
Swift — это быстрый, современный, безопасный и удобный язык программирования. С его помощью процесс создания программ становится очень гибким и продуктивным, так как Swift вобрал в себя лучшее из таких языков, как C, Objective-C и Java. Swift на редкость удобен для изучения, восприятия и чтения кода. У него очень перспективное будущее.
Изучая Swift, вы удивитесь, насколько он превосходит другие языки программирования, на которых вы раньше писали. Его простота, лаконичность и невероятные возможности просто поразительны!
Swift — это комбинация последних изысканий в области программирования и опыта, полученного в процессе работы по созданию продуктов экосистемы Apple. Более того, Swift имеет очень большое сообщество и открытый исходный код, что позволяет оперативно добавлять в него новые возможности.
Swift — объектно-ориентированный язык программирования, придерживающийся парадигмы «всё — это объект». Если сейчас вы не поняли, что это значит, не переживайте: чуть позже мы еще к этому вернемся.
Swift создан для того, чтобы быть удобным в работе и максимально понятным. У него простой и функциональный синтаксис, позволяющий вместо сложных многострочных выражений писать однострочные (а в некоторых случаях — односимвольные!).
В рамках Swift разработчики попытались создать современный язык, свободный от уязвимостей и не требующий от программиста лишних усилий в процессе создания приложений. Swift имеет строгую типизацию: в любой момент времени вы точно знаете, с объектом какого типа работаете. Более того, в процессе программирования вам практически не надо думать о расходе оперативной памяти, Swift все делает за вас в автоматическом режиме.
Swift еще очень молод, но по производительности разрабатываемых программ он приближается (а в некоторых случаях уже и обгоняет) ко всем известному «старичку» — языку программирования C++.3
Благодаря активно растущему сообществу разработчиков, штаб-квартирой которых стал портал https://swift.org, язык Swift поддерживает свою актуальность и стабильность работы. Для русскоязычного сообщества есть несколько профильных сайтов, одним из которых является https://swiftme.ru.
Все это делает Swift по-настоящему удивительным языком программирования.
Использование смартфонов для решения возникающих задач стало нормой. Поэтому все больше компаний используют приложения для своего бизнеса и выделяют большие бюджеты на их обслуживание. Операционная система iOS является одной из популярнейших мобильных систем в мире, и в такой ситуации спрос на Swift-разработчиков растет необычайными темпами.
Книга является вводным курсом для всех желающих научиться программировать на замечательном языке Swift, чтобы создавать собственные приложения или устроиться на работу iOS-разработчиком.
В ходе чтения книги вы встретите не только теоретические сведения, но и большое количество практических примеров и заданий, выполняя которые вы углубите свои знания изучаемого материала. Вам предстоит пройти большой путь, и он будет очень интересным.
Несмотря на то что книга предназначена в первую очередь для изучения синтаксиса и возможностей языка Swift, вы узнаете о принципах разработки полноценных приложений. Можете быть уверены, эта информация будет очень полезной. С этой книгой вы освоите новый язык и напишете свой первый проект.
Проекты студентов
https://swiftme.ru/projects
Здесь вы можете найти проекты некоторых студентов, которые уже прошли обучение по нашим книгам и курсам. При желании вы сможете разместить здесь и свои работы. Просто напишите об этом в чате в Telegram.
Код и проекты в книге написаны с использованием Swift 5.3, iOS 14, Xcode 12 beta и операционной системы macOS 10.15 Catalina. Если у вас более свежие версии программного обеспечения (например, macOS 11 Big Sur и стабильная версия Xcode 12), то вполне возможно, что показанный на скриншотах интерфейс будет немного отличаться от вашего. При этом весь приведенный программный код с большой долей вероятности будет работать без каких-либо правок. Тем не менее если вы встретитесь ситуацией, при которой интерфейс или код необходимо исправить, то прошу сообщить мне об этом одним из способов:
• Отметить в специальном электронном файле (https://swiftme.ru/typo16).
• Написать в Telegram-канале (https://swiftme.ru/telegramchat или https://t.me/usovswift).
Очень важно, чтобы вы не давали своим рукам «простаивать». Тестируйте весь предлагаемый код и выполняйте все задания, так как учиться программировать, просто читая текст, — не лучший способ. Если в процессе изучения нового материала у вас появится желание поиграть с кодом из листингов, делайте это не откладывая. Постигайте Swift!
Не бойтесь ошибаться: пока вы учитесь, ошибки — ваши друзья. А исправлять их и избегать в будущем вам поможет среда разработки Xcode (о ней мы поговорим позже) и моя книга.
Помните: чтобы стать великим программистом, требуется время! Будьте терпеливы и внимательно изучайте материал. Желаю увлекательного путешествия!
Листинги
https://swiftme.ru/listings16
Здесь вы можете найти большую часть листингов и проектов, создаваемых в книге.
Задания для самостоятельной работы на сайте https://swiftme.ru. Все, что вам нужно сделать, — зайти на https://swiftme.ru, зарегистрироваться, после чего получить доступ к базе учебных материалов.
Курс с видеоуроками, тестами, домашними заданиями и дополнительными материалами
https://swiftme.ru/course16
Советую ознакомиться с сайтом прямо сейчас, так как я не буду ограничиваться одними лишь заданиями. Со временем там появятся дополнительные учебные видео, которые, без сомнения, упростят изучение Swift.
Заглядывайте в учебный раздел перед каждой главой книги — так вы будете в курсе всех имеющихся дополнительных материалов и заданий для самостоятельного решения.
Очень часто во время написания кода начинающие разработчики пользуются нехитрым приемом «копировать/вставить». Они копипастят все, начиная от решения домашних заданий и заканчивая найденными в Сети готовыми участками кода, решающими определенную проблему. Недостаток такого подхода в том, что чаще всего человек не разбирается в том, что копирует. Решение задачи проходит мимо и не оседает в его голове.
Конечно, в некоторых случаях такой подход может ускорить достижение конечной цели: написание программы или последней страницы книги. Но в действительности ваша цель в получении глубоких знаний для повышения собственного уровня так и не будет достигнута.
Я настоятельно советую разбирать каждый пример или рецепт и не гнаться за готовыми решениями. Каждое нажатие на клавиатуру, каждое написание символа должно быть осознанным.
Если у вас возникают проблемы с решением задания — обратитесь к нашему сообществу в Telegram.
Старайтесь решать задания самостоятельно, используя при этом помощь сообщества, книгу и другие справочные материалы. Но не ориентируйтесь на то, чтобы посмотреть (или правильнее — подсмотреть?) готовое решение.
Экспериментируйте, пробуйте, тестируйте — среда разработки выдержит даже самый некрасивый и неправильный код!
В результате долгого и плодотворного общения со многими из вас была выработана масса идей, благодаря которым новое издание стало еще более полезным. Огромное спасибо всем участникам каналов в Telegram — с вашей помощью книга становится лучше и интереснее.
По сравнению с предыдущим изданием эта книга содержит следующие изменения и дополнения:
• Формат книги изменен (теперь она больше и толще).
• Учебный материал актуализирован в соответствии со Swift 5.3 и Xcode 12.
• Переписаны и обновлены большинство глав в книге.
• Добавлен новый материал, который ранее не входил в книгу:
• Пример использования фреймворка SwiftUI.
• О выборе между классами и структурами.
• О протокол-ориентированном программировании.
• О числовом типе данных Decimal.
• О ключевом слове some.
• О принципах работы ARC и хранении value type и reference type в памяти.
• О новых методах для работы с массивами.
• Добавлены разделы «Для чего это использовать», которые кратко показывают, для чего в реальных проектах могут быть использованы изученные возможности.
• Наборы (set) переименованы в множества.
Обновлены графические материалы (схемы, рисунки, графики и скриншоты).
• Исправлены найденные опечатки и учтены пожелания и замечания читателей по оформлению и содержанию.
Вы уже начали путешествие в мир Swift. Совсем скоро вы выполните первые обязательные шаги перед разработкой собственных приложений. Вы узнаете, как завести собственную учетную запись Apple ID, как подключиться к программе Apple-разработчиков, где взять среду разработки Swift-приложений и как с ней работать.
Весь последующий материал книги разделен на шесть частей:
• Часть I. Базовые возможности Swift. После знакомства со средой разработки Xcode вы изучите базовые возможности Swift. Вы узнаете, какой синтаксис имеет Swift, что такое переменные и константы, какие типы данных существуют и как всем этим пользоваться при разработке программ.
• Часть II. Контейнерные типы данных. Что такое последовательности и коллекции и насколько они важны для создания ваших программ? В этой части книги вы познакомитесь с наиболее важными элементами языка программирования.
• Часть III. Основные возможности Swift. Третья часть фокусируется на рассмотрении и изучении наиболее простых, но очень интересных средств Swift, позволяющих управлять ходом выполнения приложений.
• Часть IV. Введение в разработку приложений. Эта часть посвящена изучению основ среды разработки Xcode, а также созданию двух первых консольных приложений.
• Часть V. Нетривиальные возможности Swift. В пятой части подробно описываются приемы работы с наиболее мощными и функциональными средствами Swift. Материал этой части вы будете использовать с завидной регулярностью при создании собственных приложений в будущем. Также здесь вас ждет большая практическая работа — создание первого интерактивного приложения в Xcode Playground.
• Часть VI. Введение в iOS-разработку. В конце долгого и увлекательного пути изучения языка и создания простых приложений вам предстоит окунуться в мир разработки полноценных программ. Из этой части вы узнаете основы создания интерфейсов и работы программ в Xcode «под капотом». Все это в будущем позволит вам с успехом осваивать новый материал и создавать прекрасные проекты.
Примечание В данном блоке приводятся примечания и замечания.
Листинг
Это примеры программного кода.
Синтаксис
В таких блоках приводятся синтаксические конструкции с объяснением вариантов их использования.
Такие блоки содержат указания, которые вам необходимо выполнить.
Сложно найти специальность, для которой знание английского языка было бы настолько важным, как для разработчика. Конечно, есть программисты, которые учатся исключительно по русским источникам, но в этом случае они сами себя ограничивают.
Для работы с официальной документацией и чтения самых новых и познавательных статей необходимо знание английского языка! И к сожалению, ситуация вряд ли изменится. Отечественные разработчики не спешат создавать новые и интересные учебные материалы, а зачастую ограничиваются лишь переводом зарубежных статей.
Если у вас возникают трудности с чтением англоязычных статей, то самое время начать исправлять ситуацию. В любом случае ваша карьера во многом зависит от знания языка, каждая вторая фирма «выкатывает» это требование в описании вакансии.
Я считаю, что не обязательно тратить тысячи рублей ежемесячно на занятия с преподавателем (особенно если у вас уже есть школьная или институтская база). Лично я изучаю и поддерживаю уровень языка с помощью следующих средств:
• Мобильные приложения. Duolingo, Simpler, «Полиглот», Lingualeo и многие другие. В каждом из них есть свои положительные стороны, и каждое из них позволяет с пользой проводить 20–30 минут в общественном транспорте.
• Адаптированные книги. Вы можете купить, к примеру, «Тома Сойера» или «Алису в Стране чудес», но адаптированную для чтения новичками. Самое важное, что есть возможность выбора книг в соответствии с уровнем знания языка. К некоторым изданиям также прилагаются аудиоматериалы (тренировка восприятия речи на слух).
• Учебные видео на YouTube. Начинающим я бы посоветовал канал «Английский по плейлистам».
• Общение с носителями языка по Skype. Существует большое количество сервисов, где вы можете найти себе партнера для бесед (в большинстве случаев это платные услуги).
• Просмотр фильмов с оригинальной дорожкой. Именно это всегда было целью изучения мною английского языка!
Но, возможно, именно для вас правильным является обучение с преподавателем. Самое важное в этом деле — не бояться пробовать, не бояться ошибок! И советую — как можно раньше начинайте слушать речь: песни, фильмы с субтитрами, подкасты, так как знание не должно оканчиваться на умении читать.
Ваши замечания, предложения, вопросы отправляйте по адресу [email protected] (издательство «Питер», компьютерная редакция).
Мы будем рады узнать ваше мнение!
На веб-сайте издательства https://www.piter.com вы найдете подробную информацию о наших книгах.
1 Swift отличается от Objective-C в сторону повышения удобства программирования. Однако в редких случаях при разработке программ вам, возможно, придется использовать вставки, написанные на Objective-C.
2 Приложения на Swift можно разрабатывать не только для операционных систем iOS, macOS, watchOS и tvOS, но и для Linux и Windows. Также есть решения, позволяющие писать на Swift и Server Side Code.
3 Соответствующие тесты периодически проводит и размещает на своем портале компания Primate Tabs — разработчик популярного тестера производительности Geekbench.
Примечание Если вы не прочитали раздел «О том, как работать с книгой», то вернитесь к нему. В нем даны важные рекомендации по работе с книгой и дополнительными учебными материалами.
Сегодня Swift может быть использован не только для разработки приложений под платформу от Apple, но и под Linux, а также для написания Server Side-приложений. Моя цель — ввести вас в разработку под iOS, iPad и macOS. Тем не менее вы можете использовать ее и просто для изучения синтаксиса и возможностей языка для создания приложений под другие платформы.
В этом разделе книги описаны основные доступные сегодня варианты обучения Swift. В качестве источника знаний вы будете использовать эту книгу, курс с домашними заданиями (https://swiftme.ru/course16), а также дополнительные материалы из Сети. Но вся сложность в том, где именно вам писать программный код, какую среду разработки использовать.
На сегодняшний день доступны следующие варианты:
1. Использовать компьютер Mac с операционной системой macOS и средой разработки Xcode. Данный вариант является наиболее предпочтительным и будет подробно описываться в книге.
Примечание У среды разработки Xcode есть конкурент — AppCode от JetBrains.
2. Использовать операционную систему Linux (например, Ubuntu), установив на нее пакет необходимых компонентов (https://swift.org/download), а также произвольный редактор кода с подсветкой синтаксиса Swift (один из вариантов — Sublime Text).
3. Использовать онлайн-редактор со встроенным компилятором Swift-кода (например, http://online.swiftplayground.run или один из его аналогов).
Каждый из указанных вариантов позволит вам попробовать Swift в деле, изучить его синтаксис и возможности, но если вы нацелены создавать приложения под платформу Apple, то вам необходим Mac, операционная система macOS и среда разработки Xcode (вариант № 1). Материал книги ориентирован именно на это.
Примечание О других способах изучения Swift и разработки собственных приложений, не имея при этом Mac, вы можете узнать в нашем чате в Telegram (https://swiftme.ru/telegramchat).
Прежде чем приступить к разработке программ на языке Swift в macOS, вам потребуется несколько вещей. Для начала понадобится компьютер iMac, MacBook, Mac mini или Mac Pro с установленной операционной системой macOS. Лучше, если это будет macOS Catalina (10.15) или выше. В этом случае вы сможете использовать последнюю версию среды разработки Xcode и языка Swift.
Это первое и базовое требование связано с тем, что среда разработки приложений Xcode создана компанией Apple исключительно с ориентацией на собственную платформу. Под другие операционные системы ее не существует.
Если вы ранее никогда не работали с Xcode, то будете поражены широтой возможностей данной среды и необычным подходом к разработке приложений.
Следующим шагом станет получение учетной записи Apple ID и регистрация в центре Apple-разработчиков. Для этого необходимо пройти по ссылке https://developer.apple.com/register/ в вашем браузере (рис. 1).
Примечание Apple ID — это учетная запись, которая позволяет получить доступ к сервисам, предоставляемым фирмой Apple. Возможно, вы уже имеете личную учетную запись Apple ID. Она используется, например, при покупке мобильных приложений в AppStore или при работе с порталом iCloud.com.
Если у вас уже есть учетная запись Apple ID, используйте ее данные для входа в Центр разработчиков. Или нажмите кнопку Создайтесейчас и введите требуемые для регистрации данные.
Регистрация в качестве разработчика бесплатна. Таким образом, каждый может начать разрабатывать приложения, не заплатив за это ни копейки (если не учитывать стоимость компьютера). Тем не менее за 99 долларов в год вы можете участвовать в платной программе iOS-разработчиков (iOS Developer Program), которую вам предлагает Apple. Это обязательно, только когда решите опубликовать приложение в AppStore.
Рис. 1. Страница входа в Центр разработчиков
Советую пока не задумываться об этом, так как все навыки iOS-разработки можно получить с помощью бесплатной учетной записи и Xcode.
На стартовой странице Центра разработчиков необходимо перейти по ссылке DownloadTools, расположенной в центральной части окна, после чего откроется страница, содержащая ссылки на основные ресурсы для разработчиков. В Центре разработчиков вы можете получить доступ к огромному количеству различной документации, видео, примеров кода — ко всему, что поможет создавать отличные приложения.
Примечание На момент написания книги Xcode 12 находился на этапе beta-тестирования. Именно beta-версия среды разработки была использована для учебного материала. С большой долей вероятности в данный момент на сайте разработчиков уже доступна стабильная версия Xcode 12, которую вам и следует использовать.
Чтобы скачать актуальную версию среды разработки Xcode, перейдите по ссылке Release, расположенной в верхнем правом углу страницы (рис. 2). После этого вы перейдете на страницу с релизными (стабильными) версиями программных средств. Найдите в списке Xcode, нажмите на кнопку View on the App Store, после чего произойдет переход в App Store. Для скачивания Xcode просто щелкните на кнопке Загрузить и при необходимости введите данные своей учетной записи Apple ID.
После завершения процесса установки вы сможете найти Xcode в Launchpad или в папке Программы в Доке.
Рис. 2. Перечень ресурсов, доступных в Центре разработчиков
Мы начнем изучение программирования на языке Swift со знакомства со средой разработки Xcode.
Примечание Интегрированная среда разработки (Integrated Development Environment, IDE) — набор программных средств, используемых программистами для разработки программного обеспечения (ПО).
Среда разработки обычно включает в себя:
• текстовый редактор;
• компилятор и/или интерпретатор;
• средства автоматизации сборки;
• отладчик.
Xcode — это IDE, то есть среда создания приложений для iOS и macOS (и других продуктов Apple). Это наиболее важный инструмент, который использует разработчик, и он по-настоящему удивительный! Xcode предоставляет широкие возможности, и изучать их следует постепенно, исходя из поставленных и возникающих задач. Внешний вид рабочей среды приведен на рис. 3.
Рис. 3. Интерфейс Xcode
Именно с использованием этого интерфейса разрабатываются любые приложения для «яблочных» продуктов. При изучении Swift на первых этапах вы будете взаимодействовать с иной рабочей областью — рабочим интерфейсом playground-проектов. О нем мы поговорим чуть позже.
Xcode распространяется на бесплатной основе. Это многофункциональное приложение без каких-либо ограничений в своей работе. В Xcode интегрированы: пакет iOS SDK, редактор кода, редактор интерфейса, отладчик и многое другое. Также в него встроены симуляторы iPhone, iPad, Apple Watch и Apple TV. Это значит, что все создаваемые приложения вы сможете тестировать прямо в Xcode (без необходимости загрузки программ на реальные устройства). Подробно изучать состав и возможности данной IDe мы начнем непосредственно в процессе разработки приложений.
Я надеюсь, что вы уже имеете на своем компьютере последнюю версию Xcode, а значит, мы можем перейти к первому знакомству с этой замечательной средой. Для начала необходимо запустить Xcode. При первом запуске, возможно, вам придется установить некоторые дополнительные пакеты (все пройдет в автоматическом режиме при щелчке на кнопке Install в появившемся окне).
После скачивания и полной установки Xcode вы можете приступить к ее использованию. Чуть позже вы создадите свой первый проект, а сейчас просто взгляните на появившееся при запуске Xcode стартовое окно (рис. 4).
Рис. 4. Стартовое окно Xcode
Стартовое окно служит двум целям: созданию новых проектов и организации доступа к созданным ранее. В данном окне можно выделить две области. Нижняя левая область представляет собой меню, состоящее из следующих пунктов:
• CreateanewXcodeproject — создать новый проект.
• Cloneanexistingproject — подключить репозиторий (при использовании системы контроля версий Git).
• OpenaProjectorFile — открыть уже существующий проект.
Правая часть окна содержит список созданных ранее проектов. В вашем случае, если вы запускаете Xcode впервые, данный список будет пустым. Но в скором времени он наполнится множеством различных проектов.
Примечание В названиях всех создаваемых в ходе чтения книги проектов я советую указывать номера глав и/или листингов. В будущем это позволит навести порядок в списке проектов и оградит вас от лишней головной боли.
Одной из потрясающих возможностей Xcode является наличие playground-проектов. Playground — это интерактивная среда разработки, своеобразная «песочница», или «игровая площадка», где вы можете комфортно тестировать создаваемый вами код и видеть результат его исполнения в режиме реального времени. С момента своего появления playground активно развивается. С каждой новой версией Xcode в нее добавляются все новые и новые возможности.
Представьте, что вам нужно быстро проверить небольшую программу. Для этой цели нет ничего лучше, чем playground-проект! Пример приведен на рис. 5.
Рис. 5. Пример playground-проекта
Как вы можете видеть, внешний вид интерфейса playground-проекта значительно отличается от рабочей области Xcode, которую вы видели ранее в книге. Повторю, что в playground-проекте можно писать код и сразу видеть результат его исполнения, но такой проект не служит для создания полноценных самостоятельных программ. Каждый playground-проект хранится в системе в виде особого файла с расширением playground.
Нет способа лучше для изучения языка программирования, чем написание кода. Playground-проект предназначен именно для этого. Для создания нового playground-проекта выберите пункт главного меню File>New>Playground. Далее Xcode предложит вам выбрать типы создаваемого проекта (рис. 6), которые отличаются лишь предустановленным в проекте кодом.
Примечание Обратите внимание, что в верхней части окна есть возможность выбора платформы (iOS, tvOS, macOS).
Сейчас вам необходимо выбрать тип Blank, который содержит минимальное количество кода. После нажатия кнопки Next среда разработки попросит вас ввести имя создаваемого проекта. Измените имя на «Part 1 Basics» (или любое другое) и щелкните на кнопке Create. После этого откроется рабочий интерфейс созданного проекта (рис. 7).
Рис. 6. Окно выбора типа создаваемого проекта
Рис. 7. Рабочий интерфейс playground-проекта
С первого взгляда окно playground-проекта очень похоже на обыкновенный текстовый редактор. Но Xcode Playground имеет куда более широкие возможности.
Как показано на рис. 7, рабочее окно состоит из четырех основных областей.
• Toolbar, или панель инструментов, расположенная в верхней части окна. Данная область содержит кнопки управления окном и строку состояния.
• Navigators, или панель навигации, расположенная в левой части окна. С ее помощью вы можете производить навигацию по различным ресурсам, входящим в состав playground-проекта.
В ближайшее время данная панель нам будет не нужна, а значит, мы можем скрыть ее.
Нажмите на кнопку HideorshowtheNavigator, расположенную в левой части Toolbar.
• Code editor, или редактор кода, расположенная в центральной части окна. В ней вы можете писать и редактировать программный код. В только что созданном проекте уже имеются две строки с кодом.
• Results, или панель результатов, расположенная в правой части окна. В ней будет отображаться результат выполнения кода, написанного в Code editor.
Нажмите на кнопку ExecutePlayground, расположенную в нижней левой части Code editor.
Теперь на панели результатов отображается результат выполнения программного кода (рис. 8).
Рис. 8. Отображение значения в области результатов
Примечание Для принудительного запуска обработки кода вы можете использовать либо кнопку с изображением стрелки слева от строчки кода, либо кнопку Execute Playground, расположенную в нижней части окна (рис. 9).
Сейчас вы можете видеть результат выполнения строки 3 (значение параметра str) в области результатов. В дальнейшем мы вместе будем писать код и обсуждать результаты его выполнения.
Если навести указатель мыши на строку "Hello,playground" в области результатов, то рядом появятся две кнопки, как показано на рис. 10.
Левая кнопка (изображение глаза) включает отображение результата в отдельном всплывающем окне, правая — прямо в области кода.
Нажмите на каждую из кнопок и посмотрите на результат.
Рис. 9. Кнопки запуска обработки кода
Рис. 10. Дополнительные кнопки в области результатов
Playground — это потрясающая платформа для разработки кода и написания обучающих материалов. Она просто создана для того, чтобы тестировать появляющиеся мысли и находить решения возникающих в процессе разработки проблем. У playground-проектов есть возможности, благодаря которым процесс разработки можно значительно улучшить.
В скором времени вы увидите, что в качестве результатов могут выводиться не только текстовые, но и графические данные. На рис. 11 показан проект, который будет реализован в книге.
В области результатов могут выводиться строки формата Ntimes, где N — целое число. Они говорят о том, что данная строка кода выводится N раз (рис. 12).
Рис. 11. Пример вывода графических элементов
Рис. 12. Вывод данных 5 раз в одной строке
Также Xcode имеет в своем арсенале такой полезный механизм, как автодополнение (в Xcode известное как автокомплит).
В редакторе кода на новой строке напишите латинский символ s, после чего вы увидите окно автодополнения (рис. 13).
Рис. 13. Окно автодополнения в Xcode
Все, что вам нужно, — выбрать требуемый вариант и нажать клавишу ввода, и он появится в редакторе кода. Список в окне автодополнения меняется в зависимости от введенных вами символов. Также все создаваемые элементы (переменные, константы, типы, экземпляры и т.д.) автоматически добавляются в список автодополнения.
Одной из возможностей Хcode, которая значительно упрощает работу, является указание на ошибки в программном коде. Для каждой ошибки выводится подробная вспомогательная информация, позволяющая внести ясность и исправить недочет (рис. 14).
Также информация об ошибке выводится на консоли в области отладки (Debug Area), показанной на рис. 15. Вывести ее на экран можно одним из следующих способов:
• выбрав в меню пункт View>DebugArea>ShowDebugArea;
• щелкнув на кнопке ShowtheDebugArea, расположенной в левом нижнем углу редактора кода.
Рис. 14. Отображение ошибки в окне playground-проекта
Рис. 15. Информация об ошибке выводится в Debug Area
Вы будете регулярно взаимодействовать с консолью в процессе разработки программ.
Примечание Если Debug Area пуста, то просто запустите проект одним из рассмотренных ранее способов.
Удалите из редактора кода строку с ошибкой (с символом s).
Swift дает исчерпывающую информацию об используемых в коде объектах. Если нажать клавишу Option (Alt) и щелкнуть на любом объекте в области кода (например, на str), то появится вспомогательное окно, в котором можно узнать тип объекта, а также имя файла, где он расположен (рис. 16).
Рис. 16. Всплывающее окно с информацией об объекте
Среда Xcode вместе с playground-проектами предоставляет вам поистине фантастические возможности для реализации своих идей!
Вы стоите на пороге удивительного мира разработки приложений. С каждым пройденным разделом книги, с каждой изученной страницей и каждым выполненным заданием вы будете все ближе к своей цели — к карьере успешного программиста под iOS или macOS.
Swift — удобный и интересный язык программирования. Если вы работали с языками С, PHP, Python или другими, то уже скоро заметите их сходство с детищем Apple. В этой части книги вы узнаете о базовых понятиях, которые предшествуют успешному программированию. Я обучу вас основам синтаксиса и работы с различными фундаментальными механизмами, которые легли в основу разработки программ на языке Swift.
• Глава 1. Отправная точка
• Глава 2. Фундаментальные типы данных
Примечание Весь изученный материал должен подкрепляться решением практических задач. Для этого переходите на сайт https://swiftme.ru. Там вы найдете не только задания для самостоятельного решения, но и дополнительные главы, не вошедшие в книгу, и, в дальнейшем, видеоуроки по каждой теме.