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

Post on 28-Nov-2014

3.851 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

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

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

/ 48

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

2

/ 48

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

3

/ 48

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

4

/ 48

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

5

/ 48

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

6

/ 48

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

7

/ 48

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

8

/ 48

США9

/ 48

Россия10

/ 48

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

11

iOS Objective-C Mac

Windows Phone 7 C# Win

Android Java Win, Mac, Linux

Symbian C++ Win

Blackberry Java Win

/ 48

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

12

• Wink Toolkit

• iUI

• Dojo Mobile

• dHTMLx Touch

• jQTouch

• jQuery Mobile

• Sencha Touch

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

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

/ 48

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

13

• PhoneGap

• MotherApp

• Big5

• Rhodes

• Titanium

/ 48

Wunderlist

14Titanium

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

/ 48

Дзен-мани

15

PhoneGap

http://zenmoney.ru/

/ 48

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

16

/ 48

Попробовать

17

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

• XCode 4 ($5)

/ 48

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

18

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

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

/ 48

Objective-C

19

/ 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

/ 48

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

21

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

• header-файлы

/ 48

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

22

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

• Нет generic-ов

• Нет namespace-ов

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

/ 48

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

23

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

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

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

/ 48

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

24

Objective-C [myObject doSomething:myArgument];

C++ myObject->doSomething(myArgument);

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

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

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

/ 48

Зато

26

C# Objective-C

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

/ 48

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

27

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

• retain: retainCount++

• release: retainCount--

• dealloc, когда retainCount = 0

/ 48

Model – View – Controller

28

/ 48

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

29

/ 48

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

30

/ 48

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

31

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

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

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

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

/ 48

Что нужно?

32

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

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

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

/ 48

iTunes Connect

33

/ 48

Продвижение

34

/ 48

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

35

/ 48

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

36

/ 48

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

37

/ 48

Поддержка Retina

38

/ 48

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

39

/ 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

/ 48

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

41

/ 48

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

42

/ 48

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

43

/ 48

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

44

/ 48

Логотип Google

45

/ 48

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

46

/ 48

Все!

48

gleb34@gmail.com

top related