Your SlideShare is downloading. ×
0
Squeek 1
Squeek 1
Squeek 1
Squeek 1
Squeek 1
Squeek 1
Squeek 1
Squeek 1
Squeek 1
Squeek 1
Squeek 1
Squeek 1
Squeek 1
Squeek 1
Squeek 1
Squeek 1
Squeek 1
Squeek 1
Squeek 1
Squeek 1
Squeek 1
Squeek 1
Squeek 1
Squeek 1
Squeek 1
Squeek 1
Squeek 1
Squeek 1
Squeek 1
Squeek 1
Squeek 1
Squeek 1
Squeek 1
Squeek 1
Squeek 1
Squeek 1
Squeek 1
Squeek 1
Squeek 1
Squeek 1
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Squeek 1

2,389

Published on

Первое занятия курса Squeek School по iOS (iPhone/ iPad) разработке.

Первое занятия курса Squeek School по iOS (iPhone/ iPad) разработке.

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,389
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
13
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. squeek schoolРазработка приложений для iOS
  • 2. http://school.squeek.ru
  • 3. Паринов ОлегEmpatika, Project ManagerВысшая Школа Экономики, бизнес-информатикаoleg.parinov@empatika.com oparinov
  • 4. КурсCS 193P Факультет бизнес- информатики Отделение программной инженерии ЗАО ПРОГНОЗ
  • 5. Литература Getting Help• Документация • The assignment walks you through it• developer.apple.comlook • Key spots to API & Conceptual Docs in Xcode• ■ stackoverflow.com files ■ Class header• ■ Docs, sample code, tech notes Джонатан Здзиарски «iPhone on Apple Developer Connection (ADC) site SDK. Разработка приложений» http://developer.apple.com ■ http://www.ozon.ru/context/ Dev site uses Google search ■ detail/id/4760826/• http://school.squeek.ru Thursday, January 7, 2010 5
  • 6. Что в результате? Objective-C Xcode 4 iOS SDK Foundation UIKit командный проект
  • 7. что потребуется от вас? Mac OS X + iOS SDK + Xcode
  • 8. «Герой нашего времени»
  • 9. iPhone
  • 10. iPod touch
  • 11. iPad
  • 12. основы Objective-C
  • 13. Objective-C• ООП• Синтаксис• Сообщения• Управление памятью• Основные классы (NSString, NSArray, NSDictionary)
  • 14. ООП• Класс• Объект• Метод• Поле• Инкапсуляция• Наследование• Полиморфизм
  • 15. Классы в Obj-C• Классы тоже объекты• Класс - шаблон для объекта• Класс имеет поля и методы (и свойства)• Поля скрыты извне - нужны get/set
  • 16. Наследование в Obj-C Inheritance Superclass NSObject UIControl Subclass UIButton UITextField • Hierarchical relation between classes • Subclass “inherit” behavior and data from superclass • Subclasses can use, augment or replace superclass methodsThursday, January 7, 2010 10
  • 17. Методы класса и объекта Class and Instance Methods• Class and Instance Methods Методы объекта (динамические) • Instances respond to instance methods - (id)init; - (float)height; • Instances respond to instance methods - (void)walk; - (id)init; - (float)height; •-Classes respond to class methods (void)walk;• Методы класса (статические) + (id)alloc; + (id)person; • Classes respond to class methods + (Person *)sharedPerson; + (id)alloc; + (id)person; + (Person *)sharedPerson;
  • 18. Отправка сообщения Message syntax [receiver message]Terminology [receiver message:argument]Terminology• Message expression [receiver message:arg1 andArg:arg2] [receiver method: argument]• Message expression• Message [receiver method: argument] [receiver method: argument]• Message [receiver method: argument] - сообщение• Selector [receiver method: argument] - cелектор• Selector• Method [receiver method: argument] Thursday, January 7, 2010 22
  • 19. ПримерPerson *voter;int theAge = [voter age];[voter setAge:21];if ([voter canLegallyVote]) { // что-то сделать здесь}[voter registerForState:@"CA" party:@"Independant"];NSString *name = [[voter spouse] name];
  • 20. стадия дизайна класса• Создание описания класса - Person• Определение супер-класса - NSObject• Какие свойства нужны? имя, возраст, может ли голосовать• Какие действия может выполнять? голосовать
  • 21. Defining a class A public header and a private implementationКласс = + Header File Implementation File
  • 22. заголовок header and a A public Definin#import <Foundation/Foundation.h>@interface Person : NSObject {// переменные объектаNSString *name;int age;}// объявление методов- (NSString *)name; Header File- (void)setName:(NSString *)value;- (int)age;- (void)setAge:(int)age;- (BOOL)canLegallyVote;- (void)castBallot;@end
  • 23. реализация Defining a class A public header and a private implementa#import "Person.h"@implementation Person- (int)age {return age;}- (void)setAge:(int)value {Header File Implementation Fileage = value;}//... и остальные методы@end
  • 24. вызов собственных методов#import "Person.h"@implementation Person- (BOOL)canLegallyVote {return ([self age] >= 18);}- (void)castBallot {if ([self canLegallyVote]) { // голосование } else { NSLog (@“I’m not allowed to vote!”);}@end
  • 25. Динамическая истатическая типизация• Person *person• id person
  • 26. ничего• nil• person = nil; [person castBallot];
  • 27. булевая• BOOL flag = NO;• if (flag == YES)• YES == TRUE == 1• NO == FALSE == 0
  • 28. селекторid obj;SEL sel = @selector(start:);if ([obj respondsToSelector:sel]){ [obj performSelector:sel withObject:self];}
  • 29. класс объекта• [myObject class];• [myObject className];• [myObject isKindOfClass:[NSString class]];
  • 30. логирование• NSLog(@’’Hi there!’’);• NSLog(@’‘The row number %d’’, rowNumber);
  • 31. NSString• Unicode• @’‘Some string’’• [NSString stringWithFormat:@’‘It’s %d’’, number];• [string stringByAppendingString:anotherString];• [string stringByAppendingFormat:• [string intValue]; [string doubleValue];
  • 32. NSMutableString• редактируемая строка• appendString:• appendFormat:• insertString:atIndex:
  • 33. NSArray• массив объектов• count• objectAtIndex:• +arrayWithObjects: , , ,nil• indexOfObject:
  • 34. NSMutableArray• addObject:• removeObject:• insertObject:AtIndex:
  • 35. NSDictionary• objectForKey• count• + dictionaryWithObject:forKey:• + dictionaryWithObjects:forKeys:• allKeys• allValues
  • 36. NSMutableDictionary• setObject:forKey:• removeObjectForKey:
  • 37. вызов суперкласса• [super doSomething];- (void)doSomething { // Вызов реализации у супер-класса [super doSomething]; // Теперь собственное поведение int foo = bar; // ... }
  • 38. жизненный цикл объекта • Создание объектов • Управление памятью • Уничтожение объектов
  • 39. созданиеAllocate + InitializePerson *person;person = [[Person alloc] init];
  • 40. создание собственного init #import "Person.h" @implementation Person - (id)init { // сначала инициализируется супер-класс if (self = [super init]) { age = 0; name = @“Bob”; // другая инициализация... } return self; } @end

×