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). Кроме того необходимо иметь некоторый опыт программирования.

В обзоре iOS профессор кратко объясняет различные уровни iOS. Начинает с

  • , который включает в себя ядро (kernel), файловую систему (the file system), управление питанием (power management), безопастность (security), C-API, …
  • core services, которая включает в себя основную функциональность core location, SQLite, доступ к файлам (file access), многопоточность (threading), …
  • media уровень core audio, OpenGL, ES, Quartz, …
  • cocoa touch уровень обеспечивает multi touch, map kit, camera handling, controls, core motion, localization, иерархию views, …

Паттерн конструирования Model-View-Controller (MVC) предусматривает три объекта

  • Model: “ЧТО представляет собой приложение”
  • Сontroller: “КАК Model представляется пользователю”
  • Vew: “МИНЬОНЫ Controller, используемые для создания ИНТЕРФЕЙСА пользователя”

которые взаимодействуют друг с другом.

Сontroller «говорит» напрямую с Model и View. Model и View никогда не должны «говорить» друг с другом напрямую. Они взаимодействуют друг с другом через Сontroller, который действует как интерпретатор данной информации.

View взаимодействует с Controller через

  • target actions – это, когда Сontroller «вывешивает» у себя «цель» (targe), а  View «выстреливает» с помощью action по цели, если что-то происходит в интерфейсе пользователя,
  • delegates – «посылка действия» (“action sending”) или делегирование от  View к Сontroller с использованием протоколов (protocols),
  • data sources – данные, которые должны отображаться на View, предоставляются Controller.

Model взаимодействует с Controller, используя механизм уведомлений (notifications), когда  Model ведет широкоформатное вещание, а Controller “настраивается” на нужную волну и соответственно реагирует.

Когда MVC много, они взаимодействуют через своих Controllers.

Далее профессор Пол Хэгерти начинает очень подробное введение в Objective-C на примере создания класса Card — карты ( пока не игральной), которая может участвовать в карточных играх. Очень большое внимание уделяется понятию @property (свойство) и показывается как свойства участвуют в формировании функциональности класса.

Лекции на английском языке, а также слайды находятся на  iTunes под именем “1. Class Logistics, Overview of iOS, MVC, Objective-C”.

 Дополнительно предоставлен подробный конспект Лекции 1, хронометрированный через каждые 5 минут, на русском языке:

Лекция 1 CS193P iOS 7 FALL 2013 1_new.pdf (0 - 15 минута)

Лекция 1 CS193P iOS 7 FALL 2013 2_new.pdf (15 - 19 минута)

Лекция 1 CS193P iOS 7 FALL 2013 3_new.pdf (19 - 25 минута)

Лекция 1 CS193P iOS 7 FALL 2013 4_new.pdf (25 - 30 минута)

Лекция 1 CS193P iOS 7 FALL 2013 5_new.pdf (30 - 59 минута) окончание

Stanford CS 193P iOS 7 Лекция 1 – iOS, MVC, Objective-C: 9 комментариев

  1. Здравствуйте, не доступны доки для 3х последних лекций в разделе часть 2 xcode, очень хорошие лекции )

    • Все просмотрела. Все доступно. Можете уточнить название?

  2. Спасибо вам за перевод, давно искал что-нибудь русскоязычное по стенфордским курсам!

  3. Большое спасибо вам. Английский только подтягиваю, поэтому таким, как я, данный ресурс очень полезен.

  4. Привет:) Татьяна, большое спасибо за перевод.
    Прекрасный курс с комплексным подходом и понятный перевод.

  5. Татьяна, спасибо большое за ваш труд!
    Такой вопрос: как быть с теми курсами, которые являются обязательными для этого? Насколько они вообще обязательны и можно ли где-то почерпнуть знания в другом месте? Например в каких-то книгах?

    • Я бы не стала так сильно настраиваться на обязательные курсы. Вы должны понимать, что Пол Хэгерти читает для студентов Стэнфорда, у которых есть возможность взять любой из этих курсов. Если вы пришли с другого языка Java, C++, Python, то там есть объектно ориентированное программирование и вам будет легко. Если вы новичок, то вам понадобятся элементарные понятия «класса», «наследования», «экземпляр класса», методы класса и методы экземпляра класса. В принципе это интуитивные понятия и в Objective-C, и Swift их использование можно понять без абстрактных определений.
      Кроме того, студенты Стэнфорда ограничены во времени, а вы — нет, по мере непонятностей смотрите Wikipedia и т.д. Да и сам Пол Хэгерти все таки немного рассказывает об этом.
      Так что вперед, а там — сориентируетесь.

Обсуждение закрыто.