Книга: Swift. Основы разработки приложений под iOS, iPadOS и macOS. 5-е изд. дополненное и переработанное
Назад: Читателю
Дальше: Часть I. Подготовка к разработке Swift-приложений

Введение

На ежегодной всемирной конференции разработчиков на платформе Apple (Worldwide Developers Conference, WWDC) 2 июня 2014 года «яблочная» компания приятно удивила iOS-общественность, представив новый язык программирования, получивший название Swift. Это стало большой неожиданностью: максимум, на что рассчитывали разработчики, привыкшие к теперь уже уходящему в прошлое языку Objective-C, — это обзор новых возможностей iOS 8 и новые прикладные программные интерфейсы для работы с ними. Оправившись от шока, разработчики подступились к Swift, изучая и, конечно же, критикуя его. Все это время Swift активно развивался. И вот теперь мы ожидаем выхода уже пятой версии языка программирования, привносящей в него много нового и интересного.

Если вы когда-либо писали приложения на языке Objective-C, то после изучения Swift с его многообразием возможностей вы, вероятно, захотите переписать свои приложения на новом языке программирования. После выхода Swift многие разработчики пошли именно по этому пути, понимая, что в будущем наибольшее внимание Apple будет уделять развитию нового языка. Более того, Swift стал первой разработкой Apple с открытым исходным кодом, что говорит о скором внедрении его поддержки и другими операционными системами (ждем поддержки Windows).

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

Помните, что Swift затягивает и не отпускает!

О Swift

Swift — это быстрый, современный, безопасный и удобный язык программирования. С его помощью процесс создания программ становится очень гибким и продуктивным, так как Swift вобрал в себя лучшее из таких языков, как C, Objective-C и Java. Swift на редкость удобен для изучения, восприятия и чтения кода. У него очень перспективное будущее.

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

Язык Swift создан полностью с нуля и обладает рядом особенностей.

Современность

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

Объектоориентированность

Swift — объектно-ориентированный язык программирования, придерживающийся парадигмы «всё — это объект». Если в настоящий момент данное утверждение показалось вам непонятным, не переживайте: чуть позже мы еще вернемся к нему.

Читабельность, экономичность и лаконичность кода

Swift просто создан для того, чтобы быть удобным в работе и максимально понятным. Он имеет простой и прозрачный синтаксис, позволяющий сокращать многострочный код, который вы, возможно, писали в прошлом, до однострочных (а в некоторых случаях — односимвольных!) выражений.

Безопасность

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

Производительность

Swift все еще очень молод, но по производительности разрабатываемых программ он приближается (а в некоторых случаях уже и обгоняет) ко всем известному «старичку» — языку программирования C++.

Актуальность

Swift — современный язык программирования, и поэтому он должен поддерживать свою репутацию на протяжении всего жизненного цикла. Это стало возможным благодаря активно растущему сообществу swift-разработчиков, штаб-квартирой которых стал портал swift.org, на котором размещены все необходимые данные о том, как стать членом этой быстро растущей семьи. Для русскоязычного сообщества уже созданы несколько профильных сайтов, одним из которых является swiftme.ru.

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

О книге

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

Книга содержит исчерпывающую информацию для всех желающих научиться программировать на замечательном языке Swift с целью создания собственных iOS-приложений (в том числе и для macOS, tvOS и watchOS) или программ для операционной системы Linux. В ходе чтения книги вы встретите не только теоретические сведения, но и большое количество практических примеров и заданий, выполняя которые вы углубите свои знания изучаемого материала. Вам предстоит пройти большой путь, и это будет нужный и очень важный опыт. Хотя книга предназначена в первую очередь для изучения языка Swift, вы получите некоторые начальные сведения о принципах разработки полноценных приложений. Можете быть уверены, эта информация будет очень полезной. Книга даст возможность освоить новый язык и в скором времени приступить к написанию собственных приложений для App Store или Mac App Store. Изучив язык, в дальнейшем вы сможете самостоятельно выбрать, для какой платформы создавать программы. Несмотря на то что здесь приводится информация о разработке и под операционную систему Linux, основной упор делается именно на разработку на платформе от Apple. Примеры кода соответствуют Swift версии не ниже 5, iOS версии не ниже 12 и Xcode версии не ниже 10. Если у вас более свежие версии, не беспокойтесь, весь описанный материал с большой долей вероятности будет без каких-либо ошибок работать и у вас. Но небольшая возможность того, что Apple незначительно изменит синтаксис Swift, все же существует. Если вы встретитесь с такой ситуацией, прошу отнестись с пониманием и сообщить мне об этом в Telegram-канал или оставить сообщение на портале swiftme.ru.

Swiftme.ru — это развивающееся сообщество программистов Swift. Здесь вы найдете ответы на различные вопросы, возникающие в ходе обучения и разработки, а также уроки и курсы, которые помогут вам глубоко изучить тему разработки приложений.

О домашних заданиях

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

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

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

Очень часто при изучении языка или написании собственных приложений начинающие разработчики пользуются нехитрым приемом «копировать/вставить». Они копипастят все, начиная от решения домашних заданий и заканчивая найденными рецептами. Этот подход плох тем, что чаще всего человек не разбирается в том, что ­копирует. Решение задачи проходит мимо и не оседает в его голове.

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

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

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

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

Экспериментируйте, пробуйте, тестируйте — среда разработки выдержит даже самый некрасивый и неправильный код!

Исправления в пятом издании

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

В сравнении с предыдущим изданием эта книга содержит следующие изменения и дополнения:

• Весь материал актуализирован в соответствии со Swift версии 5 и Xcode 10.

• Добавлено большое количество нового учебного материала, в частности, связанного с принципами функционирования типа данных String «под капотом».

• Учтены пожелания и замечания пользователей по оформлению и содержанию.

• Исправлены найденные опечатки.

• Домашние задания перенесены на портал swiftme.ru, что позволило увеличить количество учебного материала.

Для кого написана книга

Ответьте для себя на следующие вопросы:

• Имеете ли вы минимальные знания о программировании на любом языке высокого уровня?

• Хотите ли вы научиться создавать программы для операционной системы iOS (для вашего гаджета iPhone и iPad), macOS, watchOS или tvOS?

• Предпочитаете ли вы обучение в практической форме скучным и монотонным теоретическим лекциям?

Если вы ответили на них утвердительно, то эта книга для вас.

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

Не стоит бояться, Swift вовсе не отпугнет вас (как это мог сделать Objective-C), а процесс создания приложений окажется очень увлекательным. А если у вас есть идея потрясающего приложения, то совсем скоро вы сможете разработать его для современной мобильной системы iOS, стационарной системы macOS или Linux, смарт-часов Apple Watch или телевизионной приставки AppleTV.

Очень важно, чтобы вы не давали своим рукам «простаивать». Тестируйте весь предлагаемый код и выполняйте все задания, так как учиться программировать, просто читая текст, — не лучший способ. Если в процессе изучения нового материала у вас появится желание поиграть с кодом из листингов — делайте это не откладывая. Постигайте Swift!

Не бойтесь ошибаться: пока вы учитесь, ошибки — ваши друзья. А исправлять их и избегать в будущем вам помогут среда разработки Xcode (о ней мы поговорим позже) и моя книга.

Помните: чтобы стать великим программистом, требуется время! Будьте терпеливы и внимательно изучайте материал. Желаю увлекательного путешествия!

Что нужно знать, прежде чем начать читать

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

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

Структура книги

Книга состоит из семи частей:

• Часть I. Подготовка к разработке Swift-приложений. В первой части вы начнете путешествие в мир Swift, выполните самые важные и обязательные шаги, предшествующие началу разработки собственных приложений. Вы узнаете, как завести собственную учетную запись Apple ID, как подключиться к программе apple-разработчиков, где взять среду разработки Swift-приложений, как с ней работать.

• Часть II. Базовые возможности Swift. После знакомства со средой разработки Xcode, позволяющей приступить к изучению языка программирования, вы изучите базовые возможности Swift. Вы узнаете, какой синтаксис имеет Swift, что такое переменные и константы, какие типы данных существуют и как всем этим пользоваться при разработке программ.

• Часть III. Контейнерные типы данных. Что такое последовательности и коллекции и насколько они важны для создания ваших программ? В этой части книги вы познакомитесь с наиболее важными элементами языка программирования.

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

• Часть V. Введение в разработку приложений. Эта часть посвящена изучению основ среды разработки Xcode, а также созданию двух первых консольных приложений.

• Часть VI. Нетривиальные возможности Swift. В шестой части подробно описываются приемы работы с наиболее мощными и функциональными средствами Swift. Материал этой части вы будете использовать с завидной регулярностью при создании собственных приложений в будущем. Также отличительной чертой данной части является большая практическая работа по созданию первого интерактивного приложения в Xcode Playground.

• Часть VII. Введение в мобильную разработку. В конце долгого и увлекательного пути изучения языка и создания некоторых простых приложений вам предстоит окунуться в мир разработки полноценных программ. Из этой части вы узнаете основы создания интерфейсов и работы программ в Xcode «под капотом». Все это в будущем позволит вам с успехом осваивать новый материал и создавать прекрасные проекты.

Условные обозначения

ПРИМЕЧАНИЕ В данном блоке приводятся примечания и замечания.

Листинг

А это примеры кода (листинги)

Синтаксис

В таких блоках приводятся синтаксические конструкции с объяснением вариантов их использования.

От издательства

Ваши замечания, предложения, вопросы отправляйте по адресу [email protected] (издательство «Питер», компьютерная редакция).

Мы будем рады узнать ваше мнение!

На веб-сайте издательства www.piter.com вы найдете подробную информацию о наших книгах.


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

В настоящее время приложения на Swift можно разрабатывать не только для операционных систем iOS и OS X, но и для watchOS (операционная система «умных» часов Apple Watch) и tvOS (операционная система телевизионной приставки Apple TV четвертого поколения). Однако изучение приемов разработки приложений для различных операционных систем выходит за рамки темы данной книги.

Соответствующие тесты периодически проводит и размещает на своем портале компания Primate Tabs — разработчик популярного тестера производительности Geekbench.

Назад: Читателю
Дальше: Часть I. Подготовка к разработке Swift-приложений