lecture1
Post on 09-Aug-2015
71 Views
Preview:
TRANSCRIPT
/ 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
Wunderlist
14Titanium
http://www.6wunderkinder.com/wunderlist/
/ 48
Попробовать
17
• Хакинтош под виртуальной машиной (устанавливаем Mac OS на VirtualBox)
• XCode 4 ($5)
/ 48
Полноценная разработка
18
• Макинтош• iPhone для тестирования
• Подписка разработчика Apple ($99 / год)
/ 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
Регистрация в AppStore
31
• Покупаем в Яндекс.Деньги виртуальную карту на 3000 рублей
• Заполняем электронную форму регистрации
• Отсылаем факс через онлайн-сервис
• Ждем подтверждения
/ 48
Что нужно?
32
• Название• Имя приложения в iPhone
• Поддерживаемая версия iOS
• Выбрать категорию• Иконка• Описание• Скриншоты
/ 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
Что и где почитать?
47
• ADD-2010. Никита Фролов. Как начать разрабатывать для iPhone.
• Objective-C 2.0 и программирование для Mac
• iTunes-U. Stanford
top related