- PVSM.RU - https://www.pvsm.ru -

Стартовали Стэнфордские курсы cs193p 2015: iOS 8 + Swift и только Swift

image

В прошлой публикации [1] я писала о том, что ожидаются Стэнфордские курсы cs193p 2015.
И вот они стартовали. Вернее в Стэнфорде они стартовали давно, 5 января 2015 года. Но только сейчас их выкладывают в iTunes Developing iOS 8 Apps with Swift [2]
В первой же лекции Пол Хегэрти (Paul Hegarty) четко сказал, что в курсе будет использоваться только Swift [3]. Стэнфорд окончательно переключился на Swift не только потому, что многие компании в Силиконовой долине проводят интервью с выпусниками на позиции разработчиков iOS приложений на Swift, но и потому, что с благословления Apple [4] свободное распространение такого качественного контента c 1.2 миллионами скачиваний откроет для многих разработчиков по всему миру язык разработки iOS приложений Swift.
Для того, чтобы воспользоваться этим контентом, вам нужно иметь только Mac — Macbook Pro, MacBook Air, iMac. Все программное обеспечение — бесплатное.
Уже выложены 4 лекции и одно домашнее задание.
Если кто-то чувствует себя не совсем уверенно с английским или просто хотите почитать материал на русском языке, предлагаю свой неавторизованный конспект лекций на русском языке. Выложена Лекция 1 CS193P Winter 2015 — Логистика курса, обзор iOS 8. [5] В ближайшее время будет выложены остальные.
Блестящие лекции профессора Пола Хегэрти (Paul Hegarty) будут полезны как начинающим, так и опытным программистам.

Пол Хегэрти не только высвечивает множество нюансов операционной системы iOS и языка программирования, в данном случае Swift, которые не так-то легко найти в документации, но и снабжает вас приемами программирования на iOS, которые вы не найдете ни в одной книге (может быть, на WWDC 2011, 2012, 2013, 2014). Он многократно сократит ваш путь изучения. Реально, он — гений в преподавании программирования на iOS.
Хочу поделиться первыми впечатлениями о первых 4-х лекциях.
Как всегда, ежегодная Лекция №1 — это общее введение в курс и обзор iOS, MVC и на этот раз Swift. И опять Paul Hegarty подчеркивает важность знакомства с объектно-ориентированным программированием как обязательное требование к курсу, и что этот курс — не для начинающих.
После обзора структуры программного обеспечения iOS, профессор Paul Hegarty погружается в демонстрационный пример, это старый пример, который был представлен 3 года назад на Objective-C. Я прошла почти все курсы профессора Пола Хэгарти — от iOS 5 до iOS 7 — до самого конца (решения домашних заданий представлены на Github [6] ). Мне знаком этот демонстрационный пример, но для iOS 5 и Objective-C. Это RPN калькулятор [7]. На примере этого калькулятора профессор на протяжении 3-х лекций рассказывает все тонкости Swift как объектно-ориентированного языка. На основе RPN калькулятора построены первые домашние задания, в результате выполнения которых вы разработаете очень качественные и красивые iOS приложения. Надо сказать, что графический RPN калькулятор на iPad ( по-видимому третье или четвертое домашнее задание) — это самое удачное, трудоемкое и красивое приложение из всех, представленных за последние 3 года.
Вначале профессор очень подробно рассказывает о синтаксисе Swift и о возможностях Xcode 6. Буквально объясняет каждый символ. И может возникнуть обманчивое впечатление, что это курс для начинающих. Но он умышленно это делает, чтобы дальше, при объяснении протоколов, замыканий, анимации, многопоточности, Autolayout (разметки), объектно-ориентированной базы данных Core Data, Dynamic Animation и т.д., не вернуться к этому никогда, и начать говорить только о сложных вещах. Поэтому первые 3-4 лекции — просто находка для тех, кто только начинает разрабатывать iOS приложения. Сейчас мы все немного в таком положении, потому что Swift — новый язык.
Но что меня поразило на этот раз, это то, что буквально с первой лекции начинается работа с адаптивным интерфейсом, с применения такой сложной и запутанной системы, как Autolayout. Кстати Пол Хэгарти на этой, а также на 2-ой лекции, представил ускоренный мини курс обучения системе Autolayout (Разметки). Дальше еще круче. Он рассматривает тип implicitly unwrapped optional (неявно развернутого Optional), семантика которого менялась по мере продвижения бэта — версий ( то мы ставим! на UI объектах, то нет).
Я — большой фанат профессора Пола Хэгарти, потому что даже если вы прочитали множество книг и сделали несколько приложений, он выстроит ваши знания в строгую логическую концепцию. Но для этого недостаточно просмотреть видео мимолетом — нужно вслушиваться в каждое слово.
В курсе обычно бывает 6 домашних заданий. Первое — очень легкое, нужно в основном повторить то, что профессор показывал на лекции. И это также создает иллюзию, что курс для начинающих. Далее сложность заданий возрастает по экспоненте. Все эти задания необходимо выполнять. Они, как правило, очень интересные, и вы несомненно получите от этого удовольствие.
Я собираюсь выкладывать решения домашних заданий на своем сайте «Разработка iOS приложений» [5].
Хотелось бы организовать в Рунете форум на подобие Piazza [8], который сопровождает обучение студентов в Стэнфорде. На нашем форуме мы могли бы обмениваться решениями (язык Swift — новый, и могут быть очень интересные решения в зависимости от опыта), а также помогать продвинуться по курсу тем, кто по каким-то причинам застрял.
Откликнитесь те, у кого есть какие-то идеи на этот счет.

Автор: WildGreyPlus

Источник [9]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/programmirovanie/81250

Ссылки в тексте:

[1] прошлой публикации: http://habrahabr.ru/post/244353/

[2] Developing iOS 8 Apps with Swift: https://itunes.apple.com/us/course/developing-ios-8-apps-swift/id961180099?utm_campaign=This_Week_in_Swift_26&utm_medium=email&utm_source=This%2BWeek%2Bin%2BSwift

[3] Swift: https://developer.apple.com/library/mac/documentation/Swift/Conceptual/Swift_Programming_Language/GuidedTour.html#//apple_ref/doc/uid/TP40014097-CH2-ID1

[4] благословления Apple: https://developer.apple.com/news/?id=01272015a&utm_campaign=iOS_Dev_Weekly_Issue_183&utm_medium=email&utm_source=iOS%2BDev%2BWeekly

[5] Лекция 1 CS193P Winter 2015 — Логистика курса, обзор iOS 8.: http://bestkora.com/IosDeveloper/

[6] Github: https://github.com/codingtogether74

[7] RPN калькулятор: https://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D1%80%D0%B0%D1%82%D0%BD%D0%B0%D1%8F_%D0%BF%D0%BE%D0%BB%D1%8C%D1%81%D0%BA%D0%B0%D1%8F_%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D1%8C

[8] Piazza: https://piazza.com/class/hbx3auf1ac4a2

[9] Источник: http://habrahabr.ru/post/249353/