Your SlideShare is downloading. ×
0
iPhone Developer Basic ProgramDay 2 Objective-C 2.0by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2...
Course Outline1. Introduction & Xcode2. Objective-C & Frameworks3. View &ViewController4. View &ViewController (2)5. Submi...
www.ibluecode.com/training.htmlDay 1 - 5 Slidewww.slideshare.net/eakkattiyaAdditional Courseeakkattiya@gmail.com086-673211...
Object-Oriented ProgrammingObjective-C 2.0Developing iOS Apps : Languagehttp://tinyurl.com/o54n8jdby Eakapong Kattiya www....
Objective-C 2.0by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111เราควรเริ่มเรียนรู้อะไรบ้าง ?- Cl...
Objective-C 2.0 : Class vs. Objectby Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111Class = แบบแปล...
Objective-C 2.0 : Class vs. Objectby Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111UIView *myView...
Objective-C 2.0 : Primitive Types (ตัวแปรเก็บค่าพื้นฐาน)by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-...
Objective-C 2.0 : If Else Condition (เงื่อนไข)by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111NS...
Objective-C 2.0 : NSArray (แก้ไขข้อมูลไม่ได้)by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111// ...
Objective-C 2.0 : NSDictionary (แก้ไขข้อมูลไม่ได้)by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-21...
การสืบทอดคลาส Inheritance & Subclass1. คลาส ทุกตัวต้องมีการสืบทอดจาก คลาสแม่ (Super class) เช่นUILabel สืบทอดมาจาก UIView2...
Objective-C 2.0 : Interface & Implementationby Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111Satu...
Objective-C 2.0 : Interface (.h file)by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111@interface c...
Objective-C 2.0 : Implementation (.m file)by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111@implem...
Objective-C 2.0 : Messages (Method)by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111@implementati...
Objective-C 2.0 : Instantiation (การสร้าง Object)by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-211...
Developing iOS Apps : Frameworksby Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111Saturday, June 1...
Developing iOS Apps : Frameworksby Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111Saturday, June 1...
Developing iOS Apps : Frameworksby Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111Saturday, June 1...
http://www.apple.com/ios/ios6/Developing iOS Apps : Frameworksby Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +6...
Developing iOS Apps : Design PatternsModel-View-ControllerTarget-ActionDelegationBlock ObjectsProtocolNotification CenterKe...
Model-View-Controller (MVC)by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111Saturday, June 1, 13
Model-View-Controller (MVC)by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111Saturday, June 1, 13
by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111Saturday, June 1, 13
Model-View-Controller (MVC)Modelเป็น Class ที่สร้างขึ้นเพื่อใช้เก็บข้อมูลของโปรแกรมเช่น Class Contacts เก็บรายชื่อ เบอร์โท...
Model-View-Controller (MVC)- Viewเป็น Class ที่สร้างขึ้นเพื่อแสดงผลบนหน้าจอ เช่น UIView ,UILabel , UITextField โดยไม่จําเป...
Model-View-Controller (MVC)- Controllerเป็น Class ที่สร้างขึ้นเพื่อเชื่อมต่อระหว่าง Model กับView เช่นClass UIViewControll...
Model-View-Controller (MVC)Decrease Spaghetti codesเป็นการออกแบบโครงสร้างการทํางานของโปรแกรมเป็น 3 ส่วนเพื่อลดความยุ่งเหยิ...
Model-View-Controller (MVC)Avoid Monster Classหลีกเลี่ยงการสร้าง Monster Class แบบ Class เดียวทําหน้าหลายอย่างตั้งแต่ เก็บ...
Model-View-Controller (MVC)- ( Easy to maintain ) โดยการแยกหน้าที่แต่ละส่วนชัดเจนช่วยให้แก้ไขโปรแกรมได้ง่ายภายหลัง เนื่องจ...
Reuseabilty- Modelความถี่ของการนําไปใช้ใหม่ : บ่อย- Viewความถี่ของการนําไปใช้ใหม่ : ปานกลาง- Controllerความถี่ของการนําไปใ...
Upcoming SlideShare
Loading in...5
×

iOS Basic Development Day 2 - Objective-C 2.0 & iOS Framework

626

Published on

iOS Basic Development Day 2 , Objective-C 2.0 & iOS Framework
by Eakapong Kattiya
eakkattiya@gmail.ccom
www.ibluecode.com
+66 086-673-2111

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
626
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
41
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "iOS Basic Development Day 2 - Objective-C 2.0 & iOS Framework "

  1. 1. iPhone Developer Basic ProgramDay 2 Objective-C 2.0by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111Saturday, June 1, 13
  2. 2. Course Outline1. Introduction & Xcode2. Objective-C & Frameworks3. View &ViewController4. View &ViewController (2)5. Submit App StoreCourse Outlineby Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111Saturday, June 1, 13
  3. 3. www.ibluecode.com/training.htmlDay 1 - 5 Slidewww.slideshare.net/eakkattiyaAdditional Courseeakkattiya@gmail.com086-6732111twitter.com/eakkattiyafacebook.com/eakapong.kattiyaResourcesby Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111Saturday, June 1, 13
  4. 4. Object-Oriented ProgrammingObjective-C 2.0Developing iOS Apps : Languagehttp://tinyurl.com/o54n8jdby Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111Saturday, June 1, 13
  5. 5. Objective-C 2.0by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111เราควรเริ่มเรียนรู้อะไรบ้าง ?- Class & Object ( คลาส & ออปเจ็ค )- Inheritance การสืบทอดคลาส / Subclass คลาสลูก- Interface and Implementation- Method & Property- Alloc & initClass & ObjectInheritance &Subclass Interface &ImplementationMethod &PropertyInstantiationSaturday, June 1, 13
  6. 6. Objective-C 2.0 : Class vs. Objectby Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111Class = แบบแปลนหรือพิมพ์เขียว/ชนิดของวัตถุObject = วัตถุClass ------ Implement -----> Objectคลาส (แม่แบบ) ------ นําไปสร้างเป็น ---> วัตถุSaturday, June 1, 13
  7. 7. Objective-C 2.0 : Class vs. Objectby Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111UIView *myView ;ClassName *objectName ;Framework<UIKit>ขึ้นต้นด้วยตัวเล็กเสมอขึ้นต้นด้วยตัวใหญ่เสมอSaturday, June 1, 13
  8. 8. Objective-C 2.0 : Primitive Types (ตัวแปรเก็บค่าพื้นฐาน)by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111BOOL isCorrect = NO ; //YESNSInteger myInteger = 1234 ;CGFloat myFloat = 123.40 ;double myDouble = 123.40 ;Objective-C 2.0 : Value Object Types (ตัวแปรเก็บค่าพื้นฐาน + Method)NSNumber *number = @1234 ;NSString *name = @"world" ;NSString *greeting = [NSString stringWithFormat:@"Hello, %@ , %d",name,[number integerValue]];Saturday, June 1, 13
  9. 9. Objective-C 2.0 : If Else Condition (เงื่อนไข)by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111NSString *name = @"world" ;BOOL isCorrect = [name isEqualToString:@"world"]; //Methodif(isCorrect){ //BlockNSLog(@"Welcome %@",name);}else{NSLog(@"Wrong user name");}Saturday, June 1, 13
  10. 10. Objective-C 2.0 : NSArray (แก้ไขข้อมูลไม่ได้)by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111// Compose a static array of string objectsNSString *objs[3] = {@"One", @"Two", @"Three"};// Create an array object with the static arrayNSArray *arrayOne = [NSArray arrayWithObjects:objs count:3];// Create an array with a nil-terminated list of objectsNSArray *arrayTwo = [NSArray arrayWithObjects:@"One", @"Two", @"Three", nil];NSArray *arrayThree = @[ @"Hello World", @67, [NSDate date] ];// get second object in array @67NSNumber *two = [arrayThree objectAtIndex:1];Objective-C 2.0 : NSMutableArray (แก้ไขข้อมูลได้)NSMutableArray *mutableArray = [NSMutableArray new];[mutableArray addObject:@"First"];[mutableArray removeObjectAtIndex:0];Saturday, June 1, 13
  11. 11. Objective-C 2.0 : NSDictionary (แก้ไขข้อมูลไม่ได้)by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111NSDictionary *myDict =[NSDictionary dictionaryWithObjectsAndKeys:@"eak",@"name",@10,@"age",YES,@"isPass",nil];NSString *name =[myDict valueForKey:@"name"] ;Objective-C 2.0 : NSMutableDictionary (แก้ไขข้อมูลได้)NSMutableDictionary *myDict =[NSMutableDictionary dictionaryWithObjectsAndKeys:@"eak",@"name",@10,@"age",YES,@"isPass",nil];[myDict setValue:@100 forKey:@"score"] ;NSString *score = [myDict valueForKey:@"score"];Saturday, June 1, 13
  12. 12. การสืบทอดคลาส Inheritance & Subclass1. คลาส ทุกตัวต้องมีการสืบทอดจาก คลาสแม่ (Super class) เช่นUILabel สืบทอดมาจาก UIView2. ยกเว้น คลาส NSObject เนื่องจากเป็นคลาสแม่ของทุกตัวby Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111Saturday, June 1, 13
  13. 13. Objective-C 2.0 : Interface & Implementationby Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111Saturday, June 1, 13
  14. 14. Objective-C 2.0 : Interface (.h file)by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111@interface classname : superclassname {// instance variablesNSString *userInput ;}// Class Property@property (weak, nonatomic) IBOutlet UILabel *myLabel;@property (weak, nonatomic) NSString *name ;+ classMethod1;+ (return_type)classMethod2;+ (return_type)classMethod3:(param1_type)param1_varName;- (return_type) instanceMethod1With1Parameter:(param1_type)param1_varName;- (return_type)instanceMethod2With2Parameters:(param1_type)param1_varNameparam2_callName:(param2_type)param2_varName;@endSaturday, June 1, 13
  15. 15. Objective-C 2.0 : Implementation (.m file)by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111@implementation classname+ (return_type)classMethod{// implementation}- (return_type)instanceMethod{// implementation}@endSaturday, June 1, 13
  16. 16. Objective-C 2.0 : Messages (Method)by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111@implementation classname- (void)viewDidLoad{[super viewDidLoad];//Call Method[self changeColorToRed:5.0 green:2.0 blue:6.0];}// Method implementation- (void)changeColorToRed:(float)red green:(float)green blue:(float)blue{UIColor *color = [UIColor colorWithRed:redgreen:greenblue:bluealpha:1.0];[self.view setBackgroundColor:color];}Saturday, June 1, 13
  17. 17. Objective-C 2.0 : Instantiation (การสร้าง Object)by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111MyClass *myObject1 = [[MyClass alloc]init];[myObject1 setName:@"Hello"];myObject1.name = @"Hello";MyClass *myObject2 = [MyClass new];[myObject2 setName:@"Hello"];MyClass *myObject3 = [[MyClass alloc]initWithString:@"Hello"];Saturday, June 1, 13
  18. 18. Developing iOS Apps : Frameworksby Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111Saturday, June 1, 13
  19. 19. Developing iOS Apps : Frameworksby Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111Saturday, June 1, 13
  20. 20. Developing iOS Apps : Frameworksby Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111Saturday, June 1, 13
  21. 21. http://www.apple.com/ios/ios6/Developing iOS Apps : Frameworksby Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111Saturday, June 1, 13
  22. 22. Developing iOS Apps : Design PatternsModel-View-ControllerTarget-ActionDelegationBlock ObjectsProtocolNotification CenterKey-Value Observing (KVO)http://tinyurl.com/o8pnof9by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111Saturday, June 1, 13
  23. 23. Model-View-Controller (MVC)by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111Saturday, June 1, 13
  24. 24. Model-View-Controller (MVC)by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111Saturday, June 1, 13
  25. 25. by Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111Saturday, June 1, 13
  26. 26. Model-View-Controller (MVC)Modelเป็น Class ที่สร้างขึ้นเพื่อใช้เก็บข้อมูลของโปรแกรมเช่น Class Contacts เก็บรายชื่อ เบอร์โทร ผู้ติดต่อโดยไม่จําเป็นต้องคํานึงถึงView และ Controllerby Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111Saturday, June 1, 13
  27. 27. Model-View-Controller (MVC)- Viewเป็น Class ที่สร้างขึ้นเพื่อแสดงผลบนหน้าจอ เช่น UIView ,UILabel , UITextField โดยไม่จําเป็นต้องคํานึงถึง Controller แต่ต้องคํานึงถึงประเภทของข้อมูลที่จะเชื่อมต่อกับ Modelby Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111Saturday, June 1, 13
  28. 28. Model-View-Controller (MVC)- Controllerเป็น Class ที่สร้างขึ้นเพื่อเชื่อมต่อระหว่าง Model กับView เช่นClass UIViewController และควบคุม Flow การทํางานของโปรแกรมby Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111Saturday, June 1, 13
  29. 29. Model-View-Controller (MVC)Decrease Spaghetti codesเป็นการออกแบบโครงสร้างการทํางานของโปรแกรมเป็น 3 ส่วนเพื่อลดความยุ่งเหยิงของ code ที่ link หรือพันกันไปมาใน Classเดียวแบบเส้น สปาเกตตีby Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111Saturday, June 1, 13
  30. 30. Model-View-Controller (MVC)Avoid Monster Classหลีกเลี่ยงการสร้าง Monster Class แบบ Class เดียวทําหน้าหลายอย่างตั้งแต่ เก็บข้อมูล แสดงผล ควบคุมView ต่าง ๆ ในตัวเองเนื่องจากไม่สามารถนํา code ไปใช้ใหม่ได้ง่ายby Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111Saturday, June 1, 13
  31. 31. Model-View-Controller (MVC)- ( Easy to maintain ) โดยการแยกหน้าที่แต่ละส่วนชัดเจนช่วยให้แก้ไขโปรแกรมได้ง่ายภายหลัง เนื่องจากมีส่วนเชื่อมต่อกันน้อยลง- ( Reuseabilty) การแยกแต่ละส่วนชัดเจนช่วยให้สามารถเกิดการนําCode ไปใช้้ซ้ําใหม่ได้ หรือนําเอาไปใช้ที่อื่นได้- การนําไปใช้ซ้ําใหม่ทําให้เขียน Code น้อยลงby Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111Saturday, June 1, 13
  32. 32. Reuseabilty- Modelความถี่ของการนําไปใช้ใหม่ : บ่อย- Viewความถี่ของการนําไปใช้ใหม่ : ปานกลาง- Controllerความถี่ของการนําไปใช้ใหม่ : น้อยมากby Eakapong Kattiya www.ibluecode.com eak.k@ibluecode.com +66 086-673-2111Saturday, June 1, 13
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×