Меньше, чем через неделю будет объявлено о выходе официальных (или Gold Master) версий Swift 2.0, iOS 9 и Xcode 7. Сейчас действует бэта 6 версия этого программного обеспечения, Поэтому я решила на своем сайте обновить демонстрационные примеры, сопровождающие замечательный стэнфордский курс CS193P WINTER 2015 «Developing iOS 8 Apps with Swift» до Swift 2 для запуска их в Xcode 7. Самое интересное в этой новости заключается в том, что из Xcode 7 вы можете запустить эти демонстрационные примеры на своем устройстве (или поделится с друзьями) совершенно бесплатно — для этого не нужно иметь сертификат разработчика Developer Account, стоимостью 99 $/год. Начиная с Xcode 7 политика Apple по отношению к разработчикам изменилась. Они хотят привлекать к разработке приложений более молодых программистов. Но не нужно ждать выхода официальных версий — уже сейчас Xcode 7 (а вместе с ней Swift 2 и iOS 9) находятся в публичном доступе здесь.
Надо отметить, что в 2015 году на стэнфордских курсах наряду с демонстрационными примерами для первых лекций, где не требуется реальный прибор (iPhone или iPad) и достаточно симулятора, последние лекции сопровождаются очень интересными демонстрациями с привлечением реальных iPhone или iPad:
— очень простой и информативный демонстрационный пример Bouncer использует Dynamic Animation в сочетании с реальными движениями прибора, регистрируемыми акселерометром, гироскопом и магнетометром
-демонстрационные примеры Trax AirDrop, Trax MapKit, Trax Segue, Trax Camera File Embed используют технологию Air Drop для того, чтобы заранее, перед отпуском, сбросить со своего Mac на iPhone или iPad карту вашего маршрута в формате GPX,
а во время путешествия отмечать на iPhone или iPad точки маршрута и дополнять их фотографиями, сделанными с помощью фотокамеры.
Раньше, в Xcode 6, для запуска таких приложений на реальном устройстве требовался сертификат разработчика, купленный у Apple за 99$ . В Xcode 7 этого больше не нужно. Теперь вы можете удовлетворить свою любопытство бесплатно.
Как создать такие приложения подробно рассказывается в лекциях курса, которые на английском языке находятся на iTunes, а неавторизованные конспекты этих лекций на русском языке представлены на этом сайте.
Все демонстрационные примеры для стэнфордского курса CS193P WINTER 2015 переведены на Swift 2.0. и находятся на Github. Вот их список имен в репозитарии:
Лекция 2. More Xcode and Swift, MVC
Calculator-EnfOfLecture-2-Swift-2.0
Лекция 3. Applying MVC
Calculator-EnfOfLecture-3-Swift-2.0
Лекция 5 . Objective-C Compatibility, Property List
Happiness L5-Swift-2.0
Лекция 6. Protocols and Delegation. Gesture
Happiness L6-Swift-2.0
Лекция 7. Multiple MVCs
Psychologist-Swift-2.0
Psychologist Popover-Swift-2.0
Лекция 8. View Controller Life Cycle, Autolayout
Psychologist VCL-Swift-2.0
ShowSizeClass-Swift-2.0
Autolayout-Swift-2.0
Лекция 9. Scroll View and Multithreading
Cassini-Swift-2.0
Лекция 10. Table View
Smashtag-Swift-2.0
Лекция 12.Dynamic Animation
Dropit-Swift-2.0
Лекция 13. Application Life Cycle and Core Motion
Trax AirDrop-Swift-2.0
Bouncer-Swift-2.0
Лекция 14.Core Location and MapKit
Trax MapKit-Swift-2.0
Лекция 15. Modal Segues
Trax Segue-Swift-2.0
Лекция 16. Camera, Persistence and Embed Segues
Trax Camera File-Swift-2.0
Лекция 17. Internationalization and Settings
Bouncer Settings-Swift-2.0
Autolayout Localized-Swift-2.0
В стэнфордском курсе CS193P WINTER 2015 «Developing iOS 8 Apps with Swift» имеются 5 Заданий, текст которых на английском и русском языках размещены на Github.
Выполненные Задания расположены в следующих репозитариях:
Задание 1 «Калькулятор» — код для Swift 1.2 на Github, код для Swift 2.0 на Github.
Задание 2 «Умный калькулятор» — код для Swift 1.2 на Github, код для Swift 2.0 на Github.
Задание 3 «Графический калькулятор» — код для Swift 1.2 на Github, код для Swift 2.0 на Github.
Элегантный калькулятор (замыкания вместо делегирования)- код для Swift 1.2 находится на на Github. Код для Swift 2.0 находится на на Github.
Замыкания вместо делегирования в iOS 8 Swift — код для Swift 1.2 находится на Github. Код для Swift 2.0 находится на Github.
Задание 4 Smashtag ( выборка из Твиттера) — код для Swift 1.2 на Github, код для Swift 2.0 на Github.
В UICollectionView в iOS 9 теперь легко передвигать ячейки. Код для Swift 2.0 находится на Github.
Задание 5. Игра Breakout — — код для Swift 1.2 на Github, код для Swift 2.0 на Github.
Для преобразования кода из версии 1.2 в 2.0 использовался встроенный конвертор, который вызывается автоматически, если вы открываете проект в Xcode 7 или вы можете запустить его вручную с помощью меню Edit -> Convert -> To Latest Swift Syntax… Конвертор работает очень хорошо и практически все ошибки и несоответствия убирает, оставляя предупреждения, которые тоже легко скорректировать.
Единственное серьезное изменение касалось проектов Smashtag с Твиттером, и демонстрационных примеров Trax c обработкой GPX — файлов, в которых нужно открывать Web-страницы с адресами http://, так как по умолчанию это в Xcode 7 не разрешено. Это исправляется внесением дополнительного элемента в файл Info.plist проекта. Нужно добавить параметр
После этого параметр будет выглядеть в обычном редакторе так
Доступ ко всему пакету (опубликованных и будущих) конспектов лекций по iOS 8 на русском языке в форматах PDF и Google Docs можно получить здесь.
Добрый день, как можно оплатить полный доступ ко всем лекциям?
P.S. Большое спасибо за тяжелейший труд и проделанную Вами работу.
Информация о доступе к конспетам Лекций по iOS 8 приведена в конце этого поста.
После преобразования кода в swift 2 в моем проекте smashtags(10 лекция) перестали отображаться аватарки профиля. Сравнивал с вашим кодом — никакой разницы нет, и в вашем проекте все ок. С коннекшенами никаких проблем нет, код такой же(этой вьюшки), но не работает ведь.
В чем может быть проблема? Проще, конечно, тупо добавить свой код в транслированный вами swift 2 проект.
Спасибо.
Единственное серьезное изменение касалось проектов Smashtag с Твиттером, в которых нужно открывать Web-страницы с адресами http://, так как по умолчанию это в Xcode 7 не разрешено из-за безопасности. Это исправляется внесением дополнительного элемента в файл Info.plist проекта. Нужно добавить параметр NSAppTransportSecurity. В конце этого поста об этом написано.
Вот ссылка на документацию https://developer.apple.com/library/prerelease/ios/technotes/App-Transport-Security-Technote/index.html
Вы это сделали?
Если не получится — пришлите ссылку в github или dropbox.
Спасибо, помогло!
Пользовался поиском, но видимо не заметил. Странно тогда, что своя вьюха с media работала корректно.
Там, наверно, был https:// — это, считается, более безопасная связь, и такой доступ в Xcode 7 разрешен без дополнительных действий.