$ sudo teach IT

Вы прошли весь язык

Это последний урок курса, и хочется сказать прямо: вы разобрали Swift не фрагментами, а системно — от print("Привет") до акторов и макросов. Дальше — не пересказ пройденного, а честный ответ на вопрос «а что теперь». Что вы умеете, куда двигаться и как учиться дальше самому, когда рядом больше нет урока с готовым планом.

Что вы теперь умеете

Пройдёмся по всему курсу — не по деталям, а по навыкам, которые за ними стоят.

Основы и данные

Вы уверенно работаете с переменными, константами и базовыми типами, понимаете разницу между var и let и пишете код, где неизменяемость — выбор, а не случайность. Опционалы для вас не «странный знак вопроса», а осмысленный инструмент: вы знаете, когда развернуть значение через if let, когда прервать выполнение через guard, а когда безопасно поставить значение по умолчанию через ??.

Управление ходом программы

Ветвление, switch с сопоставлением образцов, циклы for-in и while — вы выбираете подходящий инструмент, а не первый попавшийся, и умеете превратить вложенный ужас из условий в читаемый линейный код.

Коллекции и функциональный стиль

Массивы, множества, словари — вы понимаете, чем они отличаются по смыслу, а не только по синтаксису. map, filter и reduce для вас — обычный способ выразить «преобразовать», «отобрать», «свернуть», а не экзотика.

Функции и замыкания

Вы пишете функции с метками аргументов и значениями по умолчанию, передаёте функции как значения, понимаете, что замыкание захватывает контекст, и знаете, почему @escaping и [weak self] — это не магические заклинания, а конкретное решение конкретной проблемы с временем жизни объекта.

Типы и их устройство

Структуры и классы для вас — это не «то же самое с разным словом», а осознанный выбор между семантикой значения и семантикой ссылки. Вы пишете инициализаторы, вычисляемые свойства, методы и сабскрипты, и понимаете, зачем структуре нужен mutating.

Протоколы, наследование, дженерики

Вы умеете описать общее поведение через протокол вместо того, чтобы городить иерархию классов, знаете, когда наследование действительно уместно, а когда composition-код будет чище. Дженерики и some/any вы читаете спокойно — понимаете, зачем нужен обобщённый код и чем экзистенциал отличается от opaque-типа.

Надёжность программы

Модификаторы доступа, обработка ошибок через throws и do/catch, Result, defer — вы пишете код, который явно говорит, что может пойти не так. Про ARC вы знаете достаточно, чтобы заметить цикл сильных ссылок и разорвать его через weak или unowned, а не гадать, почему объект не освобождается.

Конкурентность

Вы читаете и пишете код с async/await, запускаете задачи через Task, распараллеливаете независимую работу через async let и TaskGroup, и понимаете, зачем нужны акторы и Sendable — не как формальность компилятора, а как защиту от гонок данных.

Данные и инструменты

Вы кодируете и декодируете JSON через Codable, работаете с файлами и датами, пишете и читаете регулярные выражения, представляете, как устроены тесты и пакеты на Swift Package Manager.

Продвинутые механизмы

KeyPath, property wrapper, result builder и хотя бы поверхностное понимание макросов — это не то, что нужно каждый день, но теперь вы понимаете, откуда растут вещи вроде @State и декларативный синтаксис SwiftUI, когда встретите их в чужом коде.

Куда двигаться: SwiftUI и приложения

Язык — это фундамент, но самое заметное, ради чего люди учат Swift, это приложения для iPhone, Mac и Apple Watch. Они строятся на SwiftUI — декларативном фреймворке для интерфейсов, который вы уже частично понимаете: обёртки свойств и result builders, которые вы разобрали в этом модуле, лежат в самой его основе.

Здесь нужно сказать честно: чтобы собирать и запускать SwiftUI-приложения, нужен компьютер Mac — на нём работает Xcode, инструмент, без которого приложение под платформы Apple не скомпилировать. На платформе появится отдельный курс про создание приложений — сначала про macOS, где интерфейс проще и меньше платформенных тонкостей, а затем про iOS. Это будет логичным продолжением того, что вы прошли, а не новым языком с нуля.

Swift и без Mac

Если Mac пока нет или он не нужен для ваших задач, у Swift есть жизнь и за пределами интерфейсов Apple:

  • Серверный Swift — фреймворки вроде Vapor позволяют писать backend-приложения и API на Swift, компилируется и запускается это на Linux, как и в песочнице этого курса.
  • Инструменты командной строки — скрипты, утилиты, консольные программы: всё, что вы писали в задачах курса, уже было именно таким кодом.
  • Embedded Swift — облегчённый режим языка для микроконтроллеров и встраиваемых систем, где важны компактность и предсказуемость, а сборщика мусора и рантайма в обычном виде нет.

Как учиться дальше самостоятельно

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

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

Официальная документация на developer.apple.com и книга The Swift Programming Language — самый надёжный источник, когда нужно проверить, как устроен конкретный тип или метод, а не полагаться на память или чужой пересказ.

Swift Evolution

Язык меняется через открытый процесс предложений — Swift Evolution. Читать принятые предложения полезно не ради экзотики, а чтобы понимать, почему в языке появилась именно такая конструкция и какую проблему она решает.

Чтение чужого кода

Открытые библиотеки на GitHub — лучший способ увидеть, как язык используют опытные разработчики: какие приёмы становятся общепринятыми, а какие остаются учебными упрощениями.

Форматирование и стиль

Инструмент swift-format приводит код к единому стилю автоматически, чтобы не спорить с самим собой о пробелах и переносах строк, а стилевые рекомендации Apple задают ориентир, как называть вещи в Swift-коде.

Регулярная практика

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

Частые ошибки

На этом переходе новички обычно спотыкаются об одно и то же.

  • Сразу браться за SwiftUI без Mac и без практики — учебники по SwiftUI предполагают, что синтаксис языка уже не вызывает вопросов; если он ещё зыбкий, фреймворк добавит путаницы, а не ясности.
  • Ждать, что теперь всё будет получаться с первого раза — язык вы прошли, а опыт решения реальных задач нарабатывается только на реальных задачах, ошибки на этом пути — не признак того, что курс прошёл впустую.
  • Пытаться держать в голове весь Swift целиком — даже опытные разработчики регулярно заглядывают в документацию; помнить, где искать, важнее, чем помнить наизусть.
  • Учить фреймворк раньше языка — если конструкция вроде @propertyWrapper или дженерика вызывает вопрос, стоит вернуться к основам, а не пытаться понять фреймворк, который на них построен.

Итог

  • Вы прошли Swift от переменных и опционалов до конкурентности и метапрограммирования и умеете применить каждую тему, а не только назвать её.
  • Следующий практический шаг — курс по приложениям на SwiftUI, сначала для macOS, затем для iOS; для него понадобится Mac.
  • Без Mac Swift открыт для серверной разработки, консольных утилит и встраиваемых систем.
  • Дальше учитесь по документации Apple, Swift Evolution и чужому коду, форматируйте код через swift-format и практикуйтесь регулярно — это и есть путь от «прошёл курс» до «уверенно пишу на Swift».

Курс по приложениям для macOS

Если вы хотите не просто знать язык, а выпустить своё приложение для Mac, продолжение уже написано — курс Приложения для macOS на SwiftUI, 64 урока в 11 модулях.

Что внутри: вёрстка интерфейса на SwiftUI и работа с состоянием; родной для Mac каркас — боковая панель, панель инструментов, меню и горячие клавиши, несколько окон, настройки, значок в строке меню; оформление в Liquid Glass; хранение данных в настройках, файлах и базе на SwiftData; сеть и честные состояния загрузки; разделение слоёв, тесты логики, локализация и доступность; уведомления, App Intents, песочница и Keychain; сквозной проект целиком; и выпуск — подпись, нотаризация, DMG, App Store Connect.

Что нужно: Mac с macOS 27 и установленным Xcode 27 — интерфейс собирается только там. Язык вы уже знаете, этого курса достаточно как подготовки. Первые уроки открыты бесплатно, посмотрите подачу перед покупкой.

Курс по приложениям для iPhone и Apple Watch

Если ближе телефон, а не Mac, второе продолжение — курс Приложения для iPhone и Apple Watch на SwiftUI, 48 уроков в 10 модулях.

Что внутри: каркас приложения для iPhone — навигация, вкладки, модальные экраны, формы и жесты; оформление в Liquid Glass; хранение данных на SwiftData и общее хранилище для приложения и виджета; сеть и честные состояния загрузки; уведомления, виджеты на экран «Домой» и действия в Shortcuts; отдельный модуль про Apple Watch — короткие экраны, Digital Crown, осложнения на циферблате и связь с телефоном; сквозной проект «телефон плюс часы плюс виджет» и выпуск через TestFlight и App Store Connect. Нужен Mac с Xcode 27; настоящие iPhone и часы не нужны — всё проходится на симуляторах.

Проверьте себя

3 вопроса