tài liệu hướng dẫn xây dựng Ứng dụng ios (iphone/ipad)
TRANSCRIPT
-
2013
Nguyn Anh Tip - Cao Thanh Vng
i Hc Lc Hng
20/11/2013
Ti Liu Hng Dn Xy Dng ng Dng iPhone
-
MC LC
CHNG I CHUN B TRC KHI BT U XY DNG NG DNG ........... 1
1.1 CHUN B H IU HNH MAC OS .................................................................... 2
1.1.1 Lp Trnh ng Dng Iphone Trn Windows .................................................. 2
1.1.2 S Dng Sn Phm Chnh Hng Apple ............................................................ 3
1.1.3 Chy H iu Hnh Mac Os Trn Pc/Laptop Intel/Amd Ti Sao Khng?
....................................................................................................................................... 5
1.2 PHN MM XCODE .................................................................................................. 7
1.2.1 Ci t Thng Qua Bn Ti V T Trang Dnh Cho Developer .................. 8
1.2.2 Ci t Thng Qua Apple Mac Store ............................................................. 10
1.2.3 Ci t T Bn Xcode c Chia S Trn Internet .................................... 11
CHNG II TM HIU XCODE V IOS SIMULATOR ......................................... 12
2.1 TM HIU XCODE 5 ................................................................................................ 13
2.1.1 Gii Thiu V Xcode 5 ..................................................................................... 13
2.1.2 Thao Tc To ng Dng Mi ......................................................................... 16
2.1.3 Tm Hiu Giao Din Xcode V Mt S Tnh Nng ....................................... 20
2.1.4 Thit K Giao Din ........................................................................................... 26
2.1.5 Vit Code ........................................................................................................... 29
2.1.6 Thc Thi V Kim Tra Li Ca ng Dng ................................................... 34
2.2 TM HIU IOS SIMULATOR ................................................................................. 38
2.2.1 Gii Thiu iOS Simulator ................................................................................ 38
2.2.2 Tm Hiu iOS Simulator .................................................................................. 38
CHNG III NGN NG OBJECTIVE-C ................................................................ 48
3.1 GII THIU NGN NG OBJECTIVED-C ........................................................ 49
3.2 KHAI BO BIN - CCH S DNG ..................................................................... 49
3.2.1 Bin ..................................................................................................................... 49
3.2.2 Quy Tc t Tn ............................................................................................... 50
3.3 KIU D LIU .......................................................................................................... 50
-
3.4 PHP TON ............................................................................................................... 51
3.5 CH THCH CODE .................................................................................................. 51
3.6 XUT D LIU RA MN HNH ............................................................................ 52
3.7 FUNCTION ................................................................................................................. 54
3.7.1 nh Ngha ......................................................................................................... 54
3.7.2 Phng Thc Khng C Tham S Truyn Vo ........................................... 54
3.7.3 Phng Thc C 1 Tham S Truyn Vo ...................................................... 55
3.7.4 Phng Thc C Nhiu Tham S Truyn Vo.............................................. 55
3.8 CU TRC IU KIN ........................................................................................... 57
3.8.1 Cu Lnh If ....................................................................................................... 57
3.8.2 Cu Lnh If Else ............................................................................................ 57
3.8.3 Cu Lnh Switch - Case ................................................................................... 58
3.9 Cu Trc Lp .............................................................................................................. 59
3.9.1 Vng Lp For .................................................................................................... 59
3.9.2 Vng Lp While ................................................................................................ 59
3.9.3 Vng Lp Do-While .......................................................................................... 60
3.10 MNG........................................................................................................................ 61
3.10.1 nh Ngha ....................................................................................................... 61
3.10.2 Mng Nsarray ................................................................................................. 61
3.11 CHUI I TNG NSSTRING...................................................................... 62
3.11.1 Khi To Chui ............................................................................................... 62
3.11.2 i Tng NSString ....................................................................................... 63
3.11.3 Tm Kim Bn Trong Chui .......................................................................... 63
3.11.4 Tm Chui V Thay N Thnh Chui Khc ................................................ 64
3.11.5 Xo Ni Dung Bn Trong Chui ................................................................... 64
3.11.6 Ct Chui ......................................................................................................... 65
3.11.7 Chn K T Vo Trong Chui ...................................................................... 66
3.11.8 Chn K T Vo Cui Chui ........................................................................ 66
3.11.8 So Snh Chui ................................................................................................. 67
3.11.9 So Snh Chui Vi K T u V Cui Chui ........................................... 67
-
3.11.10 Chuyn i Hnh Dng Ca Ch................................................................ 68
3.11.11 Chuyn Chui Thnh Dng S .................................................................... 70
CHNG IV MT S THAO TC C BN ............................................................. 72
4.1 APP ICON LOADING SCREEN .......................................................................... 73
4.1.1 App Icon............................................................................................................. 73
4.1.2 Loading Screen .................................................................................................. 75
4.2 THAY I APP NAME ............................................................................................ 76
4.3 N STATUS BAR ...................................................................................................... 78
4.4 BACKGROUND ......................................................................................................... 79
4.4.1 Background Image ............................................................................................ 79
4.4.2 Background Color ............................................................................................ 83
4.5 THM FRAMEWORK ............................................................................................. 84
CHNG V MT S I TNG C BN ............................................................ 86
5.1 I TNG LABEL BUTTON TEXT FIELD ............................................... 87
5.1.1 Gii Thiu .......................................................................................................... 87
5.1.2 V D .................................................................................................................. 90
5.2 KT NI C S D LIU VI SQLITE ............................................................. 94
5.2.1 Gii Thiu .......................................................................................................... 94
5.2.2 Ci t Sqlite Manager Cho Firefox .............................................................. 94
5.2.3 Cu Hnh ng Dng Tng Tc Vi Sqlite ............................................. 95
5.2.4 Cc Hm Trong Sqlite ...................................................................................... 96
5.2.5 V D .................................................................................................................. 99
5.3 S DNG CAMERA IPHONE .............................................................................. 109
5.3.1 Gii Thiu ........................................................................................................ 109
5.3.2 V D ................................................................................................................ 109
5.4 UIIMAGE .................................................................................................................. 113
5.4.1 Gii Thiu ........................................................................................................ 113
5.4.2 Cc nh Dng nh H Tr Trn Iphone ................................................... 114
5.4.3 V D ................................................................................................................ 114
5.5 UIALERT VIEW ...................................................................................................... 121
-
5.5.1 Gii Thiu ........................................................................................................ 121
5.5.2 c im .......................................................................................................... 121
5.5.3 V D ................................................................................................................ 122
5.6 UISLIDER ................................................................................................................. 124
5.6.1 Gii Thiu ........................................................................................................ 124
5.6.2 c im .......................................................................................................... 125
5.6.3 V D ................................................................................................................ 125
5.7 UIWEBVIEW ........................................................................................................... 128
5.7.1 Gii Thiu ........................................................................................................ 128
5.7.2 V D ................................................................................................................ 129
5.8 ACTIVITY INDICATOR VIEW ............................................................................ 132
5.8.1 Gii Thiu ........................................................................................................ 132
5.8.2 V D ................................................................................................................ 132
5.9 ACTIONSHEET ....................................................................................................... 136
5.9.1 Gii Thiu ........................................................................................................ 136
5.9.2 c im .......................................................................................................... 136
5.9.3 V D ................................................................................................................ 137
5.10 MK MAP VIEW ..................................................................................................... 138
5.10.1 Gii Thiu ...................................................................................................... 138
5.10.2 V D .............................................................................................................. 139
5.11 TABLE VIEW CONTROLLER ........................................................................... 143
5.11.1 Gii Thiu ...................................................................................................... 143
5.11.2 V D .............................................................................................................. 143
5.12 SEARCH BAR ........................................................................................................ 147
5.12.1 Gii Thiu ...................................................................................................... 147
5.12.2 V D .............................................................................................................. 148
5.13 TRUYN D LIU GIA CC VIEW .............................................................. 152
5.13.1 Gii Thiu ...................................................................................................... 152
5.13.2 V D .............................................................................................................. 152
CHNG VI HNG DN XY DNG PHN MM .......................................... 157
-
6.1 PHN MM KIM TRA M VIN ........................................................................ 158
6.1.1 Gii Thiu ........................................................................................................ 158
6.1.2 Chun B .......................................................................................................... 158
6.1.3 Cu Trc Phn Mm ...................................................................................... 158
6.1.4 C Ch Vn Hnh ........................................................................................... 159
6.1.5 Tnh Nng ........................................................................................................ 160
6.1.6 Tin Hnh ........................................................................................................ 163
6.2 PHN MM TM KIM A IM XUNG QUANH (PLACESNEARME) .. 220
6.2.1 Gii Thiu ........................................................................................................ 220
6.2.2 Chun B .......................................................................................................... 220
6.2.3 Cu Trc Phn Mm ...................................................................................... 220
6.2.4 C Ch Vn Hnh Ca Placesnearme .......................................................... 221
6.2.5 Tnh Nng ........................................................................................................ 222
6.2.6 Tin Hnh ........................................................................................................ 226
CHNG VII A NG DNG LN IPHONE ...................................................... 385
7.1 GII THIU ............................................................................................................. 386
7.2 QU TRNH CHUN B ........................................................................................ 386
7.3 TIN HNH ............................................................................................................. 388
CHNG VIII MT S VN KHC ................................................................ 396
8.1 XY DNG NG DNG CHO IOS 6 - IOS 6.1 TRN XCODE 5 ................... 397
8.2 XY DNG NG DNG H TR NHIU VERSION IOS ............................. 403
CU HI THNG GP ............................................................................................ 407
PH LC ........................................................................................................................ 411
-
LI M U
Ngy nay xu hng s dng Smartphone v my tnh bng ang gia tng nhanh
chng trn th gii ni chung v Vit Nam ni ring, trong Vit Nam hin ang ng
th hai th gii v tc tng trng smartphone & my tnh bng vi tc tng trng
266%. Android, iOS, Windows Phone l nhng h iu hnh chy trn Smartphone v
my tnh bng ph bin nht th gii: Android 75%, iOS 17,3%, Windows Phone 3,2%.
Ti Vit Nam, theo nghin cu ca IDC, vo thi im qu 2/2013, iOS ang chim t l
1.6% trn tng s thit b phn phi ti Vit Nam, ng th ba sau Android v Windows
Phone.
Cng vi s tng trng ca Smartphone v cc h iu hnh chy trn Smartphone,
s lng ng dng cho cc h iu hnh ngy cng tng, tnh cho n ht nm 2012, s
lng ng dng iOS trn Apple App Store hn 775.000 ng dng v Google Play
c hn 700.000 ng dng.Vi s pht trin quy m ln ca ng dng, nhu cu tm hiu
v lp trnh ng dng cho cc h iu hnh cng tng dn.
Tuy nhin, thc tin cho thy, vic tm hiu cng nh tham gia cc lp hc v lp
trnh ng dng iPhone Vit Nam cn nhiu hn ch v kh khn.Cc lp dy lp trnh
ng dng iPhone ch mi xut hin nhiu trong thi gian gn y, do s lng vn cn
hn ch.
Bn cnh ngun ti liu ting Vit cn t, vic tm hiu v s dng cng c lp
trnh cng nh tham kho ti liu ting Anh v lp trnh ng dng iPhone i hi ngi
tm hiu phi tiu tn mt khong thi gian di cng nh c mt t hiu bit v lp trnh
v kh nng c hiu ting Anh tt. Hn na cc ti liu ting Vit do cc trung tm
ging dy lp trnh iPhone bin son ch lu hnh ni b, ngi tm hiu buc phi chi
mt khon tin tham d lp hc mi c th c c nhng ti liu ny.
Vi mong mun tm hiu cch xy dng ng dng iPhone c thm kin thc mi,
gip ch cho qu trnh lm vic sau khi ra trng cng nh gim bt nhng kh khn cho
ngi mi bt u tm hiu v lp trnh ng dng trn iPhone, nhm nghin cu thc
-
hin nghin cu, xy dng mt s ng dng trn iPhone da trn kin thc tm hiu c,
t tng hp v xy dng thnh ti liu Hng dn xy dng ng dng trn iPhone. Vi
nhng v d ring cho tng i tng, ngi c s d dng nm bt v hiu r cch s
dng, chc nng ca tng i tng khc nhau. Bn cnh ti liu cn km theo hng
dn chi tit tng bc xy dng mt vi ng dng thc t m nhm nghin cu
thc hin c trong qu trnh nghin cu. Hi vng rng ni dung ca ti liu ny s gip
ch phn no cho mi ngi khi bt u tm hiu v lp trnh iPhone, t c th tit
kim bt thi gian cho qu trnh tm hiu.
Mi kin ng gp xin lin lc qua email [email protected] hoc
[email protected]. Rt mong nhn c s gp chn thnh t mi ngi ti liu
hng dn ngy cng hon thin hn.
Nhm nghin cu
Nguyn Anh Tip Cao Thanh Vng
-
CHNG I
CHUN B TRC KHI BT U XY DNG NG DNG
Qu trnh chun b trc khi bt u lp trnh ng dng trn iPhone l qu trnh c
bn m bn phi chun b cho tht k lng. Qu trnh ny s chun b cho bn cc iu
kin cn thit c th thun li bt u tm hiu v lp trnh ng dng trn iPhone.
Trong chng ny, bn s c gii thiu s lc v qu trnh chun b, cc cch thc
bn c c h iu hnh Mac OS v b cng c Xcode. Hai iu kin ny l iu kin
cn thit bt u lp trnh iOS.
Tuy nhin ni dung phn chun b h iu hnh Mac OS ch c gii thiu s
lc vi bn cc cch thc c c mt h iu hnh Mac OS n nh (cch thc ci
t Mac OS trn thit b Intel/AMD) cho vic lp trnh ch khng i sau vo hng dn
c th bi iu thuc v mt lnh vc kin thc khc i hi phi o su tm hiu.
-
2
1.1 CHUN B H IU HNH MAC OS
Vic lp trnh ng dng cho iPhone i hi bn phi s dng b cng c do chnh
Apple cung cp gi l Xcode, v b cng c ny chy trn nn tng ca h iu hnh Mac
OS. Nu bn mun bt u cho vic xy dng ng dng cho iPhone th bn nn bt u
ngay vi vic chun b cho mnh mt chic my chy h iu hnh Mac OS. Sau y
chng ti s gii thiu cho bn mt s cch thc bn c th s hu cho mnh mt h
iu hnh Mac OS ph hp.
1.1.1 Lp Trnh ng Dng Iphone Trn Windows
Nu bn mun lp trnh ng dng cho iPhone, nhng li mun thc hin trn mi
trng Windows c th thao tc thm cc cng vic khc trn mi trng ny, la
chn tt nht cho bn lc ny chnh l s dng mt my o chy h iu hnh Mac OS
lp trnh. Tuy nhin nu bn la chn phng n ny, cu hnh my ca bn phi mnh,
CPU x l tt, v bn nn dnh t nht 2G RAM cho my o hot ng tt hn.
Lm cch no ti c th s hu mt my o chy Mac OS cho ring mnh?
Bn c hai cch c th s hu mt my o chy Mac OS cho mnh.
Cch mt l bn chun b mt a ci Mac OS v phn mm h tr to my o nh
VMWare , Virtualbox sau bn tin hnh ci t bnh thng bng tay. a ci t
Mac OS bn c th mua cc tim bn a phn mm. Hoc bn c th ti v trn mng
mt a ci Mac OS ui .iso ( Thng th trn mng c a ci ui .dmg, bn phi
chuyn i qua ui .iso c h tr tt nht t phn mm to my o).
Cch th hai l bn ti v mt my o hon chnh c ci t sn Mac OS, sau
m ln bng phn mm chy my o l bn c th c mt h iu hnh Mac OS.
Bn nn truy cp vo
Din n Tinh T: www.tinhte.vn/forums/chuyen-de-hackintosh.361/ .
Cng ng Hackinosh: www.facebook.com/groups/hackintoshvietnam/.
-
3
tm hiu thm tin trnh ci t my o, cc vn xy ra trong qu trnh ci.
Ngoi ra bn cng c th tm cc my o chy Mac OS ci t sn ti
Soul Dev Team: http://www.souldevteam.net/ .
1.1.2 S Dng Sn Phm Chnh Hng Apple
Nu gia nh bn c iu kin, bn c th mua ngay cho mnh mt chic my Apple
chnh hng, s dng trn vn tnh nng cng nh s h tr ti a t Apple.
Bn truy cp vo www.apple.com , chn Store, sau la chn Shop Mac n
chuyn mc bn cc sn phm chy Mac OS ca Apple. Ti y bn c th la chn
nhiu loi sn phm khc nhau nh Macbook Air, Macbook Pro, iMac, Mac mini.
Hnh 1.1 Truy cp Store Mac OS
Ty theo s thch v nhu cu, cng nh kh nng ti chnh m bn la chn cho
mnh mt chic my thch hp. Bn c th thanh ton cho Apple v i hng c
chuyn v, hoc tm n cc trung tm bn hng ca Apple gn nh mua. Hoc bn
cng c th truy cp vo a ch www.apple.com/asia/reseller/ tm kim cc a im
bn hng ca Apple gn nht. Vit Nam, bn hy truy cp vo trang
-
4
www.icenter.com.vn c th nhanh chng tm c ca hng bn sn phm ca Apple
gn nht ni bn sng. Vic ny gip bn c th nhanh chng c trong tay mt sn phm
chnh hng Apple, thanh ton tin li m khng phi tn thi gian cho vic chuyn khon
thanh ton cng nh ch i vn chuyn sn phm t nc ngoi v.
Nu mun tit kim thm chi ph bn c th truy cp
www.store.apple.com/us/browse/home/specialdeals/mac tm mua cc gim phm
Refurbished ca Apple vi mc gi thp hn.
Hnh 1.2 Store Refurbished
Nu bn mun mua my chnh hng Apple vi gi r hn na, th vic mua li sn
phm qua s dng l mt gi ng cho bn cn nhc. i vi vic mua li my
qua s dng bn c th vo mt s trang mua bn c cht lng tm mua sn phm ph
hp vi ti tin. Chng hn nh cc trang www.5giay.vn, www.nhattao.com .. l cc
trang vi rt nhiu s chn, cc dng my a dng cng nh mc tin khc nhau, ty theo
nhu cn v iu kin cho php m bn c th tm c mt chic my ng mnh.
-
5
Hnh 1.3 Mua li my c
Nu bn la chn mua my c, phi la chn tht k lng t i my n cu hnh, tt
nht nn chn mua nhng my sn xut trong 1-2 nm gn nht, c bit bn phi kim
tra xem my mnh mun mua c h tr nhng phin bn Mac OS no. V sao phi nh
vy ? Bi v Xcode 5 chy trn Mac OS 8 tr ln, nu bn chn mua my ch h tr Mac
OS 7 tr v trc, th bn khng th ci c Xcode 5 m ch c th s dng cc phin
bn thp hn.
1.1.3 Chy H iu Hnh Mac Os Trn Pc/Laptop Intel/Amd Ti Sao Khng?
Vic ci Mac OS ln chic PC hay laptop ca bn cng l mt phng php tt
va c c h iu hnh Mac OS, va c thm kinh nghim trong qu trnh ci t, v
hn na l tit kim c chi ph. C hai dng ci t hackintosh l ci t t mt bn
c chnh sa sn nh iAtkos ( h tr dng my intel ) hay Niresh (h tr thm dng
my AMD) v ci t t a gc ca Apple (Mac OS Retail) . Dng ci t t a gc ca
Apple i hi bn sau khi ci t phi tin hnh thm nhiu thao tc khc c th c
-
6
c mt h iu hnh Mac OS hon thin, cn i vi bn chnh sa sn th gn nh
khng iu chnh thm nhiu.
Hnh 1.4 iATKOS v Niresh
Bn c hai phng n la chn nu mun chy Mac OS ln my ca mnh: t ci
th cng v thu ngi ci t. Nu bn thu ngi ci t, chi ph thng khong t
100.000 vn n 200.000 vn ty theo yu cu ci t nh th no.
Hnh 1.5 Tm kim Ci t Mac OS cho PC/Laptop
-
7
Vi vic thu ngi ci, bn ch gn bo cu hnh my cho ngi ci t h quyt
nh v cho bn li khuyn. Bi vic ci t Hackintosh ph thuc rt nhiu vo tng
thch phn cng ca thit b vi h iu hnh Mac OS, do khng phi my no cng c
th ci c. Tuy nhin phng n ny gip bn vt v hn, cng nh tit kim c
thi gian hn.
Mt phng n khc l bn t ci. Vi cch la chn ny, bn phi tm hiu v
Hackintosh, cng nh cc lu khi ci t, cc li xy ra v cch khc phc Nu bn
la chn cch ny, bn nn tm hiu mt s din n, hi nhm chuyn v Hackintosh
c thm kin thc, kinh nghim v s tr gip t cng ng. y chng ti gii thiu
cho bn hai a ch uy tn v Hackintosh:
- Chuyn Hackintosh trn Tinh T a ch: www.tinhte.vn/forums/chuyen-
de-hackintosh.361/
- Group Hackintosh We Love Mac a ch:
www.facebook.com/groups/hackintoshvietnam/
Ti y bn s tm c nhiu ti liu hng dn cng nh s gip tn tnh ca
mi ngi, hi vng bn s c mt h iu hnh Mac OS hon chnh.
Bn c bit:
- Phn cng ca my tnh rt quan trng khi quyt nh ci Mac OS ln my tnh thng
thng v khng phi phn cng no cng c th tm c Kext (C th hiu ging nh
Driver cho thit b trn h iu hnh Windows.
- Card VGA Intel Graphic HD 4000 v Intel Graphic HD 3000 c Mac OS h tr Kext
rt tt.
- a phn dng HP Probook h tr tt Hackintosh.
1.2 PHN MM XCODE
Sau khi bn c c h iu hnh Mac OS, vic tip theo bn phi lm trc khi
c th bt u lp trnh ng dng iPhone l ci b cng c lp trnh Xcode do Apple cung
-
8
cp cho cc nh lp trnh ng dng, cc nh lp trnh c th pht trin ng dng cho c
iOS ln Mac OS. Vic ci t Xcode c nhiu cch, ty theo bn chn la cch no ph
hp vi bn thn.
1.2.1 Ci t Thng Qua Bn Ti V T Trang Dnh Cho Developer
Bn truy cp vo trang www.developer.apple.com tin hnh ti phin bn Xcode
mi nht ( hoc cc phin bn khc ty theo nhu cu ca bn).
Hnh 1.6 Ti Xcode t trang Developer
Tip theo bn la chn View Download.
-
9
Hnh 1.7 Chn View Download
Apple s yu cu bn ng nhp ti khon Developer ID tip tc.
Hnh 1.8 ng nhp Developer ID
Sau khi bn ng nhp bng ti khon Developer xong, thc hin theo hng dn,
bn s ti v c phn mm Xcode v tin hnh ci t trn my.
-
10
Vi ti khon Developer ID vi gi 99$ / nm, bn s lun c Apple cp nht thng tin
cng ngh mi, cng nh h tr, s dng trc cc phin bn mi ca Apple nh cc bn
preview iOS, Mac OS, Xcode
1.2.2 Ci t Thng Qua Apple Mac Store
y l cch ph bin nht, v vic ti Xcode trn Apple Store l min ph, v ch cn
bn c mt ti khon Apple ID l c, khng yu cu phi l Developer ID.
Bn ch cn truy cp vo Apple Mac Store v tm kim Xcode, bn s thy kt qu
l phn mm Xcode Free, cng vic by gi l bn ch cn Install v ch i hon tt.
Hnh 1.9 Ci t Xcode qua Apple Mac Store
-
11
Trong App Store bn cng c th tm c nhiu gio trnh, bi ging v lp trnh
ng dng bng Xcode.
1.2.3 Ci t T Bn Xcode c Chia S Trn Internet
i vi cch ci t ny, bn ch cn truy cp internet v tm bn ci t Xcode
c chia s trn mng v ti v ci t trn my ca bn. Tuy nhin bn s mt thi gian
tm kim trn internet tm c bn ci t va , tc ti tt nht.
-
CHNG II
TM HIU XCODE V IOS SIMULATOR
Chng ny s mang n cho bn kin thc v b cng c Xcode cng nh cng c
gi lp h iu hnh iOS l iOS Simulator. Qua nhng kin thc c cung cp, bn s
nm r v giao din, mt s tnh nng, cc button v cng dng ca n trn Xcode v iOS
Simulator. Ngoi ra, bn s c hng dn mt s thao tc c bn khi s dng Xcode,
iOS Simulator t bn s d dng hn trong vic s dng b cng c ny trong qu
trnh lp trnh ng dng iPhone v sau.
-
13
2.1 TM HIU XCODE 5
2.1.1 Gii Thiu V Xcode 5
Phn mm Xcode l b cng c do Apple cung cp cho cc lp trnh vin lp
trnh ng dng cho cc thit b chy h iu hnh ca Apple. Phin bn mi nht hin nay
ca Xcode l bn Xcode 5 trn trang Developer ca Apple.
Hnh 2.1 Phin bn Xcode 5 trn trang Apple
Giao din lm vic ca Xcode gm c 5 phn chnh : Toolbar, Editor area,
Navigator area, Debug area, Utility area.
- Debug area : y l vng h tr bn trong qu trnh debug li ca chng
trnh.
- Toolbar area: vng cha cc cng c tin ch gip bn c th n gin trong
vic chy, debug ng dng, la chn iOS Simulator, ng m cc vng khc
- Editor area: vng bn thit k giao din, vit v chnh sa code ca
chng trnh.
- Utility area: vng ny cho php bn ty chnh cc tham s, gi tr ca cc i
tng trn giao din, cng nh cho php bn ko th v s dng cc i tng
-
14
c sn ca Xcode nh Button, Label, Slider hay cc on code mu ( If,
Switch).
- Navigator area: cung cp cho bn mt cch nhn trc quan, tin li cho vic
qun l ng dng, xem thng bo li, tm kim mt on code trong chng
trnh hay kim tra mc hot ng ca RAM, CPU khi chy ng dng
Hnh 2.2 Giao din Xcode
Xcode cng cung cp cho bn mt ch g li thng minh h tr bn trong vic
pht hin li, cnh bo li v gi thay th khc phc
-
15
Hnh 2.3 Ch g li
Hn th na, km theo Xcode l mt b ti liu hng dn tng bc, chi tit v
tin li nhm h tr ngi dng trong vic lp trnh. Trong qu trnh vit ng dng, nu
bn mun tm hiu thm mt i tng, bn c th s dng ti b ti liu ny c c
hng dn, v d minh ha d hiu.
Hnh 2.4 Ti liu hng dn
-
16
Bn c th xem thm ti liu v Xcode do Apple cung cp ti:
https://developer.apple.com/library/ios/documentation/ToolsLanguages/Conceptual/Xcod
e_Overview/About_Xcode/about.html
2.1.2 Thao Tc To ng Dng Mi
Khi khi ng Xcode ln, giao din hin ra cho php bn to mt project mi,
hoc m li cc project gn y.
Hnh 2.5 Giao din Xcode khi m ln
Ti giao din Xcode, bn c th to mi mt project bng cch chn Create new
project. Ngoi ra bn c th to project mi bng cch chn File > New > Project.
-
17
Hnh 2.6 To mi Project bng Menu
Sau khi chn New Project, Xcode s yu cu bn la chn mt hnh thc cho Project
ny (ng dng cho iPhone hay Mac OS, Single View hay Empty View). Cch n gin
nht l bn chn Single View.
Hnh 2.7 Chn la mu cho project
-
18
Tip theo bn in thm mt vi thuc tnh ca Project nh Product Name,
Organization Name, Company Identifer. Sau bn tin hnh la chn Devices cho
Project (iPhone, iPad hay Universal vit ng dng cho c hai).
Hnh 2.8 in thng tin cho project
Tip theo bn chn ni lu tr Project trn my tnh lu Project v chn Create.
-
19
Hnh 2.9 Chn ni lu Project
Nh vy bn to xong mt Project mi.
Hnh 2.10 Giao din project mi to
-
20
2.1.3 Tm Hiu Giao Din Xcode V Mt S Tnh Nng
2.1.3.1 Navigator Area
Navigator area cho php bn qun l ng dng hiu qu nh qun l cc tp tin,
th mc, qun l cc thng bo li v cnh bo, qun l vic debugC th chia
Navigator area thnh hai phn chnh l Navigator selector bar v Content area.
Hnh 2.11 Giao din Navigator
Trong Navigator selector bar gm mt s button chnh sau:
- Project Navigator ( ): dng qun l cc tp tin ca ng dng nh thm,
xa, gom nhmCc tp tin qun l s c th hin trong Content area.
-
21
- Find Navigator ( ): s dng tm kim mt cch nhanh chng cc string
trong ng dng, tm kim ni dung m rng.
- Issue Navigator ( ): qun l cc thng bo li, cnh bo ca ng dng.
- Debug Navigator( ): theo di qu trnh debug ng dng.
2.1.3.2 Editor Area
Editor area cho php bn thit k giao din, vit v sa code cho ng dng. Khi
bn chn tp tin storyboard bn Content area th Editor area s hin th giao din
Interface Builder cho bn thit k giao din. Tng t vi tp tin .m v .h th Editor area
s hin th ni dung code ca tp tin.
Hnh 2.12 Giao din ng dng
-
22
Hnh 2.13 Giao din code
Editor area cn cho php bn qun l cc i tng trong giao din mt cch chi
tit hn. Trong phn Interface Builder, bn chn button Show Document Outline (
) bn gc tri mn hnh, bn s thy c mt vng qun l phn cp cc i
tng.
-
23
Hnh 2.14 Giao din qun l chi tit
2.1.3.3 Toolbar Area
Toolbar cho php thc hin mt s thao tc mt cch nhanh chng thng qua cc
Button m khng cn phi dng ti Menu. Toolbar gm mt s thnh phn sau:
- Run button ( ): dng chy th ng dng.
- Stop button ( ): dng dng vic chy th ng dng.
- Scheme menu ( ): dng la chn iOS Simulator
thch hp chy ng dng.
- Activity viewer: thng bo trng thi ca ng dng, cng nh hin cc trng
thi li, cnh bo ca chng trnh (nu c).
Hnh 2.15 Activity viewer
-
24
- Editor selector ( ): gm cc button dng iu chnh Editor area
(cho php chia i Editor area ra lm hai hay ch l mt vng duy nht).
- View selector ( ): dng n/hin cc vng Navigator area, Utility
area, Debug area.
Hnh 2.16 Toolbar area
2.1.3.4 Utility Area
Utility area c s dng thay i cc thuc tnh ca i tng bn Interface
Builder, ngoi ra cn c s dng la chn v ko th cc i tng, on code mu
vo Interface Buider v Editor.
Utility area c chia lm 2 vng chnh l Inspector v Library. Inspector pane l
vng cho php bn c s thay i thuc tnh ca i tng. Trn u ca Inspector pane
l Inspector selector bar bao gm cc button h tr bn trong vic iu chnh thuc tnh.
Trn u ca Libarary pane l Libaray selector bar bao gm cc button bn c th
chn la ph hp trong vic s dng cc on code mu, cc i tng.
-
25
Hnh 2.17 Utility area
Trong Inspector selector bar, c hai button bn cn lu l Attribute ( ) v
Quick Help ( ). Quick Help cho php bn tra cu mt cch nhanh chng cc i tng,
hm trong ti liu km theo ca Xcode. Attribute cho php bn thay i cc thuc tnh
ca i tng.
Trong Library selector bar, c mt s button quan trng l Code snippets ( ),
Objects ( ). Code snippets hin th cho bn danh sch cc on code mu bn la
chn s dng trong qu trnh vit ng dng. Objects hin th cc i tng ca Xcode cho
bn s dng thit k giao din ng dng.
-
26
2.1.4 Thit K Giao Din
Giao din ng dng trong Xcode c thit k thng qua Interface Builder, cc i
tng ca Interface Builder c cung cp trong Utility area. tin hnh thit k giao
din, bn ko th i tng trong Utility area vo Interface Builder.
Hnh 2.18 Ko th cc i tng vo giao din
Ti y bn c th iu chnh, sp xp v tr ca cc i tng theo tng thit k
ca bn. Trong Xcode, tp tin bn dng thit k giao din l tp tin .storyboard.
Khi ko th cc i tng vo Interface Builder, bn s d dng xc nh v tr t
i tng sao cho giao din cn i, khng b hin tng lch khi Run ng dng. l
nh vo tnh nng h tr canh chnh ca Xcode thng qua cc ng k t nt mu
xanh.
-
27
Hnh 2.19 Canh chnh v tr theo ng k xanh
Bn c th iu chnh cc thuc tnh ca cc i tng trong Interface Builder thng
qua vng Inspector pane.
-
28
Hnh 2.20 Thay i thuc tnh ca i tng
tm kim i tng mt cch nhanh chng, bn s dng cng c tm kim trong
Library pane.
Hnh 2.21 Tm kim trong Library
-
29
Hn na, nu bn mun tm hiu r hn v i tng , xem v d c th minh
ha, bn c th s dng n b ti liu h tr ca Xcode.
Hnh 2.22 Xem ti liu h tr ca i tng
2.1.5 Vit Code
Phn code ca ng dng thng c vit trong hai tp tin l .h v .m. Tp tin .h
thng c s dng kt ni v khai bo cc i tng ca Interface Builder trc khi
mun s dng cc i tng ny lp trnh. Ngoi ra tp tin .h cn dng khai bo cc
hm s kin trc khi s dng trong tp tin .m. Tp tin .m dng trin khai cc hm s
kin m bn khai bo bn tp tin .h.
-
30
Hnh 2.23 Hai tp tin s dng vit code cho ng dng
kt ni i tng trong Interface Builder vo tp tin .h (nh x), bn nhn kt
hp Ctrl + nhp chut vo i tng v ko th vo tp tin .h.
Hnh 2.24 nh x i tng vo tp tin .h
-
31
Khi hp thoi hin ra, bn la chn loi kt ni cho i tng l Action hoc
Outlet. Hiu mt cch n gin, i tng no m bn s dng hin th thng tin ra
bn ngoi th thuc loi Outlet. i tng no m bn mun vit code khi tng tc
vi i tng s cho ra kt qu m bn mun ( v d bn mun nhn vo Button s
hin Hello World ) th bn s chn loi l Action. Mt i tng c th va l Action,
va l Outlet ty vo ngi vit ng dng quy nh.
Hnh 2.25 La chn kiu nh x
Khi bn vit code, Xcode h tr bn trong vic pht hin li v thng bo cho bn
bng hnh trn mu cha du chm than ti v tr pht hin li. Ngoi ra Xcode cng
c ch cnh bo bng tam gic mu vng cho on code m Xcode cho rng cn ci
thin bn kp thi kim tra li v chnh sa cho hiu qu ( nu cn ).
Xcode cn h tr bn mt ch gi sa li trong qu trnh vit code. V d bn
vit code nhng qun du ; , Xcode s gi cho bn c du ; hon tt on code
hon chnh.
-
32
Hnh 2.26 Gi khc phc li
Xcode ch h tr khc phc mt s li c bn v c php, cc li lin quan khc trong qu
trnh vit code cc bn phi t gii quyt
Trong Library pane, Xcode h tr sn cho bn mt s on code mu trong th vin,
nu bn cn xi on code no, bn ch cn ko th on code t Library pane sang
Editor area.
Hnh 2.27 Mt s code mu s dng
-
33
Nu bn c mt on code, bn mun lu n li ln sau s dng th bn ch cn chn
on code v ko th vo Library pane, t tn cho on code v lu li. Nh vy
ln sau bn mun s dng li, ch vic ko th t Library sang l c.
thun tin cho vic vit code nhanh chng, bn c th bt ch chia i vng
Editor area lm hai, lc ny bn c th xem cng lc c tp tin .h ln tp tin .m. Mun
thc hin iu , trong Toolbar, bn nhp chut vo nt Assistant Editor Button ( ).
Hnh 2.28 Chia i mn hnh Editor tin lm vic
Bn c th ty chnh li font v mu ch to nn mt s thay i, to thm cm
hng mi. Bn chn Xcode > chn Preferences > chn Fonts & Colors, sau bn ty
chn mt nh dng mnh thch.
-
34
Hnh 2.29 Ty chnh Font & Color cho giao din lp trnh code ca Xcode
Trong qu trnh vit chng trnh, bn cng c th s dng nt Quick Help trong
Utility area m ti liu tham kho v tra cu cc hm cng nh xem v d minh ha
cho cc hm.
2.1.6 Thc Thi V Kim Tra Li Ca ng Dng
2.1.6.1 Thc Thi ng Dng
Khi bn mun chy th v a ng dng ln iOS Simulator, bn s dng cc button
chuyn dng trn Toolbar. chy ng dng, trc tin bn phi chn la thit b m bn
mun chy ng dng ln . Bn c th chn chy ln thit b tht hoc trn iOS
Simulator. Trong iOS Simulator, ty theo ng dng ca bn vit cho thit b no m la
chn thit b , v d iPad, iPhone, iPhone Rentina
-
35
Hnh 2.30 La chn thit b iOS Simulator
Sau khi chn la xong phn thit b, bn nhn Run chy chng trnh. Nu mun
dng chng trnh, bn nhn Stop.
Hnh 2.31 Nhn Stop dng chng trnh
-
36
2.1.6.2 Kim Tra Li Ca ng Dng
Vng Debug area h tr bn debug ng dng kim tra tng bc, ngoi ra cn c
vng Debug Navigator cho php bn theo di cc tin trnh, cng nh vic s dng RAM,
CPU.
Hnh 2.32 Vng Debug Navigator
Trong Debug area c cc nt h tr nh bt tt cc Breakpoint, nhm nt h tr thc
thi ng dng tng bc h tr bn debug mt cch chnh xc hn.
Hnh 2.33 Vng Debug area
nh du breakpoint, bn chn v tr cn nh du, v nhp chut vo
Breakpoint gutter tng ng vi v tr .
-
37
Hnh 2.34 nh du Breakpoint
Ngoi ra nu bn mun thu gn 1 on code no , bn c th s dng thanh ng
h tr bn cnh thanh ng t Breakpoint.
Hnh 2.35 Thu gn on code cho d nhn
-
38
2.2 TM HIU IOS SIMULATOR
2.2.1 Gii Thiu iOS Simulator
iOS Simulator l mt phn trong b cng c km theo ca phn mm Xcode. iOS
Simulator cha iOS SDK cho php bn chy trn Mac OS gi lp mi trng iPhone,
iPad nhm phc v cho vic kim th ng dng c vit ra trc khi kim th ng dng
trn thit b tht.
iOS Simualtor cho php bn ci t nhiu thit b iOS khc nhau nh iPhone,
iPhone Rentina, iPad, iPad Rentina.. vi nhiu phin bn iOS khc nhau nh 6.0, 6.1,
7.0. Do bn c th d dng xy dng ng dng ca mnh dnh cho phin bn iOS
mi hoc dng cho c phin bn iOS c.
Vi iOS Simulator, bn c th kim th ng dng ca bn v thit k giao din, v
tnh nng ca ng dng, t c th khc phc cc li pht sinh, ti u ha ng dng
trc khi bn em ng dng ln thit b tht.
Bn c th c thm ti liu iOS Simulator User Guide trn iOS Developer Library tm
hiu thm, cng nh c thm kinh nghim s dng iOS Simulator.
Xem ti :
https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/iOS_Simulator_
Guide/Introduction/Introduction.html
2.2.2 Tm Hiu iOS Simulator
ng dng iOS Simulator c th chy chung vi phn mm Xcode hoc chy c lp
u c. Bn c th tng tc vi iOS Simulator thng qua bn phm, chut nhp d
liu cng nh iu khin cc s kin ca ngi dng.
Phn ny s gip bn tm hiu mt s im c bn ca iOS Simulator h tr bn
tt hn trong qu trnh vit ng dng cho iOS.
-
39
2.2.2.1 Thao Tc C Bn Vi IOS Simulator
Thao tc m v thot ios simulator
m iOS Simulator bn c hai cch. Mt l bn chy ng dng trong Xcode
khi ng iOS Simulator. Vi cch ny bn ch cn chn iOS Simulator ph hp ri
chn Run.
Hnh 2.36 Chn Run m iOS Simulator
Cch th hai l bn chn menu Xcode > chn Open Develop Tool > iOS
Simulator. Khi y iOS Simulator s c khi ng.
-
40
Hnh 2.37 M iOS Simulator trong Menu
Mc d l mt phn trong b cng c ca Xcode, nhng iOS Simulator vn c th
tip tc hot ng d Xcode c b ng chng trnh. Do nu bn mun thot hn iOS
Simulator, bn chn menu iOS Simulator > chn Quit iOS Simulator.
Hnh 2.38 Trong menu chn Quit iOS Simulator
-
41
Xoay mn hnh iOS Simulator
Trong qu trnh chy ng dng trn iOS Simulator kim th, i lc bn cn s
dng ti chc nng xoay mn hnh c th kim tra tnh tng thch ca ng dng vi
tng kiu mn hnh ( ngang, ng) hoc ph hp vi ng dng ca bn ( chng hn
vit ng dng s dng mn hnh ngang). Nu l thit b tht, tht d dng bn c th
xoay mn hnh cho ph hp. Tuy nhin vi iOS Simulator, bn cn phi s dng n chc
nng xoay mn hnh c h tr sn c th xoay mn hnh theo mun.
Bn c th vo menu Hardware > chn Rotate Left nu bn mun xoay qua tri ;
chn Rotate Right nu bn mun xoay qua phi ; chn Shake Gesture nu bn mun
rung nh.
Hnh 2.39 Trong menu chn xoay mn hnh iOS Simulator
n/hin keyboard
Trong qu trnh kim th ng dng, nhiu trng hp bn cn s dng n bn
phm ca iOS, hoc sau khi nhp liu xong trong TextField nhng ng dng ca bn cha
c chc nng n bn phm i, lc bn cn s dng n tnh nng Keyboard ca iOS
Simulator n/hin bn phm. Bn c th vo menu Hardware > chn Simulate
Hardware Keyboard.
-
42
Hnh 2.40 n/Hin keyboard trong iOS Simulator
Ci t v g b ng dng trn iOS Simulator
ng dng trong iOS Simulator c ci t thng qua Xcode. Khi bn chy ng
dng bng Xcode th Xcode s ci t ng dng vo iOS Simulator. Cch thc g b
ng dng cng ging nh trn thit b iOS tht. Bn ch cn nhp v gi chut ( hoc
trackpad ) trn biu tng ca ng dng cho n khi xut hin biu tng du x, bn ch
cn nhp vo du x g b ng dng. Sau khi hon tt ch cn n Home tr li ban
u.
-
43
Hnh 2.41 G ng dng trong iOS Simulator
B sung thm cc phin bn ios v cc thit b ios
iOS Simulator cho php bn c th chy ng dng trn nhiu loi thit b nh
iPhone, iPhone Rentina, iPad, iPad Rentina. ng thi, iOS Simulator cng cho php bn
s dng nhiu phin bn khc nhau ca iOS nh iOS 6.0, iOS 6.1, iOS 7.0.
Mc nh sau khi ci Xcode 5, iOS Simulator km theo c ci t h tr cc
thit b iPhone Rentina, iPad Rentina v iOS 7.0. Nu bn mun iOS Simulator chy cc
thit b iPhone, iPad thng thng v cc phin bn iOS thp hn nh iOS 6.0, iOS 6.1
th bn cn phi ti v ci t thm. Bn vo Xcode > chn Preferences > chn mc
Download. Ti y bn la chn phin bn iOS cn ci t thm v ti v.
-
44
Hnh 2.42 Ti thm cc iOS Simulator phin bn c hoc ti liu
Chp nh mn hnh iOS Simulator
Nu bn mun chp nh mn hnh ca iOS Simulator, bn c th lu li nh chp
mn hnh ca iOS Simulator ln mn hnh ca Mac OS. lm vic , bn chn File >
chn Save Screen Shot, khi nh chp mn hnh s c lu trn mn hnh Mac OS.
Hnh 2.43 Chp nh mn hnh iOS Simulator
-
45
Copy - Paste trong iOS Simulator
Trong iOS Simulator cng h tr bn Copy v Paste mt chui.
Copy mt chui, bn nhp chut vo chui hin th ra nt Select v Select
All .Chn Select nu bn mun la chn mt t no , hoc Select All nu mun chn
tt c.
Hnh 2.44 Chn Select hoc Select All
Di chuyn im u v im cui nh du li chui cn chn > chn Copy
-
46
Hnh 2.45 La chn chui cn copy v chn Copy
Paste mt chui vo iOS Simulator, trc tin bn chn Edit > Paste chuyn
chui c copy t Mac vo iOS Simulator.
Hnh 2.46 Paste t Mac OS vo iOS Simulator
-
47
Sau chn v tr mun Paste chui trong iOS Simulator > Double-click vo v tr
hin ra nt Paste > chn Paste.
Hnh 2.47 Chn Paste
2.2.2.2 Mt S Hn Ch Ca iOS Simulator
Mc d iOS Simulator rt hu ch cho bn kim th ng dng trc khi a ln thit
b tht, tuy nhin bn thn iOS Simulator vn cn mt s hn ch nht nh. i vi phn
cng, iOS Simulator vn cn khim khuyt mt s im nh khng c camera, khng
c microphone Ngoi ra cn mt s framework khng c h tr nh Media
player, Messenger UI Nu nh cc phin bn trc ca Xcode, iOS Simulator cn
h tr c vi cc phin bn ca iOS thp hn nh iOS th trong phin bn ny, iOS
Simulator ch h tr t phin bn iOS 6.0 tr ln.
-
CHNG III
NGN NG OBJECTIVE-C
Mc d Xcode h tr nhiu ngn ng trong vic lp trnh ng dng trong iPhone, nhng
ng vai tr ch yu nht vn l ngn ng Objective-C bi s thn thin, d s dng ca
n. Chng ny s hng dn bn mt s nt c bn ca ngn ng lp trnh Objective-C
vi hi vng bn s nm c s lc cch s dng, c php ca ngn ng ny thun
tin hn trong vic xy dng ng dng. Ni dung chng s trnh by s lc mt s vn
sau ca ngn ng Objective-C:
Khai bo bin
Kiu d liu
Cc php ton
Hm (Function)
Cu trc iu kin
Cu trc lp
Mng
Chui
-
49
3.1 GII THIU NGN NG OBJECTIVED-C
Ngn ng Objective-C c to ra bi Brad Cox v Tom Love vo nm 1980 ti
cng ty Stepstone. T nm 1988, cng ty NeXT Sofware nm gi bn quyn ca ngn
ng Objective-C. H pht trin cc b th vin v c mi trng pht trin cho n c
tn l NEXTSTEP.
n cui thng 12 nm 1996, hng Apple mua li cng ty NeXT Software, mi
trng NEXTSTEP/OPENSTEP tr thnh phn ct li ca h iu hnh OS X m
Apple gii thiu sau ny. Phin bn chnh thc ca mi trng pht trin ny do Apple
gii thiu ban u c tn l Cocoa.
Bng vic h tr sn ngn ng Objective-C, ng thi tch hp mt s cng c pht
trin khc nh Project Builder (y l tin thn ca Xcode) v Interface Builder, Apple
to ra mt mi trng mnh m pht trin ng dng trn Mac OS X. n nm 2007,
Apple tung ra bn nng cp cho ngn ng Objective-C v gi l Objective-C 2.0.
Ngn ng lp trnh Objective-C da trn nn tng ngn ng C nhng b sung thm
h tr lp trnh hng i tng. Objective-C l ngn ng lp trnh s dng vit ng
dng cho Apples iOS v h iu hnh Mac OS.
3.2 KHAI BO BIN - CCH S DNG
3.2.1 Bin
Bin c s dng lu tr cc gi tr ca ng dng. Bin gm c: kiu d liu,
tn bin v gi tr ca bin. C php:
Kiu_d_liu tn_bin ;
hoc
Kiu_d_liu tn_bin = gi_tr_ca_bin;
Trong =: lnh gn gi tr cho bin
VD: int x ; hoc int x = 10;
-
50
3.2.2 Quy Tc t Tn
Quy tc t tn bin:
- Ngn ng Objective-C c phn bit hoa thng.
- Tn bin khng c du ting vit.
- Tn bin khng c khong trng.
- Tn bin khng c bt u bng s.
- Tn bin khng c c cc k t c bit (ngoi tr du gch di _)
- Tn bin khng c t trng vi cc t kho ca ngn ng objective-C. VD:
void, if, static, ...
3.3 KIU D LIU
Kiu d liu s gip trnh bin dch xc nh c loi d liu (s nguyn, s thc,
chui,) m chng ta mun lu tr l g t s cp pht lng b nh tng ng vi
loi d liu m chng ta cn lu tr. Objective-C h tr cc kiu d liu c bn nh sau:
Loi d liu Tn kiu S nh Min gi tr
K t char 1 byte -128 .. 127
unsigned char 1 byte 0 .. 255
S nguyn int 4 bytes - 2147483648 .. 2147483647
unsigned int 4 bytes 0 .. 4294967295
short 2 bytes -32768 .. 32767
unsigned short 2 bytes 0 .. 65535
long 4 bytes -2147483648 .. 2147483647
unsigned long 4 bytes 0 .. 4294967295
long long 8 bytes -9,223,372,036,854,775,808 ..
-
51
9,223,372,036,854,775,807
unsigned long long 8 bytes 0 .. 18,446,744,073,709,551,615
S thc float 4 bytes 0 .. 3.4028235e+38
double 8 bytes 0 .. 1.7976931E+308
Long double 16 bytes 0 .. 1.1897315E+509
Logic BOOL 1 bytes 0, 1; True, False; Yes, No
Bng 3.1 Kiu d liu trong Objectived-C
3.4 PHP TON
Php ton K hiu V d
Cng + A + B
Tr - A B
Nhn * A * B
Chia / A / B
Ly phn d % M % N
Bng 3.2 Cc php ton trong Objectived-C
Lu : php ly phn d ch c dng trn 2 ton hng kiu s nguyn (nu khng
s sinh li c php)
V d: 9 % 5 = 4
3.5 CH THCH CODE
Ch thch mt dng code
-
52
//ghi ch ch trn 1 dng
Ch thch mt on code
/*
Ghi ch trn 1
hay nhiu dng
*/
3.6 XUT D LIU RA MN HNH
Hm NSLog l hm c bit ca h thng, hm ny c thit k dng cho vic
hin th cc thng bo li.
C php:
NSLog(Ni dung in [ , cc_biu_thc]);
Ni dung in V d
Cc k t cn in LacHong University
Cc k t c bit bt u bi du \ \n : xung dng;
\t : k t Tab;
\\ : k t \
\; : k t ;
\ : du
Cc m nh dng gi tr ca biu thc %m_kiu_d_liu
(kiu float l f; kiu int l d hay i)
Bng 3.3 V d cc kiu xut d liu ra mn hnh
VD: Dng hm NSLog hin th chui LacHong University
-
53
Hnh 3.1 Code s dng hm NSLog()
Kt qu hin th:
Hnh 3.2 Kt qu in ra mn hnh
Ghi ch: @: bn trong cp nhy i l chui cn lu log kim tra.
Hnh 3.3 Dng NSLog() xut ra mn hnh mt s.
Kt qu hin th:
Hnh 3.4 Kt qu xut ra ch v s
-
54
3.7 FUNCTION
3.7.1 nh Ngha
Function L tp hp cc dng code, gom thnh 1 khi. Khi code ny c t tn.+
Khi code ny ch c thc thi khi tn khi code c gi.
3.7.2 Phng Thc Khng C Tham S Truyn Vo
Khai bo:
- (kiu_hm) tn_hm
{
//cc cu lnh
[return [biu_thc];]
}
Trong :
- Du - i din cho loi phng thc m ta phi gi n thng qua i tng
ca lp cha ng phng thc .
- Kiu hm: l kiu ca trong lnh return.
- Tn hm: do chng ta t ngh ra
VD:
Hnh 3.5 Hm HelloWorld
Gi hm:
-
55
Hnh 3.6 Xut ra mn hnh HelloWorld
Trong self l lp hin ti c cha phng thc helloWorld.
3.7.3 Phng Thc C 1 Tham S Truyn Vo
Khai bo:
- (kiu_hm) tn_hm : (kiu_d_liu)tn_tham_s
{
//cc cu lnh
[return [biu_thc];]
}
VD:
Hnh 3.7 Hm HelloWorld vi tham s truyn vo
Gi hm:
Hnh 3.8 Gi hm HelloWorld
3.7.4 Phng Thc C Nhiu Tham S Truyn Vo
Khai bo:
-
56
- (kiu_hm) tn_hm : (kiu_d_liu)tham_s_1 [m_t]: (kiu_d_liu)tham_s_2
{
//cc cu lnh
[return [biu_thc];]
}
Trong
- du hai chm : c dng ngn cch gia cc tham_s.
- [m_t]: c th c hoc khng, dng m t cho tn tham s.
VD:
Hnh 3.9 Hm cng hai s
Trong
- a: l tham s th 1.
- b: l tham s th 2.
Gi hm:
Hnh 3.10 In kt qu hm cng
Trong 1 v 2 l cc i s c truyn vo hm congHaiSo.
-
57
3.8 CU TRC IU KIN
3.8.1 Cu Lnh If
C php
if ( iu_kin )
{
//Cng vic 1
}
Lu : iu kin l mt cu hi m cu tr li l YES hoc NO, Cng vic 1 s
c thc hin nu iu kin l YES.
V d:
- if (a > b) a c ln hn b khng?
- if (a >= b) a c ln hn hoc bng b khng?
- if (a < b) a c nh hn b khng?
- if (a
-
58
//Cng vic 2
}
3.8.3 Cu Lnh Switch - Case
C php
switch ( biu_thc)
{
case hng_1: [cng_vic_1]
case hng_2: [cng_vic_2]
...
case hng_n: [cng_vic_n]
default: [cng_vic_n+1]
}
Trong
- Biu thc v hng kiu s nguyn
- Lnh break thot khi switch
VD:
-
59
Hnh 3.11 Cu trc Switch
3.9 Cu Trc Lp
3.9.1 Vng Lp For
C php
for (biu_thc1; biu_thc2; biu_thc3)
{
//Cng vic
}
VD:
Hnh 3.12 Vng lp For
3.9.2 Vng Lp While
C php:
-
60
while (iu_kin_lp)
{
//Cng vic
}
Trong :
- Khi cn ng th cn thc hin . Vng lp kt
thc khi sai.
VD:
Hnh 3.13 Vng lp While
3.9.3 Vng Lp Do-While
C php:
do {
//Cng vic lp
} while(iu_kin_lp)
Trong :
- Thc hin cng vic t nht 1 ln, v lp li cng vic khi l
ng.
VD:
-
61
Hnh 3.14 Vng lp Do - While
3.10 MNG
3.10.1 nh Ngha
Mng l 1 tp hp nhiu bin nh c cng kiu, gi l kiu phn t ca mng, c
cp pht nhng v tr lin tc trong b nh.
Mi phn t (bin nh) trong mng c xc nh da trn tn mng v cc ch s
xc nh v tr ca phn t trong mng.
Ch s phn t ca mng l cc s nguyn khng m.
3.10.2 Mng Nsarray
S dng i tng NSArray khi to mng.
C php:
NSArray *tn_mng;
VD:
NSArray *mangTen;
khi to gi tr cho cc phn t trong mng ta s dng hm
VD:
-
62
Hnh 3.15 S dng NSArray
Trong
- hm : m s phn t trong mng.
- alloc: cp pht vng nh cho mng mangTen.
- %@: M kiu d liu i vi kiu chui NSString trong Objective-C.
- objectAtIndex: ly ra phn t v tr index.
Kt qu
Hnh 3.16 Kt qu s dng NSArray
3.11 CHUI I TNG NSSTRING
3.11.1 Khi To Chui
i vi chui trong Objective-C phi bt u bng @
Hnh 3.17 Khi to chui
kim tra gi tr ca chui ta dung hm NSLog
-
63
Hnh 3.18 Kim tra gi tr chui
m s lng k t (chiu di ca chui)
Hnh 3.19 m s lng k t
3.11.2 i Tng NSString
To i tng c kiu l NSString c th s dng cc thao tc lien quan n
chui do Class NSString cung cp (ghp chui, ct chui)
Hnh 3.20 i tng NSString
3.11.3 Tm Kim Bn Trong Chui
Dng hm rangeOfString tm chui str1 c xut hin trong chui str2 khng.
Hnh 3.21 Tm kim bn trong chui
-
64
Kt qu
Hnh 3.22 Kt qu tm kim
3.11.4 Tm Chui V Thay N Thnh Chui Khc
Dng hm replaceCharactersInRange thay i chui thnh chui khc.
Hnh 3.23 Thay i k t trong chui
Kt qu:
Hnh 3.24 Kt qu thay i k t
3.11.5 Xo Ni Dung Bn Trong Chui
Dng hm deleteCharactersInRange xa mt ni dung bn trong chui.
Hnh 3.25 Xa ni dung trong mt chui
Kt qu
-
65
Hnh 3.26 Kt qu sau khi xa ni dung
3.11.6 Ct Chui
Ct chui c gii hn s lng k t, ly t k t th n.
Hnh 3.27 Ct chui t v tr n
Kt qu
Hnh 3.28 Kt qu ct chui t v tr n
Ly tt c k t cn li, tnh t k t th n.
Hnh 3.29 Ly cc k t cn li t v tr n
Kt qu
Hnh 3.30 Kt qu ly cc k t cn li t v tr n
-
66
Tch chui thnh cc phn nh
Hnh 3.31 Tch chui thnh cc phn nh
Kt qu
Hnh 3.32 Kt qu tch chui
3.11.7 Chn K T Vo Trong Chui
Dng hm insertString chn k t hoc mt chui vo chui.
Hnh 3.33 Chn k t vo chui
Kt qu
Hnh 3.34 Kt qu chn k t vo chui
3.11.8 Chn K T Vo Cui Chui
Dng hm appendString chn k t vo cui chui.
-
67
Hnh 3.35 Chn k t vo cui chui
Kt qu
Hnh 3.36 Kt qu chn k t vo cui chui
3.11.8 So Snh Chui
Dng hm isEqualToString so snh hai chui.
Hnh 3.37 So snh hai chui
Kt qu
Hnh 3.38 Kt qu so snh hai chui
3.11.9 So Snh Chui Vi K T u V Cui Chui
Dng hm hasPrefix v hasSuffix so snh vi k t u chui, k t cui chui.
-
68
Hnh 3.39 So snh vi k t u, k t cui
Kt qu
Hnh 3.40 Kt qu so snh vi k t u chui, k t cui chui
3.11.10 Chuyn i Hnh Dng Ca Ch
Vit hoa ch u.
Hnh 3.41 Vit hoa k t u
Kt qu
-
69
Hnh 3.42 Kt qu vit hoa k t u
Tt c vit thng.
Hnh 3.43 Vit thng tt c k t
Kt qu
Hnh 3.44 Kt qu vit thng cc k t
Tt c vit hoa.
Hnh 3.45 Vit hoa tt c k t
Kt qu
Hnh 3.46 Kt qu vit hoa cc k t
-
70
3.11.11 Chuyn Chui Thnh Dng S
Chuyn thnh s nguyn
Hnh 3.47 Chuyn thnh s nguyn
Kt qu
Hnh 3.48 Kt qu chuyn thnh s nguyn
Chuyn thnh NSInteger
Hnh 3.49 Chuyn thnh NSInteger
Kt qu
Hnh 3.50 Kt qu chuyn thnh NSInteger
Chuyn thnh float
-
71
Hnh 3.51 Chuyn thnh float
Kt qu
Hnh 3.52 Kt qu chuyn thnh float
Chuyn thnh s double
Hnh 3.53 Chuyn thnh double
Kt qu
Hnh 3.54 Kt qu chuyn thnh double
-
CHNG IV
MT S THAO TC C BN
Trc khi bt u lp trnh ng dng trn iPhone, ngoi vic bn tm hiu v
Xcode v iOS Simulator, bn cn phi tm hiu thm mt s thao tc c bn trong lp
trnh iOS. Hiu bit v cc thao tc c bn ny s b tr cho bn trong qu trnh tm hiu,
cng nh l bi hc v lng trc khi i su vo tm hiu cc i tng c bn trong
Xcode chng sau. Ni dung chng ny gm mt s thao tc c bn nh:
Thay i icon ca ng dng
Thay i mn hnh khi ng dng va c m ln
Thay i tn ng dng khi tn c qu di
Ty chnh background
Thm mi mt framework
n thanh trng thi status bar
-
73
4.1 APP ICON LOADING SCREEN
Phn ny s hng dn bn cch hin th cng nh to icon, background image,
loading screen cho ng dng ca bn. App icon, background image, loading screen cho
ng dng ca bn cn da theo kch thc quy nh ca Apple v nn nh dng PNG.
Bn c th tham kho thm kch thc chun y
https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/IconM
atrix.html#//apple_ref/doc/uid/TP40006556-CH27-SW1.
4.1.1 App Icon
App icon l biu tng ca ng dng s hin th ra mn hnh iPhone sau khi ng
dng c ci t, ng thi icon ca ng dng cng hin th ln App Store khi bn em
ng dng ca mnh ln App Store. C hai loi icon l icon dnh cho ng dng trn iPhone
v icon dnh cho ng dng trn App Store. App icon cho iPhone Rentina l 120x120,
App icon cho App Store l 1024x1024.
Hnh 4.1 Icon
Sau khi chun b c hnh nh vi kch thc ph hp, trong phn thng tin ca
Project, bn ko xung phn App icon v ko cc icon chun b sn vo ng v tr ca
icon.
-
74
Hnh 4.2 Ko th icon vo v tr
Bn tin hnh chy th ng dng trn iOS Simulator s thy icon ca ng dng.
Hnh 4.3 Icon trn iOS simulator
-
75
4.1.2 Loading Screen
Loading Screen l hnh nh m khi chy ng dng ln bn s thy n, ty theo tc
ca ng dng m thi gian hin th Loading Screen nhanh hoc chm khc nhau.
chun b cho Loading Screen bn cn chun b trc hnh nh dng PNG, kch thc
640x1136 (iPhone 5 tr ln), 640x960 (iPhone 4).
Hnh 4.4 Chun b Background
Sau khi chun b xong hnh nh, trong phn Lauch Image, bn ko th hnh nh vo
Xcode cho ng v tr.
Hnh 4.5 Ko th background image vo Lauch Image
-
76
4.2 THAY I APP NAME
App Name l tn ca ng dng hin th bn di App icon trn mn hnh iPhone.
Nhiu trng hp v tn ng dng qu di nn khng th hin th ht trn mn hnh
iPhone, do bn cn phi i tn ng dng li cho ph hp, ngn gn c th hin
c tn ng dng bn di icon, nh vy ng dng s c tnh thm m hn. khc
phc trng hp ny, bn cn phi thay i li App Name. Bn truy cp tp tin .plist v
sa i Bundle Display Name thnh tn mi ca ng dng.
Hnh 4.6 Truy cp tp tin .plist
-
77
Hnh 4.7 Sa i Bundle display name
Sau khi hon tt, bn chy ng dng trn iOS Simulator xem kt qu.
Hnh 4.8 Thay i tn trn iOS Simulator
-
78
4.3 N STATUS BAR
Vic n status bar cho php bn chy ng dng ca mnh ton mn hnh m khng
phi thu nh mt phn giao din dnh ch cho status bar. Trc tin bn chn tp tin
.plist trong project, sau bn thm mt dng mi.
Hnh 4.9 Thm dng mi
Trong danh sch la chn ca dng mi thm vo, bn la chn Status bar is
initially hidden v tr v gi tr l yes.
Hnh 4.10 Chn gi tr Yes
-
79
Chy ng dng trn iOS Simulator xem kt qu.
Hnh 4.11 Thanh trng thi Status bar mt
4.4 BACKGROUND
4.4.1 Background Image
Hng dn ny s hng dn bn to v s dng mt hnh nh lm hnh nn cho
ng dng ca bn. Trc tin bn cn phi chun b mt tm nh lm hnh nn. Kch
thc ca tm nh ny ging nh hnh nh trong Loading Screen: nh dng PNG, kch
thc 640x1136 (iPhone 5 tr ln), 640x960 (iPhone 4).
-
80
Hnh 4.12 Background Image
Sau khi chun b xong hnh nh lm background cho ng dng, bn chp hnh
nh vo trong project.
Hnh 4.13 Chp hnh nh vo Project
-
81
Tip theo bn t Utility area, bn ko th i tng UIImage View vo Interface
Builder, iu chnh kch thc UIImage View cho va vi mn hnh.
Hnh 4.14 Ko th UIImage View vo Project
Trong Inspector selector pane > Attributes inspector, bn tm n mc Image
View > chn Image > la chn hnh nh bn mun lm background.
-
82
Hnh 4.15 La chn hnh nh lm background
Kt qu.
Hnh 4.16 Thay i background bng image
-
83
4.4.2 Background Color
Ngoi vic s dng hnh nh lm background cho ng dng, nu bn yu thch s
n gin, bn c th to background bng cch dng mt mu m bn a thch. Trong
Inspector selector pane, bn chn Attributes inspector, tm n phn Background.
Hnh 4.17 Attributes inspector
Ti y bn cho hin ra bng mu chn la vi nhiu mu khc nhau, hy la
chn cho mnh mt mu ph hp, nu mun nhiu mu hn c th chn Other.
Hnh 4.18 Chn mu
-
84
Sau khi chn xong mu th background s i mu vi mu bn la chn.
Hnh 4.19 Background thay i
4.5 THM FRAMEWORK
Mc d Xcode h tr nhiu Framework h tr cho cc nh pht trin ng dng, tuy
nhin ch mt s framework c bn c thm vo khi to project, cc framework cn li
th khi vit ng dng, bn phi t thm vo c th s dng framework . tin hnh
thm mt framework, trong giao din General ca Project, bn ko xung ti mc Link
Frameworks and Libraries.
Hnh 4.20 Link Frameworks and Libraries
-
85
Bn nhp chut vo biu tng du cng m ra bng danh mc cc framework
m Xcode h tr.
Hnh 4.21 Chn Framework
Sau bn la chn framework m bn mun thm vo project ri nhn Add.
Hnh 4.22 chn Add
-
CHNG V
MT S I TNG C BN
Chng ny trnh by mt s i tng c bn thng c s dng vit ng
dng cho iOS. Qua chng ny, bn c th nm c chc nng cng nh cch s dng
mt s i tng c bn, t c th vn dng vo vit ng dng. Do kh nng ca
ngi vit cn gii hn nn s i tng c gii thiu trong chng ny vn cn hn
ch. Bn c th tm hiu thm nhiu i tng khc, tm hiu su hn tng i tng
bng cch truy cp vo hng dn ca Apple cho ngi lp trnh a ch sau:
https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/UIKit
UICatalog/index.html
-
87
5.1 I TNG LABEL BUTTON TEXT FIELD
5.1.1 Gii Thiu
5.1.1.1 i Tng Label
Label dng hin th mt ni dung l ch/cu/on vn c tnh c nh t thay i.
Hnh 5.1 Label
Label cho php ngi dng thay i mt s thuc tnh hin th ni dung ra giao
din cho ph hp nh ty chnh mu ch, font v kch thc, canh tri/gia/phi hay cho
ni dung ca label xung dng.
Hnh 5.2 Thuc tnh ca Label
-
88
5.1.1.2 i Tng Button
Button c th c thit k hin th ch hoc hin th theo hnh nh, thng c s
dng ngi dng tng tc vi ng dng nhm to ra mt s kin no ca ng
dng. Chng hn bn nhp tn ca bn vo text field, bn mun khi ngi dng chm vo
button s hin tn bn ra mn hnh.Lc ny button s c thit k nm bt s kin khi
ngi dng chm vo, v thc hin chc nng hin th tn bn ra mn hnh.
Hnh 5.3 Button
Vi button, bn c th la chn mt s nh dng button c sn, hoc ty chn mt
dng button khc theo bn. Khng nhng th bn cn c th ty chnh font ch, mu
ch, mu nn ca button hoc thay th button theo m hnh nh button c thit k
trc.
-
89
Hnh 5.4 Thuc tnh ca Button
5.1.1.3 i Tng Text Field
i tng Text field thng c s dng ngi dng nhp d liu u vo cho
ng dng. Chng hn nh bn vit chng trnh tnh tng hai s, th bn s dng Text
field ngi dng nhp vo hai s cn tnh tng, v bn s s dng gi tr nhp vo ca
Text field tnh ton v hin th kt qu cho ngi dng.
Hnh 5.5 Text Field
Text field cho php ty chnh canh l tri/gia/phi, ty chnh font ch v kch
thc ch trong Text field. Hn na, bn c th ty chnh hnh dng ca Text field, cng
nh nh dng ni dung gi cho ngi dng (placeholder).
-
90
Hnh 5.6 Thuc tnh ca Text Field
5.1.2 V D
Trong phn v d ny s hng dn cc bn vit mt ng dng nh hin th tn
ca bn ra mn hnh. ng dng s c mt label, mt button, mt text field. Bn s nhp
tn bn vo text field, sau chm vo button, label s hin th ni dung m bn nhp
vo text field trc .
- To ng dng c tn l Label-Button-TextField.
- Thit k giao din cho ng dng gm mt lable, mt button, mt text field.
- nh x cc i tng vo tp tin .h.
- Vit code cho s kin khi ngi dng chm vo button.
Bc 1: To project mi.
-
91
Hnh 5.7 To New Project
Hnh 5.8 Chn ni lu project
-
92
Bc 2: thit k giao din
Hnh 5.9 thit k giao din
Bc 3: nh x i tng.
Hnh 5.10 nh x i tng
-
93
Hnh 5.11 nh x i tng (tt)
Bc 4: vit code cho button.
Hnh 5.12 vit code cho button
Bc 5: chy th
-
94
Hnh 5.13 chy th ng dng
5.2 KT NI C S D LIU VI SQLITE
5.2.1 Gii Thiu
SQLite l mt h qun tr c s d liu c th chy hon ton c lp m khng cn
n server. SQLite thng c ngi lp trnh s dng lu tr c s d liu khi vit
ng dng cho cc thit b ca Apple. Cc lnh truy vn trn SQLite s dng cc lnh truy
vn ca SQL (v d SELECT, UPDATE, CREATE). Vic qun l SQLite rt n gin,
bn ch cn qun l thng qua mt plugin ca FireFox l SQLite Manager.Bn c th tm
hiu thm ti http://www.sqlite.org.
5.2.2 Ci t Sqlite Manager Cho Firefox
ci t plugin qun l SQLite cho Firefox, bn vo phn Addon ca trnh duyt
Firefox v tm plugin SQLite Manager ri Add to Firefox.
-
95
Hnh 5.14 Addon SQLite
Sau khi ci t xong, trong phn Tool bn s thy nh hnh.
Hnh 5.15 SQLite Manager trong Tool
5.2.3 Cu Hnh ng Dng Tng Tc Vi Sqlite
ng dng c th thao tc vi c s d liu ca SQLite, bn cn b sung thm th
vin h tr vo project. Trong phn Build Phase, mc Link to Library, bn thm vo th
vin libsqlite3.dylib vo project.
Hnh 5.16 Thm framework h tr SQLite
-
96
5.2.4 Cc Hm Trong Sqlite
Trong SQLite c mt s hm c bn cho php bn tng tc d dng vi c s d
liu.
- sqlite3_open(): m mt kt ni n tp tin sqlite. Nu tp tin ny cha c, h
thng s t ng to ra.
- sqlite3_close(): ng kt ni n sqlite.
- sqlite3_prepare_v2(): khi to cu lnh truy vn SQL thc thi.
- sqlite3_step(): thc thi lnh truy vn c to bi hm sqlite3_prepare_v2().
- sqlite3_column_(): tr v kt qu d liu t cu truy vn SQL, vi kiu
d liu c khai bo trong (thng l text, bytes, int, int16).
- sqlite3_finallize(): xo cu lnh truy vn SQL c khi to bi hm
sqlite3_prepare_v2() trong b nh.
Bn c th tham kho thm mt s hm khc ti: www.sqlite.org/c3ref/funclist.html
5.2.4.1 Khi To i Tng Sqlite
Trc khi tng tc vi c s d liu SQLite, bn cn phi to i tng dng ny
bng cch khai bo mt bin c kiu sqlite3 trong tp tin .h.
Hnh 5.17 Khai bo sqlite3
5.2.4.2 Kt Ni Hoc To Database
Dng hm sqlite3_open() m kt ni n c s d liu sqlite.
Hnh 5.18 Hm sqlite3_open
Nu tp tin ny cha c th s t ng c to.
-
97
Filename: l ng dn n tp tin sqlite. Nu tn database c du ting vit th cn
chun ho li theo dng UTF-8 trc khi truyn vo.
S dng bin SQLITE_OK kim tra trng thi tr v ca vic m kt ni n
database c thnh cng hay khng.
5.2.4.3 Khi To V Thc Thi Lnh Truy Vn
Cu lnh truy vn c khi to v lu tr vo i tng sqlite_stmt() v truyn vo
hm sqlite_prepare_v2() thc thi.
Hnh 5.19 khai bo i tng sqlite_stmt
Hnh 5.20 Thc thi i tng sqlite_stmt trong sqlite3_prepare_v2
Cu lnh SQL c thc hin bi cc lnh sau:
Hnh 5.21Thc hin cu lnh SQL ly kt qu tr v
-
98
Trong cu lnh sqlite3_step() s tr v cc dng nh sau:
- Nu cu lnh sql dng INSERT, DELETE, UPDATE, CREATE th tr v
kt qu c dng l SQLITE_OK bo tnh trng c thc thi c hay khng.
- Nu cu lnh slq dng SELECT s tr v kt qu c dng l SQLITE_ROW, l
tp hp cc hng d liu c ly t database.
5.2.4.4 Truy Xut D Liu Database
Khi to cu lnh truy vn.
Hnh 5.22 Khi to cu lnh truy vn
Bc tch d liu ly c.
Hnh 5.23 Tch d liu ly c
5.2.4.5 ng Kt Ni Database
Sau khi hon tt qu trnh tng tc c s d liu, bn nn ng li kt ni c s d
liu c
Hnh 5.24 ng kt ni c s d liu
-
99
5.2.5 V D
Bc 1: khi ng firefox, vo SQLite Manager
Hnh 5.25 Truy cp SQLite Manager
Bc 2: to mt c s d liu mi tn l Count.
Hnh 5.26 To CSDL mi
Bc 3: To mt table mi
-
100
Hnh 5.27 To table
Hnh 5.28 Khai bo thuc tnh cho Table
Bc 4: nhp d liu
-
101
Hnh 5.29 Nhp d liu
Hnh 5.30 Kt qu
Bc 5: to project mi sqlite
-
102
Hnh 5.31 To Project mi
Hnh 5.32 in thng tin Project
Bc 6: thit k giao din
-
103
Hnh 5.33 Thit k giao din
Bc 7: thm th vin vo project.
Hnh 5.34 Thm th vin
-
104
Hnh 5.35 Sau khi thm th vin
Bc 8: nh x i tng
Hnh 5.36 nh x i tng
Bc 9: Thm tp tin sqlite vo project
-
105
Hnh 5.37 Thm file mi
Hnh 5.38 Add
Bc 10: thm th vin sqlite3.h vo project, khai bo i tng sqlite3 v nsstring
-
106
Hnh 5.39 Kt qu nh x
Bc 11: vit code trong hm View Didload ly ng dn ti tp tin sqlite.
Hnh 5.40 Vit code View Didload
Bc 12: vit code cho s kin Click
Khai bo i tng lu ng dn database.
-
107
Hnh 5.41 Khai bo i tng lu ng dn
Hnh 5.42 Lu ng dn vo i tng
Khai bo i tng statment
Hnh 5.43 Khai bo i tng sqlite3_stmt
Vit lnh truy xut d liu
Hnh 5.44 Lnh truy xut d liu
Khai bo i tng lu tr cu truy vn
Hnh 5.45 Khai bo i tng lu cu truy vn
-
108
Vit code truy vn
Hnh 5.46 Vit code truy vn d liu
Kt qu.
-
109
Hnh 5.47 Kt qu
5.3 S DNG CAMERA IPHONE
5.3.1 Gii Thiu
Phn ny s hng dn cc bn cch s dng th vin h tr ca iOS dng
camera iPhone chp nh. Th vin iOS cung cp mt lp l UIImagePickController dng
qun l vic tng tc vi camera hoc photo library. Tuy nhin
UIImagePickController khng th s dng trc tip m cn ti mt i tng khc
delegate (tha k) li n. Sau y chng ta s xy dng mt ng dng n gin dng
camera chp nh. Giao din ca ng dng ny gm mt UIImageView hin th hnh
nh, mt button tn l Chp nh.
5.3.2 V D
To ng dng mi t tn l CameraApp.
-
110
Hnh 5.48 To project mi
Hnh 5.49 Chn ni lu project
Thit k giao din ng dng.
-
111
Hnh 5.50 Thit k giao din
nh x cc i tng vo tp tin ViewController.h.
\
Hnh 5.51 nh x i tng
-
112
Hnh 5.52 Kt qu
Trong ViewController, thm on code sau tha k li UIImagePickController.
Hnh 5.53 Tha k UIImagePickController
Vit code cho button Chp nh.
Hnh 5.54 Vit code cho button Chp nh
Vit code hai phng thc ca UIImagePickController.
-
113
Hnh 5.55 Vit code cho hai phng thc ca UIImagePickController
Vit code cho ViewDidload.
Hnh 5.56 Vit code cho hm ViewDidload
Chy ng dng ln thit b tht kim tra kt qu.
5.4 UIIMAGE
5.4.1 Gii Thiu
UIImage dng hin th hnh nh, c th s dng cc hiu ng animation hin
th hnh nh.
.
Hnh 5.57 i tng UIImage
-
114
Hnh 5.58 UIImage khi ko ra thit k giao din
5.4.2 Cc nh Dng nh H Tr Trn Iphone
Cc dng file nh c h tr tt trn iPhone:
5.4.3 V D
Hin th nh t mt file c sn trn my.
Bc 1: Add UIImageView vo StoryBoard.
Chn Main.storyboard
Hnh 5.59 Chn storyboard
Tn nh dng Tn file m rng Tagged Image File Format (TIFF) .tiff, .tif
Join Photographic Experts Group (JPEG) .jpg, .jpeg
Graphic Interchange Format (GIF) .gif
Portable Network Graphic (PNG) .png
Windows Bitmap Format (DIB) .bmp, .bmpf
Windows Icon Format .ico
Windows Cursor .cur
Xwindow bitmap .xbm
-
115
Ko th UIImage t hp thoi Accessibility vo Storyboard.
Hnh 5.60 i tng UIImage View
Hnh 5.61 Kt qu sau khi ko vo storyboard
Bc 2: nh x UIImageView vo file NATViewController.h dng outlet vi
tn imgHinhAnh.
-
116
Hnh 5.62 Kt qu sau khi nh x
Bc 3: Add file hnh vo project ang lm.
Click phi chut vo project chn Add Files to...
Hnh 5.63 Thm file vo project
-
117
Hnh 5.64 Chn file cn thm vo
Bc 4: Load file hnh vo UIImage.
Cch 1: Chn hnh t hp thoi Image View.
Hnh 5.65 Cch chn t Image View
Hnh 5.66 Kt qu sau khi chn
Cch 2: Gi phng thc sau load file hnh vo UIImageView.
Hnh 5.67 Cch s dng code
M file NATViewController.m, ti phng thc viewDidLoad.
-
118
Hnh 5.68 Chn NATViewController
Hnh 5.69 Vit code hin th hnh nh
Kt qu.
Hnh 5.70 Kt qu
Lu : phng thc viewDidLoad s c gi mi khi chng ta m ng dng.
-
119
Cch 3: Ko th trc tip i tng Image vo StoryBoard:
Hnh 5.71 Ko th Image vo Storyboard
Hnh 5.72 Kt qu
Hin th nh t mt URL:
S dng phng thc initWithData load ni dung t url.
Hnh 5.73 Code load ni dung t url
M file NATViewController.m, ti phng thc viewDidLoad.
-
120
Hnh 5.74 M file NATViewController.m
Hnh 5.75 Vit code cho hm ViewDidload
Kt qu.
Hnh 5.76 Kt qu
-
121
5.5 UIALERT VIEW
5.5.1 Gii Thiu
UIAlertView l i tng c s dng hin th ni dung thng bo cho ngi
dng, hoc ngi dng nhp liu.
Hnh 5.77 UIAlertView
Hnh 5.78 UIAlertView cho php nhp liu
5.5.2 c im
Khi to i tng UIAlertView
initWithTitle: message: delegate: cancelButtonTitle: otherButtonTitles
Cc thuc tnh ca UIAlertView
Thuc tnh Din gii title Tiu ca Alert View.
message Ni dung thng bo
elegate i tng nhn gi tr t UIAlertView.
alertViewStyle Kiu ca 1 Alert View khi hin th trn ng dng
numberOfButtons Tr v s lng buttons c trn Alert View
cancelButtonIndex V tr index ca button Cancel trn UIAlertView
firstOtherButtonIndex Gi tr ca nt u tin trong UIAlertView, mc nh l 0.
-
122
Cc phng thc ca UIAlertView
Phng thc Din gii
addButtonWithTile Gn tiu cho Alert View
buttonTitleAtIndex Ly tiu ca button ti v tr index
textFieldAtIndex Ly ni dung ca textField ti v tr index
show Gi 1 Alert View
dismissWithClickedButtonIndex Hu 1 UIAlertView
5.5.3 V D
Hin th AlerView dng thng bo.
Hnh 5.79 Hin th dng thng bo
Bc 1: Ti phng thc viewDidLoad khi to i tng AlertView nh sau:
thongBao = [[UIAlertView alloc]
initWithTitle:@"Lac Hong University"
message:@"Webcome to Lac Hong University"
delegate:self
cancelButtonTitle:@"Ok"
otherButtonTitles:nil, nil];
Bc 2: Hin th AlertView bng phng thc show
Thm on code sau vo cui phng thc viewDidLoad:
[thongBao show];
Bc 3: Cmd + R chy th, kt qu:
-
123
Hnh 5.80 Kt qu hin th
Hin th AlerView dng Text Field
Hnh 5.81 Hin th dng Text Field
Bc 1: Khai bo AlertView
Ti viewDidLoad khai bo AlertView nh sau:
Hnh 5.82 Khai bo AlertView
Bc 2: Thit lp thuc tnh alertViewStyle cho AlertView l kiu Text.
-
124
Hnh 5.83 Thit lp thuc tnh
Bc 3: Thit lp thuc tnh cho Text .
Hnh 5.84 Thit lp thuc tnh
Bc 4: Hin th AlertView.
Hnh 5.85 Hin th AlertView
Bc 5: Cmd + R chy th, kt qu:
Hnh 5.86 Hin th kt qu
5.6 UISLIDER
5.6.1 Gii Thiu
UISlider l mt i tng cho php ngi dng thay i gi tr bng cch di chuyn
thanh trt.
-
125
Hnh 5.87 UISLIDER
5.6.2 c im
Ly gi tr t Slider:
Cch 1: dng property value
value property
Cch 2: dng phng thc setValue
setValue:animated:
Thit lp gi tr nh nht v ln nht cho Slider:
- Thit lp gi tr nh nht: minimumValue
- Thit lp gi tr ln nht: maximumValue
5.6.3 V D
Bc 1: Thit k giao din nh sau.
Hnh 5.88 Thit k giao din
-
126
Bc 2: Map cc i tng nh sau:
Hnh 5.89 nh x cc i tng
Kt qu sau khi Map
Hnh 5.90 Kt qu sau khi nh x
Bc 3: Thit lp gi tr nh nht v ln nht cho Slider trong khong 5 50.
M ViewController.m thm on code sau vo cui phng thc
viewDidLoad.
-
127
Hnh 5.91 Thit lp gi tr
Thit lp gi tr chn mc nh l 30 thm on code sau vo cui phng
thc viewDidLoad.
Hnh 5.92 Thm code vo cui viewDidload
Bc 4: Gn kt qu ca Slider vo lblGiaTriSlider khi ngi dng thay i
thanh trt.
Thm on code sau vo phng thc changeSlider.
Hnh 5.93 Thm code vo phng thc changeSlider
Bc 5: Ly gi tr t Slider gn vo lblKetQua khi ngi dng click vo button
btnLayGiaTri.
Hnh 5.94 Gn gi tr cho label
Bc 6: Cmd + r chy th, kt qu.
-
128
Hnh 5.95 Kt qu hin th
5.7 UIWEBVIEW
5.7.1 Gii Thiu
UIWebView l i tng gip hin th ni dung ca mt url no .
Hnh 5.96 UIWebView
-
129
Hnh 5.97 Hin th UIWebView
5.7.2 V D
Bc 1: Thit k giao din nh sau.
Hnh 5.98 Thit k giao din
-
130
Bc 2: Map i tng UIWebView vi tn myWebView.
Hnh 5.99 nh x i tng
Bc 3: Ti mt url.
M file ViewController.m thm on code sau vo cui phng thc
viewDidLoad.
Hnh 5.100 Thm code vo viewDidload
Chy th, kt qu.
Hnh 5.101 Kt qu chy th
Bc 4: Thc hin cc chc nng: back, next, refrest, stop.
-
131
Qua giao din ln lt nhn gi Ctrl cc i tng (back, next, refrest,top) v ko
th vo UIWebView.
Hnh 5.102 To kt cc cho cc chc nng ca button.
Thit lp thuc tnh cho UIWebView l Scales Page To Fit.
Hnh 5.103 Chn Scales Page To Fit
Bc 5: Chy th, kt qu.
-
132
Hnh 5.104 Kt qu
5.8 ACTIVITY INDICATOR VIEW
5.8.1 Gii Thiu
Activity Indicator View l mt i tng thng bo ch i cho ngi dng.
Hnh 5.105 Activity Indicator View
5.8.2 V D
Bc1: Tip tc vi v d ca UIWebView, ko th i tng Activity Indicator
View.
-
133
Hnh 5.106 Ko th Activity Indicator vo giao din
Bc 2: Map i tng Activity Indicator View vi tn mySpinner.
Hnh 5.107 nh x i tng
Bc 3: Thm protocol trong file ViewController.h
-
134
Hnh 5.108 Thm Protocol UIWebViewDelegate
Bc 4: M file ViewController.m thm 2 phng thc sau.
- (void)webViewDidStartLoad:(UIWebView *)webView {
//Spinner bt u quay
[mySpinner startAnimating];
}
Gii thch: phng thc ny s c gi khi i tng UIWebView bt u ti
d liu t URL.
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
//Ngng spinner
[mySpinner stopAnimating];
//Gn tiu vo "UIWebViewController"
NSString* title = [webView stringByEvaluatingJavaScriptFromString:
@"document.title"];
self.navigationItem.title = title;
};
Gii thch: phng thc ny s c gi khi i tng UIWebView ti d liu t
URL xong.
Thm on code sau vo cui phng thc myWebView.delegate = self;
cho php 2 phng thc trn i tng UIWebView qun l v t gi.
-
135
Bc 5: Qua giao din thit lp thuc tnh Hides When Stopped cho i tng
Activity Indicator View.
Hnh 5.109 Hides When Stopped
Bc 6: chy th, kt qu:
Hnh 5.110 Kt qu
-
136
5.9 ACTIONSHEET
5.9.1 Gii Thiu
Action Sheet Cho php ngi dng xc nhn cc hnh ng trn
ViewController.
Hnh 5.111 Action Sheet
5.9.2 c im
Khi to Action Sheet:
initWithTitle:delegate:cancelButtonTitle:destructiveButtonTitle:otherButtonTitles
Thit lp thuc tnh cho Action Sheet:
- Delegate : c gi tr l nil hoc mt i tng no .
- title: Tiu ca Action Sheets.
- visible: n hin Action Sheet.
- actionSheetStyle: kiu Action Sheet.
Cu hnh cho cc button trn Action Sheet:
- Thm button: addButtonWithTitle:
- Ly tng s button: numberOfButtons
- Ly tiu ca button: buttonTitleAtIndex:
- Ly v tr ca button cancel: cancelButtonIndex
-
137
- Ly v tr ca button u tin: firstOtherButtonIndex
Hin th mt Action Sheet:
- showInView:
5.9.3 V D
Bc 1: Thit k giao din nh sau:
Hnh 5.112 Thit k giao din
Bc 2: Thm protocol v map (action) button vi tn
touchBtn kt qu file ViewController.h
#import
@interface NATViewController : UIViewController
{
}
- (IBAction)touchBtn:(id)sender;
@end
-
138
Bc 3: Ti phng thc touchBtn khi to i tng Action Sheet:
Hnh 5.113 Khi to Action Sheet
Bc 4: Hin th Action Sheet bng cch thm on code bn di vo cui phng
thc touchBtn.
Hnh 5.114 Hin th Action Sheet
Bc 5: Thm phng thc clickButtonAtIndext in ra button m ngi dng
chn.
Hnh 5.115 Phng thc in button
Bc 6: Chy th, kt qu Output:
Hnh 5.116 Kt qu chy th
5.10 MK MAP VIEW
5.10.1 Gii Thiu
MK Map View l mt i tng cung cp giao din bn .
-
139
Hnh 5.117Map View
5.10.2 V D
Bc 1: Thit k giao din nh sau:
Ko i tng Map View vo View Controller
Hnh 5.118 Ko th Map View vo
-
140
Ko Toolbar v cc Bar button vo View Controller check thuc tnh
Show User Location cho i tng MKMapView.
Hnh 5.119 Thit k giao din
Thm th vin MapKit.framework vo project:
Hnh 5.120 Thm th vin
M file ViewController.h import MapKit.h"
-
141
#import
Chy th, kt qu:
Hnh 5.121 Chy th
Bc 2: Map (action) cc i tng: GPS (touchGPS), Map (touchMap), Satellite
(touchSatellite), Hybird (touchHybird) vo ViewController.h.
Hnh 5.122 nh x cc button
Bc 3: Hin thc phng thc touchGPS
M ViewController.m thm on code sau vo phng thc touchGPS:
-
142
Hnh 5.123 Thm code vo touchGPS
Bc 4: Hin thc li phng thc touchMap
M ViewController.m thm on code sau vo phng thc touchMap:
myMapView.mapType = MKMapTypeStandard;
Bc 5: Hin thc li phng thc touchSatellite
M ViewController.m thm on code sau vo phng thc touchSatellite:
myMapView.mapType = MKMapTypeSatellite;
Bc 6: Hin thc li phng thc touchHybird
M ViewController.m thm on code sau vo phng thc touchHybird:
myMapView.mapType = MKMapTypeHybrid;
Bc 7: Chy th, kt qu:
Hnh 5.124 Kt qu
-
143
5.11 TABLE VIEW CONTROLLER
5.11.1 Gii Thiu
Table View Controller c s dng hin th d liu theo dng bng.
Hnh 5.125 Table View
5.11.2 V D
Bc 1: Ko th mt Table View Controller sang giao din thit k.
-
144
Hnh 5.126 Ko th Table View vo giao din
Bc 2: To mt lp tn Table View Controller gn vo Table View
Controller va ko th.
Nhn Ctr + N to 1 lp Chn Objective C class Class:
TalbeViewController Subclass of: UITableViewController.
Hnh 5.127 To class mi
-
145
Qua giao din gn lp va to vo TableViewController
Hnh 5.128 Gn class vi Table View
Bc 3: M TableViewController.m bn di @implementation... khai bo 1
mng mangSinhVien:
@implementation TableViewController
NSMutableArray *mangSinhVien;
Bc 4: Khi to mng sinh vin trong phng thc viewDidLoad.
mangSinhVien = [[NSMutableArray alloc] initWithObjects:
@"Nguyen Anh Tiep",
@"Cao Thanh Vang",
@"Nguyen Xuan Thanh",
@"Nguyen Xuan Thao",
@"Nguyen Xuan Hoa",
@"Nguyen Hoai Nam",
@"Le Thi Bich Ha",
-
146
@"Pham Thi Anh Nguyet",
@"Nguyen Tien Trung", nil];
Bc 5: Ti phng thc numberOfSectionsInTableView sa li nh sau:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
Gii thch: phng thc ny cho php chng ta thit lp s Section trong Table
View Controller. Section c dng nh sau:
Hnh 5.129 Section
Bc 6: Sa li phng thc numberOfRowsInSection nh sau:
- (NSInteger)tableView:(UITableView *)tableView
numberOfRowsInSection:(NSInteger)section
{
return mangSinhVien.count;
}
-
147
Gii thch: phng thc ny cho php chng ta thit lp s dng trong 1 Section,
y chnh l s phn t ca mng
Bc 7: ti phng thc cellForRowAtIndexPath bn di // Configure the
cell... thm on code sau hin th tn sinh vin ln Table View Controller:
NSInteger row = indexPath.row;
cell.textLabel.text = mangSinhVien[row];
Bc 8: Cmd + r chy th, kt qu:
Hnh 5.130 Kt qu
5.12 SEARCH BAR
5.12.1 Gii Thiu
Search Bar c s dng tm kim trong Table View Controller.
-
148
Hnh 5.131 Search Bar
5.12.2 V D
Bc 1: Tip tc vi v d ca Table View Controller, thm i tng Search
Bar and Search Display Controller vo Table View Controller.
Hnh 5.132 Ko th Search Bar vo
-
149
Bc 2: Map i tng Search Bar vi tn mySearchBar.
Hnh 5.133 nh x i tng
Bc 3: B sung protocol s dng c cc phng
thc ca i tng Search Bar.
M TableViewController.h bn di @interface... thm vo nh sau:
#import
@interface TableViewController : UITableViewController
{
IBOutlet UISearchBar *mySearchBar;
}
@end
Bc 4: M TableViewController.m thm vo phng thc timKiemDuLieu
tm kim d liu trong mng mangSinhVien.
- (void)timKiemDuLieu {
NSPredicate *resultsPredicate = [NSPredicate predicateWithFormat:@"SELF contains
[search] %@", mySearchBar.text];
mangKetQua = [[mangSinhVien filteredArrayUsingPredicate:resultsPredicate]
mutableCopy];
}
-
150
Gii thch: phng thc filteredArrayUsingPredicate c h tr sn trong mng
v dng tm kim d liu trong mt mng no .
Bc 5: Thm vo phng thc textDidChange thc hin tm kim mi khi
ngi dng nhp t kho v