introduce ios operation

76
TÌM HIỂU VỀ IOS GVHD:Nguyễn Trần Thi Văn SV thực hiện: 1.Nguyễn Cao Thắng 2.Nguyễn Mậu Đức 3.Lê Bá Hoàng

Upload: cong-thanh-nguyen

Post on 12-Jan-2017

878 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Introduce IOS operation

TÌM HIỂU VỀ IOSGVHD:Nguyễn Trần Thi VănSV thực hiện:1.Nguyễn Cao Thắng2.Nguyễn Mậu Đức3.Lê Bá Hoàng

Page 2: Introduce IOS operation

Nội dung báo cáo

Giới thiệu sơ lược Giới thiệu về object C Giới thiệu về cấu trúc của ứng dụng IOS Công cụ lập trình Xcode xây dựng ứng dụng IOS Demo

Page 3: Introduce IOS operation

Giới thiệu sơ lược

Page 4: Introduce IOS operation

Giới thiệu sơ lược Lịch sử phát triển :

iOS là hệ điều hành di dộng của Apple ban đầu được gọi là hệ điều hành dành cho iPhone và đến tháng 6 năm 2010 thì chính thức được đổi gọi tên là “iOS”. Ban đầu, hệ điều hành này chỉ được phát triển riêng cho iPhone nhưng sau đó được mở rộng để hỗ trợ các thiết bị khác của Apple như iPod touch, iPad và Apple TV.

Page 5: Introduce IOS operation

Giới thiệu sơ lược

Các phiên bản của hệ điều hành IOS:Phiên bản 1.XPhiên bản 2.XPhiên bản 3.XPhiên bản 4.XPhiên bản 5.XPhiên bản 6.XPhiên bản 7.XPhiên bản 8.X (8.0,8.1)

Page 6: Introduce IOS operation

Giới thiệu sơ lược

Các ngôn ngữ để lập trình trên IOS:- HTML, JavaScript với PhoneGap- C# với MonoTouch-Object C (ngôn ngữ chính để lập trình trên IOS cho tới hiện nay)-Ngôn ngữ Swift (ngôn ngữ mới có nhiều điểm vượt trội hơn

Object C , được đánh giá là ngôn ngữ sẽ thay thế Object C trong tương lai)

Page 7: Introduce IOS operation

Objective - C

Page 8: Introduce IOS operation

Nội dung báo cáo:

Khai báo biến Kiểu dữ liệu Các phép toán Hàm (Function) Cấu trúc điều kiện Cấu trúc lặp Mảng Chuỗi

Page 9: Introduce IOS operation

Class và Object Hướng đối tượng trong Object C Category và Class Extensions Protocol Properties

Page 10: Introduce IOS operation

1.Giới thiệu ngôn ngữ Objective C

Ngôn ngữ Objective-C được tạo ra bởi Brad Cox và Tom Love vào năm 1980 tại công ty Stepstone.

Đến cuối tháng 12 năm 1996, hãng Apple đã mua lại công ty NeXT Software, môi trường NEXTSTEP/OPENSTEP đã trở thành phần cốt lõi của hệ điều hành OS X mà Apple giới thiệu sau này.

Ngôn ngữ lập trình Objective-C dựa trên nền tảng ngôn ngữ C nhưng bổ sung thêm hỗ trợ lập trình hướng đối tượng

Page 11: Introduce IOS operation

2.Khai báo biến –cách đặt tên.

2.1 Biến Biến được sử dụng để lưu trữ các giá trị của ứng dụng. Biến gồm có: kiểu dữ liệu, tên

biến và giá trị của biến Cú pháp

type variable_list; hoặc type variable_name = value; Ví dụ:

int i,j,k; hoặc int i=1, j=2, k=3;

char c,ch; hoặc char c = ‘x’;

Page 12: Introduce IOS operation

2.2 Quy tắc đặt tên:

Quy tắc đặt tên biến:

- Ngôn ngữ Objective-C có phân biệt hoa thường.

- Tên biến không có dấu tiếng việt.

- Tên biến không có khoảng trắng.

- Tên biến không được bắt đầu bằng số.

- Tên biến không được có các ký tự đặc biệt (ngoại trừ dấu gạch dưới _)

- Tên biến không được đặt trùng với các từ khoá của ngôn ngữ objective-C. VD: void, if, static, ...

Page 13: Introduce IOS operation

3.Kiểu dữ liệu

Page 14: Introduce IOS operation
Page 15: Introduce IOS operation

4.Toán tử (Operator): Toán tử số học (Arithmetic Operators):

Phép toán Mô tả Ví dụ+ Cộng 2 toán hạng A + B // = 30 A=20, B=

10.- Trừ toán hạng đầu với toán hạng 2 A – B // = 10* Nhân các toán hạng với nhau A * B // = 200/ Chi tử số cho mẫu số A / B // = 2% Chia lấy số dư A % B // = 0++ Tăng toán hạng lên 1 đơn vị số nguyên. A++ // = 11-- Giảm toán hạng xuống 1 đơn vị số

nguyên.A-- // = 9

Page 16: Introduce IOS operation

Toán tử quan hệ (Relational Operators)

Phép toán Mô tả Ví dụ

== Kiểm tra 2 toán hạng có bằng nhau hay không, nếu đúng trả về giá trị true

(A == B) // not true A=10, B=20.

!= Kiểm tra 2 toán hạng có bằng nhau hay không,nếu không bằng trả về giá trị true

(A != B) // true

> Kiểm tra toán hạng bên trái có giá trị lớn hơn giá trị toán hạng bên phải, nếu đúng trả về giá trị true

A > B // not true

< Kiểm tra toán hạng bên trái có giá trị nhỏ hơn giá trị toán hạng bên phải, nếu đúng trả về giá trị true

A < B // true

>= Kiểm tra toán hạng bên trái có giá trị lớn hơn hoặc bằng với giá trị bên phải, nếu đúng trả về true

A >= B // not true

<= Kiểm tra toán hạng bên trái có giá trị nhỏ hơn hoặc bằng với giá trị bên phải, nếu đúng trả về true

A <= B // true

Page 17: Introduce IOS operation

6.Function Function là tập hợp các dòng code, gom thành 1 khối. Khối code này được đặt tên.Khối

code này chỉ được thực thi khi tên khối code được gọi. Khai báo:

- (return_type) function_name:( argumentType1 )argumentName1

joiningArgument2:( argumentType2 )argumentName2 ...

joiningArgumentn:( argumentTypen )argumentNamen; Cú pháp:

- (return_type) method_name:( argumentType1 )argumentName1

joiningArgument2:( argumentType2 )argumentName2 ...

joiningArgumentn:( argumentTypen )argumentNamen

{

body of the function

}

Page 18: Introduce IOS operation

Ví dụ :

-(int) max:(int)num1 andNum2:(int)num2; // khai báo hàm.

- (int) max:(int) num1 secondNumber:(int) num2 // code thực thi hàm.{

int result;

if (num1 > num2)

{

result = num1;

}

else

{

result = num2;

}

return result;

}

Page 19: Introduce IOS operation

7.Cấu trúc điều kiện

7.1 Câu lệnh if :

Cú pháp:

if(boolean_expression)

{

/* statement(s) will execute

if the boolean expression is true */

}

Ví dụ:

int a = 10;

if( a < 20 )

{

NSLog(@"a is less than 20\n" );

}

NSLog(@"value of a is : %d\n", a);

Page 20: Introduce IOS operation

7.2 Câu lệnh if…else Cú pháp:

if(boolean_expression)

{

/* statement(s) will execute

if the boolean expression is true */

}

else

{

/* statement(s) will execute

if the boolean expression is false */

}

Page 21: Introduce IOS operation

7.2 Câu lệnh switch….case: Cú pháp:

switch(expression){

case constant-expression :

statement(s);

break; /* optional */

case constant-expression :

statement(s);

break; /* optional */

/* you can have any number of case statements */

default : /* Optional */

statement(s);

}

Page 22: Introduce IOS operation

Ví dụ:char grade = ‘C';switch(grade) { case 'A' : NSLog(@"Excellent!\n" ); break; case 'B' : case 'C' : NSLog(@"Well done\n" ); break; case 'D' : NSLog(@"You passed\n" ); break;default : NSLog(@"Invalid grade\n" ); } NSLog(@"Your grade is %c\n", grade ); // Your grade is C

Page 23: Introduce IOS operation

7.3 Toán tử ?:

Cú pháp:

Điều kiện ? Biểu thức 1 : Biểu thức 2

Ví dụ:

int x = 5, s;

s = (x < 0) ? -1 : x * x ; // =25

Page 24: Introduce IOS operation

8.Cấu trúc lặp 8.1 Vòng lặp for Cú pháp:

for (int ;condition; increment)

{

statement;

} Ví dụ :

int a;

for( a = 10; a < 20; a = a + 1 )

{

NSLog(@"value of a: %d\n", a);

}

Page 25: Introduce IOS operation

8.2 Vòng lặp while Cú pháp:

while (condition)

{

statement;

} Ví dụ:

int a = 10;

while( a < 20 )

{

NSLog(@"value of a: %d\n", a);

a++;

}

Page 26: Introduce IOS operation

8.3 Vòng lặp do….while Cú pháp:

do

{

statement;

}while ( condition ); Ví dụ:

int a = 10;

do

{

NSLog(@"value of a: %d\n", a);

a = a + 1;

}while( a < 20 );

Page 27: Introduce IOS operation

Câu lệnh break: Câu lệnh continue:

Page 28: Introduce IOS operation

Classes Và Object Trong Object C

Khai báo Objective-C Class

@interface Box:NSObject

{ //Biến thành viên

double height;

double length;

double breadth;

}

@property(nonatomic, readwrite) double height; // Property

-(double) volume; // Phương thức.

@end Khởi tạo đối tượng Object C

Box box1 = [[Box alloc]init];

Box box2 = [[Box alloc]init];

Page 29: Introduce IOS operation

Ví dụ truy suất dữ liệu thành viên Khai báo class – khu vực @interface Thực thi class – khu vực @implement

@implementation Box

@synthesize height;

-(id)init {

self = [super init];

length = 1.0;

breadth = 1.0;

return self;}

-(double) volume {

return length*breadth*height; }

@end

Page 30: Introduce IOS operation

Tạo đối tượng và truy suất dữ liệu thành viên

int main( )

{

NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

Box *box1 = [[Box alloc]init];

Box *box2 = [[Box alloc]init];

double volume = 0.0;

box1.height = 5.0;

box2.height = 10.0;

volume = [box1 volume];

NSLog(@"Volume of Box1 : %f", volume);

volume = [box2 volume];

NSLog(@"Volume of Box2 : %f", volume);

[pool drain];

return 0;

}

Volume of Box1 : 5.000000Volume of Box2 : 10.000000

Page 31: Introduce IOS operation

Kế thừa trong Object C Cú pháp:

@interface class-name : base-class Tất cả class trong object c đều kế thừa tử lớp cơ sở NSObject. Sơ đồ phân cấp  foundation framework:

Object c là ngôn ngữ lập trình hướng đối tượng.

Page 32: Introduce IOS operation

#import <Foundation/Foundation.h>@interface Person : NSObject{ NSString *personName; NSInteger personAge;}- (id)initWithName:(NSString *)name andAge:(NSInteger)age;- (void)print;@end@implementation Person- (id)initWithName:(NSString *)name andAge:(NSInteger)age{ personName = name; personAge = age; return self;}- (void)print{ NSLog(@"Name: %@", personName); NSLog(@"Age: %ld", personAge);}@end

Page 33: Introduce IOS operation

@interface Employee : Person{ NSString *employeeEducation;}- (id)initWithName:(NSString *)name andAge:(NSInteger)age andEducation:(NSString *)education;- (void)print;@end@implementation Employee- (id)initWithName:(NSString *)name andAge:(NSInteger)age andEducation: (NSString *)education { personName = name; personAge = age; employeeEducation = education; return self; }- (void)print { NSLog(@"Name: %@", personName); NSLog(@"Age: %ld", personAge); NSLog(@"Education: %@", employeeEducation); }@end

Page 34: Introduce IOS operation

int main(int argc, const char * argv[])

{

NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

NSLog(@"Base class Person Object");

Person *person = [[Person alloc]initWithName:@"Raj" andAge:5];

[person print];

NSLog(@"Inherited Class Employee Object");

Employee *employee = [[Employee alloc]initWithName:@"Raj"

andAge:5 andEducation:@"MBA"];

[employee print];

[pool drain];

return 0;

}

Base class Person ObjectName: RajAge: 5Inherited Class Employee ObjectName: RajAge: 5Education: MBA

Page 35: Introduce IOS operation

Đa Hình Trong Hướng Đối Tượng Object C

#import <Foundation/Foundation.h>

@interface Shape : NSObject

{

CGFloat area;

}

- (void)printArea;

- (void)calculateArea;

@end

@implementation Shape

- (void)printArea{

NSLog(@"The area is %f", area);

}

- (void)calculateArea{

}

@end

Page 36: Introduce IOS operation

@interface Square : Shape

{

CGFloat length;

}

- (id)initWithSide:(CGFloat)side;

- (void)calculateArea;

@end

@implementation Square

- (id)initWithSide:(CGFloat)side{

length = side;

return self; }

- (void)calculateArea { area = length * length; }

- (void)printArea { NSLog(@"The area of square is %f", area); }

@end

Page 37: Introduce IOS operation

@interface Rectangle : Shape{ CGFloat length; CGFloat breadth;}- (id)initWithLength:(CGFloat)rLength andBreadth:(CGFloat)rBreadth;@end@implementation Rectangle- (id)initWithLength:(CGFloat)rLength andBreadth:(CGFloat)rBreadth{ length = rLength; breadth = rBreadth; return self;}- (void)calculateArea{ area = length * breadth;}@end

Page 38: Introduce IOS operation

int main(int argc, const char * argv[])

{

NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

Shape *square = [[Square alloc]initWithSide:10.0];

[square calculateArea];

[square printArea];

Shape *rect = [[Rectangle alloc]

initWithLength:10.0 andBreadth:5.0];

[rect calculateArea];

[rect printArea];

[pool drain];

return 0;

}

The area of square is 100.000000The area is 50.000000

Page 39: Introduce IOS operation

Tính Đóng Gói Dữ Liệu Trong Object C#import <Foundation/Foundation.h>

@interface Adder : NSObject

{

NSInteger total;

}

- (id)initWithInitialNumber:(NSInteger)initialNumber;

- (void)addNumber:(NSInteger)newNumber;

- (NSInteger)getTotal;

@end

@implementation Adder

-(id)initWithInitialNumber:(NSInteger)initialNumber{

total = initialNumber;

return self; }

- (void)addNumber:(NSInteger)newNumber {total = total + newNumber; }

- (NSInteger)getTotal{ return total;}

@end

Page 40: Introduce IOS operation

int main(int argc, const char * argv[])

{

NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

Adder *adder = [[Adder alloc]initWithInitialNumber:10];

[adder addNumber:5];

[adder addNumber:4];

NSLog(@"The total is %ld",[adder getTotal]);

[pool drain];

return 0;

}

The total is 19

Page 41: Introduce IOS operation

9.Mảng

9.1 Mảng NSArray

Cú pháp:

NSArray *tên_mảng;

Type arrayName [ arraySize ];

Ví dụ:

NSArray *mangTen;mangTen=[[NSArray alloc] initWithObject:@”caothang”,@”mauduc”,@”bahoang”,nil];int count = [mangTen count];NSLog(@”So phan tu cua mang %i”,count);NSLog(@”Phan tu thu 1 la: %@”,[mangTen objectAtIndex:1]);

Page 42: Introduce IOS operation

Mảng nhiều chiều:

Khai báo: type name[size1][size2]...[sizeN];

ví dụ : int threedim[5][10][4]; Khởi tạo:

int a[3][4] = {

{0, 1, 2, 3} , /* dòng 1 */ {4, 5, 6, 7} , /* dòng 2 */ {8, 9, 10, 11} /* dòng 3 */};

int a[3][4] = {0,1,2,3,4,5,6,7,8,9,10,11};

Page 43: Introduce IOS operation

10.Chuỗi10.1 Khởi tạo chuỗi:

NSString *tenChuoi = @” Nội dung của chuỗi”;

NSString *message = [NSString stringWithFormat:@"Nôi dung của chuỗi"]; Ví dụ:

NSString *nhom = @”Nhóm 10”;

NSString *detai = [NSString stringWithFormat:@”Tìm hiều về %@”,@”IOS”];

Đối với chuối trong Objective-C phải bắt đầu bằng @. Để kiểm tra giá trị của chuỗi ta dung hàm NSLog.

NSLog(@”%@”,@”Tim hieu objectC”); Đếm số lượng ký tự (chiều dài của chuỗi):

int len=[@”Object -C” lenght];

NSLog(@”Chieu dai cua chuoi la %i”,len);

Page 44: Introduce IOS operation

10.2 Đối tượng NSString: Tạo đối tượng có kiểu là NSString để có thể sử dụng các thao tác lien quan đến chuỗi do

Class NSString cung cấp (ghép chuỗi, cắt chuỗi…) : NSString *str1=@”Objective -C”; Tìm kiếm bên trong chuỗi :

[chuỗi_1 rangeOfString:chuỗi_2] ;//tìm chuỗi 1 có xuất hiện trong chuỗi 2 hay không. Tìm chuỗi và thay thế nó bằng chuỗi khác:

[chuỗi _1 replaceCharactersInRange:NSMakeRange(vi_tri,do_dai) withString:chuỗi_2]; Xóa nội dung bên trong chuỗi:

[chuỗi_1 deleteCharactersInRange: [chuỗi_1 rangOfString:@”string of chuỗi_1”] ; Chèn ký tự vào chuỗi:

[chuỗi_1 insertString:@”string” atIndex:vitri];

[chuỗi_1 appendString:@”string”]; // chèn vào cuối chuỗi 1.

Page 45: Introduce IOS operation

11.1 Categories11.1 Categories

Categories cung cấp cách đơn giản để mở rộng một class đã tồn tại mà không cần truy xuất đến code gốc của nó và không cần tạo ra lớp con.

Cách dùng: import interface section gốc : Khai báo category:

@interface ClassName (CategoryName)

@end -Thực thi class:@implementation ClassName (CategoryName)

{

// code…

}

Page 46: Introduce IOS operation

#import <Foundation/Foundation.h>

@interface NSString(MyAdditions)

+(NSString *)getCopyRightString;

@end

@implementation NSString(MyAdditions)

+(NSString *)getCopyRightString{

return @“Tìm hiểu lập trình IOS"; }

@end

int main(int argc, const char * argv[])

{

NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

NSString *copyrightString = [NSString getCopyRightString];

NSLog(@“Ví dụ Category: %@",copyrightString);

[pool drain];

return 0;

}

Ví dụ Category:Tìm hiểu lập trình IOS

Page 47: Introduce IOS operation

11.2 Class Extensions

Trường hợp đặc biệt cho phép tạo ra category không cần tên.

Cú pháp:

@interface ClassName ()

….

@end

Class extension hữu dụng bởi vì phương thức của nó private.Do đó,class extension sử dụng khi bạn muốn viết class chứa dữ liệu và phương thức chỉ dùng trong class này.

Page 48: Introduce IOS operation

Ví dụ Class Extensions

#import <Foundation/Foundation.h>

@interface SampleClass : NSObject

{

NSString *name;

}

- (void)setInternalID;

- (NSString *)getExternalID;

@end

@interface SampleClass()

{

NSString *internalID;

}

@end

Page 49: Introduce IOS operation

Thực thi class

@implementation SampleClass

- (void)setInternalID{

internalID = [NSString stringWithFormat:

@"UNIQUEINTERNALKEY%dUNIQUEINTERNALKEY",arc4random()%100];

}

- (NSString *)getExternalID{

return [internalID stringByReplacingOccurrencesOfString:

@"UNIQUEINTERNALKEY" withString:@""];

}

@end

Page 50: Introduce IOS operation

Chạy chương trình:

int main(int argc, const char * argv[])

{

NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

SampleClass *sampleClass = [[SampleClass alloc]init];

[sampleClass setInternalID];

NSLog(@"ExternalID: %@",[sampleClass getExternalID]);

[pool drain];

return 0;

} ExternalID: 51

Page 51: Introduce IOS operation

11.3 Protocol

Protocol là danh sách các phương thức để chia sẻ cho nhiều class.Những phương thức được liệt kê trong protocol không có phần thực thi tương ứng.

Khai báo:

@protocol ProtocolName

@required

// Danh sách các phương thức bắt buộc

@optional

// Danh sách các phương thức tùy chọn

@end Thực thi

@interface MyClass : NSObject <MyProtocol>

...

@end

Page 52: Introduce IOS operation

Ví dụ:

#import <Foundation/Foundation.h>

@protocol PrintProtocolDelegate

- (void)processCompleted; // mặc định @required

@end

@interface PrintClass :NSObject

{

id delegate;

}

- (void) printDetails;

- (void) setDelegate:(id)newDelegate;

@end

@implementation PrintClass

- (void)printDetails{ NSLog(@"Printing Details");

[delegate processCompleted]; }

- (void) setDelegate:(id)newDelegate{

delegate = newDelegate; }

@end

Page 53: Introduce IOS operation

Thực thi protocol

@interface SampleClass:NSObject<PrintProtocolDelegate>

- (void)startAction;

@end

@implementation SampleClass

- (void)startAction{

PrintClass *printClass = [[PrintClass alloc]init];

[printClass setDelegate:self];

[printClass printDetails];

}

-(void)processCompleted{

NSLog(@"Printing Process Completed");

}

@end

Page 54: Introduce IOS operation

Tạo đối tượng và gọi phương thức

int main(int argc, const char * argv[])

{

NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

SampleClass *sampleClass = [[SampleClass alloc]init];

[sampleClass startAction];

[pool drain];

return 0;

}

Printing DetailsPrinting Process Completed

Page 55: Introduce IOS operation

12. Property

Property cho phép đinh nghĩa các bộ truy xuất (setter/getter)Þ mục đích của nó giúp cho việc truy xuất đến các biến 1 cách dễ dàng.

Ví dụ:- Định nghĩa trong file .h

@property(<attribute>)type propertyName;- Thực thi trong file .m

@synthesize propertyName;

Page 56: Introduce IOS operation

Các attribute dùng trong property readwrite(mặc định): cho phép đọc và ghi(get/set) read-only: chỉ có thể đọc (get) assign(mặc định) dùng với các kiểu vô hướng: NSString, NSInteger, CGFloat… retain: thường được sử dụng cho đối tượng copy: tạo một bản sao lưu của đối tượng atomic (mặc định) thực hiện đồng bộ hoá nonatomic: ngược lại với atomic.

Page 57: Introduce IOS operation

Cấu trúc của ứng dụng IOS

Page 58: Introduce IOS operation

Cấu trúc ứng dụng IOSSuốt quá trình khởi động,hàm UIApplicationMain

khởi tạo một số đối tượng chính,và bắt đầu chạy ứng dụng.Trái tim của mỗi ứng dụng IOS là đối tượng UIApplication , công việc của đối tượng này là làm cho hệ thống và các đối tượng khác trong ứng dụng trao đổi với nhau một cách dễ dàng linh hoạt .Hình bên chỉ ra những đối tượng phổ biến thường gặp trong hầu hết các ứng dụng của IOS.

Ứng dụng IOS sử dụng công nghệ model-view-controller

Page 59: Introduce IOS operation

Processing events in the main run loop

Main run loop quản lý tất cả các sự kiện có liên quan đến người dùng.Đối tượng UIApplication khởi tạo main run loop vào thời gian khởi động và dùng nó để quản lý các sự kiện và cập nhật nó trên giao diện. The main run loop thực hiện trên luồng chính của ứng dụng.Hành vi đó đảm bảo rằng các sự kiện liên quan đến người sự dụng được sử lý tuần tự theo thứ tự mà họ đã nhận được.

Page 60: Introduce IOS operation

State changes in an iOS app

Hệ thống chuyển ứng dụng của bạn từ trạng thái này đến trạng thái khác để phản ứng lại hành động xảy ra xuyên suốt hệ thống.

Page 61: Introduce IOS operation

Công Cụ Lập Trình Xcode 5

Page 62: Introduce IOS operation

1.Giới thiệu công cụ

Xcode là một IDE dành riêng cho việc phát triển phần mêm trên môi trường MAC và cả IOS.

Đây là một ứng dụng hoàn toàn miễn phí của Apple nhằm hỗ trợ cho các lập trình viên có thể phát triển các ứng dụng và game dành cho hệ sinh thái của Apple.

Cho tới tháng 9/2013, Xcode đã được phát triển tới phiên bản 5.0 mang nhiều tính năng mới mẻ và phù hợp với IOS 7.

Page 63: Introduce IOS operation

2.Các phân vùng chính trên Xcode 5

Xcode gồm 5 phần chính : Debug area: đây là vùng hỗ trợ chương trình trong quá trình debug lỗi Toolbar area: vùng chứa các công cụ tiện ích giúp bạn có thể đơn giản trong việc chạy

debug ứng dụng ,lựa chọn IOS Simulator ,đóng mở các vùng khác… Edit area: vùng để bạn thiết kế giao diện , viết và chỉnh sửa code của chương trình Utility area :vùng này cho phép các bạn chỉnh sửa các tham số ,các giá trị tương đối trên

giao diện ,cũng như cho phép các bạn kéo thả và sử dụng đối tượng sẵn có của Xcode Button,Label,Slider..hay các đoạn code mẫu.

Navigator area: cung cấp cho bạn các nhìn trực quan ,tiện lợi cho việc quản lý ứng dụng,xem thông báo lỗi ,tìm kiếm một đoạn code trong chương trình hay kiểm tra mức độ hoạt động của RAM,CPU…khi chạy ứng dụng…

Page 64: Introduce IOS operation

4. Thao tác trên xcode Tạo mới project rỗng.

Page 65: Introduce IOS operation

Chọn “Create a new Xcode project” ( File > New > Project) ở màn hình chính.

Xcode sẽ mở ra cữa sỗ mới để bạn chọn template cho project của mình.

Page 66: Introduce IOS operation

Một màn hình khác xuất hiện, cho phép bạn đặt tên và tủy chỉnh mở rộng

Page 67: Introduce IOS operation

Xcode mở project ở màn hình workspace:

Page 68: Introduce IOS operation

Những phân vùng chính trên màn hình workspace

Page 69: Introduce IOS operation

Utility area

Page 70: Introduce IOS operation

Navigation area

Page 71: Introduce IOS operation

Editor area

Page 72: Introduce IOS operation

Toolbar area

Page 73: Introduce IOS operation

Debug area:

Page 74: Introduce IOS operation

Chạy ứng dụng trên IOS Simulator Chọn thiết bị trên Scheme pop-up menu trong Xcode toolbar.

Nhấn button run đặt bên góc trên cùng bên trái của Xcode toolbar

Page 75: Introduce IOS operation

Giao diện của IOS Simulator rỗng:

Page 76: Introduce IOS operation

Demo