You are on page 1of 19

Lp trnh iphone

IPHONE - SN PHM LM NN CUC CCH MNG TRONG LNH VC IN THOI THNG MINH IPhone l g ?
IPhone l mt in thoi di ng tch hp v my nghe nhc a phng tin c pht bi Apple. Thit b ny kt hp cc chc nng chnh ca mt s tin ch ph bin in t trong mt thit b duy nht, vi mt giao din c chia s v hi nhp gia chng. Ngoi chc nng chnh ca n nh l mt in thoi di ng, iPhone cn bao gm my nghe nhc, xem video, my nh k thut s, PDA, v l mt b truyn thng Internet. Lch s pht trin ca Iphone : IPhone u tin c cng b bi cu Gim c iu hnh Steve Jobs ca Apple vo ngy 09/01/2007 v pht hnh vo ngy 29/06/2007. IPhone th h th 5, iPhone 4S, c cng b vo ngy 04/10/2011, v pht hnh vo ngy 14/10/2011, hai ngy sau khi pht hnh iOS 5.0, h iu hnh ca Apple cho cc thit b cm tay . iu g to nn s khc bit ca Iphone ? 1. Mn hnh cm ng rng Vi Iphone , mn hnh chnh l in thoi . Mi th c thc hin thng qua mn hnh cm ng 3.5 inch v ngy cng ln hn qua cc phin bn tip theo ca IPhone . 2. Cm ng a im

Iphone chnh l in thoi thng minh u tin s hu chc nng cm ng a im . Ta c th phng to mt trang web , mt bc nh hoc mt tm bn bng cch s dng cc ngn tay .

3. Sensors (B cm bin) Cm bin th nht l gia tc k, khi bn quay ngang in thoi , n s t ng thay i mn hnh hin th theo ch phong cnh. Tnh nng ny l v cng hu ch xem nh ton cnh, video hoc lt qua cc album ca cc bn Cm bin th hai pht hin nh sng xung quanh v iu chnh sng ca mn hnh ph hp tit kim nng lng. Cm bin th ba s v hiu ha mn hnh khi bn hng in thoi v pha khun mt ca bn, v vy bn s khng c quay s trong khi ni chuyn trn thit b. 4. Iphone OS Platform (iOS) I. IPhone s dng h iu hnh c ngun gc t Mac OS .

Cc lp v nn tng ca iOS
1. Tng quan v iOS. iOS (trc y c gi l iPhone OS) l h iu hnh di ng ca Apple. u tin OS ch c pht trin cho iPhone, sau ny c m rng h tr cc thit b khc ca Apple , chng hn nh iPad , iPod iOS bao gm h iu hnh v cc cng ngh m bn s dng chy cc ng dng nguyn bn trn cc thit b, chng hn nh iPad, iPhone, v iPod touch. Mc d chia s mt thnh tu chung v cc cng ngh c bn vi h iu hnh Mac OS X, IOS c thit k p ng nhu cu ca mt mi trng di ng, ni m nhu cu ca ngi s dng hi khc nhau. Nu trc bn pht trin cc ng dng cho Mac OS X, bn s tm thy nhiu cng ngh quen thuc, nhng bn cng s tm thy cng ngh ch c trn iOS, chng hn nh giao din Multi-Touch v h tr gia tc. IOS SDK c cha m, thng tin, v cc cng c bn cn pht trin, kim tra, chy, g li v iu chnh cc ng dng cho iOS. Cc cng c ca Xcode cung cp cc chc nng chnh

sa c bn, bin son, v mi trng g ri cho m ca bn. Xcode cng cung cp im ra mt th nghim cc ng dng ca bn trn mt thit b iOS, v iOS Simulator-mt nn tng m phng mi trng c bn iOS nhng chy trn my tnh Macintosh a phng ca bn. 2. Kin trc ca iOS Kin trc iOS l tng t nh kin trc c bn trong Mac OS X. tng cao nht (top

layer), iOS hot ng nh mt trung gian gia phn cng c bn v cc ng dng xut hin trn mn hnh. Cc ng dng m bn to ra him khi tng tc trc tip vi phn cng c bn. Thay vo , cc ng dng giao tip vi phn cng thng qua mt tp hp cc cc giao din h thng cng c xc nh bo v ng dng ca bn t nhng thay i phn cng. S tru tng ny lm cho n d dng vit cc ng dng lm vic nht qun trn cc thit b vi cc kh nng h tr phn cng khc nhau.

Figure 1-1 Applications layered on top of iOS Nhn ca iOS c da trn nhn ca Mac c bn c tm thy trong h iu hnh Mac OS X. Lp trn cng ca nhn ny l cc lp dch v c s dng thc hin cc ng dng trn nn tng ny.Hnh 1-2 cho thy mt ci nhn tng quan ca cc lp

Figure 1-2 iOS technology layers Cc tng ny cung cp cho bn nhng s la chn khi thc hin m. V d, tng Core OS v Core Services cha cc giao din c bn cho iOS, bao gm c nhng cc chc nng truy cp cc tp tin, cc kiu d liu cp thp, cc dch v Bonjour, cm mng... Cc giao din ny ch yu l da trn ngn ng C v bao gm cc cng ngh nh Core Foundation, CFNetwork, SQLite v truy cp vo cc lung POSIX v cm UNIX . Khi di chuyn vo cc tng trn, bn tm thy cng ngh tin tin hn s dng giao din da trn s kt hp ca C v Objective-C. V d, cc tng Media bao gm cc cng ngh c bn c s dng h tr bn v 2D v 3D, m thanh v video. Lp ny bao gm cng ngh OpenGL ES, Quartz, Core Audio. N cng cha Core Animation, l mt engine cao cp s dng Objective-C to ra cc animation .Trong tng Cocoa Touch, hu ht cc cng ngh u s dng ngn ng Objective-C. Cc nn tng ti tng ny cung cp c s h tng c bn c s dng bi ng dng ca bn. V d, framework Foundation cha cc th vin h tr cc tp hp, vic qun l tp tin, cc x l mng v nhiu hn na. Framework UIKit cung cp cng c trc quan cho cc ng dng ca bn, bao gm cc lp cho cc Views , cc Controls v cc iu khin , qun l cc i tng. Cc framework khc cp ny cung cp cho bn truy cp vo cc thng tin lin lc ca ngi dng v thng tin hnh nh cho n cc chc nng ca gia tc k v cc tnh nng phn cng khc ca thit b. im khi u cho bt k project mi l tng Cocoa Touch v c bit l frameword UIKit. Khi quyt nh nhng cng ngh b sung s dng, bn nn bt u vi cc framework trong cc tng cao cp hn. II.
iOS SDK (Software Development Kit)

- iOS SDK (Software Development Kit) (trc y l iPhone SDK) l mt b pht trin phn mm c pht trin bi Apple Inc v pht hnh vo thng 2 nm 2008 pht trin cc ng dng bn a cho iOS.

1. Lch s ca iOS SDK

Ngy 17 thng 10, nm 2007, Steve Jobs thng bo rng mt b pht trin phn mm (SDK) s c thc hin cho nh pht trin bn th ba trong thng 2 nm 2008. B SDK ny c pht hnh vo ngy 6 thng 3 nm 2008, v cho php cc nh pht trin cc ng dng cho iPhone v iPod Touch, cng nh kim tra chng trn "iPhone simulator". Tuy nhin, ti mt ng dng vo cc thit b ch c th c thc hin sau khi np mt khon ph pht trin chng trnh iPhone, l $ 99,00 USD mi nm .K t khi pht hnh ca Xcode 3.1, Xcode l mi trng pht trin cho cc SDK IOS. cc ng dng iPhone, ging nh h iu hnh Mac OS X, c vit bng ngn ng Object-C, v mt s thnh phn ca mt ng dng c th c vit bng C hoc C + +.

2. Cc phin bn chnh ca iOS SDK

iOS 1.2b1 Beta 1 c pht hnh ngy 6/3/2008 . iOS 2.0 Final c pht hnh ngy 11/7/2008 . iOS 3.0 Final c pht hnh ngy 17/6/2009 . iOS 4.0 Final c pht hnh ngy 21/6/2010. iOS 4.3 Final c pht hnh ngy 9/3/2011 . iOS 5.0 Final c pht hnh ngy 12/10/2011 .

3. Ni dung ca SDK
IOS s dng mt bin th ca nhn XNU trong Mac OS X, chui cng c c s dng pht trin trn IOS cng da trn Xcode. B SDK c th c chia thnh cc phn sau : Cocoa Touch o Cc controls v cc s kin Multi-touch o H tr gia tc o H thng phn cp

o H tr camera Media o OpenAL o m thanh v ghi m o Chi video o Cc nh dng tp tin hnh nh o Quartz o Core Animation o OpenGL ES Core services (Cc dch v chnh) o Dch v mng o C s d liu SQLite o Core Location o Cc lung (threads) Nhn Mac OS X o TCP/IP o Cc socket o Qun l nng lng o File h thng o Bo mt

Cng vi Xcode toolchain, SDK c cha iPhone Simulator , mt chng trnh c s dng m phng ci nhn v cm nhn ca iPhone trn my tnh ca nh pht trin. Nguyn gi l Simulator Aspen, n c i tn cng vi vic pht hnh phin bn Beta 2 ca SDK.

III.

Lp trnh IPhone
1. Cn g c th lp trnh cho IPhone ? My Mac chy phin bn Leopard hoc hn Xcode/SDK ( c th download ti web ca apple )
OOP Programming

Objective C
2. Xcode

Gi cng c pht trin Xcode cho cc nh pht trin phn mm cung cp tt c mi th bn cn to ra cc ng dng tuyt vi cho Mac, iPhone, v iPad.Xcode c tch hp cht ch vi Cocoa v Cocoa Touch frameworks, to ra mt mi trng pht trin mnh m v d s dng tr thnh cc cng c chung c s dng bi Apple sn xut h iu hnh Mac OS X v iOS. B cng c Xcode bao gm Xcode IDE tuyt vi, vi cng c giao din thit k Interface Builder v trnh bin dch tch hp y Apple LLVM. Cc cng c dng c phn tch cng c bao gm, cng vi hng chc cng c pht trin h tr khc.
Xcode IDE

c thit k t gc ln tn dng li th ca cng ngh mi nht ca Apple, Xcode IDE tch hp tt c cc cng c bn cn. Giao din thng nht sut qu trnh chuyn i t son tho m ngun, g li, v thm ch khu thit k giao din ngi dng hp dn, tt c trong cng mt ca s.

Khng gian lm vic ca Xcode l tt c nhng g m bn cn tp trung. Khi bn vit code, Live Issues ngay lp tc s cnh bo bn nhng sai lm v m, hin th mt bong bng tin nhn bn cnh m ca bn bit thm chi tit. Nhn nt Run khi ng ng dng Mac ca bn, hoc ti ln cc ng dng cho thit b th nghim ca bn, v ngay lp tc bt u g li. a con tr chut trn mt bin kim tra gi tr ca n trong thi gian chy, khng bao gi mt v tr ca bn trong trnh son tho. Bng cch lm vic cht ch vi cc nh pht trin cng thng tin web, cc quy nh Xcode mi cc thit b iOS vi mt nhp chut duy nht, an ton c th ng k v lu tr my Mac ca bn hoc ng dng iOS v trc tip c a ln App Store kim duyt.
Apple LLVM Compiler

Trnh bin dch th h tip theo ca Apple - trnh bin dch Apple LLVM, khng c g nhiu hn ngoi vic xy dng ng dng ca bn. Khi bn lm vic, LLVM ca Apple lin tc nh gi nhng g bn g, xc nh nhng sai lm trong tng dng m m Xcode th hin qua Live Issues, v suy ngh trc cch gii quyt sa cha n cho bn. Cc trnh bin dch khc c th cho bn bit nhng g l sai - Apple LLVM c th lm cho n ng.

Dng c cho hiu sut v phn tch hnh vi (Instruments for Performance and Behavior Analysis) Mt th gii cc lp ca Mac OS X hoc ng dng iOS cung cp cho ngi dng mt tri nghim tuyt vi, v iu c ngha l nhiu hn l hnh nh p v thit k trc quan. Cc ng dng ln phi p ng nhanh chng, v gy n tng vi hnh nh ng trn tru , mt m. gip ng dng ca bn tuyt vi, cng c pht trin Xcode bao gm Instruments, mt ng dng tht s c o gip bn theo di tnh trng nghn c chai trong h iu hnh Mac OS X ca bn v cc ng dng iOS .

Cc cng c thu thp d liu nh a, b nh, hoc tnh trng s dng CPU trong thi gian thc, hoc l trn my Mac ca bn hoc t mt iPhone c kt ni t xa. Cc d liu thu thp hin th tr quan, gip d dng xc nh cc khu vc c vn , sau i su vo cc dng vi phm ca cc m.
iOS Simulator

iOS Simulator chy ng dng ca bn theo cch tng t nh mt thit b iOS thc t. V n nhanh chng khi ng v g li, Simulator iOS chnh l mt th nghim hon ho m bo giao din ngi dng ca bn hot ng theo cch bn mun, cc cuc gi mng ca bn l chnh xc, v cc khung nhn thay i mt cch chnh xc in thoi quay ngang hoc dc. Bn thm ch c th m phng cc c ch chm bng cch s dng chut. Simulator l mt b tit kim thi gian tuyt vi. iOS khi

3. Cc loi ng dng c vit trn Iphone


Web application (ng dng web)

o IPhone OS 1.0 yu cu tt c cc ng dng khng phi ca Apple phi da trn web v c thc thi trong trnh duyt web Mobile Safari. Bi v Mobile Safari khng h tr cc plugin nh Adobe Flash hoc Microsoft Silverlight, iu ny c ngha rng tt c cc ng dng ca bn th ba phi c vit bng HTML, CSS, v JavaScript. Phng php ny vn cn mt la chn kh thi hin nay, c bit l cho cc ng dng phi c th truy cp vo mt lot cc thit b phn cng trn in thoi. Native application (ng dng bn a) o Vi vic pht hnh h iu hnh iPhone 2.0 v phn gii thiu SDK iPhone v iTunes App Store, cc nh pht trin c khuyn khch vit cc ng dng bn a cho

iPhone bng cch s dng Objective-C v Xcode. ng dng bn a c bin dch m nh phn c ci t v thc thi trn thit b ca ngi dng. Cc ng dng ny c cp quyn truy cp ng k n cc thit b phn cng, v ch cc ng dng bn a mi c th c phn phi thng qua iTunes App Store. Bi v h iu hnh iPhone chy trn iPod Touch, iPhone, v cc thit b iPad, hu ht cc ng dng c th c xy dng cho tt c cc thit b vi cc bin th m. Hybrid application (ng dng lai) o C th kt hp cc phng php tip cn trn v to ra cc ng dng iPhone c ci t trn thit b ca ngi dng, c vit ch yu trong HTML, CSS v JavaScript, v c pht hnh thng qua iTunes App Store. ng dng nh vy ang ngy cng ph bin nh cc th vin m ngun m nh QuickConnect v nn tng nh PhoneGap, AppCelerator, v rhomobile. 4. Objective C Objective - C l mt ngn ng lp trnh hng i tng thm phong cch ca Smalltalk vo ngn ng lp trnh C. C php l mt s kt hp ca c php C ban u kt hp vi phong cch nhn tin Smalltalk mc d trong cc phin bn mi hn mt s cc phong cch c php ph bin c bao gm lm cho n d dng hn cho cc nh pht trin C tm hiu, s dng, v thch ng vi ngn ng. Ging nh C, bn c nhiu file cho vic thc hin ca mt lp trong Objective-C: mt tp tin header bao gm vic k khai, tru tng ha ca cc lp vi phn m rng .h, v mt file implement vi cc nh ngha v m rng .m... Trong phn ny, nhm chng ti tp trung vo tp tin tiu . V d : y l file header, DotView.h: #import <W3Kit/W3PostScript.h> @interface DotView:W3PostScript {

Point2 dot_position; float dot_radius; } - (float)dotRadius; - setDotRadius:(float)r; - takeDotRadiusFrom:sender; @end Gii thch: # import <W3Kit/W3PostScript.h. Kt hp cc file header ca lp cha, W3PostScript. # import nh #include ngoi tr vic n s khng bao gm 1 tp tin hai ln. @ Interface DotView: W3PostScript {... } ... @ end Khai bo DotView l mt lp con ca W3PostScript, vi cc bin th hin c khai bo gia cc du { }, v cc tin nhn b sung c khai bo trc khi kt thc @. - (float) dotRadius; - setDotRadius: (float) r; - takeDotRadiusFrom: sender; K t '-' gii thiu s khai bo ca mt hm m s c gi n th hin ca lp. Mi tham s u c tn m t ca n (c th c trng cho cc tham s), tip theo l du hai chm. V d : - InsertObject: anObject at: (unsigned int) index; K php p kiu C c s dng khai bo cc i s v kiu tr v. Vic p kiu ny c th c b qua nu i s hoc i tng tr v l kiu id , cc loi i tng tng qut nht.

Trong Objective-C, cc lp cng l cc i tng , v cc thng ip khai bo vi k t '+' thay v '-' s c gi n cc i tng lp ch khng phi l th hin ca n y l file implement ca class, DotView.m, kt thc vi kt thc @ ging nh file header: # Import "DotView.h" @implementation DotView - init { if(![super init]) return nil; // Let x and y initially run between -1 and 1. [self setDrawSize:2.0 :2.0]; [self setDrawOrigin:-1.0 :-1.0]; // Set initial dot position. dot_position.x = dot_position.y = 0.0; return self; } Gii thch: - init to ra mt th hin ca lp DotView, bn thng gi [DotView new], v c hai u khi to mt th hin mi. Tuy nhin, khi l lp con, DotView ch ghi ln mt phn khi to, l cc hm init . C mt s thng bo i tng chun m cc lp phi m bo thc hin ng. Xem file header <objc/Object.h> i km vi trnh bin dch ca bn cho cc tiu chun chung, v phn thit k widget cho cc tiu chun c th ca W3Kit. if ([super init]) return nil;

[self setDrawSize: 2.0: 2.0]; Cc hm gi ca Objective-C c km theo trong du ngoc vung, c chc nng nh cc biu thc C thng thng, v c th c s dng bt c ni no m biu thc C c th. Phn u tin ca hm gi l i tng cn nhn c thng bo (c th l bt k biu hin no ca kiu id). Phn th hai lit k danh sch cc i s, trc l tn m t v du hai chm. Lu rng nil l tng ng vi NULL. dot_position.x = dot_position.y = 0,0; Bin th hin ca i tng c th c truy cp trc tip bng tn. N khng cn thit v cng khng c khuyn khch khi vit self->dot_position.x . return self; Hm -init phi tr li i tng mi c khi to nu thnh cng. Nhn chung, mc d, khi mt hm tr v mc nh kiu id, l truyn thng tr li bn thn th hin . iu ny cho php thc hin cc hm lng nhau, ging nh [[obj msg1] msg2]. 5. MVC Design pattern: Cu trc ca cc ng dng iPhone c da trn m hnh thit k Model-View-Controller (MVC) bi v n mang li nhiu li ch cho cc chng trnh hng i tng theo nhiu cch. Cc chng trnh da trn MVC c xu hng thch ng vi thay i yu cu, ni cch khc, h c nhiu d dng m rng hn so vi cc chng trnh khng s dng MVC. Hn na, cc i tng trong cc chng trnh ny c xu hng c th ti s dng hn v giao din ca n c xu hng c xc nh tt hn. Trong cc mu thit k MVC, Model layer bao gm cc i tng i din cho d liu m ng dng qun l. Cc i tng trong lp ny cn c t chc theo cch c ngha nht cho d liu. Tng tc bn ngoi vi cc i tng model xy ra thng qua mt tp hp c xc nh r cc giao din, c cng vic l m bo tnh ton vn ca d liu trong sut qu trnh.

View layer nh ngha nh dng trnh by v s xut hin ca ng dng. Lp ny bao gm ca s, cc khung nhn ca ng dng , v cc control. Cc khung nhn c th da theo tiu chun ca h thng hoc cc ty chnh do bn to ra. Bn s phi cu hnh nhng khung nhn hin th d liu t cc i tng Model ca bn mt cch thch hp. Ngoi ra, cc i tng khung nhn cn to ra cc thng bo phn ng vi cc s kin v tng tc ngi dng vi d liu . Controller Layer ng vai tr l cu ni gia Model layer v View layer. N nhn c cc thng bo c to ra bi cc View (khung nhn) v s dng chng thc hin nhng thay i tng ng trong Model. Tng t, nu cc d liu trong nhng thay i lp d liu cho cc l do khc (c l v mt s vng lp tnh ton ni b), n s thng bo mt i tng iu khin thch hp, sau cp nht cc khung nhn. 6. Cc control tiu biu trong lp trnh iOS Navigation Bar

Navigation Bar cho php chuyn hng gia cc View v qun l ni dung trong mn hnh Tool Bar

Tool Bar l thanh cng c cha cc iu khin thc hin cc hnh ng lin quan n cc i tng trong mn hnh hoc khung nhn. Tab Bar

Tab Bar cho php ngi dng kh nng chuyn i qua li ci khung nhn , mn hnh. Table View

Table View hin th d liu trong 1 bng gm nhiu dng Text View

Text View hin th v cho php g vn bn Rounded Rect Button

Rounded rectangle button biu din 1 hnh ng c th ca chng trnh . Search Bar

Thanh Search Bar s dng vn bn c nhp t ngi dng s dng trong vic tra cu. Segment Control

Segment Control l tp hp cc segment m mi segment c th c xem nh 1 nt nhn . Slider

Slider cho php ngi dng thc hin iu chnh n mt gi tr hoc qu trnh trong mt lot cc gi tr cho php (c hin th y vi nhng hnh nh ty chnh bn tri v bn phi).

Switch

Switch cho php chn la gia 2 trng thi. Text Field

Activity Idicator Text field cho php ngi dng nhp liu trong 1 dng duy nht . Alert

Alert cho ngi dng bit thng tin quan trng nh hng n vic s dng chng trnh(hoc thit b). Action Sheet

Action Sheet hin th cc la chn cho ngi dng tng tc.

7. Hello IPhone Application To project mi : Bt Xcode , chn File -> New Project -> View-based Application , save project vi tn Hello Iphone

Trong file Hello_IphoneViewController.h :

Trong file Hello_IphoneViewController.m :

Kt qu :

You might also like