Появился новый стэнфордский курс  «Developing  iOS 11 Apps with Swift» для Swift 4

Стэнфордский курс  «Developing  iOS 11 Apps with Swift» теперь доступен на iTunes. Это обновление предыдущего курса по  «Developing iOS 10 Apps with Swift». Пока выложены 6 лекций, 2 домашних Задания на программирование и 2 Задания на чтение.

 

Мы будем предоставлять на этом сайте все необходимые материалы для стэнфордского курса «Developing  iOS 11 Apps with Swift»:

Видео можно смотреть в Youtube.

Демонстрационные примеры находятся на Github.

Тексты заданий, а также слайды для Лекций выкладываются на

iOS 11 Задания

Если вас интересуют русскоязычные не авторизованные переводы Лекций и Заданий, а также коды демонстрационных примеров и Заданий, то следите за страницей iOS 11 + Swift 4.

Обновление демонстрационных примеров и решений Заданий курса CS193P Winter 2017 до Swift 4 и iOS 11

Вышли официальные версий Swift 4iOS 11 и Xcode 9.  Поэтому я решила на своем сайте обновить демонстрационные примеры, сопровождающие замечательный стэнфордский курс  CS193P Spring 2017  «Developing  iOS 10 Apps with Swift»,  для  Swift 4.0 и iOS 11.

Демонстрационные примеры для Swift 4, iOS 11 и Xcode 9 находятся на Github.

Решения Заданий  для курса CS193P Spring 2017  «Developing  iOS 10 Apps with Swift» для Swift 4, iOS 11 и Xcode 9 находятся на Github.

Надо сказать, что большинство демонстрационных примеров не претерпели никаких изменений в коде для Swift 4, за исключением добавления атрибута @objc для методов, сопровождающих жесты.

Однако очень значительные изменения пришлось внести для iOS 11 в демонстрационные примеры Smashtag L9 и Smashtag L11, так как в iOS 11 больше не поддерживаются accounts для социальных сетей Twitter, Facebook, Flickr, Vimeo. Более того, iOS 11 больше не поддерживает использование Twitter с помощью встроенного фреймворка Social. Вместо этого  вы можете использовать Twitter Kit 3 и Twitter API. Поэтому в наборе демонстрационных примеров для Swift 4 для Лекций 9 и 11 присутствуют две папки:  iOS10 и iOS11. В папке iOS10 находится привычная нам версия, которую демонстрировал профессор на лекциях с использование фреймворка Twitter, созданном на основе  Social. А в папке iOS11 находится версия с использованием Twitter Kit 3 и Twitter API ( о ней подробнее в самом конце этого поста).

Читать далее

Что нового в Swift 4.


Swift 4.0 в Xcode 9 уже доступен, и он принес нам несколько приятных изменений. Конечно, мы не получили ни такой кардинальной переработки синтаксиса, как в прошлом году для Swift 3, ни таких захватывающих возможностей, как в Swift 2, но есть несколько замечательных добавлений, которые могут существенно улучшить ваш код. Давайте посмотрим на них!

Сейчас очень много материала на тему «Что нового в Swift 4». Я взяла за основу знаменитую статью Ole Begemamm «Playground: What’s new in Swift 4.»,  дополнила ее очень интересными примерами из других статей, предоставив в ваше распоряжение Playground с примерами на русском языке.

Читать далее

Руководство по проектированию Swift API (Swift API design guidelines)

Если вы разрабатываете приложения на Swift, в том числе и приложения, связанные с выполнением Заданий стэнфордского курса, вам необходимо знать принципы проектирования API в Swift, которые отличаются от принципов проектирования API в Objective-C и других языках.  И это зафиксировано в руководстве по проектированию Swift API «API Design Guidelines«, выпущенному Apple. Кулиничев Евгений  любезно предоставил перевод этого руководства на русский язык для размещения на этом сайте. Вы можете посмотреть его в Google Doc  или  скачать в PDF формате для изучения в offline:

Swift API design guidelines.pdf

Но прежде, чем вы приступите к его изучению, необходимо дать вам некоторые фундаментальные идеи, которые были заложены в этот документ:

  • Обеспечение понятности кода в точке его использования
  • Понятность кода более важна, чем его краткость
  • Создание самодокументируемого API

Код пишется один раз, а читается многократно. Очень важно, чтобы Swift код был читаемым и понятным в точке использования. Хотя кажется, что это очень знакомое требование, оно отличается от правил проектирования API в Objective-C. В Swift мы не хотим унаследовать многословный стиль Objective-C, в котором вся необходимая информация передается через хорошо сконструированный API, и редко бывает хорошо читабельной в точке использования. В Swift недостаточно, чтобы API был хорошо читабельным в точке определения; он должен быть читабельным и иметь смысл в различных точках применения. И вы увидите в руководстве, как это достигается. Читать далее

Парсим JSON в Swift 4 на примерах.

Самая замечательная вещь, которую мы получили в Swift 4 — это протокол Codable, который представляет собой typealias протоколов Encodable и Decodable, и классы JSONDecode и JSONEncode. Благодаря этому вы теперь можете преобразовывать множество JSON объектов, а также Property Lists в эквивалентные структуры Struct и классы Class без единой строки дополнительного кода. Наконец-то Swift 4 и новый Foundation ответили на вопрос, как нужно парсить JSON в Swift.

Между прочим, если вы наберете для поиска строку «swift json library», то вы получите в  Github порядка 75 замечательных репозиториев. Но новое «родное» Codable решение Apple  в Swift 4 превосходит их все. Далее в статье я сосредоточусь на JSON, потому что это наиболее значимая задача для разработчиков, и представлю  примеры на Playground.

 Код можно посмотреть на Github.

Основы.

Я начну с примера, представленного в знаменитой статье Сhris Eidhof «Parsing JSON in Swft» (перевод здесь) ( 2014 г.), в которой впервые была сделана попытка создания в Swift JSON парсера на основе понятий функционального программирования, но это было сложное решение. Позже Apple  представила свой способ парсинга JSON с помощью класса JSONSerialization, который также отличался громоздкостью.

Сейчас мы увидим, как в Swift 4 эта проблема решается 3 строками кода.

Читать далее