SlideShare a Scribd company logo
1 of 48
Download to read offline
Первое приложение
для iPhone
Глеб Тарасов
CUSTIS
Почему мобильная разработка?

2 / 48
Для десктопов сложно что-то придумать

3 / 48
Веб — перепаханное поле

4 / 48
Мобильные приложения — наше всё!

5 / 48
Но надо спешить!

6 / 48
Динамика роста AppStore

7 / 48
Какую мобильную ОС выбрать?

8 / 48
США

9 / 48
Россия

10 / 48
Языки, платформы
iOS

Objective-C

Mac

Windows Phone 7

C#

Win

Android

Java

Win, Mac, Linux

Symbian

C++

Win

Blackberry

Java

Win
11 / 48
Мобильные фреймворки

• jQTouch
• jQuery Mobile
• Sencha Touch
• Xui (не популярен в России)

•
•
•
•

Wink Toolkit
iUI
Dojo Mobile
dHTMLx Touch

http://lib.custis.ru/Мобильная_веб-разработка_(Андрей_Ребров,_ADD-2011)
12 / 48
Компиляция
веб-приложений в нативные

• PhoneGap
• MotherApp
• Big5
• Rhodes
• Titanium
13 / 48
Wunderlist
http://www.6wunderkinder.com/wunderlist/

Titanium

14 / 48
Дзен-мани
http://zenmoney.ru/

PhoneGap
15 / 48
Что нужно для разработки?

16 / 48
Попробовать

•

Хакинтош под виртуальной машиной (устанавливаем Mac OS на
VirtualBox)

•

XCode 4 ($5)

17 / 48
Полноценная разработка

•
•
•

Макинтош
iPhone для тестирования
Подписка разработчика Apple ($99 / год)

18 / 48
Objective-C

19 / 48
История
1981 — Object-Oriented Pre-Compiler (OOPC). Компания StepStone.
Tom Love & Brad Cox
1986 — Objective-C. «Object-Oriented Programming,
An Evolutionary Approach» (Brad Cox).
1988 — NeXT лицензирует Objective-C
1996 — Apple покупает NeXT. Objective-C — основной язык
для Mac OS.
2007 — Objective-C — основной язык для iPhone OS
20 / 48
Основные особенности

•
•
•
•

объектно-ориентированный
компилируется в машинный код
полностью совместим с Си
header-файлы

21 / 48
Сравнение с другими языками

•
•
•
•
•
•

Нет статических полей
Нет абстрактных методов и классов
Нет protected методов
Нет generic-ов
Нет namespace-ов
YES/NO вместо true/false. nil вместо null
22 / 48
Сравнение с другими языками

•
•
•
•
•
•

Есть свойства
Есть лямбда-функции
Можно писать без статических проверок на типы
Логичная иерархия коллекций (readonly базовый для mutable)
Именованные параметры методов
Все методы виртуальные
23 / 48
Не вызовы методов, а отправка сообщений
Objective-C

[myObject doSomething:myArgument];

C++

myObject->doSomething(myArgument);

C#, JAVA, Python myObject.doSomething(myArgument);
PHP, Perl

$myObject->doSomething($myArgument);
24 / 48
Непривычный синтаксис
C#

Objective-C

a[i]

[a objectAtIndex:i]

a[key]

[a objectForKey:key]

a+b

[a stringByAppendingString:b]

a.Replace("a", "b") [a stringByReplacingOccurrencesOfString:@"a" withString:@"b"]
25 / 48
Зато
C#

Objective-C

a.Process(q, r, t, f)

[a processQuery:q withRadius:r withTime:t callWhenFinish:f]

26 / 48
Управление памятью

•
•
•
•

счетчик ссылок retainCount
retain: retainCount++
release: retainCount-dealloc, когда retainCount = 0

27 / 48
Model – View – Controller

28 / 48
Демонстрация

29 / 48
Публикация приложения

30 / 48
Регистрация в AppStore

•
•
•
•

Покупаем в Яндекс.Деньги виртуальную карту на 3000 рублей
Заполняем электронную форму регистрации
Отсылаем факс через онлайн-сервис
Ждем подтверждения

31 / 48
Что нужно?

•
•
•
•
•
•
•

Название
Имя приложения в iPhone
Поддерживаемая версия iOS
Выбрать категорию
Иконка
Описание
Скриншоты
32 / 48
iTunes Connect

33 / 48
Продвижение

34 / 48
Полезные советы

35 / 48
Поддержка старых версий iOS

36 / 48
Поддержка iPad,
iPod Touch

37 / 48
Поддержка Retina

38 / 48
Вызов метода,
создание объекта — долго!

39 / 48
Действие

Количество

LLVM

GCC

Вызов ObjectiveC метода

10’000’000

1 сек.

0.9 сек

Вызов C функции

10’000’000

0.2 сек.

0.2 сек.

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

1’000’000

6.3 сек.

5.3 сек.

Создание С
структуры

10’000’000

1.9 сек.

0.7 сек.

Измерялось на iPhone 3GS
40 / 48
Избегать autorelease.
Особенно в цикле.

41 / 48
Все вычисления делать заранее

42 / 48
Обратная связь:
кнопка «написать письмо»

43 / 48
При тестировании приложения удалите его с
телефона и сбросьте настройки

44 / 48
Логотип Google

45 / 48
Логировать все

46 / 48
Что и где почитать?

• ADD-2010. Никита Фролов. Как начать разрабатывать для iPhone.
• Objective-C 2.0 и программирование для Mac
• iTunes-U. Stanford

47 / 48
Все!
gleb34@gmail.com
48 / 48

More Related Content

Viewers also liked

недревние мифы о сексе 1
недревние мифы о сексе 1недревние мифы о сексе 1
недревние мифы о сексе 1
Ozgur Oymak
 
нездоровые мотивы близких отношений
нездоровые мотивы близких отношенийнездоровые мотивы близких отношений
нездоровые мотивы близких отношений
Ozgur Oymak
 
секс фото бесплатно
секс фото бесплатносекс фото бесплатно
секс фото бесплатно
kirleer2
 
12 Новосибирск (2)
12 Новосибирск (2)12 Новосибирск (2)
12 Новосибирск (2)
Mikhail Shagiev
 
Где почтение ко мне
Где почтение ко мнеГде почтение ко мне
Где почтение ко мне
SergeyBRSA
 
wormix key
wormix keywormix key
wormix key
kirleer2
 
частные мероприятия манон
частные мероприятия манончастные мероприятия манон
частные мероприятия манон
dellosevents
 
Человекология. Наталья Титова, Авторский Тренинг
Человекология. Наталья Титова, Авторский ТренингЧеловекология. Наталья Титова, Авторский Тренинг
Человекология. Наталья Титова, Авторский Тренинг
kakdelat
 

Viewers also liked (16)

Businessman44
Businessman44Businessman44
Businessman44
 
Pitanie
PitaniePitanie
Pitanie
 
недревние мифы о сексе 1
недревние мифы о сексе 1недревние мифы о сексе 1
недревние мифы о сексе 1
 
нездоровые мотивы близких отношений
нездоровые мотивы близких отношенийнездоровые мотивы близких отношений
нездоровые мотивы близких отношений
 
Презентация Ларисы Компанцевой
Презентация Ларисы КомпанцевойПрезентация Ларисы Компанцевой
Презентация Ларисы Компанцевой
 
новая сексология первый день
новая сексология первый деньновая сексология первый день
новая сексология первый день
 
секс фото бесплатно
секс фото бесплатносекс фото бесплатно
секс фото бесплатно
 
секс хийх арга
секс хийх аргасекс хийх арга
секс хийх арга
 
Cardiwear
CardiwearCardiwear
Cardiwear
 
12 Новосибирск (2)
12 Новосибирск (2)12 Новосибирск (2)
12 Новосибирск (2)
 
Где почтение ко мне
Где почтение ко мнеГде почтение ко мне
Где почтение ко мне
 
Check
CheckCheck
Check
 
wormix key
wormix keywormix key
wormix key
 
частные мероприятия манон
частные мероприятия манончастные мероприятия манон
частные мероприятия манон
 
Человекология. Наталья Титова, Авторский Тренинг
Человекология. Наталья Титова, Авторский ТренингЧеловекология. Наталья Титова, Авторский Тренинг
Человекология. Наталья Титова, Авторский Тренинг
 
Порочный барочный
Порочный барочныйПорочный барочный
Порочный барочный
 

Similar to Lecture1

What's new in Visual Studio 2012
What's new in Visual Studio 2012What's new in Visual Studio 2012
What's new in Visual Studio 2012
InTRUEdeR
 
CodeFest 2012. Сошников Д. — Разработка мобильных приложений на платформе Mic...
CodeFest 2012. Сошников Д. — Разработка мобильных приложений на платформе Mic...CodeFest 2012. Сошников Д. — Разработка мобильных приложений на платформе Mic...
CodeFest 2012. Сошников Д. — Разработка мобильных приложений на платформе Mic...
CodeFest
 
SECON'2017, Мухаметов Андрей, XCTest. UI и Unit тестирование для iOS.
SECON'2017, Мухаметов Андрей, XCTest. UI и Unit тестирование для iOS.SECON'2017, Мухаметов Андрей, XCTest. UI и Unit тестирование для iOS.
SECON'2017, Мухаметов Андрей, XCTest. UI и Unit тестирование для iOS.
SECON
 
Когда технологий много - iForum 2013
Когда технологий много - iForum 2013Когда технологий много - iForum 2013
Когда технологий много - iForum 2013
Andrey Listochkin
 
Объектно-Ориентированное Программирование на C++, Лекции 1 и 2
Объектно-Ориентированное Программирование на C++, Лекции 1 и 2Объектно-Ориентированное Программирование на C++, Лекции 1 и 2
Объектно-Ориентированное Программирование на C++, Лекции 1 и 2
Dima Dzuba
 

Similar to Lecture1 (20)

Lecture1
Lecture1Lecture1
Lecture1
 
Евгений Ртищев "Мобильная платформа на ReactNative"
Евгений Ртищев "Мобильная платформа на ReactNative"Евгений Ртищев "Мобильная платформа на ReactNative"
Евгений Ртищев "Мобильная платформа на ReactNative"
 
What's new in Visual Studio 2012
What's new in Visual Studio 2012What's new in Visual Studio 2012
What's new in Visual Studio 2012
 
CodeFest 2012. Сошников Д. — Разработка мобильных приложений на платформе Mic...
CodeFest 2012. Сошников Д. — Разработка мобильных приложений на платформе Mic...CodeFest 2012. Сошников Д. — Разработка мобильных приложений на платформе Mic...
CodeFest 2012. Сошников Д. — Разработка мобильных приложений на платформе Mic...
 
«Статический анализ: гордость и предубеждения», Алексей Кузьменко, аналитик И...
«Статический анализ: гордость и предубеждения», Алексей Кузьменко, аналитик И...«Статический анализ: гордость и предубеждения», Алексей Кузьменко, аналитик И...
«Статический анализ: гордость и предубеждения», Алексей Кузьменко, аналитик И...
 
SECON'2017, Мухаметов Андрей, XCTest. UI и Unit тестирование для iOS.
SECON'2017, Мухаметов Андрей, XCTest. UI и Unit тестирование для iOS.SECON'2017, Мухаметов Андрей, XCTest. UI и Unit тестирование для iOS.
SECON'2017, Мухаметов Андрей, XCTest. UI и Unit тестирование для iOS.
 
Windows Phone School HSE Lecture 1
Windows Phone School HSE Lecture 1Windows Phone School HSE Lecture 1
Windows Phone School HSE Lecture 1
 
Баба-Яга против! — Роман Дворнов, Ostrovok.ru
Баба-Яга против! — Роман Дворнов, Ostrovok.ruБаба-Яга против! — Роман Дворнов, Ostrovok.ru
Баба-Яга против! — Роман Дворнов, Ostrovok.ru
 
Objective J
Objective JObjective J
Objective J
 
React Native в продакшне
React Native в продакшнеReact Native в продакшне
React Native в продакшне
 
Opensource на .NET
Opensource на .NETOpensource на .NET
Opensource на .NET
 
Когда технологий много - iForum 2013
Когда технологий много - iForum 2013Когда технологий много - iForum 2013
Когда технологий много - iForum 2013
 
Статический анализ: ищем ошибки... и уязвимости?
Статический анализ: ищем ошибки... и уязвимости?Статический анализ: ищем ошибки... и уязвимости?
Статический анализ: ищем ошибки... и уязвимости?
 
Павел Федотовский «Как мы разрабатывали приложение для DotNetRu на Xamarin.Fo...
Павел Федотовский «Как мы разрабатывали приложение для DotNetRu на Xamarin.Fo...Павел Федотовский «Как мы разрабатывали приложение для DotNetRu на Xamarin.Fo...
Павел Федотовский «Как мы разрабатывали приложение для DotNetRu на Xamarin.Fo...
 
SWIFT нужен ли он вам?
SWIFT нужен ли он вам?SWIFT нужен ли он вам?
SWIFT нужен ли он вам?
 
Artem Kumpel, ITmozg, SPIC2011
Artem Kumpel, ITmozg, SPIC2011Artem Kumpel, ITmozg, SPIC2011
Artem Kumpel, ITmozg, SPIC2011
 
Tdd webpack + testem + mocha + chai
Tdd webpack + testem + mocha + chaiTdd webpack + testem + mocha + chai
Tdd webpack + testem + mocha + chai
 
Convert this: peculiarities of cross-platform mobile game development at Vizor
Convert this: peculiarities of cross-platform mobile game development at VizorConvert this: peculiarities of cross-platform mobile game development at Vizor
Convert this: peculiarities of cross-platform mobile game development at Vizor
 
Разработка мобильных приложений под iOS
Разработка мобильных приложений под iOSРазработка мобильных приложений под iOS
Разработка мобильных приложений под iOS
 
Объектно-Ориентированное Программирование на C++, Лекции 1 и 2
Объектно-Ориентированное Программирование на C++, Лекции 1 и 2Объектно-Ориентированное Программирование на C++, Лекции 1 и 2
Объектно-Ориентированное Программирование на C++, Лекции 1 и 2
 

More from Mikhail Shagiev (20)

Cont2act
Cont2actCont2act
Cont2act
 
22 Кострома BISдельники
22 Кострома BISдельники22 Кострома BISдельники
22 Кострома BISдельники
 
19 Ростов
19 Ростов19 Ростов
19 Ростов
 
18 Нижний Новгород
18 Нижний Новгород18 Нижний Новгород
18 Нижний Новгород
 
15 Джон Кейс (2)
15 Джон Кейс (2)15 Джон Кейс (2)
15 Джон Кейс (2)
 
10 Школьники
10 Школьники10 Школьники
10 Школьники
 
9 ТЕХНОПОКОЛЕНИЕ
9 ТЕХНОПОКОЛЕНИЕ9 ТЕХНОПОКОЛЕНИЕ
9 ТЕХНОПОКОЛЕНИЕ
 
8 владимир
8 владимир8 владимир
8 владимир
 
8 владимир
8 владимир8 владимир
8 владимир
 
7 сидоджи Тверь 7
7 сидоджи Тверь 77 сидоджи Тверь 7
7 сидоджи Тверь 7
 
6 ВсёПоГОСТу - Казань
6 ВсёПоГОСТу - Казань6 ВсёПоГОСТу - Казань
6 ВсёПоГОСТу - Казань
 
4 презентация_2+3
4 презентация_2+34 презентация_2+3
4 презентация_2+3
 
3 великолепная пятерка
3 великолепная пятерка3 великолепная пятерка
3 великолепная пятерка
 
1 samara
1 samara1 samara
1 samara
 
test
testtest
test
 
test
testtest
test
 
test
testtest
test
 
Master presentation rus
Master presentation rusMaster presentation rus
Master presentation rus
 
Youlect
YoulectYoulect
Youlect
 
Finsecrets zaimix finpodbor
Finsecrets zaimix finpodborFinsecrets zaimix finpodbor
Finsecrets zaimix finpodbor
 

Lecture1