Лекция 1 CS193P Spring 2016 — Обзор курса и введение в iOS, Xcode и Swift. (часть 2)

screen-shot-2016-11-05-at-3-16-24-pm

Лекция 1 CS196P Весна 2016 и слайды на английском языке находятся на  iTunes название “1. Course Overview and introduction to iOS, Xcode, and Swift.”
Ниже представлен неавторизованный русскоязычный конспект Лекции 1, который состоит из двух частей:
Первая часть Лекции 1 CS193P Весна 2016 — 0 — 60 минута находится
здесь
,
Вторая часть Лекции 1 CS193P Весна 2016 —  60 — 77 минута — находится в этом посте.
Код демонстрационного примера для Лекции 1 находится на Github для Xcode 7 и Swift 2.2. Для Swift 3.0  и Xcode 8 код находится на Github, а для Swift 3 .2  и Xcode 9 — также на Github.

—————— 60-ая минута Лекции ——————

Так что идем дальше и добавляем дисплей на наш пользовательский интерфейс.
Будем добавлять дисплей сверху. Мы хотим что-то подобное тому, что на стандартном калькуляторе, пришедшим вместе с операционной системой  Mac, и чтобы в правом углу был «0», но, возможно, с другими цветами.
Я возвращаюсь в Область Утилит в окно Палитра, откуда я доставал свои кнопки для цифровой клавиатуры. Теперь я буду перетягивать метку — Label, которая представляет собой  readonly текст.

Screen Shot 2016-04-25 at 8.40.47 AM

Пользователь не может касаться метки и затем печатать туда что-то с помощью маленькой клавиатуры на iPhone. Это  readonly текст, и именно его мы хотим иметь на нашем калькуляторе.

Читать далее

Лекция 1 CS193P Spring 2016 — Обзор курса и введение в iOS, Xcode и Swift. (часть 1)

Screen Shot 2016-04-21 at 11.17.38 AM
Лекция 1 и слайды на английском языке находятся на  iTunes название “1. Course Overview and introduction to iOS, Xcode, and Swift.”
Ниже представлен неавторизованный русскоязычный конспект Лекции 1, который состоит из двух частей:

Первая часть — 0 — 60 минута находится в этом посте,
Вторая часть — 60 — 77 минута — здесь.
Код демонстрационного примера для Лекции 1 находится на Github для Xcode 7 и Swift 2.2. Если вы установили Xcode 8, то для Swift 2.3 код находится на Github, а для Swift 3 — также на Github.

————————————————————————————————-

Добро пожаловать на курс Стэнфорда CS193P. Это версия Spring 2016, и сегодня я собираюсь рассказать вам очень быстро о том, что собой представляет этот курс, чтобы вы были уверены, что находитесь в нужном месте.
Screen Shot 2016-04-21 at 3.24.03 PM

Сегодня

  • О чем этот курс?
    • Почему я здесь?
  • Предварительные требования
    • Вы должны быть уверенным объектно-ориентированным программистом.
  • Обзор iOS
    • Что находится в iOS?
  • Покажи мне!
    • Лучше один раз увидеть демонстрационный пример, чем сто раз услышать.

Я буду говорить о предварительных требованиях, потому что это супер важно для успешного прохождения этого курса.
Затем я дам вам очень короткий обзор того, что представляет собой iOS. Большую часть этого вы знаете, потому что у вас есть iPhones или iPads или еще что-то подобное, поэтому я не буду тратить на это много времени.
И дальше мы с вами погрузимся в очень большой демонстрационный пример, который будет заключаться в построении нашего первого приложения. У нас только 10 недель на изучение iOS. Это очень короткий промежуток времени для изучения такой супер мощной системы.

Что мы будем изучать в этом курсе?

Читать далее

Стэнфордский курс «Developing iOS 9 Apps with Swift» теперь доступен на iTunes

Screen Shot 2016-04-20 at 10.07.36 PM
Стэнфордский курс «Developing iOS 9 Apps with Swift» теперь доступен на iTunes. Это долгожданное обновление предыдущего курса по iOS 8 и Swift. В качестве демонстрационного примера используется калькулятор, но другой, не RPN- калькулятор, а обычный и алгоритмически более легкий, чем в предыдущем курсе, а значит будет больше внимания именно Swift. Методически эти лекции выстроена по-другому. Все рассматривается очень детально, особое внимания уделяется типу Optional, семантике value type и reference type. Посмотрим, что будет дальше. Уже есть программа курса.

1 — Введение в iOS 9, Xcode 7.3 и Swift 2.2
2 — MVC; iOS, Xcode и Swift демонстрация

3 — Swift 2.2 в деталях
4 — Drawing (рисование)

5 — Управление Multitouch Gesture (жестами)
6 — Комбинирование MVCs; «жизненный цикл» View Controller

7 — Closures (замыкания); Extensions (расширения); Protocols (протоколы); Delegation (делегирование); ScrollView
8 — Multithreading (многопоточность); Text Field (текстовое поле)

9 — Table View
10 — Core Data

11 — Еще больше Core Data
12 — Autolayout (система Авторазметки); Final Prohect Requirements (требования к финальному проекту)

13 — Animation (анимация)
14 — Еще больше анимации; Alerts

15 — «Жизненный цикл» приложения; Core Motion ()
16 — Core Location (местоположение); Maps (карты)

17 — Еще больше Segues; Visual Effects
18 — Camera (фотокамера); Persistence (постоянное хранение)

Видно, что лекций на одну больше, теперь их 18, вместо предыдущих 17. Есть Core Data, но нет Локализации, что всегда было заключительной лекцией, нет Air Drop и нет явного упоминания Dynamic Animation, хотя анимация, конечно, есть.

По-моему, будет очень интересно. На странице iOS 9 + Swift можно следить за появлением лекций и заданий.

Core Data в iOS 9 и Swift при ограничениях на уникальность.Часть 2.

Screen Shot 2016-04-07 at 5.00.29 PM
Это вторая часть поста. В первой части создается Модель Данных и  экспериментальное приложение CoreData1Swift (Github) с классическим Core Data Stack для получения MOC. В этой части мы рассмотрим другие способы получения MOC, а также различные варианты распространения MOC на другие View Controller пользовательского интерфейса.

Работа с Core Data через UIManagedDocument

В этом разделе для получения MOC вместо Core Data Stack используется UIManagedDocument, который берет на себя все проблемы с созданием стэка Core Data, в том числе и контекста UIManagedObjectsContext, все проблемы с безопасностью многопоточной обработки и т.д. Кроме того, это самый простой способ самостоятельного изучения Core Data и самый короткий способ перехода к  iCloud.

Читать далее

Core Data в iOS 9 и Swift при ограничениях на уникальность. Часть 1.

Screen Shot 2016-04-07 at 5.00.29 PM

Продолжая развивать идею о дополнении курса «Developing iOS 8 Apps with Swift» 2015 г.  некоторыми важными темами, давайте рассмотрим использование Core Data при создании приложений в  iOS 9 на Swift.
Core Data — один из наиболее мощных фреймворков в iOS 9. Фундаментально, это способ создания Swift (Objective-C)  объектов как объектов, “отображенных” в SQL или XML базах данных. Это своего рода “мостик” между объектно-ориентированной “территорией” и “территорией” баз данных. В качестве базы данных доминирует SQLite.

Читать далее

Адаптивные SplitViewController и Popover для iOS 9. (Swift). Часть 2

Screen Shot 2016-03-17 at 8.32.24 PM
Это вторая часть поста, связанного с изучением адаптивного поведения Split View Controller и Popover в iOS 9 на iPad и на iPhone, которое стало возможным благодаря концепции Size Classes. Обучение состоит в создания на Swift практических приложений, работающих с сервером Flickr.com, который является облачным сервисом для хранения фотографий.
В первой части поста перечислены пять интересных с точки зрения разработчика случаев применения адаптивного Split View Controller и Popover, которые отличаются сложностью MasterDetail везде один и тот же — единственный Image View Controller, вставленный в Navigation Controller и призванный показывать изображение фотографии:

1. Классический вариант: один элемент в Master, вставленный в Navigation Controller, (часто это Table View Controller)

2. Множество Table View Controller элементов, вставленных в Navigation Controller

3. Tab Bar Controller в качестве Master

4. Случай разных UI и разных пользовательских классов для приборов с разными Size Classes здесь не рассматривается, но идею можно посмотреть в “Адаптивный интерфейс с двумя storyboards для iOS 9”.

5. Адаптивный Popover

В первой части  поста осуществлялось построение базового экспериментального приложения на Swift, которое было распространено на случаи 1-2. Во второй части мы будем дальше усложнять наше экспериментальное приложение и распространим его на случаи 3 и 5. Код для всех вариантов можно найти на Github.

Читать далее

Адаптивные SplitViewController и Popover для iOS 9. (Swift). Часть 1

Screen Shot 2015-12-02 at 9.32.13 PM
Screen Shot 2015-12-02 at 9.35.24 PM
Проводя адаптацию предыдущего стэнфордского курса «Developing iOS  7 Apps for iPhone and iPad» 2014 г. к iOS 9, я обнаружила, что в курсе «Developing iOS 8 Apps with Swift» 2015 г. практически отсутствует настройка адаптивного Split View Controller, так как там он использовался только для Графического Калькулятора на Лекции 6 и 7 и в Домашнем Задании 3. В этом варианте Master не представлял собой традиционную таблицу или каскад таблиц, выбирая из которых соответствующий элемент, мы получали в качестве Detail изображение, связанное с выбранным элементом.

В курсе по iOS 8 нам не требовалось более скрупулезной настройки адаптивного UI, состоящего из SplitViewController и Popover.
Мне представляется целесообразным восполнить этот пробел и реализовать универсальное приложение Photomania Universal URL, которое представлено в стэнфордском курсе  «Developing iOS  7 Apps for iPhone and iPad» 2014 г, на Swift в iOS 9.  Приложение Photomania на Swift и iOS 9 находится на  Github. Давайте подробно рассмотрим как оно было построено.

При проектировании этого приложения на iOS 9 и Swift мы должны решить три вопроса:

  1. создать адаптивный интерфейс в iOS 9 на основе концепции Size Classes
  2. обеспечить сохранение данных в Core Data и работу с ними UI приложения
  3. осуществлять подачку данных с сервера Flickr в фоновом режиме

В этом посте решается первая задача, а именно, — создание адаптивного интерфейса со  SplitViewController и Popover.

Читать далее

Стэнфордский курс CS193P (iOS9, Swift) осень 2015 не планируется размещать на iTunes?

Стэнфордский курс  CS193P: «iPhone and iPad Application Programming», который сегодня, 4 декабря, закончился для студентов Стэнфорда, и исходя из традиций прошлых лет, уже должен быть выложен на iTunes, там не появится в ближайшее время. Этим курсом интересуются во всем мире, все его ждали с нетерпением и на Quora был задан вопрос: «Когда курс CS193P: «iPhone and iPad Application Programming» 2015-2016 появится на iTunes?».

Читать далее

Лекция 17 CS193P Winter 2015 — Internationalization и Settings

Screen Shot 2015-10-12 at 9.29.49 PM

В Лекции 17  рассматриваются две главные темы:

  1. интернационализация и локализация, которые позволяют использовать ваше приложение во всем мире на различных языках.
  2. добавление UI настроек  приложения в Общие Настройки (Settings) прибора.

Читать далее

Лекция 16 CS193P Winter 2015 — Фотокамера, Постоянное хранение и Вставка Картинки в Картинку (Camera, Persistence and Embed Segues)

Screen Shot 2015-10-07 at 9.11.40 PM

В Лекции 16  рассматриваются три главные темы:

  1. фотокамера, то есть как сделать фотографию и/или видео с помощью фотокамеры и получить их в своем приложении.
  2. постоянное хранение данных больших объемов на iOS устройствах. Это очень важная тема о том, как хранить информацию в вашей флэш памяти на iPhone, iPad и т.д. В Лекции дается обзор различных способов хранения.
  3. вставка картинки в картинку с помощью Embed Segues. Эта технология помогает вам увидеть, что происходит в другом месте, когда вы что-то делаете в данном месте

Читать далее