Iphone programming

2,042 views

Published on

Iphone programming

Published in: Technology, News & Politics
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,042
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
60
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Iphone programming

  1. 1. Lậptrìnhứngdụng iPhone<br />Truong QuocPhu <phutq8014@setacinq.com.vn><br />SETA:CINQ Vietnam, Ltd - 3D Building, Nguyen Phong Sac Str, CauGiay Dist, Ha Noi<br />
  2. 2. Nội dung chính<br />Môitrườnglậptrìnhứngdụngiphone<br />Ngônngữ Objective-c<br />iPhone SDK<br />Build & Distribute app trên device<br /><ul><li>Mục tiêu: giới thiệu cơ bản về về lập trình ứng dụng iphone, giúp mọi người có cái nhìn sơ qua và tiếp cận lập trình ứng dụng cho iphone một cách dễ dàng hơn.</li></li></ul><li>Môitrườnglậptrìnhứngdụng iPhone<br />Ngônngữlậptrìnhứngdụngiphone: Objective-C<br />Môitrường<br />Hệđiềuhành mac os<br />Tools<br />http://developer.apple.com/<br />Instruments<br />Xcode & iPhone sdk <br />iPhone Simulator<br />Interface Builder <br />
  3. 3. Objectiv-C<br />Là ngôn ngữ hướng đối tượng, Cùng họ với c/c++ , nhưng syntax khác với c/c++<br />Classname.h<br />@interfaceclassname: superclassname { <br />// instance variables <br />(type_1) proprety1;<br /> (type_2) proprety1;<br />} <br />+ classMethod1; <br />+ (return_type)classMethod2; <br />+ (return_type)classMethod3:(param1_type)param1_varName; <br />-(return_type)instanceMethod1:(param1_type)param1_varName:(param2_type)param2_varName; <br />-(return_type_object*)instanceMethod2WithParameter:(param1_type_object*)param1_varName andOtherParameter:(param2_type)param2_varName; <br />@end<br />Classname.m<br />#import “Classname.h “<br />@implementation classname<br />@synthesize proprety1;<br />(id)hello { <br />printf("Recipient says hello!n"); <br />return self; <br />}<br /><ul><li>@end</li></li></ul><li>Objectiv-C (2)<br />Gọi hàm<br />[object method];<br />[object method:argument];<br /> [object method:arg1 andArg:arg2];<br />Thuộc tính<br />float height = [person height];<br />float height = person.height;<br />[person setHeight:newHeight];<br />person.height = newHeight;<br />Object<br /> Create :Create = Allocate + Initialize<br />Class *object = [[Class alloc] init];<br /> Memory Management:<br />
  4. 4. Objectiv-C(3): Reference Counting<br />Every object has a retain count<br /> Defined on NSObject<br /> As long as retain count is > 0, object is alive and valid<br />+allocand -copy create objects with retain count == 1<br />-retain increments retain count<br />-release decrements retain count<br />When retain count reaches 0, object is destroyed<br />-deallocmethod invoked automatically<br />One-way street, once you’re in -dealloc there’s no turning back<br />
  5. 5. Objectiv-C: Foundation Framework<br />Foundation FW: là FW phát triển trên objective-c. Cung cấp tất cả các lớp cơ bản : string, number, collection, file , Tasks, timers, threads , File system, pipes, I/O, bundles<br />NSObject<br />Là lớp root<br />Quản lý về bộ nhớ: init, dealloc<br />
  6. 6. Objectiv-C: các kiểu dữ liệu cơ bản<br />NSString: <br />NSString *aString = @”Hello World!”;<br />NSString *log = [NSStringstringWithFormat: @”It’s ‘%@’”, aString];<br /> NSLog(@”%@”,log);<br />- (NSString *)stringByAppendingString:(NSString *)string;<br />- (NSString *)stringByAppendingFormat:(NSString *)string;<br />- (NSString *)stringByDeletingPathComponent; <br />- (BOOL)isEqualToString:(NSString *)string;<br />- (BOOL)hasPrefix:(NSString *)string;<br />- (int)intValue;<br />- (double)doubleValue<br />
  7. 7. Objectiv-C: các kiểu dữ liệu cơ bản(2)<br />NSArray:<br />+ arrayWithObjects:(id)firstObj, ...; <br />- (unsigned)count;<br />- (id)objectAtIndex:(unsigned)index;<br />-(unsigned)indexOfObject:(id)object; NSMutableArray;<br />NSMutableArray: subclasses NSArray<br /> + (NSMutableArray *)array;<br />- (void)addObject:(id)object;<br />- (void)removeObject:(id)object;<br />- (void)removeAllObjects;<br />- (void)insertObject:(id)object atIndex:(unsigned)index;<br />
  8. 8. NSDictionary: là kiểu dữ liệu quản lý Object theo key<br />+ dictionaryWithObjectsAndKeys: (id)firstObject, ...;<br />- (unsigned)count;<br />- (id)objectForKey:(id)key;<br /><ul><li>NSMutableDictionary: subclasses NSDictionary</li></ul>+ (NSMutableDictionary *)dictionary;<br />- (void)setObject:(id)object forKey:(id)key;<br />- (void)removeObjectForKey:(id)key;<br />- (void)removeAllObjects;<br />Objectiv-C: các kiểu dữ liệu cơ bản(3)<br />
  9. 9. Objectiv-C: các kiểu dữ liệu cơ bản(4)<br />NSNumber:<br />Trong objective-c có thể dụng các kiểu dữ liệu số cơ bản trong C: int, float, double.<br />NSNumber là kiểu dữ liệu số ở dạng object<br />+ (NSNumber *)numberWithInt:(int)value;<br />+ (NSNumber *)numberWithDouble:(double)value;<br />- (int)intValue;<br />- (double)doubleValue;<br />NSData / NSMutableData<br /> Arbitrary sets of bytes<br />NSDate / NSCalendarDate<br />Times and dates<br />http://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC<br />
  10. 10. iPhone SDK<br />Xcode<br />
  11. 11.
  12. 12. Views<br />UIView<br />1 hình khoảng vuông trên màn hình<br />Nội dung được hiển thị trên đó<br />Bắt các sự kiện <br />1 view có một superview<br />1 view không có hoặc có nhiều subview<br />- (void)addSubview:(UIView *)view;<br />- (void)removeFromSuperview;<br />- (void)insertSubview:(UIView *)view atIndex:(int)index;<br />- (void)insertSubview:(UIView *)view belowSubview:(UIView *)view;<br />- (void)insertSubview:(UIView *)view aboveSubview:(UIView *)view;<br />
  13. 13. Views (2)<br />• CGPoint: { x , y }<br />• CGSize: { width , height }<br />• CGRect: { origin , size }<br />
  14. 14.
  15. 15.
  16. 16. Views : Create view<br />Interface Builder<br />2<br />1<br />4<br />3<br />
  17. 17. Views : Create view<br />Sử dụng code<br />CGRect frame = CGRectMake(0, 0, 200, 150);<br />UIView *myView = [[UIViewalloc] initWithFrame:frame];<br /> [window addSubview:myView];<br />[myViewrelease]; <br />
  18. 18. View: các loại view cơ bản<br />1. UILable<br />2.UIImageView<br />3.UITextField<br />4. UISlider<br />5.UISegmentedControl<br />6.UISwitch<br />7.UIButton<br />2<br />3<br />1<br />4<br />5<br />6<br />7<br />
  19. 19. ViewController<br />UIViewController: root class<br />Các loại Viewcontroller:<br />UITabbarController<br />UINavigationController<br />UITableViewController<br />
  20. 20. ViewController:UITabbarController<br />Là Array các viewcontroller<br />Tabbar: điều hướng các viewcontroller<br />
  21. 21. ViewController:UINavigationController<br />Là stack các viewcontroller<br />Navigation bar<br />Push to add a view controller<br />- (void)pushViewController:(UIViewController *)viewController<br />animated:(BOOL)animated;<br />Pop to remove a view controller<br />- (void)popViewControllerAnimated:(BOOL)animated;<br />
  22. 22. UITabBarController+ UINavigationController<br />
  23. 23. UITableView<br />Hiện thị dữ liệu dạng bảng<br />Xử lý điều hướng các chức năng chương trình<br />
  24. 24. UITableView (plain style)<br />
  25. 25. UITableView (Group style)<br />
  26. 26. UITableViewDataSource<br />Số lượng section trong table<br />-(NSInteger)numberOfSectionsInTableView:(UITableView *)table<br />Số cell trong 1 section<br />- (NSInteger)tableView:(UITableView *)tableView<br />numberOfRowsInSection:(NSInteger)section;<br />Hiện thị nội dung Cell<br />- (UITableViewCell *)tableView:(UITableView *)tableView<br />cellForRowAtIndexPath:(NSIndexPath *)indexPath;<br />NSIndexPath: section , row<br />
  27. 27. UITableView Delegate<br />Xử lý các sự kiện trên table: click cell, sửa cell, xóa cell<br />- (void)tableView:(UITableView *)tableView<br />didSelectRowAtIndexPath:(NSIndexPath *)indexPath;<br />
  28. 28. UITableViewController<br />Khi tạo UITableViewController sẽ tạo luông UITableview và kết hợp UITableViewDataSource và UITableView Delegate vào nội dung.<br />
  29. 29. Data <br />Property Lists<br />SQLite<br />Core Data<br />
  30. 30. Sqlite<br />Là kiểu database nhỏ, nhẹ thường được dùng trong các ứng dụng nhỏ, không cần sever. <br />Cấu trúc truy vấn theo chuẩn của sql<br />Quản lý file sqlite: add-on firefox SQLite Manager<br />Khi sử dụng thêm thư viện libsqlite3.dylib<br />
  31. 31. sqlite<br />Open Database<br />intsqlite3_open(const char *filename, sqlite3 **db);<br />Query DB<br />sqlite3_stmt *statement; <br />sqlite3_prepare_v2(db,[sqlStringUTF8String],-1,&statement,nil);<br />while (sqlite3_step(statement) == SQLITE_ROW) {<br />int a =sqlite3_column_int(statement, 0); //with number<br /> nsstring *b = [NSString stringWithUTF8String:(char *) sqlite3_column_text(statement, 1); //with string<br />}<br />sqlite3_finalize(statement);<br />Close DB<br />sqlite3_close(db); <br />
  32. 32. Build & Distribute<br />Cótàikhoảntrênhttps://developer.apple.com/<br />

×