Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

980 views

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
  • Be the first to comment

  • Be the first to like this

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

×