Stanford CS 193P iOS 7 Лекция 10 — Блоки, Многопоточность, Scroll View

Лекция 10 начинается с введение в многопоточность, при этом уделяется  особое внимание тому, как блоки ставятся в очередь (которые затем выполняются на разных потоках) и как запустить длительные по времени задачи без блокировки пользовательского интерфейса  ( UI ) . iOS поддерживает различные APIs – если предыдущие версии этого курса делали акцент на API низкого C уровня, то в этом году появилось Objective-C API и последний в данном курсе предпочтителен.

Вторая часть теории посвящается Scroll Views, как их создать, как добиться скроллинга и zooming (изменения масштаба).

Оставшаяся часть лекции посвящена демонстрационному примеру, который покрывает обе теоретические части: многопоточность и  Scroll Views.

Код демонстрационного примера  «Imaginarium» для этой лекции можно найти на сайте здесь.

Лекция и слайда (английский язык) доступна на  iTunes название “10. Multithreading, Scroll View”.

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

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

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

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

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

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 минута)

Stanford CS 193P iOS 7 Лекция 3 – Objective-C

На Лекции 3 демонстрируется как решать Домашнее задание 1 и добавляются новые возможности в игру  Matchismo: разрабатывается алгоритм подсчета очков при «совпадении» карт, когда в игре участвует несколько карт (например, 12).

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

Видео Лекции 3, а также ее слайды (которые включают в себя полную пошаговую инструкцию демонстрационного проекта Лекции 3) доступны на  iTunes название “3. Objective-C”.

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

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

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

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

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

Лекция 3 CS193P Fall 2013-2014 5_new.pdf (55 - 65 минут)

Лекция 3 CS193P Fall 2013-2014 6_new.pdf (65 - конец)

Stanford CS 193P iOS 7 — Лекция 2 — Демонстрация (пошаговая инструкция)

Ниже представлена переведенная на русский язык пошаговая инструкция воспроизведения демонстрационного проекта, состоящая  из 7 блоков ( для удобства загрузки). Оригинал ( и лекцию, и слайды) можно скачать на Itunes: элемент с именем «2. Xcode 5».

Читать далее

Stanford CS 193P iOS 7 Лекция 2 – Xcode 5

В Леции № 2 представлен краткий пошаговый экскурс в среду разработки Xcode. В первой части лекции профессор Пол Хэгерти продолжает свое введение в язык программирования Objective-C на примере создания различных классов для Model простейшей карточной игры «на совпадение» с игральными картами. Вторая часть лекции представляет собой «живую» демонстрацию того, как начать проект в Xcode, размещая кнопки и метки на  Storyboard и подсоединяя их к Controller.

В конце лекции мы получаем приложение с именем Matchismo, которое показывает игральную карту и позволяет ее переворачивать, демонстрируя при этом две различные  ее стороны.

Читать далее