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 — Домашнее задание 2

Screen Shot 2014-07-13 at 3.34.28 PMСодержание

Текст Домашнего задания на английском языке доступен на  iTunes в пункте  “Developing iOS 7 app:Assignment 2″На русском языке 

Задание 2 Matchismo 2 fall 2013.pdf

Пункт 1

Следуйте детальной инструкции на слайдах лекции (отдельный документ) для воссоздания последней версии Matchismo, которую мы построили на лекции (то есть вариант с множеством карт) и запустите его на симуляторе iPhone (iPhone Simulator) в Xcode 5. Не переходите к следующим шагам до тех пор, пока ваша карточная игра “на совпадение” не будет функционировать без ошибок и предупреждений.

 

Слайды  Лекции 3 содержат подробную пошаговую инструкцию для выполнения Домашнего задания 1 и для всех шагов, описанных выше. Следуя этой инструкции (если вы уже не сделали это в течение лекции), вы полностью выполните пункт 2 Домашней работы 2.

Читать далее

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 — Домашнее задание 1

Начало игрыСодержание

Текст Домашнего задания на английском языке доступен на  iTunes в пункте “Developing iOS 7 app:Assignment 1″На русском языке

Задание 1 Matchismo fall 2013.pdf

Пункт 1

Следуйте пошаговой инструкции на слайдах лекции (отдельный документ) для построения и запуска Matchismo на симуляторе iPhone (iPhone Simulator) в Xcode 5. Не переходите к следующим шагам до тех пор, пока ваша карта не будет переворачиваться “лицевой” и обратной стороной без ошибок и предупреждений

 

Вторая часть слайдов Лекции 2 содержит пошаговую инструкцию для выполнения  демонстрационного проекта, в котором создаются классы для Домашнего задания. Следуя этой пошаговой инструкции, вы полностью выполните пункт 1 первого домашнего задания. Рекомендуется не пользоваться copy/paste, а набирать весь код вручную для лучшего освоения Xcode.

 

Читать далее

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, которое показывает игральную карту и позволяет ее переворачивать, демонстрируя при этом две различные  ее стороны.

Читать далее

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

Лекция 1 — это общее введение в курс с обзором того, что такое iOS, MVC и Objective-C.

Профессор Пол Хэгарти (Paul Hegarty) акцентирует внимание на том, что необходимым требованием для этого курса является знание объектно-ориентированного программирования. Этот курс не для абсолютно начинающих.

Требование к объектно-ориентированному программированию определяются стэнфордскими курсами Programming Methodology (CS106A) и  Programming Abstractions (CS106B). Рекомендуется  также пройти курсы Programming Paradigms (CS107A&B). Кроме того необходимо иметь некоторый опыт программирования.

Читать далее

Stanford CS 193P iOS 7 — Начало

Screen Shot 2015-02-09 at 10.50.04 PM

Осенью 2013 года стартовал курс Developing iOS  7 Apps for iPhone and iPad в семестре (осень 2013 — зима 2014). Лекции (видео и слайды), а также домашние задания ( assignments) можно найти на  iTunes U. А демонстрационные примеры на сайте  Stanford. Сотрудничество в Piazza не предусматривается, но вы можете зарегистрироваться на курс  Coding Together : Developing iOS 6 ( семестр «зима 2013 — весна 2013 года» ) и  получить доступ к Piazza.

Читать далее