В этом уроке мы начнем Swift с нуля без тяжелого старта в iOS-проекте: откроем Playground, напишем print, разберем let, var, простые типы и сделаем маленькую программу с расчетом прогресса. Так Swift сразу становится рабочим инструментом, а не набором слов из документации
К концу урока вы запустите код, увидите вывод и поймете, чем переменная, константа и строковая интерполяция помогают писать понятный Swift-код
- Что получится в конце
- Где запускать первый Swift-код
- print и первый вывод
- let и var
- Типы без перегруза
- Мини-практика: карточка урока
- Домашка: мини-прогресс курса
- Как читать первую ошибку
- Частые ошибки и порядок проверки
- Как закрепить первый пример без лишней теории
- Почему Swift заставляет думать о типах
- Мини-рефакторинг: делаем вывод чище
- Маленький маршрут после первого запуска
- Контрольный пример перед переходом к Xcode
- Что может быть еще интересно по этой теме
- Что почитать дальше по Swift
Что получится в конце
Первый пример:
let language = "Swift"
let plannedLessons = 8
let completedLessons = 1
let remainingLessons = plannedLessons - completedLessons
print("Language: \(language)")
print("Completed: \(completedLessons) / \(plannedLessons)")
print("Remaining: \(remainingLessons)")
Ожидаемый вывод:
Language: Swift
Completed: 1 / 8
Remaining: 7
Если вы видите эти строки, первый цикл готов: код написан, Swift выполнил его, результат проверен глазами
Где запускать первый Swift-код
Самый мягкий старт — Swift Playground. Это среда, где можно писать Swift-код и сразу видеть результат, не создавая полноценное iOS-приложение
Если у вас уже стоит Xcode, можно создать Playground прямо в нем. Если хочется попробовать язык быстрее, используйте доступные учебные Swift-среды или Swift Playgrounds, в зависимости от устройства и версии macOS/iPadOS
На первом уроке не нужно сразу разбираться в Simulator, signing, App Store Connect и настройках проекта. Эти темы относятся к разработке приложений, а сейчас мы учим язык
print и первый вывод
print выводит значение:
print("Hello, Swift")
Строки пишутся в двойных кавычках. Если нужно вставить значение переменной, используется интерполяция:
let name = "Dinar"
print("Hello, \(name)")
Конструкция \(name) внутри строки означает: взять значение name и подставить его в текст. Для выражения тоже работает:
let price = 1200
let discount = 200
print("Final price: \(price - discount)")
В учебном коде это гораздо яснее, чем склеивать строки вручную
let и var
let создает константу:
let language = "Swift"
Такое значение нельзя переназначить. Это хорошо: если данные не должны меняться, Swift помогает удержать намерение
var создает переменную:
var attempts = 0
attempts += 1
Практическое правило: начинайте с let. Переходите на var, только если значение действительно меняется. Такой стиль делает код спокойнее и снижает случайные изменения
Типы без перегруза
Swift умеет выводить типы:
let lessons = 8
let rating = 4.8
let isReady = true
Компилятор понимает, что lessons — Int, rating — Double, isReady — Bool
Можно написать явно:
let lessons: Int = 8
let title: String = "Swift"
На первом этапе явный тип нужен там, где он помогает читать пример. Не нужно превращать каждую строку в демонстрацию типов, если Swift и так все понимает
Мини-практика: карточка урока
Сделайте карточку одного урока:
let lessonTitle = "Optionals"
let durationMinutes = 35
let isFinished = false
print("Lesson: \(lessonTitle)")
print("Duration: \(durationMinutes) min")
print("Finished: \(isFinished)")
Поменяйте isFinished на true и запустите снова. Затем добавьте var rewatchCount = 0 и увеличьте счетчик:
var rewatchCount = 0
rewatchCount += 1
print("Rewatch count: \(rewatchCount)")
Так вы увидите разницу между let и var в живом коде
Домашка: мини-прогресс курса
Создайте переменные:
- название курса
- всего уроков
- готово уроков
- имя следующей темы
Выведите:
Course: Swift
Progress: 2 / 8
Next: Optionals
Дополнительная задача: посчитайте, сколько уроков осталось, и не пишите это число руками
Как читать первую ошибку
Если Swift показывает несколько ошибок, начинайте с первой. Часто одна пропущенная кавычка или скобка рождает несколько сообщений ниже
Порядок проверки:
- Найдите первую ошибку
- Посмотрите строку выше и строку ниже
- Исправьте одну проблему
- Запустите снова
Не чините весь красный список сразу. Это простая привычка, но она сильно снижает шум при обучении
Частые ошибки и порядок проверки
Пытаетесь изменить let Если значение объявлено через let, переназначить его нельзя. Используйте var только там, где изменение действительно нужно
Забыли закрыть строку Проверьте двойные кавычки. Одна незакрытая строка часто ломает подсветку ниже
Интерполяция не сработала В Swift используется \(value), а не $value, как в некоторых других языках
Смешали обучение Swift и iOS Если ошибка связана с Simulator или signing, это не ошибка языка. Для первого урока достаточно Playground
Как закрепить первый пример без лишней теории
После первого запуска полезно сделать не еще один Hello, world, а маленькую программу, где есть входные данные, вычисление и понятный вывод. Такой пример сразу показывает, что Swift — не только синтаксис, а инструмент для описания состояния и результата
Возьмите прогресс курса и добавьте процент:
let course = "Swift"
let totalLessons = 8
let completedLessons = 2
let progress = completedLessons * 100 / totalLessons
print("\(course): \(progress)% completed")
Ожидаемый вывод:
Swift: 25% completed
Теперь поменяйте completedLessons на 3. Если вывод изменился без ручной правки строки print, вы сделали правильную программу: данные отдельно, вычисление отдельно, вывод отдельно
Почему Swift заставляет думать о типах
Swift относится к статически типизированным языкам. Это значит, что компилятор проверяет типы до запуска программы. Если вы напишете:
let lessons = 8
let title = "Swift"
let broken = lessons + title
Swift не будет гадать, что вы имели в виду. Он остановит код и покажет ошибку. Для новичка это сначала выглядит строго, но потом экономит время: лучше получить понятную ошибку в редакторе, чем странное поведение приложения у пользователя
Если нужно вывести число рядом с текстом, используйте интерполяцию:
let lessons = 8
print("Lessons: \(lessons)")
Так вы явно говорите: число остается числом, но в строке оно будет показано как текст
Мини-рефакторинг: делаем вывод чище
Когда в примере становится много print, код можно немного упорядочить:
let title = "Swift basics"
let minutes = 40
let isPractical = true
let summary = """
Lesson: \(title)
Duration: \(minutes) min
Practice: \(isPractical)
"""
print(summary)
Тройные кавычки создают многострочную строку. Для учебных карточек это удобно: вывод похож на маленький отчет, а не на набор разрозненных строк
Проверьте себя: поменяйте minutes, затем поменяйте title. Вывод должен обновляться только через переменные. Если вы меняете текст внутри summary руками после каждого изменения данных, значит логика еще смешана с результатом
Маленький маршрут после первого запуска
Не прыгайте сразу в сложное приложение. Для уверенного старта сделайте три коротких шага:
- Напечатайте строку и число
- Посчитайте значение из двух переменных
- Сформируйте многострочный отчет
После этого переход к Xcode будет спокойнее. Вы уже будете понимать, где ошибка языка, а где ошибка проекта, Simulator или настроек macOS
Контрольный пример перед переходом к Xcode
Перед следующим уроком соберите одну финальную мини-программу:
let student = "Dinar"
let currentLesson = 1
let totalLessons = 8
let nextLesson = "Xcode"
print("Student: \(student)")
print("Progress: \(currentLesson) / \(totalLessons)")
print("Next lesson: \(nextLesson)")
Потом добавьте расчет оставшихся уроков. Важно не написать 7 руками, а получить его из totalLessons - currentLesson. Так вы закрепляете главный навык первых программ: вывод должен зависеть от данных, а не от ручного текста
Что может быть еще интересно по этой теме
Swift подходит новичку? Да, особенно если цель — iOS, macOS или SwiftUI. Но старт лучше делать с языка и Playground, а не с полного iOS-проекта
Можно ли учить Swift без Mac? Часть языка можно изучать онлайн или через доступные Swift-инструменты, но полноценная iOS-разработка требует macOS и Xcode
Swift похож на Kotlin? Оба языка современно выглядят, любят безопасность типов и лаконичный синтаксис. Но платформы и экосистемы разные: Swift в первую очередь Apple, Kotlin часто JVM/Android
Что открыть дальше? Следующий шаг — Xcode и первый проект. После этого можно разбирать optionals, потому что nil и безопасное извлечение встречаются в Swift постоянно
Что почитать дальше по Swift
- Как установить Xcode и создать первый Swift-проект
- Optionals в Swift: ?, ! и безопасное извлечение
- Функции, struct и class в Swift
- Массивы, словари и циклы в Swift



