38
Основы "мобильной" разработки на платформе iOs (iPhone) Киреев Артем Разработчик Codemasters Intl. [email protected] om

Основы "мобильной" разработки на примере платформы iOs (iPhone)

Embed Size (px)

DESCRIPTION

Легкая обзорная лекция по платформе iOS. Рассмотрим специфику разработки под мобильные платформы, средства разработки, язык Objective-C, концепции применяемые при разработке под iOS. Расскажу шаги которые нужно сделать для создания вашего первого мобильного приложения.

Citation preview

Page 1: Основы "мобильной" разработки на примере платформы iOs (iPhone)

Основы "мобильной" разработки на платформе iOs

(iPhone)

Киреев АртемРазработчик

Codemasters [email protected]

om

Page 2: Основы "мобильной" разработки на примере платформы iOs (iPhone)

Apple

1976 1984

Автор
Page 3: Основы "мобильной" разработки на примере платформы iOs (iPhone)

Apple

iPad iPod(touch)

iPhone

Автор
Page 4: Основы "мобильной" разработки на примере платформы iOs (iPhone)

iOS

iPhone 4S, iPhone 4iPhone 3GS, iPad 1,2,3

iOS – мобильная операционная система

iPhone 3G, iPad 1,2

iOS 5.1

iOS 3.1

iPhone, iPad 14 апреля 2012

Автор
Page 5: Основы "мобильной" разработки на примере платформы iOs (iPhone)

Приложения iOs. AppStore

600 тысяч приложений iPhone

200 тысяч приложений iPad

25 миллиардов скачиваний

200 миллионов пользователей

Средняя цена $0.99 до $9.99

Самое дорогое приложение $999.99,купило 8 человек

Все приложения здесь

AppStore

Автор
Page 6: Основы "мобильной" разработки на примере платформы iOs (iPhone)

Специфика мобильной платформы

Автор
Page 7: Основы "мобильной" разработки на примере платформы iOs (iPhone)

Как начать разрабатывать?

Автор
Page 8: Основы "мобильной" разработки на примере платформы iOs (iPhone)

Настройка окружения

1 2XCode

Автор
Page 9: Основы "мобильной" разработки на примере платформы iOs (iPhone)

Архитектура iOS

Автор
Page 10: Основы "мобильной" разработки на примере платформы iOs (iPhone)

iOS – Cocoa Touch layer

Address Book UI Framework

Event Kit UI Framework

Game Kit Framework

iAd Framework

Map Kit Framework

Message UI Framework

Twitter Framework

UIKit Framework

Автор
Page 11: Основы "мобильной" разработки на примере платформы iOs (iPhone)

iOS – Media layer

Assets Library Framework

AV Foundation Framework

Core Audio

Core Graphics Framework

Core Image Framework

Core MIDI Framework

Core Text Framework

Image I/O Framework

Core Video Framework

GLKit Framework

OpenAL Framework

Quartz Core Framework

Автор
Page 12: Основы "мобильной" разработки на примере платформы iOs (iPhone)

iOS – Core Services layer

Accounts Framework

Address Book Framework

CFNetwork Framework

Core Data Framework

Core Location Framework

Core Telephony Framework

Foundation Framework

Store Kit Framework

System Configuration Framework

Автор
Page 13: Основы "мобильной" разработки на примере платформы iOs (iPhone)

iOS – Core OS Layer

Accelerate Framework

Core Bluetooth

Generic Security Services Framework

Security Framework

System

External Accessory Framework

Автор
Page 14: Основы "мобильной" разработки на примере платформы iOs (iPhone)

Изучаем Objective-C

Создан в начале 1980x Бредом Коксом

Компилируемый, объектно-ориентированный язык с строгой типизациейОсновной язык программирования компании Apple

СSmalltalk

Objective-C

Message-oriented

Автор
Page 15: Основы "мобильной" разработки на примере платформы iOs (iPhone)

Основы Objective-C

Посылка сообщений / Вызов методов

Создание объектов

С#

С#

Все классы наследуются от NSObject

id – ссылка на любой объект

С#

С#

С#

С#

Автор
Page 16: Основы "мобильной" разработки на примере платформы iOs (iPhone)

Основные типы в Objective-C

Коллекции

Основные типы

Автор
Page 17: Основы "мобильной" разработки на примере платформы iOs (iPhone)

Классы в Objective-C

Хочу такой класс:INTERVAL

startIndex

0

length 6

endIndex

6

INTERVAL

startIndex

4

length 6

endIndex

10INTERVAL

startIndex

4

length 1

endIndex

5

Автор
Page 18: Основы "мобильной" разработки на примере платформы iOs (iPhone)

Классы в Objective-CИмплементация класса

Автор
Page 19: Основы "мобильной" разработки на примере платформы iOs (iPhone)

Протоколы в Objective-C

Протоколы

Автор
Page 20: Основы "мобильной" разработки на примере платформы iOs (iPhone)

Что еще про Objective-C?

Особенности и ФичиЛюбой код на C компилируется

ARC (Automatic Reference Counting)

Механизм подсчета ссылок

Метапрограммирование (Key-Value Coding)

Autorelease Pool

Grand Central Dispatch (iOS feature)

Автор
Page 21: Основы "мобильной" разработки на примере платформы iOs (iPhone)

Метапрограммирование в Objective-C

KVC – key/value coding

Автор
Page 22: Основы "мобильной" разработки на примере платформы iOs (iPhone)

Метапрограммирование в Objective-C

KVC – key/value coding

Автор
Page 23: Основы "мобильной" разработки на примере платформы iOs (iPhone)

Grand Central Dispatch

Уходим от Thread

Исполняем блоки (код) в очередях:

Очередь

ОсновнаяПараллельнаяПоследовательная

Автор
Page 24: Основы "мобильной" разработки на примере платформы iOs (iPhone)

Grand Central Dispatch

Основная очередь:

Параллельные очереди (4 системных):

Последовательные очереди:

Автор
Page 25: Основы "мобильной" разработки на примере платформы iOs (iPhone)

Grand Central Dispatch

Пример из жизни

Автор
Page 26: Основы "мобильной" разработки на примере платформы iOs (iPhone)

2 Основных паттерна в iOs

MVC

Delegation

(Model-View-Controller)

Автор
Page 27: Основы "мобильной" разработки на примере платформы iOs (iPhone)

Паттерн MVC

Модель:БД, файлы, веб-сервисы,бизнес логика

Вид:Элементы управления:кнопки, окна, картинки

Контроллер:Обеспечивает взаимодействие междупользователем, видом и моделью

Автор
Page 28: Основы "мобильной" разработки на примере платформы iOs (iPhone)

Паттерн MVC в iOS

MVC MVC

Экран 1 Экран 2

Автор
Page 29: Основы "мобильной" разработки на примере платформы iOs (iPhone)

Паттерн Delegation в iOS

Экран 1 Экран 2

UIImagePickerController 

(фотография)(стартовый)MyViewController

Фотография получена

<UIImagePickerControllerDelegate>  delegate = MyViewController

imagePickerController:didFinishPickingMediaWithInfo:

Автор
Page 30: Основы "мобильной" разработки на примере платформы iOs (iPhone)

MyViewController.h

Автор
Page 31: Основы "мобильной" разработки на примере платформы iOs (iPhone)

MyViewController.m

Автор
Page 32: Основы "мобильной" разработки на примере платформы iOs (iPhone)

MyViewController.m - код

Код для кнопки :

Автор
Page 33: Основы "мобильной" разработки на примере платформы iOs (iPhone)

MyViewController.m - код

Код для кнопки :

Автор
Page 34: Основы "мобильной" разработки на примере платформы iOs (iPhone)

Тестируем

Автор
Page 35: Основы "мобильной" разработки на примере платформы iOs (iPhone)

iPhone developer programs

$99

$299

$0

Разработка для AppStore

Корпоративные приложения

Лицензий для студентов

Автор
Page 36: Основы "мобильной" разработки на примере платформы iOs (iPhone)

Альтернативные способы разработки

Альтернативное IDE

HTML5 + JS

HTML5 + JS

HTML, JavaScript,ActionScript®, Flex,

C#, Silverlight

Автор
Page 37: Основы "мобильной" разработки на примере платформы iOs (iPhone)

Источники информации

http://developer.apple.com

http://wikipedia.org

http://habrahabr.ru

http://stackoverflow.com

http://apple.com/itunes

Автор
Page 38: Основы "мобильной" разработки на примере платформы iOs (iPhone)

Вопросы?

Киреев АртемРазработчик

Codemasters [email protected]

om