48
Первое приложение для iPhone Глеб Тарасов CUSTIS

Первое приложение для iPhone

  • Upload
    -

  • View
    3.851

  • Download
    1

Embed Size (px)

DESCRIPTION

Семинар для начинающих iOS разработчиков

Citation preview

Page 1: Первое приложение для iPhone

Первое приложение для iPhone

Глеб ТарасовCUSTIS

Page 2: Первое приложение для iPhone

/ 48

Почему мобильная разработка?

2

Page 3: Первое приложение для iPhone

/ 48

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

3

Page 4: Первое приложение для iPhone

/ 48

Веб — перепаханное поле

4

Page 5: Первое приложение для iPhone

/ 48

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

5

Page 6: Первое приложение для iPhone

/ 48

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

6

Page 7: Первое приложение для iPhone

/ 48

Динамика роста AppStore

7

Page 8: Первое приложение для iPhone

/ 48

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

8

Page 9: Первое приложение для iPhone

/ 48

США9

Page 10: Первое приложение для iPhone

/ 48

Россия10

Page 11: Первое приложение для iPhone

/ 48

Языки, платформы

11

iOS Objective-C Mac

Windows Phone 7 C# Win

Android Java Win, Mac, Linux

Symbian C++ Win

Blackberry Java Win

Page 12: Первое приложение для iPhone

/ 48

Мобильные фреймворки

12

• Wink Toolkit

• iUI

• Dojo Mobile

• dHTMLx Touch

• jQTouch

• jQuery Mobile

• Sencha Touch

• Xui (не популярен в России)

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

Page 13: Первое приложение для iPhone

/ 48

Компиляция веб-приложений в нативные

13

• PhoneGap

• MotherApp

• Big5

• Rhodes

• Titanium

Page 14: Первое приложение для iPhone

/ 48

Wunderlist

14Titanium

http://www.6wunderkinder.com/wunderlist/

Page 15: Первое приложение для iPhone

/ 48

Дзен-мани

15

PhoneGap

http://zenmoney.ru/

Page 16: Первое приложение для iPhone

/ 48

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

16

Page 17: Первое приложение для iPhone

/ 48

Попробовать

17

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

• XCode 4 ($5)

Page 18: Первое приложение для iPhone

/ 48

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

18

• Макинтош• iPhone для тестирования

• Подписка разработчика Apple ($99 / год)

Page 19: Первое приложение для iPhone

/ 48

Objective-C

19

Page 20: Первое приложение для iPhone

/ 48

История

20

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

Page 21: Первое приложение для iPhone

/ 48

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

21

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

• header-файлы

Page 22: Первое приложение для iPhone

/ 48

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

22

• Нет статических полей• Нет абстрактных методов и классов• Нет protected методов

• Нет generic-ов

• Нет namespace-ов

• YES/NO вместо true/false. nil вместо null

Page 23: Первое приложение для iPhone

/ 48

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

23

• Есть свойства• Есть лямбда-функции• Можно писать без статических проверок на типы• Логичная иерархия коллекций (readonly базовый для mutable)

• Именованные параметры методов

• Все методы виртуальные

Page 24: Первое приложение для iPhone

/ 48

Не вызовы методов, а отправка сообщений

24

Objective-C [myObject doSomething:myArgument];

C++ myObject->doSomething(myArgument);

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

PHP, Perl $myObject->doSomething($myArgument);

Page 25: Первое приложение для iPhone

/ 48

Непривычный синтаксис

25

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"]

Page 26: Первое приложение для iPhone

/ 48

Зато

26

C# Objective-C

a.Process(q, r, t, f) [a processQuery:q withRadius:r withTime:t callWhenFinish:f]

Page 27: Первое приложение для iPhone

/ 48

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

27

• счетчик ссылок retainCount

• retain: retainCount++

• release: retainCount--

• dealloc, когда retainCount = 0

Page 28: Первое приложение для iPhone

/ 48

Model – View – Controller

28

Page 29: Первое приложение для iPhone

/ 48

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

29

Page 30: Первое приложение для iPhone

/ 48

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

30

Page 31: Первое приложение для iPhone

/ 48

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

31

• Покупаем в Яндекс.Деньги виртуальную карту на 3000 рублей

• Заполняем электронную форму регистрации

• Отсылаем факс через онлайн-сервис

• Ждем подтверждения

Page 32: Первое приложение для iPhone

/ 48

Что нужно?

32

• Название• Имя приложения в iPhone

• Поддерживаемая версия iOS

• Выбрать категорию• Иконка• Описание• Скриншоты

Page 33: Первое приложение для iPhone

/ 48

iTunes Connect

33

Page 34: Первое приложение для iPhone

/ 48

Продвижение

34

Page 35: Первое приложение для iPhone

/ 48

Полезные советы

35

Page 36: Первое приложение для iPhone

/ 48

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

36

Page 37: Первое приложение для iPhone

/ 48

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

37

Page 38: Первое приложение для iPhone

/ 48

Поддержка Retina

38

Page 39: Первое приложение для iPhone

/ 48

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

39

Page 40: Первое приложение для iPhone

/ 4840

Действие Количество LLVM GCC

Вызов Objective-C метода

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

Page 41: Первое приложение для iPhone

/ 48

Избегать autorelease.Особенно в цикле.

41

Page 42: Первое приложение для iPhone

/ 48

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

42

Page 43: Первое приложение для iPhone

/ 48

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

43

Page 44: Первое приложение для iPhone

/ 48

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

44

Page 45: Первое приложение для iPhone

/ 48

Логотип Google

45

Page 46: Первое приложение для iPhone

/ 48

Логировать все

46