GrabDuck

Доступны Стэнфордские курсы CS193P Весна 2016: Разработка iOS 9 приложений с помощью Swift

:

Стэнфордский курс «Developing iOS 9 Apps with Swift» теперь доступен на iTunes. Это долгожданное обновление предыдущего курса по iOS 8 и Swift.
Для того, чтобы воспользоваться этим контентом, вам нужно иметь только Mac — Macbook Pro, MacBook Air, iMac. Все программное обеспечение — бесплатное.

Этот курс в течение 10 недель читает профессор Пол Хегэрти. Он не только высвечивает множество нюансов операционной системы iOS и языка программирования Swift, которые не так-то легко найти в документации, но и снабжает вас приемами программирования на iOS, которые вы не найдете ни в одной книге (может быть, на WWDC 2011, 2012, 2013, 2014, 2015). Он многократно сократит ваш путь изучения. Реально, он — гений в преподавании программирования на iOS.

На первой лекции после обзора структуры программного обеспечения iOS, профессор Пол Хегэрти погружается в демонстрационный пример — калькулятор, но это не тот RPN калькулятор, который был на прошлом курсе. На этот раз это обычный и более простой калькулятор, у него нет реккурсивного вызова методов. На примере этого калькулятора профессор очень подробно рассказывает о синтаксисе Swift 2.2 и о возможностях Xcode 7.3. Буквально объясняет каждый символ. И может возникнуть обманчивое впечатление, что это курс для начинающих. Но он умышленно это делает, чтобы дальше, при объяснении протоколов, замыканий, анимации, многопоточности, Autolayout (разметки), объектно-ориентированной базы данных Core Data, Dynamic Animation и т.д., не вернуться к этому никогда, и начать говорить только о сложных вещах. Поэтому первые 3-4 лекции — просто находка для тех, кто только начинает разрабатывать iOS приложения на Swift. Он сам говорит о том, что задачей первых двух недель курса является дать своим студентам «ракетный» старт в изучении языка Swift. Поэтому он дополняет курс 3-мя Заданиями на чтение документации по Swift. Именно в этот период студенты выполняют Домашние Задания на программирование 1 и 2 (их всего, как правило, 6), которые являются достаточно легкими.
Но после 2-х недель ситуация резко меняется: материал курса усложняется, а трудность Домашних Заданий на программирование растет по экспоненте.
Для успешного прохождения курса профессор Пол Хегэрти подчеркивает важность знакомства с объектно-ориентированным программированием, как обязательное требование к курсу. Это курс топового уровня по программированию, поэтому желательно предварительно пройти некоторые основополагающие курсы по программированию, например, такие, как стэнфордские курсы CS16A и B или CS16X и затем CS107, хотя это не совсем Объектно-Ориентированный курс, но это очень тяжелый и добротный курс по программированию.
Курс CS108 — замечательный Объектно-Ориентированный курс, поэтому, если вы пройдете CS108, то вы действительно будете прекрасно подготовлены. Курс CS110, тоже не совсем Объектно-Ориентированный курс, но огромная программистская практика, потому что основные занятия на этом курсе — программирование.

Есть примерная программа курса:

1 — Введение в iOS 9, Xcode 7.3 и Swift 2.2
2 — MVC; iOS, Xcode и Swift демонстрация

3 — Swift 2.2 в деталях
4 — Views. Drawing (рисование)

5 — Interface Builder, FaceView Controller, Управление Multitouch Gesture (жестами), комбинирование MVCs
6 — Комбинирование MVCs; segues; «жизненный цикл» View Controller

7 — Closures (замыкания); Extensions (расширения); Protocols (протоколы); Delegation (делегирование); ScrollView
8 — Multithreading (многопоточность); Text Field (текстовое поле)

9 — Table View
10 — Core Data

11 — демонстрация Core Data
12 — Autolayout (система Авторазметки)

13 — NSTimer и Animation (анимация)
14 — Animation и Core Motion

15 — «Жизненный цикл» приложения; Alerts; Cloud Kit
16 — Notification (уведомления) и Cloud Kit

17 — Segues; Core Location (местоположение); Maps (карты)
18 — Persistence (постоянное хранение)

Видно, что лекций на одну больше, чем в прошлый раз. Теперь их 18, вместо предыдущих 17. Есть Core Data, но нет Локализации, что всегда было заключительной лекцией, и с которой можно познакомиться на прошлом курсе, нет Air Drop.
По-моему, будет очень интересно.
Если кто-то хочет почитать материал на русском языке, предлагаю свой неавторизованный конспект лекций на русском языке. Выложено
Лекция 1 CS193P Spring 2016 — Обзор курса и введение в iOS, Xcode и Swift. (часть 1)
Лекция 1 CS193P Spring 2016 — Обзор курса и введение в iOS, Xcode и Swift. (часть 2)
Лекция 2 CS193P Spring 2016 — Применяем MVC.
Лекция 3 CS193P Spring 2016 — Больше Swift и Фреймворк Foundation.
Лекция 4 CS193P Spring 2016 — Views
Лекция 5 CS193P Spring 2016 — Interface Builder, FaceView Controller, Жесты и Множественные MVCs
Лекция 6 CS193P Spring 2016 — множественные MVCs, Segues, FaceIt и View Controller
Лекция 7 CS193P Spring 2016 — Closures, Extensions, Protocols, Delegation и ScrollView
Лекция 8 CS193P Spring 2016 — Multithreading и Text Field (Многопоточность и текстовые поля)
Лекция 9 CS193P Spring 2016 — Table View (Табличное представление данных).
Лекция 10 CS193P Spring 2016 — Core Data (Объектно-ориентированная база данных).
Лекция 11 CS193P Spring 2016 — Core Data Demo (Демонстрационное приложение).
Лекция 12 CS193P Spring 2016 — Autolayout (Автоматическая разметка).

Лекция 13 CS193P Spring 2016 — NSTimer и анимация.

Лекция 14 CS193P Spring 2016 — Анимация и Core Motion.
Лекция 15 CS193P Spring 2016 — Application Lifecycle («жизненный цикл» приложения), Alerts и Cloud Kit.
Лекция 16 CS193P Spring 2016 — Notification и Cloud Kit.
Лекция 17 CS193P Spring 2016 — Segues, Core Location и MapKit.
Лекция 18 CS193P Spring 2016 — Persistence (постоянное хранение данных).

Самое увлекательное — это решение Домашних Заданий. Их будет 6:

Задание 1cs193p Spring 2016 Калькулятор. Решение. Обязательные и дополнительные пункты. Окончательный код Задания 1 на Github.
Задание 2 cs193p Spring 2016 «Умный» Калькулятор. Решение. Обязательные и дополнительные пункты. Окончательный код Задания 2 на Github и Github.
Задание 3 cs193p Spring 2016 Графический Калькулятор. Решение обязательных пунктов Задания. Обязательные пункты Задания 3 на Github
Задание 3 cs193p Spring 2016 Графический Калькулятор. Решение дополнительных пунктов. Дополнительные пункты Задания 3 на Github
Задание 4. CS193P Spring 2016. Smashtag Mentions (клиент Twitter). Решение — обязательные пункты 1- 7.
Задание 4. CS193P Spring 2016. Smashtag Mentions (клиент Twitter). Решение — обязательные пункты 8 — 10.
Задание 4. CS193P Spring 2016. Smashtag Mentions (клиент Twitter). Решение — дополнительные пункты 1-5.
Задание 4. CS193P Spring 2016. Smashtag Mentions (клиент Twitter). Решение — дополнительный пункт 6. UICollectionView и перемещение ячеек.
Задание 4. CS193P Spring 2016. Smashtag Mentions (клиент Twitter). Решение — дополнительный пункт 6. UICollectionView с расположением ячеек типа WaterFall и переключение между Layouts.
Задание 5 cs193p Spring 2016 Smashtag Mentions Popularity (клиент Twitter). Решение.
Задание 5 cs193p Spring 2016 Smashtag Mentions Popularity. Решение дополнительного пункта 4 (удаление старой информации из Core Data).
Задание 6 cs193p Spring 2016 Задание VI: Игра Breakout. Анимация.
Задание 6. Анимация. Решение. Ощутите «магию» Swift 3 на простейшей игре Breakout с Dynamic Animation.
Все эти материалы выложены на сайте «Разработка iOS приложений».
Задача данного проекта в том, чтобы вывести начинающих разработчиков iOS приложений на достаточно высокий уровень программирования, когда вы свободно сможете общаться с экспертами и понимать все, что говорится на WWDC, а также следить за созданием Swift 3 и Swift 4 на сайте Swift.org , а не “болтаться” вечно в обучающих материалах. После качественного самостоятельного программирования Заданий курса CS193P без копипаста никакие обучающие курсы уже будут не нужны.