В Лекции 2 профессор подробно с картинками объясняет использование паттерна MVC для разработки iOS приложений.
Затем следует продолжение разработки демонстрационной игры Концентрация, начатой на прошлой лекции. Происходит разделение кода Модели и кода, обслуживающего View Controller. Появляется новый класс class Concentration и новая структура struct Card, которые представляют лагерь Модели. Возможно, вы привыкли использовать структуры struct в других языках и думаете о них, как о маленькой коллекции других переменных. В Swift структура struct — это “гражданин” первого класса, очень похожий на класс class. У класса class и структуры struct много отличий, но самых главных два:
- Классы class имеют наследование (inheritance), а структуры struct — нет.
- Классы class ”живут” в “куче”, и у вас есть на них указатели. Классы class используют стиль передачи по ссылке reference types. Структуры struct НЕ ”живут” в “куче” и передаются повсюду путем их копирования (точнее с использованием механизма copy-on-write). Мы называем этот стиль передачи value types.
Профессор рассказывает, как проектировать Модель, отталкиваясь от ее public API. На очень коротких фрагментах кода показано, как исходя из семантического содержания Optional, можно легко и просто построить всю логику игры Концентрация, как использовать преимущества механизма copy-on-write (COW), действующего в структурах struct.
Как синхронизировать Модель и View Controller.
Попутно Пол Хэгерти рассказывает о синтаксических конструкциях Swift 4 пока без всякой теории, просто на демонстрационном примере игры Концентрация. Но вы увидите огромный спектр возможностей языка программирования Swift от инициализаторов классов class и структур struct до lazy переменных, static переменных var и static методах func, до всевозможных способах обращения с Optional, включая неявно развернутое Optional!. Представлены методы gereric массивов Array<T> и словарей Dictionary <Key, Value>.
Код демонстрационного примера для Лекции 2 находится на Github для iOS 11 и на Github для iOS 12 в папке Concentration L2.
Лекция 2 и слайды на английском языке находятся на iTunes название “2. MVC.”
Русскоязычный неавторизованный конспект Лекции 2, хронометрированный через каждые 5 минут, и представленный в виде PDF-файла, который можно скачать и использовать offline, а также в формате Google Doc доступны на платной основе.
Добрый день,
вчера я оплатил платные лекции, но ничего так лине получил.
Вы ошибочно указали в форме оплаты несуществующий адрес the.fear.dev@gmmail.com
Я вам писала дважды по этому адресу, пытаясь получить от вас верный gmail.com адрес, но все бесполезно.
Очень хорошо, что вы объявились. Вам высланы все необходимые приглашения и ссылки.
Проверьте, вы их получили?
Спасибо большое!
Добрый день!
Вчера была оплачена первая часть лекций, но на emeil ничего не пришло 🙁
В настоящий момент вам отправлены все необходимые приглашения к 1-ой и 2-ой частям курса iOS 11.
о, классно!
Большое спасибо! И компенсация чудесная 🙂
Добрый день, сегодня я оплатил платные лекции, но ничего так и не получил.
Вам отправлены все необходимые приглашения.
Спасибо за оперативность! Вторая часть будет доступна?
Она уже доступна.
https://bestkora.com/IosDeveloper/dostup-k-paketu-ios-11-chast-2/
Заканчиваю переводить последнюю 12-ю лекцию из второй части и выложу ее через 2-3 дня.
Но не торопитесь со второй частью. Курс реально непростой, некоторым не удается продвинуться дальше Лекции 5.
Но все таки самое интересное и новое в iOS 11 именно во 2-ой части.
Профессор излагает новый в iOS 11 механизм Drag&Drop просто фантастически просто и понятно.
Оплатил первую часть лекций сегодня, жду.
Вам высланы все необходимые приглашения.
Оплатил, но, боюсь, забыл указать в реквизитах свой емейл. Оплата первой части примерно в 16:42 по МСК.
оплатил!
правда сумму оплаты я не проверил и вышло 497,5 + комисся = 500 (с меня 2,5 руб. в следующей оплате) 😉
Не переживайте — все нормально, комиссия не в счет.
Вам отосланы все необходимые приглашения по указанному gmail.
Здравствуйте, я заплатил сегодня утром, но до сих пор ничего не пришло. Понимаю, что в течение 24 часов, но можно в виде исключения, пожалуйста, пораньше)))
Дмитрий, если вы платили через Beeline, то в вашем платеже нет gmail, который мне нужен для того, чтобы дать вам доступ, и не указана какая часть какого курса вам нужна. Мы вас разыскиваем с утра, уже сделали запрос в Beeline, чтобы как-то с вами связаться.
Я не смогу вам дать доступ по mail.ru.
Пришлите мне ваш gmail.com, пожалуйста.
Добрый день
Никак не могу понять один момент в примере:
game.choseCard(at: cardNumber)
updateViewFromModel()
Почему в момент, когда обе карты выбраны, т.е. имеют значение isFaceUp = true и isMatched = true — идет следом функция updateViewFromModel — которая по идее должна сразу обновить viuw-ху, но почему-то это не происходит. И только в следующий клик по 3-й уже карте отрабатывает эту функцию.
Проверил весь пример(( Но так и не понял
Буду признателен
Не очень понятно, чего вы ждете от UI, когда выбраны 2 карты. Если выбирается вторая карта, и у обоих карт isFaceUp = true и isMatched = true , то при обращении к функции updateViewFromModel вторая карта ложится «лицом» вверх (используется то, что обе карты имеют isFaceUp = true). И теперь уже две карты лежат лицом вверх. Но в классе concentration в функции chooseCard(at index: Int) мы устанавливаем переменную var indexOfOneAndOnlyFaceUpCard в nil :
Поэтому, когда вы кликните на 3-ей карте, то предыдущие две карты перевернутся лицом вниз, то есть их isFaceUp = false, хотя для них все еще isMatched = true, поэтому функция updateViewFromModel переворачивает их «лицом» вниз. И если они совпали, то есть их isMatched = true, то они становятся невидимыми, а если нет, то остаются лежать «лицом» вниз
Код находится здесь
Доброго вечера, Татьяна!
Во-первых, огромное спасибо за ваш труд!
Во-вторых, спасибо за оперативный ответ!
Да, я был не внимателен и забыл про этот код — нижний прямоугольник. Спасибо!
Привет! Подскажите, с какого курса лучше начинать обучение. Сравнивал лекции ios 11 с лекциями ios 10. В этих курсах есть значительные отличия… Например в ios 10 рассматривают Core Data, обработку ошибок и т.д. В курсе ios 11 этого нет. Или эти курсы практически одинаковы, только различия в названиях лекций? Буду очень признателен за ответ. Спасибо!
Курсы разные. Курс iOS 11 отражает последние тенденции, которые появились только в iOS11 : технология Drag & Drop, создание приложений, основанных на документах UIDocument, последние усовершенствования языка Swift в версии Swift 4 и особенно использование протокола Codable для сохранения Модели в виде JSON.
Начальная часть курса (лекции 1-4), где собственно и демонстрируются возможности языка Swift,тоже разная:
в курсе iOS 10 рассматривается Калькулятор, в котором во всю используются перечисления enum, которые являются в Swift полноценными структурами данных наряду с классами classes и структурами struct. Если вы пройдете эту часть курса iOS 10 с Калькулятором, включая первые 3 домашних Задания, то вы будете общаться с перечислениями enum на «ты», включая ассоциированные значения в виде Optional замыканий и прочее.
в курсе iOS 11 в первых 4-х Лекциях и первых 4- Заданиях рассматривается обновленный вариант карточной игры «на совпадение», который читался профессором еще в курсе iOS 7 и для Objective-C, это мои любые демонстрационные примеры еще с поры iOS 7, но здесь нет практически перечислений enum, так что вы не получите в курсе iOS 11 того богатого опыта общения с перечислениями enum как в курсе iOS 11, но зато работа с протоколами Equatable, Hashable с расширениями extension.
В курсе iOS 11 при рассмотрении «постоянного хранения» профессор объясняет, что каждый семестр он будет посвящать целую неделю (2 Лекции) какому-то одному механизму постоянного хранения (Persistence), и каждый раз это будут разные механизмы.
Вы можете познакомиться с двумя Лекциями о Core Data на курсе CS193P Winter 2017 iOS 10 на русском языке на этом сайте:
Лекция 10 CS193P Winter 2017 — Core Data (Объектно-ориентированная база данных).
Лекция 11 CS193P Winter 2017 — Core Data Demo (Демонстрационное приложение).
Вы можете познакомиться с двумя Лекциями о Cloud Kit на курсе CS193P Spring
2016 iOS 9 на русском языке на этом сайте:
Лекция 15 CS193P Spring 2016 — Application Lifecycle («жизненный цикл» приложения), Alerts и Cloud Kit.
Лекция 16 CS193P Spring 2016 — Notification и Cloud Kit.
В этом семестре «звездой» механизма постоянного хранения является UIDocument и UIDocumentBrowserViewController, потому что в iOS 11 все сложилось в пользу создания приложений, основанных на документах, то есть Document based Apps.
Начинайте с курса iOS 11 — он более современный и с ним легче работать в Xcode 9, а потом вернетесь к тому, что вам будет недоставать.
Огромное спасибо за такой подробный ответ!
Оплатил, скиньте побыстрее, пожалуйста:)
Вам высланы все необходимые приглашения.
Оплатил сегодня, жду
Вам высланы все необходимые приглашения.
Оплатил сегодня
Вам отправлены все необходимые приглашения для доступа.
Доброго времени суток. Как оплатить и получить доступ ко всем лекциям данного курса?
Смотри страницу iOS 11 + Swift 4/ на этом сайте. там указан способ оплаты через «Яндекс-деньги» и PayPal.
Отправил, с нетерпением жду результата)
Вам отправлены все необходимые приглашения для доступа на ваш email.
Оплатил первые 6 лекций, жду с нетерпением.
Вам отправлены все необходимые приглашения на email.
Добрый день! Сколько стоит курс?
Первая часть пакета конспектов Лекций по iOS 11 Осень 2017 г. состоит из лекций 1 — 6. Оплата здесь.
Вторая часть пакета конспектов Лекций по iOS 11 Осень 2017 г. состоит из лекций 7 — 12.
Третья часть пакета конспектов Лекций по iOS 11 Осень 2017 г. состоит из лекций 13 — 17.
Я советую Вам преобрести сначала 1-ую часть и посмотреть, подходит ли она Вам, так как курс реально очень трудный.
Добрый день! Какую сумму оплачивать, чтобы получить доступ к лекциям?
Все находится на главной странице этого курса https://bestkora.com/IosDeveloper/ios-11-swift-4/ в самом низу.
Там предлагаются 3 части:
Первая часть пакета конспектов Лекций по iOS 11 Осень 2017 г. состоит из лекций 1 — 6. Оплата здесь.
Вторая часть пакета конспектов Лекций по iOS 11 Осень 2017 г. состоит из лекций 7 — 12.
Третья часть пакета конспектов Лекций по iOS 11 Осень 2017 г. состоит из лекций 13 — 17.
Я советую Вам преобрести сначала 1-ую часть и посмотреть, подходит ли она Вам, так как курс реально очень трудный.
Здравствуйте.
Оплатил: Первая часть пакета конспектов Лекций по iOS 11 Осень 2017 г.
Двумя платежами: 490 рублей + 10 рублей. Не учел с карты будет комиссия на кошелек.
Почта: procsitehcom2009@gmail.com
Нет проблем. Вам высланы на вашу почту все необходимые приглашения.
Доброго дня!
Оплатил первую часть.
Доступ будет предоставлен через 15 минут.
Благодарю)
Добрый день оплатил курс лекций 1-6 часть
Вам высланы все необходимые приглашения.
Здравствуйте. Прошло уже больше суток с момента оплаты второго пакета лекций, а доступа к ним я все еще не получил.
Сергей, извините. Что-то пропустили.
Даю Вам доступ ко 2-ой части пакета.
В качестве компенсации за эту оплошность предоставляю Вам бесплатный доступ к 3-ей части курса.
Добрый день, оплатил курс лекций 1-6 часть
Добрый день, Валерий.
Ваши деньги получены.
Даю Вам доступ к 1-ой части.