Мобильная разработка

Учебник Swift и разработка под iOS для начинающих

25 уроков · 6 разделов · бесплатно, без регистрации

Полный курс разработки под iOS на современном Swift 6 и SwiftUI. Вы пройдёте путь от переменных и опционалов до построения реактивных интерфейсов с фреймворком Observation (@Observable), асинхронной загрузки данных через async/await, навигации с NavigationStack и хранения данных в SwiftData. Каждый урок содержит разбор «под капотом», частые ошибки, best practices, ASCII-диаграммы потоков данных и запускаемые врезки для проверки логики прямо в браузере.

Курс «Swift и разработка под iOS» состоит из 6 разделов и 25 уроков: Основы Swift, Коллекции и управление потоком, Типы, структуры и объектная модель, Введение в iOS и SwiftUI, Состояние, реактивность и вёрстка и Данные, асинхронность и навигация. Уроки идут по порядку — от основ к более сложным темам, в каждом есть объяснение с примерами, а в конце — вопросы для самопроверки. К урокам привязаны задачи с автоматической проверкой: прочитали тему — сразу закрепили её кодом.

Программа курса

  1. 1 Основы Swift

    1. Что такое Swift и зачем он нужен

      Знакомство со Swift: история, философия безопасности, где исполняется код и почему язык так популярен.

    2. Переменные, константы и вывод типов

      let и var, неизменяемость по умолчанию, вывод типов и явная аннотация в Swift.

    3. Базовые типы и операции

      Int, Double, String, Bool, арифметика, строки и преобразование типов в Swift.

    4. Опционалы: безопасность вместо null

      Что такое опционал, почему Swift защищает от nil и как безопасно разворачивать значения.

  2. 2 Коллекции и управление потоком

    1. Массивы, словари и множества

      Array, Dictionary и Set: создание, доступ, изменение и выбор подходящей коллекции.

    2. Условия и ветвление

      if/else, switch с сопоставлением образцов, where и тернарный оператор в Swift.

    3. Циклы и перебор коллекций

      for-in, while, repeat-while, перебор массивов и словарей, enumerated и stride.

    4. Функциональные методы: map, filter, reduce

      Декларативная обработка коллекций замыканиями — фундамент стиля SwiftUI.

  3. 3 Типы, структуры и объектная модель

    1. Функции и параметры

      Объявление функций, метки аргументов, значения по умолчанию, возврат и inout.

    2. Замыкания и функции как значения

      Closures, синтаксис trailing closure, захват контекста и роль замыканий в SwiftUI.

    3. Структуры и классы: значение против ссылки

      struct vs class, семантика значения и ссылки, когда что выбирать в Swift и SwiftUI.

    4. Перечисления с ассоциированными значениями

      enum, ассоциированные и сырые значения, switch по случаям и моделирование состояний.

    5. Протоколы и расширения

      Протоколы как контракты, протокольно-ориентированное программирование и расширения типов.

  4. 4 Введение в iOS и SwiftUI

    1. Экосистема iOS и инструменты разработчика

      iOS, Xcode, симулятор, структура проекта и место SwiftUI в стеке Apple.

    2. Декларативный подход SwiftUI

      Декларативный против императивного, body как функция от состояния, идемпотентность вью.

    3. Базовые вью и модификаторы

      Text, Image, Button, цепочки модификаторов и порядок их применения.

    4. Компоновка: стеки и контейнеры

      VStack, HStack, ZStack, Spacer, выравнивание и вложенность для построения макета.

  5. 5 Состояние, реактивность и вёрстка

    1. @State и локальное состояние вью

      Property wrapper @State, источник истины, перерисовка и приватность состояния.

    2. @Binding и общий доступ к состоянию

      Двусторонняя связь @Binding, передача состояния дочернему вью, $-префикс.

    3. @Observable и фреймворк Observation

      Современный макрос @Observable (iOS 17+), замена ObservableObject, @State и @Bindable.

    4. Однонаправленный поток данных

      Принцип source of truth, поток состояние→вью→событие→состояние, отладка реактивности.

  6. 6 Данные, асинхронность и навигация

    1. Списки и динамические данные с ForEach

      List, ForEach, протокол Identifiable, динамические строки и удаление.

    2. Навигация: NavigationStack

      NavigationStack, navigationDestination, NavigationLink с value и программный путь.

    3. Асинхронность: async/await и сеть

      async/await, Task, .task, загрузка данных по сети, MainActor и структурированная конкурентность.

    4. Хранение данных со SwiftData

      @Model, @Query, ModelContext, сохранение и удаление, интеграция со SwiftUI.