Стэнфордские курсы 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 — Drawing (рисование)
5 — Управление Multitouch Gesture (жестами)
6 — Комбинирование MVCs; «жизненный цикл» View Controller
7 — Closures (замыкания); Extensions (расширения); Protocols (протоколы); Delegation (делегирование); ScrollView
8 — Multithreading (многопоточность); Text Field (текстовое поле)
9 — Table View
10 — Core Data
11 — Еще больше Core Data
12 — Autolayout (система Авторазметки); Final Prohect Requirements (требования к финальному проекту)
13 — Animation (анимация)
14 — Еще больше анимации; Alerts
15 — «Жизненный цикл» приложения; Core Motion ()
16 — Core Location (местоположение); Maps (карты)
17 — Еще больше Segues; Visual Effects
18 — Camera (фотокамера); Persistence (постоянное хранение)
Видно, что лекций на одну больше, чем в прошлый раз. Теперь их 18, вместо предыдущих 17. Есть Core Data, но нет Локализации, что всегда было заключительной лекцией, и с которой можно познакомиться на прошлом курсе, нет Air Drop и нет явного упоминания Dynamic Animation, хотя анимация, конечно, есть.
По-моему, будет очень интересно.
Если кто-то хочет почитать материал на русском языке, предлагаю свой неавторизованный конспект лекций на русском языке. Выложено
Лекция 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:
Задание 1cs193p Spring 2016 Калькулятор. Решение. Обязательные и дополнительные пункты. Окончательный код Задания 1 на Github.
Задание 2 cs193p Spring 2016 «Умный» Калькулятор. Решение. Обязательные и дополнительные пункты. Окончательный код Задания 2 на Github и Github.