Лекция 2 CS193P Fall 2017 — MVC.

В Лекции 2 профессор подробно с картинками объясняет использование паттерна MVC для разработки iOS приложений.

Затем следует продолжение разработки демонстрационной игры Концентрация, начатой на прошлой лекции. Происходит разделение кода Модели и кода, обслуживающего View Controller. Появляется новый класс class Concentration и новая структура struct Card, которые представляют лагерь Модели. Возможно, вы привыкли использовать структуры struct в других языках и думаете о них, как о маленькой коллекции других переменных. В Swift структура struct — это “гражданин” первого класса, очень похожий на класс class. У класса class и структуры  struct много отличий, но самых главных два:

  1. Классы class имеют наследование (inheritance), а структуры struct — нет.
  2. Классы class ”живут” в “куче”, и у вас есть на них указатели.  Классы class используют стиль передачи по ссылке reference types. Структуры struct НЕ ”живут” в “куче” и передаются повсюду путем их копирования (точнее с использованием механизма copy-on-write). Мы называем этот стиль передачи value types.

Профессор рассказывает, как проектировать Модель, отталкиваясь от ее public API.   На очень коротких фрагментах кода показано, как исходя из семантического содержания Optional, можно легко и просто построить всю логику игры Концентрация, как использовать преимущества механизма copy-on-write (COW), действующего в структурах struct.
Как синхронизировать Модель и View Controller.

Попутно Пол Хэгерти рассказывает о синтаксических конструкциях Swift 4 пока без всякой теории, просто на демонстрационном примере игры Концентрация. Но вы увидите огромный спектр возможностей языка программирования Swift от инициализаторов классов class и структур struct до lazy переменных, static переменных var и static методах func, до всевозможных способах обращения с Optional, включая неявно развернутое Optional!. Представлены методы gereric массивов Array<T>  и словарей Dictionary <Key, Value>.

Код демонстрационного примера для Лекции 2 находится на Github в папке Concentration L2.

Лекция 2 и слайды на английском языке находятся на  iTunes название “2. MVC.”

Русскоязычный неавторизованный конспект Лекции 2, хронометрированный через каждые 5 минут, и представленный в виде PDF-файла, который можно скачать и использовать offline, а также в формате Google Doc доступны на платной основе.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *