Первое приложение для iphone
Post on 28-Nov-2014
3.851 Views
Preview:
DESCRIPTION
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
Что нужно для разработки?
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
Что и где почитать?
47
• ADD-2010. Никита Фролов. Как начать разрабатывать для iPhone.
• Objective-C 2.0 и программирование для Mac
• iTunes-U. Stanford
top related