You are on page 1of 47

B gio dc v o to

Tr-ng i hc dn lp hi phng
-------o0o-------

NGHIN CU XY DNG NG DNG


CHO H IU HNH iOS

n tt nghip i hc h chnh quy


Ngnh cng ngh thng tin

Gio vin h-ng dn: Ths. Trn Ngc Thi


Sinh vin
Lp

: Hong Kim Ngc


: CTL401

Hi Phng, 7/2012

LI CM N
Vy l gn 5 nm tri qua, mi trng i hc Dn lp Hi Phng thn
thng cho em tht nhiu k nim su sc m em s khng th no qun.
Ngy ngy n lp, chng em khng ch c sng trong mt mi trng
hc tp chuyn nghip, thu c nhng kin thc b ch lm hnh trang trn
ng i sau ny m cn c sng trong tnh cm quan tm, tru mn ca cc
thy, c.
i vi nhng sinh vin nm cui nh chng em, c lm n tt
nghip l mt nim vui, nim hnh phc v cng ln lao v y t ho.
bi n c hon thnh v c kt qu tt nh ngy hm nay em xin
gi li tri n v li cm n su sc nht ti:
Thy hiu trng Trn Hu Ngh.
Ban gim hiu nh trng cng cc thy c gio b mn Cng ngh thng tin
tn tnh ch bo, dy d, truyn t kin thc cho chng em nn ngi.
V em xin dnh li cm n c bit t tn y lng n thy gio, Th.s
Trn Ngc Thi. Trong sut thi gian qua thy gip em rt nhiu, nu
khng nhn c s hng dn ca thy c l n tt nghip ca em khng
c hon thnh thun li nh ngy hm nay.
Bn cnh , em cng v cng bit n gia nh ng vin, ng h em
khi em la chn mi trng Dn Lp Hi Phng l ngi nh th hai ca mnh.
Do kin thc bn thn cn nhiu hn ch nn bi n ca em vn cn
nhiu sai st, v vy em mong nhn c s gp ca cc thy, c bi n
ca em c hon thin hn.
Em xin chn thnh cm n !
Hi Phng, 8 thng 07 nm 2012
Sinh vin
Hong Kim Ngc

MC LC
DANH MC CC HNH .................................................................................. 4
M U ............................................................................................................ 5
CHNG 1: KIN TRC H IU HNH iOS ......................................... 6
1.1.nh ngha iOS : ............................................................................................. 6
1.2.Tng quan v kin trc ca iOS: .................................................................... 6
1.2.1 .Cc tin trnh (Processes): ...................................................................... 7
1.2.2.Nhn (Kernel): ......................................................................................... 7
1.2.3.B m gi (Packet buffer): .................................................................... 7
1.2.4.Trnh iu khin thit b (Device driver): ................................................ 7
1.2.5.Phn mm chuyn mch nhanh (Fast switching soft): ............................ 7
1.3.T chc b nh: ............................................................................................. 7
1.3.1.Min b nh (Memory region) : .............................................................. 7
1.3.1.Min b nh (Memory region) : .............................................................. 8
1.3.2.Vng b nh (Memory pool): .................................................................. 9
1.4.Tin trnh iOS (Processes iOS): ................................................................... 10
1.4.1.Vng i ca mt tin trnh: .................................................................. 10
1.4.1.1.Trng thi khi to (Create): ......................................................... 11
1.4.1.2.Trng thi iu chnh (Modify): ..................................................... 11
1.4.1.3.Trng thi thc thi (Execute): ......................................................... 11
1.4.1.4.Trng thi kt thc (Terminal): ...................................................... 12
1.4.2. u tin tin trnh iOS: ...................................................................... 12
1.5.Kernel iOS: ................................................................................................... 13
1.5.1.Lp lch: ................................................................................................. 13
1.5.2.Qun l b nh: ..................................................................................... 13
1.5.2.1.B qun l Region: .......................................................................... 14
1.5.2.2.B qun l pool: .............................................................................. 14
1.5.2.2.Qun l Chunk: ............................................................................... 15
1.5.3.Qun l b m gi: ............................................................................... 15
1.6.Trnh iu khin thit b: .............................................................................. 16
2

1.7.Kin trc ca h iu hnh iPhone : ............................................................ 18


1.7.1.Lp Core OS : ........................................................................................ 18
1.7.2.Lp Core Services : ............................................................................... 19
1.7.3.Lp Media(Truyn thng) : ................................................................... 19
1.7.4.Lp Cocoa Touch : ................................................................................ 20
CHNG 2: PHT TRIN NG DNG THI HNH TRN iOS ........... 21
2.1.Lp trnh Xcode :.......................................................................................... 21
2.1.1.Xcode IDE (Mi trng pht trin tch hp) : ...................................... 22
2.1.1.1.Single Window(Ca s n) : ......................................................... 23
2.1.1.2.Navigators : ..................................................................................... 24
2.1.1.3.Jump Bar : ....................................................................................... 24
2.1.2.Interface Builder(Giao din chng trnh): ........................................... 24
2.1.3.Apple LLVM(Trnh bin dch) : ............................................................ 25
2.2. Iphone Simulator(M phng Iphone) : ....................................................... 25
2. 3.Instument : ................................................................................................... 27
2.4. iOS Framework : ......................................................................................... 27
2.5.Mt s ng dng n gin : ......................................................................... 31
2.5.1.Chng trnh Hello World : .................................................................. 31
2.5.2.ng gi chng trnh: ........................................................................ 35
CHNG 3: PHT TRIN NG DNG WIKIPEDIA TRN iPHONE 36
3.1 Nhu cu duyt web v tra cu thng tin trn thit b di ng : .................... 36
3.2.Mng Wipipedia l g : ................................................................................. 37
3.3.Pht trin ng dng truy cp Wikipedia trn Iphone : ................................. 37
3.3.1.M t ng dng : ................................................................................... 37
3.3.2.Chc nng ng dng : ............................................................................ 38
3.3.Mi trng lm vic : ................................................................................... 43
3.4.Giao din chng trnh : .............................................................................. 44
KT LUN ........................................................................................................ 45

DANH MC CC HNH
Hnh 1 : Kin trc h iu hnh iOS
Hnh 2 : Cc loi region
Hnh 3 : Region v Subregions
Hnh 4 : Cc trng thi ca mt tin trnh iOS
Hnh 5 : S phn mnh b nh
Hnh 6 : Kin trc h iu hnh iPhone
Hnh 7 : Cc hm th vin ca iOS
Hnh 8 : Biu lng ngi dng truy cp Internet bng in thoi di ng

M U
Di s pht trin vt bc ca Cng ngh thng tin, thi i Internet
bng n chic in thoi di ng khng ch n gin l phng tin lin lc m
n cn l cng c hu ch cho con ngi.
Ngoi cc chc nng nghe, gi, nhn tin thng thng, ngy nay in thoi
di ng cn c rt nhiu ng dng khc nh : quay phim, chp nh, nghe nhc,
chi game, gi mail, tm kim thng tin
Wikipedia l mt bch khoa ton th ni dung m bng nhiu ngn ng
trn Internet.Wikipedia c vit v xy dng do rt nhiu ngi dng cng
cng tc vi nhau.Vic xy dng ng dng truy cp Wikipedia trn iPhone l
mt ng dng rt hu ch.
Cng vi s pht trin ca khoa hc cng ngh, ch n gin vi mt
chic in thoi di ng v mng Internet, ngi dng c th tm kim thng tin
m khng cn n my tnh.

CHNG 1
KIN TRC H IU HNH iOS
1.1.nh ngha iOS :
iOS vit tt ca t Internetwork Operating System, l mt h iu hnh
hot ng trn phn cng ca router Cisco, n iu khin hot ng nh tuyn
v chuyn mch ca mt router.Trn h iu hnh iOS th gm c 3 phn : aaaabbbb-cccc trong :
- aaaa : dng sn phm p dng h iu hnh ny
- bbbb : cc tnh nng ca iOS
- cc : nh dng file iOS, ni iOS chy, kiu nn ca iOS.
V d : tn mt iOS : C3620-i-mz_113-8T.bin.
iOS l h iu hnh trn cc thit b di ng ca Apple.Ban u h iu
hnh ny ch c pht trin chy trn iPhone, nhng sau n c m
rng chy trn
cc thit b ca Apple nh iPod touch, iPad v Apple TV.
Giao din ngi dng ca iOS da trn c s thao tc bng tay trn mn
hnh cm ng ca cc thit b Apple.
1.2.Tng quan v kin trc ca iOS:
Khi m li ch ca vic nh tuyn qua mng tr nn pht trin, i hi
router phi h tr mt s nhng giao thc v cung cp nhng chc nng khc,
nh cu ni gia cc mng. Cisco thm nhng tnh nng mi cho phn mm
ca router.Kt qu c nhiu chc nng cu ni v nh tuyn nh ngy nay.
Nhng hu nh cu trc c bn ca h iu hnh vn ging nh ban u.iOS l
mt cu trc n gin, nh, c thit k da vo nhng rng buc v b nh,
v tc , phn cng ca router.

Hnh 1: Kin trc h iu hnh iOS


Cc thnh phn ca h iu hnh iOS :
1.2.1 .Cc tin trnh (Processes):
L nhng tuyn ring l kt hp vi d liu thc hin nhng tc v,
nh duy tr h thng, chuyn mch gi d liu, thc hin giao thc nh tuyn
1.2.2.Nhn (Kernel):
Cung cp nhng dch v c bn ca h thng ty thuc vo iOS nh :
qun l b nh, lp lch cc tin trnhN cung cp qun l ti nguyn phn
cng (CPU, b nh) cho cc tin trnh.
1.2.3.B m gi (Packet buffer):
Cung cp cc b m ton cc v kt hp vi chc nng qun l b m
lu tr gi d liu ang c chuyn mch.
1.2.4.Trnh iu khin thit b (Device driver):
Lm chc nng iu khin giao tip gia phn cng v thit b ngoi vi,
giao tip gia cc tin trnh iOS, kernel v phn cng.Chng cng giao tip vi
phn mm chuyn mch nhanh (fast switching software).
1.2.5.Phn mm chuyn mch nhanh (Fast switching soft):
Chc nng chuyn mch gi d liu cao.
1.3.T chc b nh:
iOS nh x ton b b nh vt l thnh mt khng gian a ch o rng ln.
MMU (Memory Map Unit) ca CPU c gi tr khi c s dng to khng
gian a ch o thm ch khi m iOS khng tn dng mt khi nh o trn vn.
7

1.3.1.Min b nh (Memory region) :


iOS chia khng gian a ch ny thnh nhng min b nh gi l region,
mi region ph hp vi nhng loi b nh vt l khc nhau.
V d : SRAM c th lu tr gi d liu v DRAM c th lu tr phn
mm hoc d liu.
Phn lp b nh thnh cc region cho php iOS phn loi cc b nh
khc nhau v vy m phn mm khng cn bit chi tit v b nh trn mi
platform .Cc region c phn chia thnh mt trong tm mc nh hnh :
c im

Memory region
Local(cc b)

Thng thng lu tr cu trc d liu lc chy v local


heap, thng l DRAM

Lomem

B nh chia s CPU v b iu khin mi trng mng


s dng thng qua mt bus d liu, thng l SRAM

Fast

B nh truy xut nhanh, nh SRAM, s dng cho mc


ch c bit v nhng tc v xem yu cu v tc

Itext

Thc thi m ngun ca iOS

Idata

Cc bin c khi to

IBss

Cc bin khng c khi to

PCI

B nh bus CPI, c s dng bi tt c thit b trn


cc bus PCI

Flash

B nh flash dng lu tr iOS chy t RAM hoc


iOS chy t flash, n cng c th lu tr mt bng
file(tp tin) cu hnh d phng v nhng d liu
khc.Thng thng th file h thng c xy dng
min b nh flash ny.
Hnh 2: Cc loi Region

1.3.2.Vng b nh (Memory pool):


iOS qun l b nh ri thng qua mt chui cc memory pool.Mi pool
l mt tp hp cc khi nh m c th cp pht v thu hi khi cn.Memory pool
c xy dng bn ngoi cc region v c qun l bi kernel.Thng th pool
tng ng vi mt region c bit.

Hnh 3 : Region v Subregions


Mt memory pool c th xy dng t mt vi region m rng, cho php
b nh c cp pht v thu hi t cc min b nh khc nhau ti a hiu
qu hot ng, c th dng lnh show memory hin th cc pool ny:
router#show memory Head Total(b) Used(b) Free(b) Lowest(b)
Largest(b) Processor 61281540 7858880 3314128 4544752 4377808 4485428
I/O1A00000 6291456 1326936 4964520 4951276 4964476 PCI 4B000000
1048576 407320 641256 6412556 641212
M t nh sau(kch thc tnh theo byte):
- Total: kch thc ca pool.
- Used: lng b nh c cp pht.
- Free: lng b nh sn sng s dng.
- Lowest: lng b nh thp nht sn sng s dng t khi m pool c
to.
- Largest: kch thc khi nh lin tc ln nht sn sng s dng hin ti.
Lnh show memory trn cung cp ba pool vi cc tham s tng ng:
heap, processor v I/O.
9

1.4.Tin trnh iOS (Processes iOS):


1.4.1.Vng i ca mt tin trnh:
Mt tin trnh c th c to ra hoc kt thc bt c lc no trong khi
iOS ang hot ng ngoi tr c ngt xy ra.N c to ra bi kernel hoc bi
mt tin trnh khc ang chy khc.
Mt thnh phn c trch nhim to nhiu tin trnh trong iOS gi l
parser(b phn tch).Parser ny l mt tp cc chc nng lm phin dch cu
hnh iOS v dng lnh EXEC.Parser c yu cu bi kernel trong sut qu
trnh khi to iOS v cc tin trnh EXEC, cung cp mt giao tip dng lnh
CLI thng qua giao tip console (giao tip ngi v my) v cc phin telnet.Ti
bt c thi im no, mt lnh c nhp bi ngi dng hoc mt cu hnh
c c t file,parser phin dch dng lnh v a ra nhng hot ng tc
thi.Mt vi lnh cu hnh bi vic gn tr, nh a ch IP, trong khi cu hnh
khc nh nh tuyn hoc gim st. Mt vi lnh lm cho parser khi to mt
tin trnh mi.
V d: khi m lnh cu hnh no router eigrp c nhp vo, parser khi
to mt tin trnh mi, gi l ipigrp (nu nh tin trnh ipigrp c khi to
ri), bt u x l gi ip.
EIGRP.Nu nh lnh cu hnh no router eigrp c nhp vo, parser kt
thc tin trnh ipigrpv khng cn chc nng nh tuyn EIGRP.
Tin trnh iOS tri qua cc trng thi nh sau:

10

Hnh 4 : Cc trng thi ca mt tin trnh iOS


1.4.1.1.Trng thi khi to (Create):
Khi m mt tin trnh mi c to, n nhn vng stack ring ca mnh
v vo trng thi mi (new).Tin trnh c th di chuyn n trng thi iu chnh
(Modify).Nu khng c thay i cn thit, th tin trnh chuyn sang trng thi
thc thi (Execute).
1.4.1.2.Trng thi iu chnh (Modify):
Khng ging nh hu ht cc h iu hnh, iOS khng t ng truyn ti cc
tham s khi to hoc gn mt giao tip n mt tin trnh mi khi n c to, bi
v n cho rng hu ht cc tin trnh khng cn ti nguyn ny.Nu mt tin trnh cn
ngun ti nguyn ny, tuyn m to n c th iu chnh thm vo.
1.4.1.3.Trng thi thc thi (Execute):
Sauk hi mt tin trnh mi c to thnh cng v iu chnh, n chuyn
sang trng thi sn sng (Ready) v vo trng thi thc thi (Execute).Trong sut
trng thi ny, mt tin trnh c th truy cp CPU v chy.Trong sut trng thi
thc thi , mt tin trnh c th truy cp CPU v chy.Trong sut trng thi thc
11

thi , mt tin trnh c th l mt trong 3 trng thi: sn sng, chy v ri


(Idle).Mt tin trnh trng thi sn sng s i chuyn sang trng thi truy cp
CPU v bt u thc thi lnh.Mt tin trnh trng thi ri l ang ng, i s
kin bn ngoi xut hin trc khi n c th chy.Mt tin trnh chuyn t trng
thi sn sng sang trng thi chy khi m n c lp lch chy.
Vi a tc v m khng u tin (non-preemptive multitasking), mt tin
trnh c lp lch chy trn CPU cho n khi tm ngng hoc kt thc.Mt tin
trnh c th tm dng theo 2 cch: n c th t dng bi vic bo cho kernel, n
mun nhng cho CPU v chuyn sang trng thi sn sng, v i n lc chy
li.Tin trnh cng c th dng bi mt hot ng bn ngoi xy ra.Khi m mt
tin trnh i mt s kin, kernel hon ton dng tin trnh ny v chuyn n
sang trng thi ri.Sau khi mt s kin xy ra ri th kernel chuyn tin trnh tr
li trng thi sn sng i chy li.
1.4.1.4.Trng thi kt thc (Terminal):
Trng thi cui cng trong vng i ca tin trnh l trng thi kt
thc.Mt tin trnh vo trng thi kt thc khi n hon thnh chc nng ca
mnh v ng li hoc khi mt tin trnh khc ng n.Khi mt tin trnh b
ng hoc t ng, tin trnh chuyn sang trng thi cht (Dead).Tin trnh ny
trng thi cht (khng hot ng) cho n khi kernel thu hi tt c cc ti
nguyn ca n.Sau khi ti nguyn c thu hi, tin trnh b kt thc thot khi
trng thi cht v xa khi h thng.
1.4.2. u tin tin trnh iOS:
iOS thc hin ch u tin lp lch cc tin trnh trn CPU.Ti thi
im to, mi tin trnh c gn mt trong 4 u tin da trn mc ch ca
tin trnh. u tin l khng i, chng c gn khi mt tin trnh c to
v khng bao gi thay i.Cc u tin:
-Critical:
Dnh ring cho nhng tin trnh h thng thit yu m gii quyt nhng
vn cp pht ti nguyn.
-High:
12

c gn cho nhng tin trnh m cung cp p ng nhanh, nh tin trnh


nhn gi trc tip t giao tip mng .
-Medium:
u tin mc nh s dng bi hu ht cc tin trnh.
-Low:
c gn cho nhng tin trnh cung cp nhng tc v mang tnh nh k
nh bng ghi li u tin cc tin trnh cung cp s u i cho mt vi tin
trnh truy cp CPU da trn s quan trng ca n i vi h thng v iOS
khng thc hin quyn u tin.Mt tin trnh c s u tin cao hn khng th
ngt mt tin trnh c u tin thp hn, thay vo , tin trnh c u tin
cao hn th c nhiu c hi hn truy cp CPU hn.
1.5.Kernel iOS:
iOS Kernel khng l mt n v m l mt tp cc thnh phn v chc
nng lien kt cht ch vi nhau.iOS Kernel thc hin cc chc nng sau: Lp
lch tin trnh, qun l b nh, cung cp dch v retimes trap (pht hin) v
handle (iu khin) nhng ngt phn cng, duy tr timer (b nh thi gian), v
pht hin ngoi l phn mm.
Cc chc nng chnh ca Kernel:
1.5.1.Lp lch:
Tc v lp lch cc tin trnh c thc hin bi scheduler (b lp lch).
Scheduler qun l tt c cc tin trnh trong h thng bng cch s dng
mt chui cc hang i tin trnh m t trng thi ca mi tin trnh.Cc hng
i ny cha ni dung thng tin cho tin trnh trng thi .Tin trnh chuyn
t trng thi ny sang trng thi khc khi m scheduler di chuyn ng cnh t 1
hng i tin trnh ny n hng i tin trnh khc.
1.5.2.Qun l b nh:
B qun l b nh ca Kernel ti mc qu cao qun l tt c cc vng
nh c sn ca iOS, bao gm b nh cha iOS ca n.B qun l b nh ba
thnh phn ring bit, vi nhng nhim v ring.

13

C ba b qun l b nh sau:
B qun l Region, B qun l Pool, B qun l Chunk.
1.5.2.1.B qun l Region:
nh ngha v duy tr nhng region khc nhau trn mt platform.B qun
l region c chc nng duy tr tt c cc region.N cung cp cc dch v cho
php nhng phn khc ca iOS to region v gn cc thuc tnh ca chng.N
cng cho php nhng phn khc truy vn nhng region c sn, v d quyt nh
tng lng b nh c sn trn mt platform.

Hnh 5: S phn mnh b nh


1.5.2.2.B qun l pool:
Qun l vic to ra cc vng nh pool, cp pht v thu hi cc khi nh
ca pool.
B qun l pool l mt thnh phn quan trng ca Kernel.Trong khi
scheduler qun l cp pht ti nguyn CPU x l,b qun l pool cp pht b
nh cho cc tin trnh.Tt c cc tin trnh phi thng qua b qun l b nh
pool trc tip hoc gin tip, nh ra vng nh m n s dng.B qun l b
nh c yu cu cho mi tin trnh s dng hm h thng chun malloc v free
ly v tr b nh.B qun l b nh hot ng bi vic duy tr danh sch
khi nh ri cho mi pool, ban u mi pool cha ch mt khi nh ri ln bng
14

kch thc mt pool.Khi b qun l b nh pool yu cu b nh,khi to nhng


khi nh c kch thc nh hn.Ti cng mt thi im,cc tin trnh c th gii
phng vng nh tr v pool, to thnh mt s vng nh ri khng lin tc nhau,
nhiu kch thc, trng hp ny gi l phn mnh b nh.
1.5.2.2.Qun l Chunk:
Qun l pool cung cp nhiu cch hiu qu qun l mt tp hp cc
khi c kch thc khc nhau.Tuy nhin nhng tnh nng ny c chi ph ca n,
b qun l pool t ra 32 byte overhead trn mi b nh.Mc d overhead ny
khng quan trng lm i vi khi d liu ln, i vi pool c hng ngn khi
d liu nh hn th overhead mi tr nn ng quan tm. to thm s la
chn th kernel cung cp b qun l b n khc gi l b qun l b nh Chunk,
n c th qun l lng ln pool c nhiu khi nh nh m khng c
overhead.Khng ging nh qun l pool, b qun l Chunk khng to ra danh
sch vng nh ri vi kch thc khc nhau.Thay vo b qun l chunk qun
l mt tp cc khi nh c nh c ch nh t mt trong cc vng nh
pool.Trong mt vi trng hp, b qun l chunk c th xem nh l mt b
qun l pool vng nh con.
Cc chnh sch thng c thc hin l:
Mt tin trnh yu cu mt v tr ca mooth khi nh t mt vng nh
pool c bit.Mt tin trnh sau gi n b qun l chunk chia khi nh
thnh mt chui cc chunk c kch thc c nh v nh hn,.S dng b qun
l chunk nh v ra nhng vng nh ri khi cn.Thun li l y ch c 32
byte overhead v b qun l pool th khng bt buc cp pht v ly li hng
ngn phn mnh nh hn.V vy kh nng phn mnh trong pool gim ng k.
1.5.3.Qun l b m gi:
Trong nh tuyn gi d liu, bt c hot ng lu tr hay chuyn d liu
u phi cn c mt ni lu tr d liu trong khi d liu ang c nh
tuyn trn ng truyn.Thng thng th to ra mt b m lu tr cc gi
n trong khi hot ng chuyn mch ang hot ng.Bi v kh nng nh
tuyn gi l trung tm ca cu trc h iu hnh iOS.iOS cha thnh phn
15

chuyn bit qun l nhng vng m ny.Thnh phn ny c gi l b


qun l vng m b nh.iOS s dng thnh phn ny to v qun l nht
qun mt chui cc vng m cho chuyn mch trn mi platform.B m trong
vng ny c bit chung l nhng b m h thng.B qun l vng b m
cung cp mt cch tin li qun l mt tp cc b m c kch thc c
th.Mt du n c th c s dng qun l bt c loi b m no, b qun
l b m c s dng chnh qun l nhng vng b m gi.Nhng vng
m gi c to t cc vng nh pool c sn.f. to mt vng, b qun l b
m yu cu mt khi nh t b qun l pool v chia cho b m.B qun l b
m gi sau to mt danh sch cho tt c cc b m ri v theo di cc vng
nh ny.Nhng vng m c th l ng hay tnh, vng b m tnh c to
vi s b m c nh, khng thm b m vo cng b m tnh ny.Vng b
m ng c to vi mt s b m ti thiu.Gi l b m thng xuyn, c
th thm hoc xa cc b m.Vi cc vng nh ng , nu b qun l b m
nhn c yu cu khi vng nh rng, n c gng m rng vng nh v p
ng yu cu ngay lp tc.
Nu n khng th m rng vng nh, th yu cu b li v thc hin m
rng vng nh sau .vng b m c phn lp public (dng chung) hoc
private (dng ring).
Vng public c s dng bi bt c tin trnh no ca h thng.
Private c to cho mt tp cc tin trnh s dng.
*B m h thng:
Mi iOS u c mt tp cc b m public nh trc gi l nhng b
m h thng, nhng b m ny c s dng cho tin trnh chuyn mch cc
gi d liu v to gi (nh gi keepalive, gi cp nht nh tuyn).
1.6.Trnh iu khin thit b:
iOS cha trnh iu khin thit b cho cc thit b phn cng, nh flash
card, NVRAM, nhng ng ch l trnh iu khin cho cc giao tip
mng.Trnh iu khin cc giao tip mng cung cp nhng kh nng chnh cho
hot ng ca gi d liu ti u ra ca giao tip.
16

Mi thit b cha hai thnh phn chnh: thnh phn iu khin v thnh
phn d liu.
Thnh phn iu khin c trch nhim qun l tnh trng v trng thi ca
thit b (v d: shutdown trn mt cng).
Thnh phn d liu c trch nhim i vi tt c cc lung hot ng
chuyn mch gi d liu.
Trnh iu khin thit b c quan h cht ch vi chc nng chuyn mch gi.
Trnh iu khin thit b giao tip mng da trn h thng iOS thng qua
mt cu trc iu khin c bit gi l IDB (interface descriptor block).
IDB cha ton b chc nng iu khin thit b, d liu, trng thi thit b.
V d: a ch IP,trng thi cng, thng k gi l mt trong cc trng hin
ti trong IDB.iOS duy tr mt IDB cho mi giao tip hin ti trn mt platform.
*Cu trc chuyn mch gi:
Chuyn mch gi l mt trong cc chc nng quan trng nht ca router, hot
ng bao qut nh sau:
- Mt gi n mt cng.
- a ch ch ca gi c kim tra v so snh da vo danh sch ch bit.
- Nu ph hp, gi c chuyn tip ra cng ph hp.
- Nu khng ph hp, gi b hy.R rng vn chuyn mch khng qu
phc tp, nhng chuyn mch c nhanh th vn tr nn phc tp.Tc
hot ng khng ch da vo tc CPU, cn c nhng nhn t khc, kh nng
thc thi ca bus I/O. tc b nh u c nh hng n s thc thi ca chuyn
mch.y l mt th thch ln i vi cc nh pht trin iOS.Lm th no tc
chuyn mch nhanh nht m c th gii hn trn cc thnh phn CPU, b nh,
bus I/O.Khi m kch thc v s mng nh tuyn tng ln, nhng ngi pht trin
iOS tip tc tm ra nhng cch tt nht gii quyt th thch thc thi ny.
u tin th iOS ch c chc nng chuyn mch nhng c ci thin
v sau, mt vi phng thc chuyn mch da trn nhiu platform khc
nhau.Ngy nay iOS c th chuyn mch ti vi trm ngn gi trn mt giy, s
dng bn nh tuyn ti vi trm ngn tuyn i.
17

1.7.Kin trc ca h iu hnh iPhone :


Bao gm cc lp sau :

Hnh 6 : Kin trc h iu hnh iPhone


Cc lp di cng l nn tng ca h iu hnh, ph trch qun l b nh,
cc file h thng, mng, cc h iu hnh nhim v v tng tc trc tip vi
cc phn cng.
1.7.1.Lp Core OS :
Lp Core OS bao gm cc thnh phn :
-OS X Kernel
-Match 3.0
-BSD
-Sockets
-Security
-Power Management
-Key chain
-Certifi cates
-File System
-Bonjour
1.7.2.Lp Core Services :
Lp Core Services cung cp mt tru tng trn cc dch v c cung
cp trong lp OS X Kernel.N cung cp truy cp c bn cc dch v h iu
hnh iPhone v bao gm cc thnh phn sau :
-Collection
-AddressBook
-Networking
-Files Access
18

-SQLite
-Core Location
-Net Services
-Threading
-Preferences
-URL Utilities
1.7.3.Lp Media(Truyn thng) :
Lp Media cung cp cc dch v a phng tin m bn c th s dng
trong iPhone v iPad.N bao gm cc thnh phn sau :
-Core Audio
-OpenGL
-Audio Mixing
-Audio Recording
-Video Playback
-JPG,PNG,TIFF
-PDF
-Quartz
-Core Animation
-OpenGL ES
1.7.4.Lp Cocoa Touch :
Lp Coscoa Touch cung cp mt lp tru tng khai bo cc th vin
khc nhau cho cc lp trnh iPhone v iPad, nh sau:
-Multi-Touchcontrols
-Accelerometer
-View Hierachy
-Localization
-Alert
-Web View
-People Picker
-Image Picker
-Controllers.
19

CHNG 2:
PHT TRIN NG DNG THI HNH TRN iOS
c th vit ng dng trn iphone chng ta cn b cng c pht trin
Iphone SDK.Bao gm :
* Xcode : Mi trng pht trin tch hp (IDE) cho php ngi dng
qun l, chnh sa, v g li cc d n.
* iPhone Simulator : Cung cp mt m phng phn mm m phng
mt chic iPhone hoc iPad trn my Mac ca ngi dng.
*In struments: Phn tch cng c gip ti u ha ng dng v mn
hnh ca ngi dng c b r r b nh trong thi gian thc hay khng.
*iOS Framework : cc hm th vin thao tc vi thit b : m
thanh,hnh nh,GPS, cm bin.
2.1.Lp trnh Xcode :
Xcode l b cng c hon chnh xy dng OS X v cc ng dng iOS
v vi Xcode 4, cc cng c c thit k li chy nhanh hn, d dng s
dng v hu ch hn rt nhiu.
B cng c Xcode bao gm : mi trng pht trin tch hp(IDE), giao
din thit k (Builder), trnh bin dch(Apple LLVM).
khi ng Xcode, kch p vo biu tng ca Xcode nm trong th
mc /Developer/Applications

20

2.1.1.Xcode IDE (Mi trng pht trin tch hp) :


c thit k da trn cc cng ngh mi nht ca Apple.Xcode IDE tch
hp tt c cc cng c cn thit lm vic.Sut qu trnh chuyn i t giao
din,son m ngun,g li u c thc hin trong cng 1 ca s.
Trong qu trnh son tho khi kim tra gi tr ca 1 bin trong qu trnh chy.
IDE Xcode xc nh nhng sai lm trong c hai c php v logic, v thm
ch s sa cha m.
IDE trong Xcode cung cp nhiu cng c v tnh nng gip ngi dng
d dng lp trnh hn nhiu.Mt trong nhng tnh nng l m Sense hin th mt
danh sch popup, hin th cc lp v cc thnh vin sn c, chng hn nh
phng php, thuc tnh...

21

2.1.1.1.Single Window(Ca s n) :
Vi Xcode 4 cc ca s s dng thc hin cc nhim v c hp nht
thnh 1 ca s duy nht.
Xcode 4 vi giao din ngi dung c o, c th d dng lm vic trn
nhiu nhim v khc nhau, thm ch nhiu d n m khng lm ln xn.

22

2.1.1.2.Navigators :
Navigators bao gm danh sch cc tp tin trong d n, cc biu tng,
giao din tm kim ngi dng d dng s dng.

2.1.1.3.Jump Bar :

pha trn ca tt c cc ca s son tho l mt thanh ng dn hin


th v tr tng i ca cc tp tin hin ti.Nhp vo bt k v tr no trong thanh
Jump Bar th s chuyn n file .
2.1.2.Interface Builder(Giao din chng trnh):
Giao din Builder l mt cng c trc quan cho php ngi dng thit k
giao din cho cc ng dng iPhone / iPad. S dng giao din Builder, ko v th
ln ca s v sau kt ni cc ca s khc nhau vi cc hnh ng c th
lp trnh tng tc vi m ca chng trnh

23

2.1.3.Apple LLVM(Trnh bin dch) :


Trnh bin dch trong Xcode bao gm 1 tp hp cc th vin c ti u
ha,d dng m rng.Trong Xcode 4, trnh bin dch stack - t phn tch c php
trc ri ti u ha m hon ton h tr cho C, Objective-C, C + +.

Xcode IDE cn c tnh nng sa cha cc li t ng.Ngoi vic bo co


li, IDE rt thng minh,trong nhiu trng hp Xcode s khng ch bo co mt
li n s trnh by mt gii php tt khc phc bng cch nhp chut vo li
sa cha.V d nh sa cha mt biu tng sai chnh t hoc them mt du
chm phy cn thiuMt phm tt ngay lp tc s c li sa cha v cho php
ngi dng tip tc m ha.

S dng Xcode c th pht trin cc loi khc nhau ca iPhone, iPad, v


cc ng dng Mac OS X.(Khng phi tt c cc mu ng dng c sn cho
iPhone v iPad.V d, da trn mu Navigation-ng dng khng h tr iPad,
Split-View ng dng khng h tr iPhone).
2.2. Iphone Simulator(M phng Iphone) :
Simulator iPhonel mt cng c rt hu ch m c th s dng th
nghim ng dng ca m khng cn s dng iPhone / iPod touch /
iPad..Simulator iPhone c t ti th mc
/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications.
24

Xcode t ng ci t cc ng dng trn iphone Simulator.


Simulator iPhone c th m phng cc phin bn khc nhau ca h iu
hnh iPhone

Cc tnh nng ca iPhone Simulator :


Simulator iPhone m phng cc tnh nng khc nhau ca mt chic
iPhone thc s nh iPod touch, hoc thit b iPad.Cc tnh nng c th th
nghim trn Simulator iPhone bao gm :
*Xoay mn hnh : bn tri, bn phi,trn u.
*H tr cho hnh ng :
- Tap
-Touch and Hold
-Double-tap
-Swipe
-Flick
-Drag
-Pinch
Tuy nhin cng c 1 s tnh nng khng c sn trn iPhone Simulator :
-Gi in thoi
-Truy cp cc gia tc
25

-Gi v nhn tin nhn


-Ci t ng dng t App Store
-My nh
-Microphone
-Mt s tnh nng ca OpenGL ES
2. 3.Instument :
Cc ng dng cho php truy cp t ng v theo di cc h s thc hin
ca h iu hnh Mac OS X, iPhone, v cc ng dng iPad.

2.4. iOS Framework :


Cc hm th vin ca iOS :
Tn

Tin t

Acclerate.framework

cblas,vDSP

M t
Thng tin ton hc
C giao din qun lystruy

Accounts.framework

AC

cp vo ti khon ca ngi s
dng mt h thng

26

AdressBook.framework

AB

Cha cc chc nng truy cp


vo CSDL danh b ca ngi
dng trc tip

AdressBookUI.framework

AB

Cha cc lp hin th h
thng xc nh ngi dng v
cc giao din trnh son tho

AssetsLibrary.framework

AL

AudioToolbox.framework

AU,Audio

AudioUnit.framework

AU,Audio

AVFoundation.framework

AV

Cha cc lp truy cp hnh nh


v video ca ngi dng
Cha cc giao din x l cc
dng d liu m thanh
Cha cc giao din ti v n v
s dng m thanh
Cha giao din chi v ghi
li m thanh,video
Cha giao din truy cp

CFNetwork.framework

CF

mng thng qua Wi-fi v radio


di ng

CoreAudio.framework

Audio

CoreBlutooth.framework

CB

CoreData.framework

NS

Cung cp cc loi d liu c


s dng trong c m thanh Core
Cung cp s truy cp phn cng
Blutooth nng lng thp
Thng tin giao din qun l ng
dng m hnh d liu
Cung cp cc dch v phn
mm c bn,bao gm khi nim

CoreFoundation.framework

CF

tru tng cho cc loi d liu


ph bin, chui tin ch, tin ch
thu thp, qun l ti nguyn

27

CoreGraphics.framework

CG

CoreImage.framework

CI

CoreLocation.framework

CL

CoreMedia.framework

CM

CoreMIDI.framework

MIDI

CoreMotion.framework

CM

CoreTelephony.framework

CT

CoreText.framework

CT

CoreVideo.framework

CV

EventKit.framework

EK

EventKitUI.framework

EK

ExternalAccessory.framework

EA

Cha cc giao din cho Quartz


2D
Cha giao din thao tc vi
video v hnh nh tnh
Cha cc giao din xc nh
v tr ngi dng
Cha giao din thao tc vi
m thanh v video
Cha giao din x k d liu
MIDI
Cha giao din truy cp d
liu tc
Cha giao din truy cp thng tin
lin quan n in thoi
Cha giao din thao tc vi vn
bn v v
Cha giao din cho cc thao tc
m thanh v video
Cha giao din truy cp d
liu s kin lch ca ngi dng
Cha cc lp hin th giao
din h thng lch tiu chun
Cha giao din giao tip vi
cc ph kin phn cng
Cha giao din cho cc chui

Foundation.framework

NS

qun l, b su tp v cc loi d
liu khc mc thp

GameKit.framework

GK

Cha cc giao din qun l


kt ni peer-to-peer

28

Cha cc lp Objective-C tin


GLKit.framework

GLK

ch xy dng cc ng dng
OpenGL ES phc tp

GSS.framework

gss

iAd.framework

AD

ImageIO.framework

CG

IOKit.framework

N/A

Cung cp mt b tiu chun cc


dch v lin quan n an ninh
Cha cc giao din hin th
cc qung co trong ng dng
Cha cc giao din c v
ghi d liu hnh nh
Cha cc giao din c s
dng bi thit b
Cha cc giao din nhng

MapKit.framework

MK

mt giao din bn vo ng
dng v cho ta m ha a
l o ngc

MediaPlayer.framework

MP

MessageUI.framework

MF

MobielCoreService.framework

UT

Cha giao din chi video v


xem ton mn hnh
Cha giao din vit tin nhn
v email
Xc nh nh danh c h tr
bi h thng
Cung cp cc giao din ti

NewsstandKit.framework

NK

v ni dung tp ch v t bo
ch nn

OpenAL.framework

AL

Cha

cc

giao

din

cho

OpenAL,th vin m thanh


Cha cc giao din OpenGL

OpenGLES.framework

EAGL,GL

ES, l mt phin bn nhng ca


cc nn tng OpenGL 2D v
3D,th vin ha
29

QuartzCore.framework

CA

QuickLook.framework

QL

Security.framework

CSSM,Sec

Cha giao din Core Animation


Cha giao din cho cc tp tin
xem trc
Cha giao din cho cc chng
ch qun l,bo mt
Cha giao din x l cc

StoreKit.framework

SK

giao dch ti chnh lin quan


n cc ng dng mua hng

SytemConfiguration.framework

SC

Twitter.framework

TW

Cha giao din xc nh cu


hnh mng ca mt thit b
Cha giao din gi tweets
thng qua dch v Twitter
Cha cc lp v phng php

UIKir.framework

UI

cho cc lp ng dng giao din


ngi s dng iOS

Hnh 7 : Cc hm th vin ca iOS

30

2.5.Mt s ng dng n gin :


2.5.1.Chng trnh Hello World :
- Chy Xcode, t tn project l HelloWorld

31

*Thit k giao din :


Chn tp HelloWorldViewController.xib chnh sa n bng cch s
dng giao din Builder

Trong khu vc Utilities trn bn phi, phn Th vin i tng v di


chuyn xung xem Label v ko v th mt Label, Text field, Round Rect
Button vo ca s View

32

*Code :
Trong tp tin HelloWorldViewController.h, thm mt khai bo hnh ng
btnClicked:
#import <UIKit/UIKit.h>
@interface HelloWorldViewController : UIViewController
-(IBAction) btnClicked:(id) sender;
@end

33

Quay li tp tin HelloWorldViewController.xib click chut phi ko th


btnClicked vo Files Owner

Trong tp tin HelloWorldViewController.m thm cc lnh :


#import HelloWorldViewController.h
@implementation HelloWorldViewController
-(IBAction) btnClicked:(id) sender {
//---display an alert view--UIAlertView *alert =
[[UIAlertView alloc] initWithTitle:@Hello World!
message:@iPhone, here I come!
delegate:self
cancelButtonTitle:@OK
otherButtonTitles:nil];
[alert show];
[alert release];
}
34

n t hp phm Ctrl+R chy chng trnh

2.5.2.ng gi chng trnh:


+Bc 1:
Vo Menu chn Window -> Organizer -> Devices Section -> Provisionig
Profiles
->Under Library group -> Chn Automatic Device Provisioning.
+Bc 2:
Chn Refresh -> nhp Apple ID
+Bc 3:
Click vo tn Project -> chn Project and Produce Setting -> Approriate profile > chn iPhone Distribution -> iPhone 5.0 Simulator.
+Bc 4:
Vo Product -> Archive -> Next ->Next -> i tn file thnh .ipa

35

CHNG 3
PHT TRIN NG DNG WIKIPEDIA TRN iPHONE
3.1 Nhu cu duyt web v tra cu thng tin trn thit b di ng :
Trong vng 10 nm tr li y, t l s dng Internet ti Vit Nam c tc
tng trng nhanh nht trong khu vc.Vit Nam lt vo top 20 nc s
dng Internet nhiu nht trn th gii (theo bo co Hin trng Internet ton
cu do Pingdom hng chuyn cung cp dch v gim st hot ng ca
website, my ch cho t chc, doanh nghip).
c bit Vit Nam l quc gia c tc pht trin Internet di ng nhanh
th 2 trong khu vc ng Nam (chim 60%), ch ng sau Malaysia.
Da trn nhng con s chnh thc, 31% dn s Vit Nam c truy cp
Internet v mi nm c thm 2-3 triu ngi truy cp Internet.
Internet c truy cp rt thng xuyn. Hu ht tt c ngi s dng
Internet truy cp Internet hng ngy hoc nhiu ln mt tun.Mt nghin cu vi
5.800 ngi ti 12 thnh ph ln, kt qu l so vi nm 2010 th trong nm
2011 s ngi dng cc thit b truy cp vo Internet thay i.C th, ngi
dng s dng my tnh bn truy cp vo Internet gim t 84% trong nm
2010 xung cn 81% trong nm 2011.Trong khi , t l ngi dng laptop truy
cp Internet tng t 38% ln 47%, c bit s ngi s dng in thoi di ng
truy cp vo Internet tng hn gp i t 27% nm 2010 ln 56% trong
nm 2011.
Thng k t StatCounter cho thy lng ngi dng truy cp vo Internet
t in thoi di ng ang tng vi tc n nh sau mi nm.
Trong tng s in thoi truy cp Internet trong nm va qua ngi dng
ti M v Anh truy cp vo Internet t Iphone l nhiu nht.

36

Hnh 8 : Biu lng ngi dng truy cp Internet bng in thoi di ng


3.2.Mng Wipipedia l g :
Wikipedia l mt bch khoa ton th ni dung m bng nhiu ngn ng
trn Internet.Wikipedia c vit v xy dng do rt nhiu ngi dng cng
cng tc vi nhau.
Hin nay Wikipedia trc thuc Qu h tr Wikimedia, mt t chc phi li
nhun. Wikipedia hin c hn 15 triu bi vit, vi hn 3,3 triu bi trong phin
bn ting Anh (English Wikipedia).Wikipedia hin c hn 200 phin bn ngn
ng, trong vo khong 100 ang hot ng.15 phin bn c hn 50.000
bi vit : ting Anh, c, Php, Ba Lan, Nht, , Thy in, H Lan, B o
Nha, Ty Ban Nha, Nga, Na Uy, Phn Lan v ting Vit.
Wikipedia l mt ti liu tham kho mang tnh bch khoa, khng phi l
mt cm nang hng dn s dng, sch du lch, hoc sch gio khoa.
3.3.Pht trin ng dng truy cp Wikipedia trn Iphone :
3.3.1.M t ng dng :
ng dng Wikipedia trn Iphone cho php truy cp bt k bi vit no
ca Wikipedia vi giao din n gin, gn gng vi tm kim nm trn cng,
bn di l bi vit ni bt c hin th ngu nhin.
37

3.3.2.Chc nng ng dng :


Wikipedia trn Iphone vi cc tnh nng : Searching, Add Bookmark,
History, Map, Next, Preview, Select Language.

Truy cp Wikipedia trn IPhone

Searching

Next

Add Bookmark

Preview

History

Map

Select Language

Hnh 8 : Cc chc nng ca ng dng


- Searching : chc nng tm kim thng tin.
Chc nng ny cho php tm kim cc thng tin trn Wikipedia.
+ S dng lp th vin : Foundation.h
+ Code :
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
{
searchText = [searchText
stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString *urlString = [NSString
stringWithFormat:@"http://%@.wikipedia.org/w/api.php?action=opensearch&search
=%@&format=json", [appDelegate.settings stringForKey:@"languageKey"],
searchText];
NSURL *url = [NSURL URLWithString:urlString];
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url];
38

NSURLConnection *connection = [[NSURLConnection alloc]


initWithRequest:request delegate:self];
[connection release];
[request release];
if ([searchText length] > 0)
{
tableView.alpha = 1.0;
tableView.hidden = NO;
}
else
{
tableView.alpha = 0.0;
tableView.hidden = YES;
}
[tableView setContentOffset:CGPointMake(0, 0) animated:YES];
}
- (void)connection:(NSURLConnection *)connection
didReceiveResponse:(NSURLResponse *)response
{
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
NSString *jsonString = [[NSString alloc] initWithData:data
encoding:NSUTF8StringEncoding];
NSArray *results = [jsonString JSONValue];
if (results && [results count] >= 1)
{
searchResults = [NSMutableArray arrayWithArray:[results objectAtIndex:1]];
} else
{
searchResults = [NSMutableArray array];
}
39

[searchResults retain];
[jsonString release];
[tableView reloadData];
}

- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
}
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
{
tableView.hidden = YES;
}

Khi tm kim thng tin c th la chn ngn ng tm kim, quay tr li cc


thng tin c tm kim trc hoc xem tip cc thng tin c hin th pha
sau
+ Next : Chc nng xem trc.
- (IBAction)goBack
{
[webView goBack];
}

+ Preview : Chc nng xem sau.


- (IBAction)goForward
{
[webView goForward];
}

- Select Language : Chc nng la chn ngn ng


+ S dng lp th vin : LanguageSwitcher.h
+ Code :
- (NSInteger)tableView:(UITableView *)tableView
numberOfRowsInSection:(NSInteger)section
{

40

return [languagesArray count];


}
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [[UITableViewCell alloc]
initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
NSMutableDictionary *dictItem = [languagesArray objectAtIndex:indexPath.row];
cell.textLabel.text = [dictItem valueForKey:@"language"];
if ([[dictItem valueForKey:@"path"] isEqualToString:[settings
stringForKey:@"languageKey"]])
{
cell.accessoryType = UITableViewCellAccessoryCheckmark;
}
else
{
cell.accessoryType = UITableViewCellAccessoryNone;
}
return [cell autorelease];
}
- (void)tableView:(UITableView *)mTableView
didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
for (int i=0; i<[languagesArray count]; i++)
{
NSIndexPath *_indexPath = [NSIndexPath indexPathForRow:i
inSection:0];
UITableViewCell *deselectedCell = [tableView
cellForRowAtIndexPath:_indexPath];
deselectedCell.accessoryType = UITableViewCellAccessoryNone;
}
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
41

[self toggleCheckmarkedCell:cell];
[self.tableView deselectRowAtIndexPath:indexPath animated:YES];
NSMutableDictionary *dictItem = [languagesArray
objectAtIndex:indexPath.row];
[settings setObject:[dictItem valueForKey:@"path"] forKey:@"languageKey"];
[settings setObject:[dictItem valueForKey:@"language"]
forKey:@"languageName"];
}

- Add Bookmark : chc nng lu tr li cc ng dn truy cp cho ln truy


cp sau.
+ Code :
- (IBAction)addBookmark
{
UIActionSheet *menu = [[UIActionSheet alloc]
initWithTitle:nil
delegate:self
cancelButtonTitle:NSLocalizedString(@"Cancel", @"Cancel")
destructiveButtonTitle:nil
otherButtonTitles:NSLocalizedString(@"Add Bookmark", @"Add Bookmark"), nil]
}

- History : Chc nng lu tr cc trang web m ngi dng truy cp.


Ngi dng c th xa cc trang lch s c lu li.
+ Code :
- (IBAction)showHistory
{
ModalViewController *modalView = [[ModalViewController alloc]
initWithNibName:@"ModalViewController" bundle:nil];
modalView.managedObjectContext = appDelegate.managedObjectContext;
modalView.returnView = self;
modalView.isBookmark = NO;
[self.navigationController presentModalViewController:modalView
animated:YES];
42

[modalView release];
if (webView.loading)
{
[webView stopLoading];
}
}

- Map : Bn trc tuyn.


+ S dng cc hm th vin : UIKit.h, MapKit.h, WikiConnectionController.h,
MapViewController.h.
+ Code :
- (void)locationUpdate:(CLLocation *)location
{
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
[locationController.locationManager stopUpdatingLocation];
[self fetchWikiPagesWithLatitude:location.coordinate.latitude
longitude:location.coordinate.longitude];
currentLocation.latitude = location.coordinate.latitude;
currentLocation.longitude = location.coordinate.longitude;
}
- (void)locationError:(NSError *)error
{
UIAlertView *errorAlert = [[UIAlertView alloc]
initWithTitle:NSLocalizedString(@"Oops", @"Oops") message:@"Sorry, could not find
your location." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[errorAlert show];
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
[locationController.locationManager stopUpdatingLocation];
[errorAlert release];
}

3.3.Mi trng lm vic :


ng dng c th chy c th in thoi phi kt ni vi Internet hoc
Wifi hoc 3G.
ng dng c th chy trn cc phin bn h iu hnh iOS 3.0 tr ln.
43

3.4.Giao din chng trnh :

44

45

KT LUN
Qua qu trnh thc hin n ny em s dng nhng kin thc c
hc v cng hc hi thm c rt nhiu.Em bit thm c mt ngn ng
lp trnh mi.Xcode l cng c rt hu ch gip cho vic lp trnh c d dng
hn.Vi cng c ny c th to ra c rt nhiu ng dng khc nhau cho in
thoi di ng.
ng dng truy cp Wikipedia trn iPhone pht trin c cc chc
nng : tm kim thng tin, la chn ngn ng, lu li danh sch cc ng dn
cho ln truy cp sau, chc nng lu tr cc trang web m ngi dng truy
cp,bn trc tuyn.
C th pht trin thm cc chc nng nh chnh sa bi vit,ng bi vit,
ti nh ln Wikipedia ging nh truy cp Wikipedia t my tnh.
Em s c gng hc hi nhiu hn na c th to ra nhng ng dng
khc hay hn.
Trong qu trnh lm bi em vn cn nhng sai st mong cc thy c gip
.
Em xin chn thnh cm n!

46

You might also like