Лекция 6 CS193P Spring 2020 — Animation.


На Лекции 6 курса Стэнфорда  CS193p — «Developing  Application for iOS» («Разработка приложений для iOS») вначале рассматриваются две короткие темы: Наблюдатели Свойства (Properties Observer) и @State. На  Наблюдателях Свойства (Properties Observer), как синтаксической конструкции языке Swift, профессор долго не задерживается, а вот @State, этому маленькому временному хранилищу, используемое в вашем View

Далее профессор полностью погружается в основную тему дня — Анимацию. Это великолепная Лекция на эту тему, нигде вы не найдете столько материала, собранного на тему анимации, и столько нюансов использования различных типов анимации. Рассматриваются четыре чрезвычайно важных аспекта Анимации:

  1. Неявная и явная анимация, 
  2. Анимация Views (через их модификаторы ViewModifiers, которые реализуют Animatable протокол)
  3. Transitions (анимируют появление / исчезновение Views с помощью определенных ViewModifiers)
  4. Анимация Shapes (через  Animatable протокол)

Читать далее

Только что прочитанный курс CS193P Весна 2019 не будет выложен в iTunes для публичного доступа.

5 июня 2019 года профессор Пол Хэгерти закончил читать очередной Стэнфордский курс CS193P «Разработка iOS приложений» Весна 2019 для Swift 5 и iOS 12, но на этот раз, со слов самого профессора, ни команда iTunes, ни Apple не проявили интереса к тому, чтобы записать этот курс на видео, и он не будет выложен в iTunes для публичного изучения. Хотя, конечно, курс CS193P Весна 2019 записывался на видео непосредственно командой Стэнфорда и был доступен исключительно студентам Стэнфорда.

После того, как с 3 по 8 июня 2019 года прошла конференция разработчиков Apple WWDC 2019, стало приблизительно понятно, почему  это произошло с курсом CS193P «Разработка iOS приложений» Весна 2019.

Во-первых, на конференции разработчиков Apple предложила ряд абсолютно новых технологий разработки iOS (а также watchOS, tvOS и MacOS) приложений, и это прежде всего разработка пользовательского интерфейса (UI) на языке Swift 5.1 с использованием фреймворков SwiftUI и Combine, совершенно новая операционная система iPadOs, а также возможность адаптировать iPad-приложения на MacOS с помощью Catalyst.

iPadOS основана на тех же принципах, что и iOS, но её уникальные возможности просто поражают.

Проект Catalyst для новой операционной системы macOS 10.15 Catalina — это ранее известный проект под кодовым названием «Marzipan». И это тоже совершенно новый способ портировать iPad-приложения на Mac.

Так что Apple предлагает разработчикам приложений на своих устройствах совершенно новые супер современные подходы. Профессору Полу Хэгерти придется разрабатывать совершенно новый курс  CS193P «Разработка iOS (iPadOS??) приложений». Впрочем, он всегда это делает очень оперативно и эффективно. Вспомним хотя бы, как он оперативно рискнул перейти от Objective-C на самую первую версию Swift 1.0 (конечно, сильно сырую в то время) и самым первым выпустил обучающий курс «Разработка iOS приложений на Swift«. Надеюсь, так же будет и на этот раз, и мы в начале 2020 года увидим новый адаптированный к новым реалиям курс CS193P «Разработка iOS (iPadOS??) приложений». Но пока на сайте Stanford‘а нет расписания на 2020 год.

Во-вторых, еще одно новшество, объявленное Apple на конференции разработчиков  WWDC 2019 для новой операционной системы macOS 10.15 Catalina , — это разделение приложения iTunes, в котором профессор Пол Хэгерти размещал материалы своего курса для скачивания, на 3 отдельных приложения: Apple Music — для музыки, Apple TV — для TV и фильмов и Apple Podcasts — для подкастов, где собственно и находятся материалы для курса CS193P «Разработка iOS 11 приложений» Осень 2017 и могут быть скачаны:

Материалы для будущих курсов CS193P вряд ли будут размещаться в Apple Podcasts, так как все-таки у этого приложения другое предназначение.

Пока профессор создает свой новый курс CS193P, стоит подготовиться к разработке iOS приложений с помощью очень интересного фреймворка  SwiftUI. В связи с этим я планирую разместить на этом сайте ряд уроков по SwiftUI, которые направлены на разработку приложения, отображающего информацию о пользователях некоторого ресурса, полученную в JSON формате, в виде временных графиков. Это было конкурсное задание Telegram, и я покажу, как просто оно решается с помощью SwiftUI.

В ближайшие пару дней выложу это, пока еще не конца реализованное, но уже прилично работающее, приложение на Github.