View
654
Download
1
Category
Preview:
DESCRIPTION
guide code IOS
Citation preview
5/28/2018 Tai Lieu Huong Dan code ios
1/420
2013
Nguyn Anh Tip - Cao Thanh V
i Hc Lc Hng
20/11/2013
Ti Liu Hng Dn Xy Dngng Dng iPhone
5/28/2018 Tai Lieu Huong Dan code ios
2/420
MC LC
CHNG I CHUN BTRC KHI BT U XY DNG NG DNG ........... 1
1.1 CHUN BHIU HNH MAC OS .................................................................... 21.1.1 Lp Trnh ng Dng Iphone Trn Windows .................................................. 2
1.1.2 SDng Sn Phm Chnh Hng Apple ............................................................ 3
1.1.3 Chy Hiu Hnh Mac Os Trn Pc/Laptop Intel/AmdTi Sao Khng?....................................................................................................................................... 5
1.2 PHN MM XCODE .................................................................................................. 7
1.2.1 Ci t Thng Qua Bn Ti VTTrang Dnh Cho Developer .................. 8
1.2.2 Ci t Thng Qua Apple Mac Store ............................................................. 101.2.3 Ci t TBn Xcode c Chia STrn Internet .................................... 11
CHNG II TM HIU XCODE V IOS SIMULATOR ......................................... 12
2.1 TM HIU XCODE 5 ................................................................................................ 13
2.1.1 Gii Thiu VXcode 5 ..................................................................................... 13
2.1.2 Thao Tc To ng Dng Mi ......................................................................... 16
2.1.3 Tm Hiu Giao Din Xcode V Mt STnh Nng....................................... 20
2.1.4 Thit KGiao Din ........................................................................................... 262.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 NGOBJECTIVE-C ................................................................ 48
3.1 GII THIU NGN NGOBJECTIVED-C ........................................................ 49
3.2 KHAI BO BIN - CCH SDNG ..................................................................... 49
3.2.1 Bin ..................................................................................................................... 49
3.2.2 Quy Tc t Tn ............................................................................................... 50
3.3 KIU DLIU .......................................................................................................... 50
5/28/2018 Tai Lieu Huong Dan code ios
3/420
3.4 PHP TON ............................................................................................................... 51
3.5 CH THCH CODE .................................................................................................. 51
3.6 XUT DLIU RA MN HNH ............................................................................ 52
3.7 FUNCTION ................................................................................................................. 54
3.7.1 nh Ngha......................................................................................................... 54
3.7.2 Phng Thc Khng C Tham STruyn Vo ........................................... 54
3.7.3 Phng Thc C 1 Tham STruyn Vo ...................................................... 55
3.7.4 Phng Thc C Nhiu Tham STruyn Vo.............................................. 55
3.8 CU TRC IU KIN ........................................................................................... 57
3.8.1 Cu Lnh If ....................................................................................................... 57
3.8.2 Cu Lnh IfElse ............................................................................................ 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 CHUII 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 TVo Trong Chui ...................................................................... 66
3.11.8 Chn K TVo Cui Chui ........................................................................ 66
3.11.8 So Snh Chui ................................................................................................. 67
3.11.9 So Snh Chui Vi K Tu V Cui Chui ........................................... 67
5/28/2018 Tai Lieu Huong Dan code ios
4/420
3.11.10 Chuyn i Hnh Dng Ca Ch................................................................ 68
3.11.11 Chuyn Chui Thnh Dng S.................................................................... 70
CHNG IV MT STHAO TC C BN ............................................................. 72
4.1 APP ICONLOADING 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 SI TNG C BN ............................................................ 86
5.1 I TNG LABELBUTTONTEXT FIELD ............................................... 87
5.1.1 Gii Thiu .......................................................................................................... 87
5.1.2 V D.................................................................................................................. 90
5.2 KT NI C SDLIU 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 SDNG 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 HTrTrn Iphone ................................................... 114
5.4.3 V D................................................................................................................ 114
5.5 UIALERT VIEW ...................................................................................................... 121
5/28/2018 Tai Lieu Huong Dan code ios
5/420
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 DLIU 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
5/28/2018 Tai Lieu Huong Dan code ios
6/420
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 ChVn 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 ChVn 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 SVN KHC ................................................................ 396
8.1 XY DNG NG DNG CHO IOS 6 - IOS 6.1 TRN XCODE 5 ................... 397
8.2 XY DNG NG DNG HTRNHIU VERSION IOS ............................. 403
CU HI THNG GP ............................................................................................ 407
PHLC ........................................................................................................................ 411
5/28/2018 Tai Lieu Huong Dan code ios
7/420
LI MU
Ngy nay xu hng sdng Smartphone v my tnh bng ang gia tng nhanh
chng trn thgii ni chung v Vit Nam ni ring, trong Vit Nam hin ang ng
thhai thgii vtc tng trng smartphone & my tnh bng vi tc tng trng
266%. Android, iOS, Windows Phone l nhng hiu hnh chy trn Smartphone v
my tnh bng phbin nht thgii: 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 tl
1.6% trn tng sthit bphn phi ti Vit Nam, ng thba sau Android v Windows
Phone.
Cng vi stng trng ca Smartphone v cc hiu hnh chy trn Smartphone,
slng ng dng cho cc hiu 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 spht trin quy m ln ca ng dng, nhu cu tm hiu
vlp trnh ng dng cho cc hiu hnh cng tng dn.
Tuy nhin, thc tin cho thy, vic tm hiu cng nh tham gia cc lp hc vlp
trnh ng dng iPhone Vit Nam cn nhiu hn chv kh khn.Cc lp dy lp trnh
ng dng iPhone chmi xut hin nhiu trong thi gian gn y,do slng vn cnhn ch.
Bn cnh ngun ti liu ting Vit cn t, vic tm hiu v sdng cng clp
trnh cng nh tham kho ti liu ting Anh vlp trnh ng dng iPhone i hi ngi
tm hiu phi tiu tn mt khong thi gian di cng nh c mt t hiu bit vlp trnh
v khnng c hiu ting Anh tt. Hn na cc ti liu ting Vit do cc trung tm
ging dy lp trnh iPhone bin son chlu hnh ni b, ngi tm hiu buc phi chi
mt khon tin tham dlp hc mi c thc 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 vlp trnh ng dng trn iPhone, nhm nghin cu thc
5/28/2018 Tai Lieu Huong Dan code ios
8/420
hin nghin cu, xy dng mt sng 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 dring cho tng i tng, ngi c sddng 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 tm nhm nghin cu thc hin c trong qu trnh nghin cu. Hi vng rng ni dung ca ti liu ny sgip
ch phn no cho mi ngi khi bt u tm hiu vlp trnh iPhone, t c thtit
kim bt thi gian cho qu trnh tm hiu.
Mi kin ng gp xin lin lc qua emailcaothienmokimlong@gmail.comhoc
anhtiep20@gmail.com.Rt mong nhn c sgp chn thnh tmi ngi ti liu
hng dn ngy cng hon thin hn.
Nhm nghin cu
Nguyn Anh TipCao Thanh Vng
mailto:caothienmokimlong@gmail.commailto:caothienmokimlong@gmail.commailto:caothienmokimlong@gmail.commailto:anhtiep20@gmail.commailto:anhtiep20@gmail.commailto:anhtiep20@gmail.commailto:caothienmokimlong@gmail.com5/28/2018 Tai Lieu Huong Dan code ios
9/420
CHNG ICHUN BTRC KHI BT U XY DNG NG DNG
Qu trnh chun btrc khi bt u lp trnh ng dng trn iPhone l qu trnh c
bn m bn phi chun bcho tht klng. Qu trnh ny schun bcho 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 sc gii thiu s lc vqu trnh chun b, cc cch thc
bn c c hiu hnh Mac OS v bcng cXcode. Hai iu kin ny l iu kin
cn thit bt u lp trnh iOS.
Tuy nhin ni dung phn chun bhiu hnh Mac OS chc gii thiu s
lc vi bn cc cch thc c c mt hiu hnh Mac OS n nh (cch thc ci
t Mac OS trn thit bIntel/AMD) cho vic lp trnh chkhng i sau vo hng dncthbi iu thuc vmt lnh vc kin thc khc i hi phi o su tm hiu.
5/28/2018 Tai Lieu Huong Dan code ios
10/420
2
1.1 CHUN BHIU HNH MAC OS
Vic lp trnh ng dng cho iPhone i hi bn phi sdng bcng cdo chnh
Apple cung cp gi l Xcode, v bcng cny chy trn nn tng ca hiu 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 ychng ti sgii thiu cho bn mt scch thc bn c thshu 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 sdng mt my o chy hiu hnh Mac OS lp trnh. Tuy nhin nu bn la chn phng n ny, cu hnh my ca bn phi mnh,
CPU xl tt, v bn nn dnh t nht 2G RAM cho my o hot ng tt hn.
Lm cch no ti c thshu mt my o chy Mac OS cho r ing mnh?
Bn c hai cch c thshu mt my o chy Mac OS cho mnh.
Cch mt l bn chun bmt a ci Mac OS v phn mm htrto my o nh
VMWare , Virtualbox sau bn tin hnh ci t bnh thng bng tay. a ci t
Mac OS bn c thmua cc tim bn a phn mm. Hoc bn c thti vtrn mng
mt a ci Mac OS ui .iso ( Thng th trn mng c a ci ui .dmg, bn phi
chuyn i qua ui .isoc htrtt nht tphn mm to my o).
Cch thhai l bn ti vmt my o hon chnh c ci t sn Mac OS, sau
mln bng phn mm chy my o l bn c thc mt hiu 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/.
http://www.tinhte.vn/forums/chuyen-de-hackintosh.361/http://www.tinhte.vn/forums/chuyen-de-hackintosh.361/http://www.tinhte.vn/forums/chuyen-de-hackintosh.361/http://www.facebook.com/groups/hackintoshvietnam/http://www.facebook.com/groups/hackintoshvietnam/http://www.facebook.com/groups/hackintoshvietnam/http://www.tinhte.vn/forums/chuyen-de-hackintosh.361/5/28/2018 Tai Lieu Huong Dan code ios
11/420
3
tm hiu thm tin trnh ci t my o, cc vn xy ra trong qu trnh ci.
Ngoi ra bn cng c thtm cc my o chy Mac OS ci t sn ti
Soul Dev Team:http://www.souldevteam.net/.
1.1.2 SDng Sn Phm Chnh Hng Apple
Nu gia nh bn c iu kin, bn c thmua ngay cho mnh mt chic my Apple
chnh hng, sdng trn vn tnh nng cng nh shtrti a tApple.
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 khnng ti chnh m bn la chn chomnh 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 thtruy cp vo a chwww.apple.com/asia/reseller/ tm kim cc a im
bn hng ca Apple gn nht. Vit Nam, bn hy truy cp vo trang
http://www.souldevteam.net/http://www.souldevteam.net/http://www.souldevteam.net/http://www.apple.com/http://www.apple.com/http://www.apple.com/asia/reseller/http://www.apple.com/asia/reseller/http://www.apple.com/asia/reseller/http://www.apple.com/asia/reseller/http://www.apple.com/http://www.souldevteam.net/5/28/2018 Tai Lieu Huong Dan code ios
12/420
4
www.icenter.com.vnc thnhanh chng tm c ca hng bn sn phm ca Apple
gn nht ni bn sng. Vic ny gip bn c thnhanh 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 chi vn chuyn sn phm tnc ngoi v.
Nu mun tit kim thm chi ph bn c thtruy cp
www.store.apple.com/us/browse/home/specialdeals/mactm 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 rhn na, th vic mua li sn
phm qua sdng l mt gi ng cho bn cn nhc. i vi vic mua li my
qua sdng bn c thvo mt strang mua bn c cht lng tm mua sn phm ph
hp vi ti tin. Chng hn nh cc trangwww.5giay.vn,www.nhattao.com.. l cctrang vi rt nhiu schn, cc dng my a dng cng nh mc tin khc nhau, ty theo
nhu cn v iu kin cho php m bn c thtm c mt chic my ng mnh.
http://www.icenter.com.vn/http://www.icenter.com.vn/http://www.store.apple.com/us/browse/home/specialdeals/machttp://www.store.apple.com/us/browse/home/specialdeals/machttp://www.5giay.vn/http://www.5giay.vn/http://www.5giay.vn/http://www.nhattao.com/http://www.nhattao.com/http://www.nhattao.com/http://www.nhattao.com/http://www.5giay.vn/http://www.store.apple.com/us/browse/home/specialdeals/machttp://www.icenter.com.vn/5/28/2018 Tai Lieu Huong Dan code ios
13/420
5
Hnh 1.3 Mua li my c
Nu bn la chn mua my c, phi la chn tht klng ti my n cu hnh, tt
nht nn chn mua nhng my sn xut trong 1-2 nm gn nht, c bit bn phi kimtra xem my mnh mun mua c htrnhng phin bn Mac OS no. V sao phi nh
vy ? Bi v Xcode 5 chy trn Mac OS 8 trln, nu bn chn mua my chhtrMac
OS 7 trvtrc, th bn khng thci c Xcode 5 m chc thsdng cc phin
bn thp hn.
1.1.3 Chy Hiu Hnh Mac Os Trn Pc/Laptop Intel/AmdTi Sao Khng?
Vic ci Mac OS ln chic PC hay laptop ca bn cng l mt phng php tt va c c hiu 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 tmt bn
c chnh sa sn nh iAtkos ( h trdng my intel ) hay Niresh (h tr thm dng
my AMD) v ci t ta gc ca Apple (Mac OS Retail) . Dng ci t ta gc ca
Apple i hi bn sau khi ci t phi tin hnh thm nhiu thao tc khc c thc
5/28/2018 Tai Lieu Huong Dan code ios
14/420
6
c mt hiu 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: tci
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 thno.
Hnh 1.5 Tm kim Ci t Mac OS cho PC/Laptop
5/28/2018 Tai Lieu Huong Dan code ios
15/420
7
Vi vic thu ngi ci, bn chgn bo cu hnh my cho ngi ci t hquyt
nh v cho bn li khuyn. Bi vic ci t Hackintosh phthuc rt nhiu vo tng
thch phn cng ca thit bvi hiu hnh Mac OS, do khng phi my no cng c
thci c. Tuy nhin phng n ny gip bn vt vhn, cng nh tit kim c
thi gian hn.
Mt phngn khc l bn tci. 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 sdin n, hi nhm chuyn vHackintosh
c thm kin thc, kinh nghim v strgip tcng ng. y chng ti gii thiu
cho bn hai a chuy tn vHackintosh:
- Chuyn Hackintosh trn Tinh Ta ch: www.tinhte.vn/forums/chuyen-
de-hackintosh.361/
- Group HackintoshWe Love Mac a ch:
www.facebook.com/groups/hackintoshvietnam/
Ti y bn stm c nhiu ti liu hng dn cng nh sgip tn tnh ca
mi ngi, hi vng bn sc mt hiu 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 thtm c Kext (C thhiu ging nh
Driver cho thit btrn hiu hnh Windows.
- Card VGA Intel Graphic HD 4000 v Intel Graphic HD 3000 c Mac OS htrKext
rt tt.
- a phn dng HP Probook htrtt Hackintosh.
1.2 PHN MM XCODE
Sau khi bn c c hiu hnh Mac OS, vic tip theo bn phi lm trc khi
c thbt u lp trnh ng dng iPhone l ci bcng clp trnh Xcode do Apple cung
http://www.tinhte.vn/forums/chuyen-de-hackintosh.361/http://www.tinhte.vn/forums/chuyen-de-hackintosh.361/http://www.tinhte.vn/forums/chuyen-de-hackintosh.361/http://www.facebook.com/groups/hackintoshvietnam/http://www.facebook.com/groups/hackintoshvietnam/http://www.facebook.com/groups/hackintoshvietnam/http://www.tinhte.vn/forums/chuyen-de-hackintosh.361/http://www.tinhte.vn/forums/chuyen-de-hackintosh.361/5/28/2018 Tai Lieu Huong Dan code ios
16/420
8
cp cho cc nh lp trnh ng dng, cc nh lp trnh c thpht 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 VTTrang Dnh Cho DeveloperBn truy cp vo trangwww.developer.apple.comtin hnh ti phin bn Xcode
mi nht ( hoc cc phin bn khc ty theo nhu cu ca bn).
Hnh 1.6 Ti Xcode ttrang Developer
Tip theo bn la chn View Download.
http://www.developer.apple.com/http://www.developer.apple.com/http://www.developer.apple.com/http://www.developer.apple.com/5/28/2018 Tai Lieu Huong Dan code ios
17/420
9
Hnh 1.7 Chn View Download
Apple syu 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 sti vc phn mm Xcode v tin hnh ci t trn my.
5/28/2018 Tai Lieu Huong Dan code ios
18/420
10
Vi ti khon Developer ID vi gi 99$ / nm, bn slun c Apple cp nht thng tin
cng nghmi, cng nh htr, sdng 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 phbin nht, v vic ti Xcode trn Apple Store l min ph, v chcn
bn c mt ti khon Apple ID l c, khng yu cu phi l Developer ID.
Bn chcn truy cp vo Apple Mac Store v tm kim Xcode, bn sthy kt qu
l phn mm Xcode Free, cng vic by gil bn chcn Install v chi hon tt.
Hnh 1.9 Ci t Xcode qua Apple Mac Store
5/28/2018 Tai Lieu Huong Dan code ios
19/420
11
Trong App Store bn cng c thtm c nhiu gio trnh, bi ging vlp trnh
ng dng bng Xcode.
1.2.3 Ci t TBn Xcode c Chia STrn Internet
i vi cch ci t ny, bn ch cn truy cp internet v tm bn ci t Xcodec chia strn mng v ti vci t trn my ca bn. Tuy nhin bn smt thi gian
tm kim trn internet tm c bn ci t va , tc ti tt nht.
5/28/2018 Tai Lieu Huong Dan code ios
20/420
CHNG IITM HIU XCODE V IOS SIMULATOR
Chng ny smang n cho bn kin thc vbcng cXcode cng nh cng c
gilp hiu hnh iOS l iOS Simulator. Qua nhng kin thc c cung cp, bn s
nm r vgiao din, mt stnh nng, cc button v cng dng ca n trn Xcode v iOS
Simulator. Ngoi ra, bn sc hng dn mt sthao tc c bn khi sdng Xcode,
iOS Simulator t bn s d dng hn trong vic s dng b cng cny trong qu
trnh lp trnh ng dng iPhone vsau.
5/28/2018 Tai Lieu Huong Dan code ios
21/420
13
2.1 TM HIU XCODE 5
2.1.1 Gii Thiu VXcode 5
Phn mm Xcode l bcng cdo Apple cung cp cho cc lp trnh vin lp
trnh ng dng cho cc thit bchy hiu 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 htrbn trong qu trnh debug li ca chng
trnh.
- Toolbar area: vng cha cc cng ctin ch gip bn c thn gin trong
vic chy, debug ng dng, la chn iOS Simulator, ng mcc vng khc- Editor area: vng bn thit kgiao din, vit v chnh sa code ca
chng trnh.
- Utility area: vng ny cho php bn ty chnh cc tham s, gi trca cc i
tng trn giao din, cng nh cho php bn ko thv sdng cc i tng
5/28/2018 Tai Lieu Huong Dan code ios
22/420
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 chgli thng minh htrbn trong vic
pht hin li, cnh bo li v gi thay thkhc phc
5/28/2018 Tai Lieu Huong Dan code ios
23/420
15
Hnh 2.3 Chgli
Hn thna, km theo Xcode l mt b ti liu hng dn tng bc, chi tit v
tin li nhm htrngi dng trong vic lp trnh. Trong qu trnh vit ng dng, nu
bn mun tm hiu thm mt i tng, bn c thsdng ti bti liu ny c c
hng dn, v dminh ha dhiu.
Hnh 2.4 Ti liu hng dn
5/28/2018 Tai Lieu Huong Dan code ios
24/420
16
Bn c thxem thm ti liu vXcode 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 mli cc project gn y.
Hnh 2.5 Giao din Xcode khi mln
Ti giao din Xcode, bn c thto mi mt project bng cch chn Create new
project. Ngoi ra bn c thto project mi bng cch chn File> New> Project.
https://developer.apple.com/library/ios/documentation/ToolsLanguages/Conceptual/Xcode_Overview/About_Xcode/about.htmlhttps://developer.apple.com/library/ios/documentation/ToolsLanguages/Conceptual/Xcode_Overview/About_Xcode/about.htmlhttps://developer.apple.com/library/ios/documentation/ToolsLanguages/Conceptual/Xcode_Overview/About_Xcode/about.htmlhttps://developer.apple.com/library/ios/documentation/ToolsLanguages/Conceptual/Xcode_Overview/About_Xcode/about.htmlhttps://developer.apple.com/library/ios/documentation/ToolsLanguages/Conceptual/Xcode_Overview/About_Xcode/about.html5/28/2018 Tai Lieu Huong Dan code ios
25/420
17
Hnh 2.6 To mi Project bng Menu
Sau khi chn New Project, Xcode syu 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
5/28/2018 Tai Lieu Huong Dan code ios
26/420
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 chai).
Hnh 2.8 in thng tin cho project
Tip theo bn chn ni lu trProject trn my tnh lu Project v chn Create.
5/28/2018 Tai Lieu Huong Dan code ios
27/420
19
Hnh 2.9 Chn ni lu Project
Nh vy bn to xong mt Project mi.
Hnh 2.10 Giao din project mi to
5/28/2018 Tai Lieu Huong Dan code ios
28/420
20
2.1.3 Tm Hiu Giao Din Xcode V Mt STnh Nng
2.1.3.1 Navigator Area
Navigator areacho php bn qun l ng dng hiu qunh qun l cc tp tin,
th mc, qun l cc thng bo li v cnh bo, qun l vic debugC thchia
Navigator area thnh hai phn chnh l Navigator selector barv Content area.
Hnh 2.11 Giao din Navigator
Trong Navigator selector bar gm mt sbutton chnh sau:
- Project Navigator( ): dng qun l cc tp tin ca ng dng nh thm,
xa, gom nhmCc tp tin qun l sc thhin trong Content area.
5/28/2018 Tai Lieu Huong Dan code ios
29/420
21
- Find Navigator( ): sdng tm kim mt cch nhanh chng cc string
trong ng dng, tm kim ni dung mrng.
- 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 areacho php bn thit kgiao din, vit v sa code cho ng dng. Khi
bn chn tp tin storyboardbn Content area th Editor area shin thgiao din
Interface Buildercho bn thit kgiao din. Tng tvi tp tin .m v .h th Editor area
shin thni dung code ca tp tin.
Hnh 2.12 Giao din ng dng
5/28/2018 Tai Lieu Huong Dan code ios
30/420
22
Hnh 2.13 Giao din code
Editor areacn 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.
5/28/2018 Tai Lieu Huong Dan code ios
31/420
23
Hnh 2.14 Giao din qun l chi tit
2.1.3.3 Toolbar Area
Toolbarcho php thc hin mt sthao tc mt cch nhanh chng thng qua cc
Button m khng cn phi dng ti Menu. Toolbar gm mt sthnh phn sau:
- Run button( ): dng chy thng dng.
- Stop button( ): dng dng vic chy thng 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
5/28/2018 Tai Lieu Huong Dan code ios
32/420
24
- Editor selector( ): gm cc button dng iu chnh Editor area
(cho php chia i Editor area ra lm hai hay chl 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 areac s dng thay i cc thuc tnh ca i tng bn InterfaceBuilder, ngoi ra cn c sdng la chn v ko thcc i tng, on code mu
vo Interface Buider v Editor.
Utility area c chia lm 2 vng chnh l Inspectorv Library. Inspector panel
vng cho php bn c sthay i thuc tnh ca i tng. Trn u ca Inspector pane
l Inspector selector barbao gm cc button htrbn 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 sdng cc on code mu, cc i tng.
5/28/2018 Tai Lieu Huong Dan code ios
33/420
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 sbutton quan trng l Code snippets( ),
Objects( ). Code snippets hin thcho bn danh sch cc on code mu bn lachn sdng trong qu trnh vit ng dng. Objects hin thcc i tng ca Xcode cho
bn sdng thit kgiao din ng dng.
5/28/2018 Tai Lieu Huong Dan code ios
34/420
26
2.1.4 Thit KGiao Din
Giao din ng dng trong Xcode c thit kthng qua Interface Builder, cc i
tng ca Interface Builder c cung cp trong Utility area. tin hnh thit kgiao
din, bn ko thi tng trong Utility area vo Interface Builder.
Hnh 2.18 Ko thcc i tng vo giao dinTi y bn c thiu chnh, sp xp vtr ca cc i tng theo tng thit k
ca bn. Trong Xcode, tp tin bn dng thit kgiao din l tp tin .storyboard.
Khi ko thcc i tng vo Interface Builder, bn sddng xc nh vtr t
i tng sao cho giao din cn i, khng bhin tng lch khi Run ng dng. l
nhvo tnh nng htrcanh chnh ca Xcode thng qua cc ng kt nt mu
xanh.
5/28/2018 Tai Lieu Huong Dan code ios
35/420
27
Hnh 2.19 Canh chnh vtr theo ng kxanh
Bn c thiu chnh cc thuc tnh ca cc i tng trong Interface Builder thngqua vng Inspector pane.
5/28/2018 Tai Lieu Huong Dan code ios
36/420
28
Hnh 2.20 Thay i thuc tnh ca i tng
tm kim i tng mt cch nhanh chng, bn sdng cng ctm kim trong
Library pane.
Hnh 2.21 Tm kim trong Library
5/28/2018 Tai Lieu Huong Dan code ios
37/420
29
Hn na, nu bn mun tm hiu r hn vi tng , xem v dcthminh
ha, bn c thsdng n bti liu htrca Xcode.
Hnh 2.22 Xem ti liu htrca i tng
2.1.5 Vit Code
Phn code ca ng dng thng c vit trong hai tp tin l .hv .m. Tp tin .h
thng c sdng kt ni v khai bo cc i tng ca Interface Builder trc khi
mun sdng cc i tng ny lp trnh. Ngoi ra tp tin .h cn dng khai bo cc
hm skin trc khi sdng trong tp tin .m. Tp tin .m dng trin khai cc hm skin m bn khai bo bn tp tin .h.
5/28/2018 Tai Lieu Huong Dan code ios
38/420
30
Hnh 2.23 Hai tp tin sdng 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 tngv ko thvo tp tin .h.
Hnh 2.24 nh xi tng vo tp tin .h
5/28/2018 Tai Lieu Huong Dan code ios
39/420
31
Khi hp thoi hin ra, bn la chn loi kt ni cho i tng l Actionhoc
Outlet. Hiu mt cch n gin, i tng no m bn sdng hin ththng tin ra
bn ngoi th thuc loi Outlet. i tng no m bn mun vit code khi tng tc
vi i tng scho ra kt qum bn mun ( v dbn mun nhn vo Button s
hin Hello World) th bn schn loi l Action.Mt i tng c thva 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 htrbn trong vic pht hin li v thng bo cho bn
bng hnh trn mu cha du chm than ti vtr pht hin li. Ngoi ra Xcode cng
c chcnh 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 htrbn mt chgi sa li trong qu trnh vit code. V dbnvit code nhng qun du ; , Xcode sgi cho bn c du ; hon tt on code
hon chnh.
5/28/2018 Tai Lieu Huong Dan code ios
40/420
32
Hnh 2.26 Gi khc phc li
Xcode chhtrkhc phc mt sli c bn vc php, cc li lin quan khc trong qu
trnh vit code cc bn phi tgii quyt
Trong Library pane, Xcode htrsn cho bn mt son code mu trong th vin,
nu bn cn xi on code no, bn chcn ko thon code tLibrary pane sang
Editor area.
Hnh 2.27 Mt scode mu sdng
5/28/2018 Tai Lieu Huong Dan code ios
41/420
33
Nu bn c mt on code, bn mun lu n li ln sau sdng th bn chcn chn
on code v ko thvo Library pane, t tn cho on code v lu li. Nh vy
ln sau bn mun sdng li, chvic ko thtLibrary sang l c.
thun tin cho vic vit code nhanh chng, bn c thbt chchia i vng
Editor area lm hai, lc ny bn c thxem cng lc ctp 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 thty chnh li font v mu chto nn mt sthay i, to thm cm
hng mi. Bn chn Xcode> chn Preferences> chn Fonts & Colors, sau bn ty
chn mt nh dng mnh thch.
5/28/2018 Tai Lieu Huong Dan code ios
42/420
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 thsdng nt Quick Help trong
Utility area mti liu tham kho v tra cu cc hm cng nh xem v dminh hacho 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 thv a ng dng ln iOS Simulator, bn sdng cc button
chuyn dng trn Toolbar. chy ng dng, trc tin bn phi chn la thit bm bn
mun chy ng dng ln . Bn c thchn chy ln thit btht hoc trn iOS
Simulator. Trong iOS Simulator, ty theo ng dng ca bn vit cho thit bno m la
chn thit b, v diPad, iPhone, iPhone Rentina
5/28/2018 Tai Lieu Huong Dan code ios
43/420
35
Hnh 2.30 La chn thit biOS Simulator
Sau khi chn la xong phn thit b, bn nhn Runchy chng trnh. Nu mun
dng chng trnh, bn nhn Stop.
Hnh 2.31 Nhn Stop dng chng trnh
5/28/2018 Tai Lieu Huong Dan code ios
44/420
36
2.1.6.2 Kim Tra Li Ca ng Dng
Vng Debug area htrbn 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 sdng RAM,
CPU.
Hnh 2.32 Vng Debug Navigator
Trong Debug area c cc nt htrnh bt tt cc Breakpoint, nhm nt htrthc
thi ng dng tng bc htrbn 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 voBreakpoint gutter tng ng vi vtr .
5/28/2018 Tai Lieu Huong Dan code ios
45/420
37
Hnh 2.34 nh du Breakpoint
Ngoi ra nu bn mun thu gn 1 on code no , bn c thsdng thanh ng
htrbn cnh thanh ng t Breakpoint.
Hnh 2.35 Thu gn on code cho dnhn
5/28/2018 Tai Lieu Huong Dan code ios
46/420
38
2.2 TM HIU IOS SIMULATOR
2.2.1 Gii Thiu iOS Simulator
iOS Simulatorl mt phn trong bcng ckm theo ca phn mm Xcode. iOS
Simulator cha iOS SDKcho php bn chy trn Mac OS gilp mi trng iPhone,
iPad nhm phc vcho vic kim thng dng c vit ra trc khi kim thng dng
trn thit btht.
iOS Simualtorcho php bn ci t nhiu thit biOS 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 thddng xy dng ng dng ca mnh dnh cho phin bn iOS
mi hoc dng cho cphin bn iOS c.
Vi iOS Simulator, bn c thkim thng dng ca bn vthit kgiao din, v
tnh nng ca ng dng, t c thkhc phc cc li pht sinh, ti u ha ng dng
trc khi bn em ng dng ln thit btht.
Bn c thc thm ti liu iOS Simulator User Guide trn iOS Developer Library tm
hiu thm, cng nh c thm kinh nghim sdng 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 thchy chung vi phn mm Xcode hoc chy c lp
u c. Bn c thtng tc vi iOS Simulator thng qua bn phm, chut nhp d
liu cng nh iu khin cc skin ca ngi dng.
Phn ny sgip bn tm hiu mt sim c bn ca iOS Simulator htrbn
tt hn trong qu trnh vit ng dng cho iOS.
https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/iOS_Simulator_Guide/Introduction/Introduction.htmlhttps://developer.apple.com/library/ios/documentation/IDEs/Conceptual/iOS_Simulator_Guide/Introduction/Introduction.htmlhttps://developer.apple.com/library/ios/documentation/IDEs/Conceptual/iOS_Simulator_Guide/Introduction/Introduction.htmlhttps://developer.apple.com/library/ios/documentation/IDEs/Conceptual/iOS_Simulator_Guide/Introduction/Introduction.htmlhttps://developer.apple.com/library/ios/documentation/IDEs/Conceptual/iOS_Simulator_Guide/Introduction/Introduction.html5/28/2018 Tai Lieu Huong Dan code ios
47/420
39
2.2.2.1 Thao Tc C Bn Vi IOS Simulator
Thao tc mv thot ios simulator
miOS Simulator bn c hai cch. Mt l bn chy ng dng trong Xcode
khi ng iOS Simulator. Vi cch ny bn chcn chn iOS Simulator ph hp ri
chn Run.
Hnh 2.36 Chn Run miOS Simulator
Cch thhai l bn chn menu Xcode> chn Open Develop Tool> iOS
Simulator. Khi y iOS Simulator sc khi ng.
5/28/2018 Tai Lieu Huong Dan code ios
48/420
40
Hnh 2.37 MiOS Simulator trong Menu
Mc d l mt phn trong bcng cca Xcode, nhng iOS Simulator vn c th
tip tc hot ng d Xcode c bng 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
5/28/2018 Tai Lieu Huong Dan code ios
49/420
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 thkim 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 sdng mn hnh ngang). Nu l thit btht, tht ddng bn c th
xoay mn hnh cho ph hp. Tuy nhin vi iOS Simulator, bn cn phi sdng n chc
nng xoay mn hnh c htrsn c thxoay mn hnh theo mun.
Bn c thvo menu Hardware> chn Rotate Leftnu bn mun xoay qua tri ;
chn Rotate Rightnu bn mun xoay qua phi ; chn Shake Gesturenu bn mun
rung nh.
Hnh 2.39 Trong menu chn xoay mn hnh iOS Simulator
n/hin keyboard
Trong qu trnh kim thng dng, nhiu trng hp bn cn sdng 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 sdng n tnh nng Keyboard ca iOS
Simulator n/hin bn phm. Bn c thvo menu Hardware> chn Simulate
Hardware Keyboard.
5/28/2018 Tai Lieu Huong Dan code ios
50/420
42
Hnh 2.40 n/Hin keyboard trong iOS Simulator
Ci t v gbng dng trn iOS Simulator
ng dng trong iOS Simulator c ci t thng qua Xcode. Khi bn chy ng
dng bng Xcode th Xcode sci t ng dng vo iOS Simulator. Cch thc gb
ng dng cng ging nh trn thit biOS tht. Bn chcn nhp v gichut ( hoc
trackpad ) trn biu tng ca ng dng cho n khi xut hin biu tng du x, bn chcn nhp vo du x gbng dng. Sau khi hon tt chcn n Home trli ban
u.
5/28/2018 Tai Lieu Huong Dan code ios
51/420
43
Hnh 2.41 Gng dng trong iOS Simulator
Bsung thm cc phin bn ios v cc thit bios
iOS Simulator cho php bn c thchy ng dng trn nhiu loi thit bnh
iPhone, iPhone Rentina, iPad, iPad Rentina. ng thi, iOS Simulator cng cho php bn
sdng 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 htrcc
thit biPhone Rentina, iPad Rentina v iOS 7.0. Nu bn mun iOS Simulator chy cc
thit biPhone, 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.
5/28/2018 Tai Lieu Huong Dan code ios
52/420
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 thlu 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 sc lu trn mn hnh Mac OS.
Hnh 2.43 Chp nh mn hnh iOS Simulator
5/28/2018 Tai Lieu Huong Dan code ios
53/420
45
Copy - Paste trong iOS Simulator
Trong iOS Simulator cng htrbn Copy v Paste mt chui.
Copy mt chui, bn nhp chut vo chuihin thra nt Selectv Select
All.Chn Select nu bn mun la chn mt tno , hoc Select All nu mun chntt c.
Hnh 2.44 Chn Select hoc Select All
Di chuyn im u v im cui nh du li chui cn chn > chn Copy
5/28/2018 Tai Lieu Huong Dan code ios
54/420
46
Hnh 2.45 La chn chui cn copy v chn Copy
Paste mt chui vo iOS Simulator, trc tin bn chn Edit> Pastechuyn
chui c copy tMac vo iOS Simulator.
Hnh 2.46 Paste tMac OS vo iOS Simulator
5/28/2018 Tai Lieu Huong Dan code ios
55/420
47
Sau chn vtr mun Pastechui trong iOS Simulator > Double-clickvo vtr
hin ra nt Paste > chn Paste.
Hnh 2.47 Chn Paste
2.2.2.2 Mt SHn ChCa iOS Simulator
Mc d iOS Simulator rt hu ch cho bn kim thng dng trc khi a ln thit
btht, tuy nhin bn thn iOS Simulator vn cn mt shn chnht nh. i vi phn
cng, iOS Simulator vn cn khim khuyt mt sim nh khng c camera, khng
c microphone Ngoi ra cn mt sframework khng c htrnh Media
player, Messenger UI Nu nh cc phin bn trc ca Xcode, iOS Simulator cn
htrc vi cc phin bn ca iOS thp hn nh iOS th trong phin bn ny, iOS
Simulator chhtrtphin bn iOS 6.0 trln.
5/28/2018 Tai Lieu Huong Dan code ios
56/420
CHNG IIINGN NGOBJECTIVE-C
Mc d Xcode htrnhiu ngn ngtrong vic lp trnh ng dng trong iPhone, nhng
ng vai tr chyu nht vn l ngn ngObjective-C bi sthn thin, dsdng ca
n. Chng ny shng dn bn mt snt c bn ca ngn nglp trnh Objective-C
vi hi vng bn snm c s lc cch sdng, c php ca ngn ngny thun
tin hn trong vic xy dng ng dng. Ni dung chng strnh by s lc mt svn
sau ca ngn ngObjective-C:
Khai bo bin
Kiu dliu
Cc php ton
Hm (Function)
Cu trc iu kin
Cu trc lp
Mng
Chui
5/28/2018 Tai Lieu Huong Dan code ios
57/420
49
3.1 GII THIU NGN NGOBJECTIVED-C
Ngn ngObjective-C c to ra bi Brad Cox v Tom Love vo nm 1980 ti
cng ty Stepstone. Tnm 1988, cng ty NeXT Sofware nm gibn quyn ca ngn
ngObjective-C. H pht trin cc bth vin v cmi 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 trthnh phn ct li ca hiu 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 htrsn ngn ngObjective-C, ng thi tch hp mt scng cpht
trin khc nh Project Builder (y l tin thn ca Xcode) v Interface Builder, Apple
to ra mt mi trng mnh mpht trin ng dng trn Mac OS X. n nm 2007,
Apple tung ra bn nng cp cho ngn ngObjective-C v gi l Objective-C 2.0.
Ngn nglp trnh Objective-C da trn nn tng ngn ngC nhng bsung thm
htrlp trnh hng i tng. Objective-C l ngn nglp trnh sdng vit ng
dng cho Apples iOS v hiu hnh Mac OS.
3.2 KHAI BO BIN - CCH SDNG
3.2.1 Bin
Bin c sdng lu trcc gi trca ng dng. Bin gm c: kiu dliu,
tn bin v gi trca bin. C php:
Kiu_d_liu tn_bin ;
hoc
Kiu_d_liu tn_bin = gi_tr_ca_bin;
Trong =: lnh gn gi trcho bin
VD: int x ; hoc int x = 10;
5/28/2018 Tai Lieu Huong Dan code ios
58/420
50
3.2.2 Quy Tc t Tn
Quy tc t tn bin:
- Ngn ngObjective-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 tc bit (ngoi trdu gch di _)
- Tn bin khng c t trng vi cc tkho ca ngn ngobjective-C. VD:
void, if, static, ...
3.3 KIU DLIU
Kiu dliu sgip trnh bin dch xc nh c loi dliu (snguyn, sthc,
chui,) m chng ta mun lu trl g t scp pht lng bnhtng ng vi
loi dliu m chng ta cn lu tr. Objective-C htrcc kiu dliu c bn nh sau:
Loi dliu Tn kiu S nh Min gi tr
K t char 1 byte -128 .. 127
unsigned char 1 byte 0 .. 255
Snguyn 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 ..
5/28/2018 Tai Lieu Huong Dan code ios
59/420
51
9,223,372,036,854,775,807
unsigned long long 8 bytes 0 .. 18,446,744,073,709,551,615
Sthc 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 dliu trong Objectived-C
3.4 PHP TON
Php ton K hiu V d
Cng + A + B
Tr - AB
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 chc dng trn 2 ton hng kiu snguyn (nu khng
ssinh li c php)
V d: 9 % 5 = 4
3.5 CH THCH CODE
Ch thch mt dng code
5/28/2018 Tai Lieu Huong Dan code ios
60/420
52
//ghi ch chtrn 1 dng
Ch thch mt on code
/*
Ghi ch trn 1
hay nhiu dng
*/
3.6 XUT DLIU RA MN HNH
Hm NSLog l hm c bit ca hthng, hm ny c thit kdng cho vic
hin thcc thng bo li.
C php:
NSLog(Ni dung in [ , cc_biu_thc]);
Ni dung in V d
Cc k tcn in LacHong University
Cc k tc bit bt u bi du \ \n : xung dng;
\t : k tTab;
\\ : k t\
\; : k t;
\ : du
Cc m nh dng gi trca biu thc %m_kiu_d_liu
(kiu float l f; kiu int l d hay i)
Bng 3.3 V dcc kiu xut dliu ra mn hnh
VD: Dng hm NSLog hin thchui LacHong University
5/28/2018 Tai Lieu Huong Dan code ios
61/420
53
Hnh 3.1 Code sdng hm NSLog()
Kt quhin th:
Hnh 3.2 Kt quin 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 quhin th:
Hnh 3.4 Kt quxut ra chv s
5/28/2018 Tai Lieu Huong Dan code ios
62/420
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 chc thc thi khi tn khi code c gi.
3.7.2 Phng Thc Khng C Tham STruyn 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 tngh ra
VD:
Hnh 3.5 Hm HelloWorld
Gi hm:
5/28/2018 Tai Lieu Huong Dan code ios
63/420
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 STruyn 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 struyn vo
Gi hm:
Hnh 3.8 Gi hm HelloWorld
3.7.4 Phng Thc C Nhiu Tham STruyn Vo
Khai bo:
5/28/2018 Tai Lieu Huong Dan code ios
64/420
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 thc hoc khng, dng m tcho tn tham s.
VD:
Hnh 3.9 Hm cng hai s
Trong
- a: l tham sth1.
- b: l tham sth2.
Gi hm:
Hnh 3.10 In kt quhm cng
Trong 1 v 2 l cc i sc truyn vo hm congHaiSo.
5/28/2018 Tai Lieu Huong Dan code ios
65/420
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 trli 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 nhhn b khng?
- if (a
5/28/2018 Tai Lieu Huong Dan code ios
66/420
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 snguyn
- Lnh break thot khi switch
VD:
5/28/2018 Tai Lieu Huong Dan code ios
67/420
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:
5/28/2018 Tai Lieu Huong Dan code ios
68/420
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:
5/28/2018 Tai Lieu Huong Dan code ios
69/420
61
Hnh 3.14 Vng lp Do - While
3.10 MNG
3.10.1 nh Ngha
Mng l 1 tp hp nhiu bin nhc cng kiu, gi l kiu phn tca mng, c
cp pht nhng vtr lin tc trong bnh.
Mi phn t(bin nh) trong mng c xc nh da trn tn mng v cc chs
xc nh vtr ca phn ttrong mng.
Chsphn tca mng l cc snguyn khng m.
3.10.2 Mng Nsarray
Sdng i tng NSArray khi to mng.
C php:
NSArray *tn_mng;
VD:
NSArray*mangTen;
khi to gi trcho cc phn ttrong mng ta sdng hm
VD:
5/28/2018 Tai Lieu Huong Dan code ios
70/420
62
Hnh 3.15 Sdng NSArray
Trong
- hm : m sphn ttrong mng.
- alloc: cp pht vng nhcho mng mangTen.
- %@: M kiu dliu i vi kiu chui NSString trong Objective-C.
-
objectAtIndex: ly ra phn tvtr index.
Kt qu
Hnh 3.16 Kt qusdng NSArray
3.11 CHUII 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 trca chui ta dung hm NSLog
5/28/2018 Tai Lieu Huong Dan code ios
71/420
63
Hnh 3.18 Kim tra gi trchui
m slng k t(chiu di ca chui)
Hnh 3.19 m slng k t
3.11.2 i Tng NSString
To i tng c kiu l NSString c thsdng 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 ChuiDng hm rangeOfString tm chui str1 c xut hin trong chui str2 khng.
Hnh 3.21 Tm kim bn trong chui
5/28/2018 Tai Lieu Huong Dan code ios
72/420
64
Kt qu
Hnh 3.22 Kt qutm 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 ttrong chui
Kt qu:
Hnh 3.24 Kt quthay 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
5/28/2018 Tai Lieu Huong Dan code ios
73/420
65
Hnh 3.26 Kt qusau khi xa ni dung
3.11.6 Ct ChuiCt chui c gii hn slng k t, ly tk tthn.
Hnh 3.27 Ct chui tvtr n
Kt qu
Hnh 3.28 Kt quct chui tvtr n
Ly tt ck tcn li, tnh tk tthn.
Hnh 3.29 Ly cc k tcn li tvtr n
Kt qu
Hnh 3.30 Kt quly cc k tcn li tvtr n
5/28/2018 Tai Lieu Huong Dan code ios
74/420
66
Tch chui thnh cc phn nh
Hnh 3.31 Tch chui thnh cc phn nh
Kt qu
Hnh 3.32 Kt qutch chui
3.11.7 Chn K TVo Trong Chui
Dng hm insertString chn k thoc mt chui vo chui.
Hnh 3.33 Chn k tvo chui
Kt qu
Hnh 3.34 Kt quchn k tvo chui
3.11.8 Chn K TVo Cui Chui
Dng hm appendString chn k tvo cui chui.
5/28/2018 Tai Lieu Huong Dan code ios
75/420
67
Hnh 3.35 Chn k tvo cui chui
Kt qu
Hnh 3.36 Kt quchn k tvo 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 quso snh hai chui
3.11.9 So Snh Chui Vi K Tu V Cui Chui
Dng hm hasPrefix v hasSuffix so snh vi k tu chui, k tcui chui.
5/28/2018 Tai Lieu Huong Dan code ios
76/420
68
Hnh 3.39 So snh vi k tu, k tcui
Kt qu
Hnh 3.40 Kt quso snh vi k tu chui, k tcui chui
3.11.10 Chuyn i Hnh Dng Ca Ch
Vit hoa chu.
Hnh 3.41 Vit hoa k tu
Kt qu
5/28/2018 Tai Lieu Huong Dan code ios
77/420
69
Hnh 3.42 Kt quvit hoa k tu
Tt cvit thng.
Hnh 3.43 Vit thng tt ck t
Kt qu
Hnh 3.44 Kt quvit thng cc k t
Tt cvit hoa.
Hnh 3.45 Vit hoa tt ck t
Kt qu
Hnh 3.46 Kt quvit hoa cc k t
5/28/2018 Tai Lieu Huong Dan code ios
78/420
70
3.11.11 Chuyn Chui Thnh Dng S
Chuyn thnh snguyn
Hnh 3.47 Chuyn thnh snguyn
Kt qu
Hnh 3.48 Kt quchuyn thnh snguyn
Chuyn thnh NSInteger
Hnh 3.49 Chuyn thnh NSInteger
Kt qu
Hnh 3.50 Kt quchuyn thnh NSInteger
Chuyn thnh float
5/28/2018 Tai Lieu Huong Dan code ios
79/420
71
Hnh 3.51 Chuyn thnh float
Kt qu
Hnh 3.52 Kt quchuyn thnh float
Chuyn thnh sdouble
Hnh 3.53 Chuyn thnh double
Kt qu
Hnh 3.54 Kt quchuyn thnh double
5/28/2018 Tai Lieu Huong Dan code ios
80/420
CHNG IVMT STHAO 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 vcc thao tc c bn ny sbtrcho 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 sthao tc c bn nh:
Thay i icon ca ng dng
Thay i mn hnh khi ng dng va c mln
Thay i tn ng dng khi tn c qu di
Ty chnh background Thm mi mt framework
n thanh trng thi status bar
5/28/2018 Tai Lieu Huong Dan code ios
81/420
73
4.1 APP ICONLOADING SCREEN
Phn ny shng dn bn cch hin thcng 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 ththam 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 shin thra mn hnh iPhone sau khi ng
dng c ci t, ng thi icon ca ng dng cng hin thln App Store khi bn em
ng dng ca mnh ln App Store. C hai loi icon l icon dnh cho ng dng trn iPhonev 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 bc hnh nh vi kch thc ph hp, trong phn thng tin ca
Project, bn ko xung phn App iconv ko cc icon chun bsn vo ng vtr ca
icon.
https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/IconMatrix.html#//apple_ref/doc/uid/TP40006556-CH27-SW1https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/IconMatrix.html#//apple_ref/doc/uid/TP40006556-CH27-SW1https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/IconMatrix.html#//apple_ref/doc/uid/TP40006556-CH27-SW1https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/IconMatrix.html#//apple_ref/doc/uid/TP40006556-CH27-SW1https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/IconMatrix.html#//apple_ref/doc/uid/TP40006556-CH27-SW15/28/2018 Tai Lieu Huong Dan code ios
82/420
74
Hnh 4.2 Ko thicon vo vtr
Bn tin hnh chy thng dng trn iOS Simulator sthy icon ca ng dng.
Hnh 4.3 Icon trn iOS simulator
5/28/2018 Tai Lieu Huong Dan code ios
83/420
75
4.1.2 Loading Screen
Loading Screen l hnh nh m khi chy ng dng ln bn sthy n, ty theo tc
ca ng dng m thi gian hin thLoading Screen nhanh hoc chm khc nhau.
chun bcho Loading Screen bn cn chun btrc hnh nh dng PNG, kch thc
640x1136 (iPhone 5 trln), 640x960 (iPhone 4).
Hnh 4.4 Chun bBackground
Sau khi chun bxong hnh nh, trong phn Lauch Image, bn ko thhnh nh vo
Xcode cho ng vtr.
Hnh 4.5 Ko thbackground image vo Lauch Image
5/28/2018 Tai Lieu Huong Dan code ios
84/420
76
4.2 THAY I APP NAME
App Name l tn ca ng dng hin thbn di App icon trn mn hnh iPhone.
Nhiu trng hp v tn ng dng qu di nn khng thhin thht trn mn hnh
iPhone, do bn cn phi i tn ng dng li cho ph hp, ngn gn c thhin
c tn ng dng bn di icon, nh vy ng dng sc tnh thm mhn. khcphc 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
5/28/2018 Tai Lieu Huong Dan code ios
85/420
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
5/28/2018 Tai Lieu Huong Dan code ios
86/420
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 nhmt phn giao din dnh chcho 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 trvgi trl yes.
Hnh 4.10 Chn gi trYes
5/28/2018 Tai Lieu Huong Dan code ios
87/420
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 shng dn bn to v sdng mt hnh nh lm hnh nn cho
ng dng ca bn. Trc tin bn cn phi chun bmt 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 trln), 640x960 (iPhone 4).
5/28/2018 Tai Lieu Huong Dan code ios
88/420
80
Hnh 4.12 Background Image
Sau khi chun bxong hnh nh lm background cho ng dng, bn chp hnhnh vo trong project.
Hnh 4.13 Chp hnh nh vo Project
5/28/2018 Tai Lieu Huong Dan code ios
89/420
81
Tip theo bn tUtility area, bn ko thi tng UIImage View vo Interface
Builder, iu chnh kch thc UIImage View cho va vi mn hnh.
Hnh 4.14 Ko thUIImage View vo Project
Trong Inspector selector pane> Attributes inspector, bn tm n mc ImageView > chn Image > la chn hnh nh bn mun lm background.
5/28/2018 Tai Lieu Huong Dan code ios
90/420
82
Hnh 4.15 La chn hnh nh lm background
Kt qu.
Hnh 4.16 Thay i background bng image
5/28/2018 Tai Lieu Huong Dan code ios
91/420
83
4.4.2 Background Color
Ngoi vic sdng hnh nh lm background cho ng dng, nu bn yu thch s
n gin, bn c thto 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 thchn Other.
Hnh 4.18 Chn mu
5/28/2018 Tai Lieu Huong Dan code ios
92/420
84
Sau khi chn xong mu th background si mu vi mu bn la chn.
Hnh 4.19 Background thay i
4.5 THM FRAMEWORK
Mc d Xcode htrnhiu Framework htrcho cc nh pht trin ng dng, tuynhin chmt sframework c bn c thm vo khi to project, cc framework cn li
th khi vit ng dng, bn phi tthm vo c thsdng framework . tin hnh
thm mt framework, trong giao din Generalca Project, bn ko xung ti mc Link
Frameworks and Libraries.
Hnh 4.20 Link Frameworks and Libraries
5/28/2018 Tai Lieu Huong Dan code ios
93/420
85
Bn nhp chut vo biu tng du cng mra bng danh mc cc framework
m Xcode htr.
Hnh 4.21 Chn Framework
Sau bn la chn framework m bn mun thm vo project ri nhn Add.
Hnh 4.22 chn Add
5/28/2018 Tai Lieu Huong Dan code ios
94/420
CHNG VMT SI TNG C BN
Chng ny trnh by mt si tng c bn thng c sdng vit ng
dng cho iOS. Qua chng ny, bn c thnm c chc nng cng nh cch sdng
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 si 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 chsau:
https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/UIKit
UICatalog/index.html
https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/UIKitUICatalog/index.htmlhttps://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/UIKitUICatalog/index.htmlhttps://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/UIKitUICatalog/index.htmlhttps://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/UIKitUICatalog/index.htmlhttps://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/UIKitUICatalog/index.html5/28/2018 Tai Lieu Huong Dan code ios
95/420
87
5.1 I TNG LABELBUTTONTEXT FIELD
5.1.1 Gii Thiu
5.1.1.1 i Tng Label
Label dng hin thmt ni dung l ch/cu/on vn c tnh cnh t thay i.
Hnh 5.1 Label
Label cho php ngi dng thay i mt sthuc tnh hin thni 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
5/28/2018 Tai Lieu Huong Dan code ios
96/420
88
5.1.1.2 i Tng Button
Button c thc thit khin thchhoc hin ththeo hnh nh, thng c s
dng ngi dng tng tc vi ng dng nhm to ra mt skin no ca ng
dng. Chng hn bn nhp tn ca bn vo text field, bn mun khi ngi dng chm vo
button shin tn bn ra mn hnh.Lc ny button sc thit knm bt skin khingi dng chm vo, v thc hin chc nng hin thtn bn ra mn hnh.
Hnh 5.3 Button
Vi button, bn c thla chn mt snh dng button c sn, hoc ty chn mt
dng button khc theo bn. Khng nhng thbn cn c thty chnh font ch, mu
ch, mu nn ca button hoc thay thbutton theo mhnh nh button c thit k
trc.
5/28/2018 Tai Lieu Huong Dan code ios
97/420
89
Hnh 5.4 Thuc tnh ca Button
5.1.1.3 i Tng Text Field
i tng Text field thng c sdng ngi dng nhp dliu u vo cho
ng dng. Chng hn nh bn vit chng trnh tnh tng hai s, th bn sdng Textfield ngi dng nhp vo hai scn tnh tng, v bn ssdng gi trnhp vo ca
Text field tnh ton v hin thkt qucho ngi dng.
Hnh 5.5 Text Field
Text field cho php ty chnh canh ltri/gia/phi, ty chnh font chv kch
thc chtrong Text field. Hn na, bn c thty chnh hnh dng ca Text field, cng
nh nh dng ni dung gi cho ngi dng (placeholder).
5/28/2018 Tai Lieu Huong Dan code ios
98/420
90
Hnh 5.6 Thuc tnh ca Text Field
5.1.2 V D
Trong phn v dny shng dn cc bn vit mt ng dng nhhin thtn
ca bn ra mn hnh. ng dng sc mt label, mt button, mt text field. Bn snhp
tn bn vo text field, sau chm vo button, label shin thni dung m bn nhp
vo text field trc .
- To ng dng c tn l Label-Button-TextField.
- Thit kgiao din cho ng dng gm mt lable, mt button, mt text field.
- nh xcc i tng vo tp tin .h.
- Vit code cho skin khi ngi dng chm vo button.
Bc 1: To project mi.
5/28/2018 Tai Lieu Huong Dan code ios
99/420
91
Hnh 5.7 To New Project
Hnh 5.8 Chn ni lu project
5/28/2018 Tai Lieu Huong Dan code ios
100/420
92
Bc 2: thit kgiao din
Hnh 5.9 thit kgiao din
Bc 3: nh xi tng.
Hnh 5.10 nh xi tng
5/28/2018 Tai Lieu Huong Dan code ios
101/420
93
Hnh 5.11 nh xi tng (tt)
Bc 4: vit code cho button.
Hnh 5.12 vit code cho button
Bc 5: chy th
5/28/2018 Tai Lieu Huong Dan code ios
102/420
94
Hnh 5.13 chy thng dng
5.2 KT NI C SDLIU VI SQLITE
5.2.1 Gii Thiu
SQLite l mt hqun trc sdliu c thchy hon ton c lp m khng cn
n server. SQLite thng c ngi lp trnh sdng lu trc sdliu khi vit
ng dng cho cc thit bca Apple. Cc lnh truy vn trn SQLite sdng cc lnh truy
vn ca SQL (v dSELECT, UPDATE, CREATE). Vic qun l SQLite rt n gin,
bn chcn qun l thng qua mt plugin ca FireFox l SQLite Manager.Bn c thtm
hiu thm tihttp://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.
http://www.sqlite.org/http://www.sqlite.org/http://www.sqlite.org/http://www.sqlite.org/5/28/2018 Tai Lieu Huong Dan code ios
103/420
95
Hnh 5.14 Addon SQLite
Sau khi ci t xong, trong phn Tool bn sthy nh hnh.
Hnh 5.15 SQLite Manager trong Tool
5.2.3 Cu Hnh ng Dng Tng Tc Vi Sqlite
ng dng c ththao tc vi c sdliu ca SQLite, bn cn bsung thm th
vin htrvo project. Trong phn Build Phase, mc Link to Library, bn thm vo th
vin libsqlite3.dylib vo project.
Hnh 5.16 Thm framework htrSQLite
5/28/2018 Tai Lieu Huong Dan code ios
104/420
96
5.2.4 Cc Hm Trong Sqlite
Trong SQLite c mt shm c bn cho php bn tng tc ddng vi c sd
liu.
- sqlite3_open(): mmt kt ni n tp tin sqlite. Nu tp tin ny chac, h
thng stng 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_(): trvkt qudliu tcu truy vn SQL, vi kiu
dliu 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 bnh.
Bn c ththam kho thm mt shm khc ti:www.sqlite.org/c3ref/funclist.html
5.2.4.1 Khi To i Tng Sqlite
Trc khi tng tc vi c sdliu 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() mkt ni n c sdliu sqlite.
Hnh 5.18 Hm sqlite3_open
Nu tp tin ny cha c th stng c to.
http://www.sqlite.org/c3ref/funclist.htmlhttp://www.sqlite.org/c3ref/funclist.htmlhttp://www.sqlite.org/c3ref/funclist.htmlhttp://www.sqlite.org/c3ref/funclist.html5/28/2018 Tai Lieu Huong Dan code ios
105/420
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.
Sdng bin SQLITE_OK kim tra trng thi trvca vic mkt 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 trvo 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 qutrv
5/28/2018 Tai Lieu Huong Dan code ios
106/420
98
Trong cu lnh sqlite3_step() strvcc dng nh sau:
- Nu cu lnh sql dng INSERT, DELETE, UPDATE, CREATE th trv
kt quc dng l SQLITE_OK bo tnh trng c thc thi c hay khng.
- Nu cu lnh slq dng SELECT strvkt quc dng l SQLITE_ROW, l
tp hp cc hng dliu c ly tdatabase.
5.2.4.4 Truy Xut DLiu Database
Khi to cu lnh truy vn.
Hnh 5.22 Khi to cu lnh truy vn
Bc tch dliu ly c.
Hnh 5.23 Tch dliu ly c
5.2.4.5 ng Kt Ni Database
Sau khi hon tt qu trnh tng tc c sdliu, bn nn ng li kt ni c sd
liu c
Hnh 5.24 ng kt ni c sdliu
5/28/2018 Tai Lieu Huong Dan code ios
107/420
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 sdliu mi tn l Count.
Hnh 5.26 To CSDL mi
Bc 3: To mt table mi
5/28/2018 Tai Lieu Huong Dan code ios
108/420
100
Hnh 5.27 To table
Hnh 5.28 Khai bo thuc tnh cho Table
Bc 4: nhp dliu
5/28/2018 Tai Lieu Huong Dan code ios
109/420
101
Hnh 5.29 Nhp dliu
Hnh 5.30 Kt qu
Bc 5: to project mi sqlite
5/28/2018 Tai Lieu Huong Dan code ios
110/420
102
Hnh 5.31 To Project mi
Hnh 5.32 in thng tin Project
Bc 6: thit kgiao din
5/28/2018 Tai Lieu Huong Dan code ios
111/420
103
Hnh 5.33 Thit kgiao din
Bc 7: thm th vin vo project.
Hnh 5.34 Thm th vin
5/28/2018 Tai Lieu Huong Dan code ios
112/420
104
Hnh 5.35 Sau khi thm th vin
Bc 8: nh xi tng
Hnh 5.36 nh xi tng
Bc 9: Thm tp tin sqlite vo project
5/28/2018 Tai Lieu Huong Dan code ios
113/420
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
5/28/2018 Tai Lieu Huong Dan code ios
114/420
106
Hnh 5.39 Kt qunh 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 skin Click
Khai bo i tng lu ng dn database.
5/28/2018 Tai Lieu Huong Dan code ios
115/420
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 dliu
Hnh 5.44 Lnh truy xut dliu
Khai bo i tng lu trcu truy vn
Hnh 5.45 Khai bo i tng lu cu truy vn
5/28/2018 Tai Lieu Huong Dan code ios
116/420
108
Vit code truy vn
Hnh 5.46 Vit code truy vn dliu
Kt qu.
5/28/2018 Tai Lieu Huong Dan code ios
117/420
109
Hnh 5.47 Kt qu
5.3 SDNG CAMERA IPHONE
5.3.1 Gii Thiu
Phn ny shng dn cc bn cch sdng th vin htrca iOS dng
camera iPhone chp nh. Th vin iOS cung cp mt lp l UIImagePickController dngqun l vic tng tc vi camera hoc photo library. Tuy nhin
UIImagePickController khng thsdng trc tip m cn ti mt i tng khc
delegate (tha k) li n. Sau y chng ta sxy dng mt ng dng n gin dng
camera chp nh. Giao din ca ng dng ny gm mt UIImageView hin thhnh
nh, mt button tn l Chp nh.
5.3.2 V DTo ng dng mi t tn l CameraApp.
5/28/2018 Tai Lieu Huong Dan code ios
118/420
110
Hnh 5.48 To project mi
Hnh 5.49 Chn ni luproject
Thit kgiao din ng dng.
5/28/2018 Tai Lieu Huong Dan code ios
119/420
111
Hnh 5.50 Thit kgiao din
nh xcc i tng vo tp tin ViewController.h.
\
Hnh 5.51 nh xi tng
5/28/2018 Tai Lieu Huong Dan code ios
120/420
112
Hnh 5.52 Kt qu
Trong ViewController, thm on code sau tha kli UIImagePickController.
Hnh 5.53 Tha kUIImagePickController
Vit code cho button Chp nh.
Hnh 5.54 Vit code cho button Chp nh
Vit code hai phng thc ca UIImagePickController.
5/28/2018 Tai Lieu Huong Dan code ios
121/420
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 btht kim tra kt qu.
5.4 UIIMAGE
5.4.1 Gii Thiu
UIImagedng hin thhnh nh, c thsdng cc hiu ng animation hin
thhnh nh.
.
Hnh 5.57 i tng UIImage
5/28/2018 Tai Lieu Huong Dan code ios
122/420
114
Hnh 5.58 UIImage khi ko ra thit kgiao din
5.4.2 Cc nh Dng nh HTrTrn Iphone
Cc dng file nh c htrtt trn iPhone:
5.4.3 V D
Hin thnh tmt file c sn trn my.
Bc 1: Add UIImageViewvo StoryBoard.
Chn Main.storyboard
Hnh 5.59 Chn storyboard
Tn nh dng Tn file mrngTagged Image File Format (TIFF) .tiff, .tifJoin Photographic Experts Group (JPEG) .jpg, .jpegGraphic Interchange Format (GIF) .gifPortable Network Graphic (PNG) .pngWindows Bitmap Format (DIB) .bmp, .bmpfWindows Icon Format .icoWindows Cursor .curXwindow bitmap .xbm
5/28/2018 Tai Lieu Huong Dan code ios
123/420
115
Ko thUIImage thp thoi Accessibility vo Storyboard.
Hnh 5.60 i tng UIImage View
Hnh 5.61 Kt qusau khi ko vo storyboard
Bc 2: nh xUIImageViewvo file NATViewController.h dng outlet vitn imgHinhAnh.
5/28/2018 Tai Lieu Huong Dan code ios
124/420
116
Hnh 5.62 Kt qusau khi nh x
Bc 3: Add file hnh vo project ang lm.
Click phi chut vo projectchn Add Files to...
Hnh 5.63 Thm file vo project
5/28/2018 Tai Lieu Huong Dan code ios
125/420
117
Hnh 5.64 Chn file cn thm vo
Bc 4: Load file hnh vo UIImage.
Cch 1: Chn hnh thp thoi Image View.
Hnh 5.65 Cch chn tImage View
Hnh 5.66 Kt qusau khi chn
Cch 2: Gi phng thc sau load file hnh vo UIImageView.
Hnh 5.67 Cch sdng codeMfile NATViewController.m, ti phng thc viewDidLoad.
5/28/2018 Tai Lieu Huong Dan code ios
126/420
118
Hnh 5.68 Chn NATViewController
Hnh 5.69 Vit code hin thhnh nh
Kt qu.
Hnh 5.70 Kt qu
Lu : phng thc viewDidLoad sc gi mi khi chng ta mng dng.
5/28/2018 Tai Lieu Huong Dan code ios
127/420
119
Cch 3: Ko thtrc tip i tng Image vo StoryBoard:
Hnh 5.71 Ko thImage vo Storyboard
Hnh 5.72 Kt quHin thnh tmt URL:
Sdng phng thc initWithData load ni dung turl.
Hnh 5.73 Code load ni dung turl
Mfile NATViewController.m, ti phng thc viewDidLoad.
5/28/2018 Tai Lieu Huong Dan code ios
128/420
120
Hnh 5.74 Mfile NATViewController.m
Hnh 5.75 Vit code cho hm ViewDidload
Kt qu.
Hnh 5.76 Kt qu
5/28/2018 Tai Lieu Huong Dan code ios
129/420
121
5.5 UIALERT VIEW
5.5.1 Gii Thiu
UIAlertViewl i tng c sdng hin thni dung thng bo cho ngidng, 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 giititle Tiu ca Alert View.message Ni dung thng boelegate i tng nhn gi trtUIAlertView.alertViewStyle Kiu ca 1 Alert View khi hin thtrn ng dngnumberOfButtons Trvslng buttons c trn Alert ViewcancelButtonIndex Vtr index ca button Cancel trn UIAlertViewfirstOtherButtonIndex Gi trca nt u tin trong UIAlertView, mc
nh l 0.
5/28/2018 Tai Lieu Huong Dan code ios
130/420
122
Cc phng thc ca UIAlertView
Phng thc Din giiaddButtonWithTile Gn tiu cho Alert View
buttonTitleAtIndex Ly tiu ca button ti vtr indextextFieldAtIndex Ly ni dung ca textField ti vtr index
show Gi 1 Alert ViewdismissWithClickedButtonIndex Hu1 UIAlertView
5.5.3 V D
Hin thAlerView dng thng bo.
Hnh 5.79 Hin thdng thng bo
Bc 1: Ti phng thc viewDidLoad khi to i tng AlertView nh sau:
thongBao= [[UIAlertViewalloc]
initWithTitle:@"Lac Hong University"message:@"Webcome to Lac Hong University"
delegate:self
cancelButtonTitle:@"Ok"
otherButtonTitles:nil, nil];
Bc 2: Hin thAlertView bng phng thc show
Thm on code sau vo cui phng thc viewDidLoad:
[thongBao show];
Bc 3: Cmd + Rchy th, kt qu:
5/28/2018 Tai Lieu Huong Dan code ios
131/420
123
Hnh 5.80 Kt quhin th
Hin thAlerView dng Text Field
Hnh 5.81 Hin thdng 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.
5/28/2018 Tai Lieu Huong Dan code ios
132/420
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 thAlertView.
Hnh 5.85 Hin thAlertView
Bc 5: Cmd + Rchy th, kt qu:
Hnh 5.86 Hin thkt qu
5.6 UISLIDER
5.6.1 Gii Thiu
UISlider l mt i tng cho php ngi dng thay i gi trbng cch di chuynthanh trt.
5/28/2018 Tai Lieu Huong Dan code ios
133/420
125
Hnh 5.87 UISLIDER
5.6.2 c imLy gi trtSlider:
Cch 1: dng property value
value property
Cch 2: dng phng thc setValue
setValue:animated:
Thit lp gi trnhnht v ln nht cho Slider:
- Thit lp gi trnhnht:minimumValue- Thit lp gi trln nht:maximumValue
5.6.3 V D
Bc 1: Thit kgiao din nh sau.
Hnh 5.88 Thit kgiao din
https://developer.apple.com/library/ios/documentation/uikit/reference/UISlider_Class/Reference/Reference.html#//apple_ref/occ/instp/UISlider/minimumValuehttps://developer.apple.com/library/ios/documentation/uikit/reference/UISlider_Class/Reference/Reference.html#//apple_ref/occ/instp/UISlider/minimumValuehttps://developer.apple.com/library/ios/documentation/uikit/reference/UISlider_Class/Reference/Reference.html#//apple_ref/occ/instp/UISlider/minimumValuehttps://developer.apple.com/library/ios/documentation/uikit/reference/UISlider_Class/Reference/Reference.html#//apple_ref/occ/instp/UISlider/maximumValuehttps://developer.apple.com/library/ios/documentation/uikit/reference/UISlider_Class/Reference/Reference.html#//apple_ref/occ/instp/UISlider/maximumValuehttps://developer.apple.com/library/ios/documentation/uikit/reference/UISlider_Class/Reference/Reference.html#//apple_ref/occ/instp/UISlider/maximumValuehttps://developer.apple.com/library/ios/documentation/uikit/reference/UISlider_Class/Reference/Reference.html#//apple_ref/occ/instp/UISlider/maximumValuehttps://developer.apple.com/library/ios/documentation/uikit/reference/UISlider_Class/Reference/Reference.html#//apple_ref/occ/instp/UISlider/minimumValue5/28/2018 Tai Lieu Huong Dan code ios
134/420
126
Bc 2: Map cc i tng nh sau:
Hnh 5.89 nh xcc i tng
Kt qusau khi Map
Hnh 5.90 Kt qusau khi nh x
Bc 3: Thit lp gi trnhnht v ln nht cho Slider trong khong 550.
MViewController.mthm on code sau vo cui phng thcviewDidLoad.
5/28/2018 Tai Lieu Huong Dan code ios
135/420
127
Hnh 5.91 Thit lp gi tr
Thit lp gi trchn mc nh l 30thm on code sau vo cui phng
thc viewDidLoad.
Hnh 5.92 Thm code vo cui viewDidload
Bc 4: Gn kt quca Slider vo lblGiaTriSlider khi ngi dng thay ithanh trt.
Thm on code sau vo phng
Recommended