Лекция 5 CS193P Winter 2015 — Objective-C совместимость, Property List , Views

Пол Хэгерти начинает Лекцию 5 начинается с теории о том, как создавался Swift, чтобы его работа с  Objective-C API была максимально комфортна, и таким образом обеспечивала бы взаимозаменяемость ( bridging ) NS — объектов старого мира с новыми «родными» Swift типами в большинстве iOS методов.
Рассматриваются особенности явного «кастинга» с использованием  as и as?

Property List

Интерпретируя Property Lists как коллекцию AnyObjects, Пол Хэгерти рассматривает использование механизма NSUserDefaults в Swift для хранения информации об «установках» (settings) и параметров предварительной настройки (preferences) между запусками приложения.
Далее следует короткий Демонстрационный пример использования  Property List для приложения Calculator.

Views

Иерархичность views, superview, subviews и связанные с ними системы координат.
Способы инициализации views взависимости от того, где они создаются: в коде или на storyboard.
«Раняя» установка некоторых свойств с помощью awakeFromNib
Views используют специальные структуры данных для рисования: points (точки), sizes (размеры) и  rectangles (прямоугольники), и множество удобных методов для работы с ними. Дается четкое различие между frame и  bounds.  Вводится понятие единицы измерения points с различным числом пикселей в зависимости от используемого прибора и соответствующее свойство contentScaleFactor.

Custom Views

Рисование в  drawRect. Core Graphics и UIBezierPath. Рисование фигур, прием «вырезание» с использованием addClip()
Управление цветами происходит с помощью класса UIColor, который позволяет устанавливать прозрачность (transparency) с помощью значения  alpha. «Скрытие» view, не убирая его из иерархии.
«Рисование» текста в drawRec с помощью строки с атрибутами NSAttributedString.
Фонты для пользовательского контента preferredFontForTextStyle.
«Рисование» изображения (image) в drawRec с помощью UIImage(name:).
UIViewContentMode определяет, что будет происходить при изменении  bounds вашего view.
В конце лекции демонстрационный пример иллюстрирует все теоретические части лекции.

Лекции и слайды на английском языке представлены в iTunes название “5. Objective-C Compatibility, Property List, Views”.  Код Демо «Happiness» для Swift 1.2 доступен на сайте Stanford. Код демонстрационного примера «Happiness» для Swift 2.0 доступен на Github.

Русский неавторизованный конспект лекции 5, хронометрированный через каждые 5 минут, представлен в PDF — файле

Лекция 5 CS193P Winter 2015 iOS 8 All.pdf

 

Лекция 5 CS193P Winter 2015 — Objective-C совместимость, Property List , Views: 8 комментариев

  1. Одним счетом можно ли оплатить все доп курсы или 250р стоит доступ ко всем?

    • В данный момент стоимость каждой лекции 250 руб. Вы можете оплатить через сайт только те лекции, которые уже готовы. Остальные лекции по iOS 8 и iOS 7 будут появляться на сайте по мере готовности. В сентябре планирую завершить. Тогда будем обсуждать покупки каждого курса в целом.

    • Весь пакет можно оплатить по этой ссылке https://bestkora.com/IosDeveloper/dostup-ko-vsemu-paketu-konspektov-lektsij-po-ios-8-swift/
      Возможно мой ответ Вас удивит, но я хочу дать вам дополнительную информацию: этот курс читался чуть больше года назад, когда была версия Swift 1.1. Сейчас версия Swift 2.2, а ожидается 3.0. Кроме того, сейчас в Стэнфордском университете с 28 марта 2016 г. по 1 июня 2016г.читается новый курс на эту тему. Хочется верить, что они выложат его на iTunes предположительно к концу мая 2016, но гарантировать никто ничего не может, так как прошлый курс осеннего семестра они не выложили. Если будет на iTunes — буду переводить.
      Конечно, курс iOS 8 содержит уникальные материалы, которых, возможно, не будет в будущем курсе, так как обычно, материал в стэнфордских курсах представляется мозаически (некоторые темы представлены в более ранних курсах). По мере возрастания номера лекции становится все труднее и труднее. Если вы начинающий, то, возможно, вам будет трудно.
      Так что решение принимать Вам.

      • да я учусь за границей и мы проходим этот курс и мы в июне заканчиваем уже. Так что смысла ждать нету. Да курс для 1.1. Но я работаю так же на 2.2 вроде больших проблем не возникало
        На русском языке удобнее чем на английском.

  2. да я учусь за границей и мы проходим этот курс и мы в июне заканчиваем уже. Так что смысла ждать нету. Да курс для 1.1. Но я работаю так же на 2.2 вроде больших проблем не возникало
    На русском языке удобнее чем на английском.

    • Тогда для вас курс в самый раз. Демонстрационные примеры для Swift 2 можно посмотреть на
      https://github.com/BestKora/Swift-2.0-DEMO-Winter-2015
      Решения Заданий
      https://bestkora.com/IosDeveloper/swift-2-0-i-ios-9-uzhe-na-poroge/
      Интересно, какая у Вас программа, она совпадает с программой предыдущего курса?

      • да мы используем полностью этот курс для изучения swift.
        так что скажем зачем платить такие деньги в стенфорде если и можно и дешевле пройти этот курс))). Ну единственное что мы еще дополнительно проходим native javascript.

Обсуждение закрыто.