Лекция 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 минут, на русском языке:
Здравствуйте, не доступны доки для 3х последних лекций в разделе часть 2 xcode, очень хорошие лекции )
Все просмотрела. Все доступно. Можете уточнить название?
Спасибо вам за перевод, давно искал что-нибудь русскоязычное по стенфордским курсам!
Большое спасибо вам. Английский только подтягиваю, поэтому таким, как я, данный ресурс очень полезен.
Привет:) Татьяна, большое спасибо за перевод.
Прекрасный курс с комплексным подходом и понятный перевод.
Огромное спасибо за данный труд! 🙂
Татьяна, спасибо большое за ваш труд!
Такой вопрос: как быть с теми курсами, которые являются обязательными для этого? Насколько они вообще обязательны и можно ли где-то почерпнуть знания в другом месте? Например в каких-то книгах?
Я бы не стала так сильно настраиваться на обязательные курсы. Вы должны понимать, что Пол Хэгерти читает для студентов Стэнфорда, у которых есть возможность взять любой из этих курсов. Если вы пришли с другого языка Java, C++, Python, то там есть объектно ориентированное программирование и вам будет легко. Если вы новичок, то вам понадобятся элементарные понятия «класса», «наследования», «экземпляр класса», методы класса и методы экземпляра класса. В принципе это интуитивные понятия и в Objective-C, и Swift их использование можно понять без абстрактных определений.
Кроме того, студенты Стэнфорда ограничены во времени, а вы — нет, по мере непонятностей смотрите Wikipedia и т.д. Да и сам Пол Хэгерти все таки немного рассказывает об этом.
Так что вперед, а там — сориентируетесь.
Спасибо! Дай Вам Бог здоровья за ваши добрые дела!