Stanford CS 193P iOS 7 Лекция 9 – Анимация и Autolayout (авторазметка)

Лекция 9 начинается с продолжения демонстрации «Dropit» приложения — игры наподобие «Тетрис». Эта демонстрация была начата на прошлой лекции.

Оставшаяся часть лекции посвящена механизму Авторазметки (Autolayout) пользовательского интерфейса и различным способам определения «ограничений» (constraints). Возможности «очень сообразительной» системы Авторазметки показаны в короткой демонстрации  «Attributor Stats».

Код  этой лекции для «DropIt Attach» и «Attributor Stats» доступен  здесь.

Лекция и слайды на английском языке можно получить на iTunes название “9. Animation and Autolayout”.

Русский неавторизованный  конспект Лекции 9, хронометрированный через каждые 5 минут, доступен на

Лекция 9 CS193P Fall 2013 -Winter 2014 1.pdf (0 - 30 минута)

Лекция 9 CS193P Fall 2013 -Winter 2014 2.pdf (30 - 50 минута)

Лекция 9 CS193P Fall 2013 -Winter 2014 3.pdf (50 - конец)

Stanford CS 193P iOS 7 Лекция 8 – Протоколы, Блоки и Анимация

Screen Shot 2015-02-17 at 11.32.48 PMЛекция 8 начинается с очень большой теоретической части.

Протоколы — это способ взаимодействия между не взаимносвязанными проектами, в iOS в основном используются для делегирования функционала (delegates) и «подкачки данных»  (data sources). Протоколы декларируют, какие свойства и методы могут и должны существовать в другом классе, чтобы быть доступны декларирующему протоколы классу.

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

Анимация views может быть выполнена путем анимации их свойств напрямую или  – новое в iOS 7 – на основе «физики» объектов. Если анимируются свойства view, вам необходимо указать время анимации и конечное состояние свойств объекта. Для динамической анимации вы определяете «физические свойства» view и действующие на него силы, возможно, со стороны других views.

Конец лекции — это демонстрация, объясняющая динамическую анимацию более детально на примере игры типа «Тетрис».

Код приложения Dropit для этой лекции доступен  здесь.

Сама лекция, а также слайды на английском языке доступны через iTunes called “8. Protocols, Blocks, and Animation”.

Русский неавторизованный конспект лекции 8, хронометрированный через каждые 5 минут, представлен в PDF — файле.

Лекция 8 CS193P Fall 2013 - Winter 2014 All.pdf

Stanford CS 193P iOS 7 Лекция 7 – Views и жесты

Теоретическая часть Лекции 7 описывает как можно рисовать внутри views с помощью кода и как использовать различные жесты, воспринимаемые этими views. В конце лекции представлена большая и основательная демонстрация «Super Card», показывающая использование всех теоретических приемов рисования и управления жестами.

Код лекции доступен здесь.

Лекция 7 вместе со слайдами на английском языке доступна на  iTunes название “7.Views and Gestures”.

Русский неавторизованный конспект лекции 7, хронометрированный через каждые 5 минут, представлен в PDF — файле.

Лекция 7 CS193P Fall 2013-2014 All.pdf

Можно скачивать по частям:

Лекция 7 CS193P Fall 2013-2014 1.pdf

Лекция 7 CS193P Fall 2013-2014 2.pdf

Лекция 7 CS193P Fall 2013-2014 3.pdf

Лекция 7 CS193P Fall 2013-2014 4.pdf

Stanford CS 193P iOS 7 Лекция 6 – Полиморфизм Controllers и множественные MVCs в приложении, UINavigation, UITabBar

Лекция 6 начинается с короткой демонстрации того, как создавать абстрактные классы ViewController и использовать их для построения subclasses для конкретных карт (например, для игральных карт PlayingCardGameViewController.h, PlayingCardGameViewController.m).

Теоретическая часть лекции посвящена совместной работе множества MVCs на основе NavigationControlles и segues, возможности которых показываются в другой демонстрации.

Лекция заканчивается объяснением работы TabBarControllers.

Код для этой лекции представлен  для Attributor  здесь, а для Matchismo в Github.

Также коды демонстрационных примеров можно найти на сайте Stanford.

Лекция 6 вместе со слайдами на английском языке доступна на  iTunes название “6. Views and Gestures”.

Русский неавторизованный  конспект Лекции 6, хронометрированный через каждые 5 минут, доступен на

Лекция 6 CS193P Fall 2013-2014 1.pdf (0 -20 минута)

Лекция 6 CS193P Fall 2013-2014 2.pdf (20 - 30 минута)

Лекция 6 CS193P Fall 2013-2014 3.pdf (30 - 50 минута)

Лекция 6 CS193P Fall 2013-2014 4.pdf (50 -70 минута)

Stanford CS 193P iOS 7 Лекция 5 – «Жизненный цикл» View Controller

Лекция 5 начинается с описания работы элемента пользовательского интерфейса TextView и – что является новым в  iOS 7 – NSTextStorage и TextKit, затем следует короткое demo.

«Жизненный цикл» View Controller состоит из следующих шагов:

  • Создается экземпляр (gets instantiated) View  в 99% случаев из storyboard
  • Вызывается метод awakeFromNib, который можно было бы сравнить  init
  • Устанавливаются  outlets
  • Вызывается метод viewDidLoad , который может использоваться для основных установок (setups)
  • Определяется геометрия
  • Вызываются viewWillLayoutSubviews и viewDidLayoutSubviews
  • Вызываются viewWillAppear и viewDidAppear
  • Вызываются viewWillLayoutSubviews и viewDidLayoutSubviews
  • Вызываются viewWillDisappear и viewDidDisappear
  • Если «памяти» становится мало, то вызывается didReceiveMemoryWarning


Метод viewDidLoad используется в коротком demo, которое углубляет наши знания о строках с атрибутами NSAttributedString и NSMutableAttributedString.

Использование уведомлений  NSNotification возможно при включении и настройке определенных “радиостанций” на конкретные события. Если эти события происходят, то срабатывают заданные вами actions . Не забудьте “выключить радиостанцию”, когда она не нужна …

… все это показано в другом demo в конце лекции.

Код для demo этой лекции доступен  здесь.

Лекция 5 вместе со слайдами на английском языке доступна на iTunes название “5. View Controller Lifecycle”.

Русский неавторизованный  конспект Лекции 5, хронометрированный через каждые 5 минут, доступен на

Лекция 5 CS193P Fall 2013-2014 1.pdf

Лекция 5 CS193P Fall 2013-2014 2.pdf

Stanford CS 193P iOS 7 Лекция 4 – фреймворк Foundation и строки с атрибутами NSAttributedString

Лекция 4 по большей части теоретическая с маленькой демонстрацией в середине.

Она начинается с введения в объекты фреймворка Foundation и как создавать их, используя инициализаторы или специальные методы класса. Дело показывает, как использовать интроспекцию (introspection) для безопасной динамической типизации объектов.

Далее на примере массивов NSArray объясняется, что такое mutable (изменяемые) и   immutable (неизменяемые) объекты. Объясняются массивы NSArray и словари NSDictionary и как их использовать для хранения коллекций объектов, а также как их оттуда извлекать. Рассматриваются такие типы данных в Objective-C как  NSNumber, NSValue для чисел, NSDate  для дат, NSSet (упорядоченные, неупорядоченные) для множеств, Property lists, NSUserDefaults для постоянного хранения небольших объемов информации, UIColor для цветов, UIFont и UIFontDescriptor для фонтов, NSRange для диапазонов.

Новое для  iOS 7 — это  preferredFontForTextStyle для фонтов и дискрипторов фонтов.

Лекция заканчивается строками с атрибутами NSAttributedString

Код для лекции доступен  Github.

Видео Лекции 4, а также ее слайды  доступны на   iTunes название “4. Foundation and Attributed Strings”.

Русский неавторизованный конспект Лекции 4, хронометрированный через каждые 5 минут, доступен на

Лекция 4 CS193P Fall 2013-2014 1_new.pdf (0 - 20 минута)

Лекция 4 CS193P Fall 2013-2014 2_new.pdf (20 - 40 минута)

Лекция 4 CS193P Fall 2013-2014 3_new.pdf (40 - 60 минута)

Лекция 4 CS193P Fall 2013-2014 4_new.pdf (60 - 1 час 12 минута)