TƠi: Tìm hiu nn tng mư ngun m Phonegap vƠ xơy dng ng dng
Ngô Quang Trung ậ email: - 1
Website:
MC LC
LI NÓI U 4
CHNG I: TNG QUAN V HTML5 5
1.1. Khái nim HTML5 5
1.1.1. Lch s hình thƠnh 5
1.1.2. Quá trình chun hóa 6
1.2. Mt s đc đim ni bt ca HTML5 7
1.2.1. Ni dung đa dng 8
1.2.2. H tr thay th Flash 8
1.2.3. Tng tính bo mt 9
1.2.4. n gin hóa vic phát trin web 10
1.3. Các tính nng mi có trong HTML5 10
1.3.1. HTML5 h tr các phn t đnh ngha mi 10
1.3.2. HTML5 h tr đ ha tng tác vi phn t <canvas> 12
1.3.3. HTML5 cho phép các ng dng Lu tr cc b vi local storage 13
1.3.4. HTML5 h tr phát <audio> vƠ <video> 14
1.3.5. HTML5 Ci tin biu mu Web 15
1.3.6. HTML5 h tr kh nng truy cp ti h thng file system 17
1.3.7. HTML5 tng tc hiu nng x lý vi Web Worker vƠ Application Cache
18
1.3.8. HTML5 h tr đnh v ngi dùng 19
1.3.9. HTML5 h tr kh nng cng tác vƠ giao tip thi gian thc 19
1.3.10. HTML5 h tr tip nhn các s kin events đc gi t máy ch 20
1.3.11. Nhng tính nng khác 21
CHNG II: GII THIU V FRAMEWORK MÃ NGUN M PHONEGAP 22
2.1. Phonegap lƠ gì ? 22
2.2. ôi nét v lch s ca Phonegap 23
2.3. Ti sao li s dng Phonegap ? 24
TƠi: Tìm hiu nn tng mư ngun m Phonegap vƠ xơy dng ng dng
Ngô Quang Trung ậ email: - 2
Website:
2.4. Cách thc Phonegap hot đng 25
2.5. Các hƠm APIs mƠ Phonegap h tr hin ti trên các nn tng mobile 29
CHNG III : CÁCH THIT LP CÀI T MÔI TRNG LP TRÌNH CHO
PHONEGAP 30
3.1. Cách thit lp cƠi đt Phonegap cho Android Project bng Eclipse 30
3.1.1. Yêu cu cƠi đt 30
3.1.2. To project mi s dng Phonegap trong Eclipse IDE 31
3.1.3. To project mu HelloWorld. 36
3.1.4. Chy chng trình trên nn Android Emulator 38
3.2. Tng tc đ quá trình Debug mư ngun bng cách s dng AndroVM 38
3.2.1. Yêu cu cƠi đt 39
3.2.2. Cách thit lp cƠi đt AndroVM 39
3.2.3. Cách thc hin lnh kt ni máy o vi Android Debug Bridge (adb) 43
3.2.4. Cách kt ni môi trng lp trình Eclipse IDE vi máy o AndroVM 45
CHNG IV : PHÂN TệCH VÀ THIT K CHNG TRÌNH NG DNG 47
4.1. Gii thiu v chng trình ng dng 47
4.2. Phơn tích chng trình ng dng v chc nng 48
4.2.1. Biu đ phơn rư chc nng 48
4.2.2. c t chc nng ca chng trình 49
4.3. Phơn tích chng trình ng dng v lung d liu 51
4.3.1. Biu đ lung d liu mc khung cnh 51
4.3.2. Biu đ lung d liu mc đnh 52
4.3.3. Biu đ lung d liu mc di đnh gii thích chc nng thc hin thao
tác chm 53
4.3.4. Biu đ lung d liu mc di đnh gii thích chc nng thêm nh 54
4.3.5. Biu đ lung d liu mc di đnh gii thích chc nng thêm text 55
4.3.6. Biu đ lung d liu mc di đnh gii thích chc nng chnh sa nh
56
4.3.7. Biu đ lung d liu mc di đnh gii thích chc nng chnh sa text
57
TƠi: Tìm hiu nn tng mư ngun m Phonegap vƠ xơy dng ng dng
Ngô Quang Trung ậ email: - 3
Website:
4.3.8. Biu đ lung d liu mc di đnh gii thích chc nng chia s
facebook 58
4.4. Thit k c s d liu ca chng trình ng dng 59
4.5. Thit k giao din chng trình ng dng 60
4.5.1. MƠn hình chính ca ng dng 60
4.5.2. Bng hp thoi th vin nh 62
4.5.3. MƠn hình nh t thit b 64
4.5.4. Bng hp thoi thêm text 65
4.5.5. Nhóm nút điu khin đi tng đ ha 66
4.5.6. Bng hp thoi chnh sa nh 67
4.5.7. Bng hp thoi chnh sa text 69
TÀI LIU THAM KHO 71
PH LC 72
TƠi: Tìm hiu nn tng mư ngun m Phonegap vƠ xơy dng ng dng
Ngô Quang Trung ậ email: - 4
Website:
LI NÓI U
in thoi thông minh hay còn gi lƠ smartphone thc s đư mang đn mt
cuc cách mng cho các thit b di đng, trong thi kì mƠ công ngh s phát trin
vi tc đ chóng mt nh hin nay. Nhu cu s dng thit b di đng đư tr nên rt
ph bin không ch Vit Nam mƠ trên toƠn th gii. S tin b vt bc ca công
ngh đư lƠm thay đi hoƠn toƠn thói quen cng nh hƠnh vi ca con ngi.Trong
tng lai, thit b di đng s tr thƠnh phng tin giao tip vƠ lƠm vic ch yu
ca con ngi. VƠ phn ct lõi đ to ra sc hp dn t nhng chic smartphone
chính lƠ h điu hƠnh vƠ các ng dng mƠ chúng đang chy.
Hin ti, các ng dng dƠnh cho thit b di đng đang b phơn mnh rt ln do các
hưng công ngh ln cnh tranh, ganh đua nhau to ra các nn tng h điu hƠnh di
đng ca riêng mình. Do đó Phonegap ra đi vi mc đích “vit mt ln, biên dch
qua cloud vƠ chy khp ni ậ tng thích vi hu ht các nn tng h điu hƠnh di
đng hin ti”, đư nhn đc s đóng góp ca rt nhiu t chc vƠ cng đng công
ngh ln. Phonegap giúp gim nh gánh nng - cn phi nm bt vƠ hiu rõ v các
công ngh bên trong mi nn tng ậ đi vi nhƠ lp trình trong vic to ra ng
dng có th chy trên đa nn tng di đng. Gi đơy, vi s h tr đc lc ca
Phonegap, nhƠ lp trình ch cn nm bt vƠ chuyên sơu v 1 công ngh duy nht, đó
lƠ công ngh nn Web(bao gm HTML5, Javascript, CSS). Vi th mnh bn thơn
v lp trinh web vƠ vi nhng lí do trên, em chn đ tƠi “Tìm hiu nn tng mư
ngun m Phonegap vƠ xơy dng ng dng”
Em xin chơn thƠnh cm n ThS. oƠn Duy Trung đư trc tip hng dn đ tƠi
nƠy. Em cng xin cám n các Thy Cô trong Vin Toán ng dng vƠ Tin hc đư to
điu kin thun li cho em hoƠn thƠnh đ tƠi.
Sinh viên thc hin
Ngô Quang Trung
TƠi: Tìm hiu nn tng mư ngun m Phonegap vƠ xơy dng ng dng
Ngô Quang Trung ậ email: - 5
Website:
CHNG I: TNG QUAN V HTML5
1.1. Khái nim HTML5
HTML5 lƠ mt ngôn ng cu trúc vƠ trình bƠy ni dung cho World Wide
Web vƠ s lƠ công ngh ct lõi ca Internet trong tng lai không xa, đc đ xut
đu tiên bi Opera Software. ơy lƠ phiên bn th 5 ca ngôn ng HTML vƠ hin
ti vn đang đc phát trin bi World Wide Web Consortium vƠ WHATWG. Mc
tiêu ct lõi khi thit k ngôn ng lƠ ci thin kh nng h tr cho đa phng tin
mi nht trong khi vn gi đc vic con ngi vƠ các thit b, các chng trình
máy tính nh trình duyt web, trình đc mƠn hình, v.v có th đc, hiu, hay x lý
mt cách d dƠng. HTMl5 vn s gi li nhng đc đim c bn ca HTML4 vƠ b
sung thêm các đc t ni tri ca XHTML, DOM, đc bit lƠ JavaScript.
LƠ phiên bn tip sau ca HTML 4.01 vƠ XHTML 1.1, HTML5 lƠ mt phn ng đ
đáp li li phê bình rng HTML vƠ XHTML đc s dng ph bin trên World
Wide Web lƠ mt hn hp các tính nng vi các thông s k thut khác nhau, đc
gii thiu bi nhiu nhƠ sn xut phn mm ví d Adobe, Sun Microsystems,
Mozilla, Apple, Google, vƠ có nhiu li cú pháp trong các vn bn web. ơy lƠ
mt n lc đ to nên mt ngôn ng đánh du có th đc vit bng cú pháp HTML
hoc XHTML. Nó bao gm các mô hình x lý chi tit đ tng tính tng thích, m
rng, ci thin vƠ hp lý hóa các đánh du có sn cho tƠi liu, đa ra các đánh đu
mi vƠ gii thiu giao din lp trình ng dng (application programming interfaces
API) đ to ra các ng dng Web phc tp. Cùng mt lý do nh vơy, HTML5 lƠ
mt ng c viên tim nng cho nn tng ng dng di đng. Nhiu tính nng ca
HTML5 đc xơy dng vi vic xem xét chúng có th s dng đc trên các thit
b di đng nh đin thoi thông minh vƠ máy tính bng hay không.
1.1.1. Lch s hình thƠnh
Nm 1991 HTML ra đi bi W3C, cho đn HTML phiên bn 4 ra mt nm
1997 vƠ ngay sau đó nó đư dng phát trin t nm 1998. Sau khi phát trin đn
phiên bn 4.01, W3C ngng phát trin HTML chuyn sang phát trin XHTML. n
TƠi: Tìm hiu nn tng mư ngun m Phonegap vƠ xơy dng ng dng
Ngô Quang Trung ậ email: - 6
Website:
nm 2006 W3C li quay li phát trin HTML. n nm 2009, chun XHTML2 sau
5 nm nghiên cu đư không th ra đi thì W3C ngng phát trin XHTML (2.0),
trong khi đó, do nhu cu bc thit mƠ Opera, Mozilla, vƠ Apple đư thƠnh lp
WHATWG (Web Hypertext Application Technology Working Group) đ nghiên
cu mt gii pháp mi. Gii pháp nƠy đư đc W3C chp nhn. S hp tác
ca W3C vƠ WHATWG đư thai nghén ra HTML5 t nm 2009. c phát trin
theo mô hình cun chiu nên HTML5 vn đang hoƠn thin nt các phn còn li,
nhng nhng phn đư ra mt thì nhanh chóng đc h tr.
HTML5 đư sm đc h tr trong các trình duyt trên PC nh Mozilla Firefox
(phiên bn 3.5+), Apple Safari (phiên bn 4.0+), Opera (phiên bn 10.0+), Google
Chrome (phiên bn 3.0+), chm tr nht lƠ Internet Explorer ca Microsoft cng đư
bt đu h tr HTML5 t phiên bn 9. Các trình duyt s dng trên mobile vƠ máy
tính bng cng h tr HTML5 tng đng PC.
1.1.2. Quá trình chun hóa
Tháng 9 nm 2012, W3C đa ra 1 bn k hoch d kin, theo đó s phát hƠnh
phiên bn HTML 5 chính thc vƠo cui nm 2014, vƠ phát hƠnh phiên bn HTML
5.1 hoƠn thin vƠo cui nm 2016.
TƠi: Tìm hiu nn tng mư ngun m Phonegap vƠ xơy dng ng dng
Ngô Quang Trung ậ email: - 7
Website:
Di đơy lƠ biu đ thi gian quá trình chun hóa HTML các phiên bn 5.0, 5.1, 5.2
Phiên bn
2012
2013
2014
2015
2016
HTML 5.0
Phiên bn
gn hoƠn
thin
Phiên bn
kêu gi
nhn xét
Phiên bn
phát hƠnh
chính thc
HTML 5.1
Phiên bn
d tho đu
tiên
Phiên bn
kêu gi góp
ý cui cùng
Phiên bn
gn hoƠn
thin
Phiên bn
phát hƠnh
chính thc
HTML 5.2
Phiên bn
d tho đu
tiên
Bng 1 : Bng biu đ thi gian quá trình chun hóa HTML5
1.2. Mt s đc đim ni bt ca HTML5
HTML5 mang li cho ngi dùng tri nghim lt Web hoƠn toƠn mi, nhanh
hn, n đnh hn vƠ bo mt hn. HTML5 s giúp các ni dung trên Web hot đng
tt hn mƠ không cn ph thuc vƠo bt kì mt ng dng ph tr nƠo khác.Không
nhng mang li nhng li ích to ln nh hot đng nhanh, n dnh vƠ bo mt hn.
Bên cnh đó, HTML5 có kh nng h tr API (Application Programming Interface)
vƠ DOM (Document Object Model) s cho phép d dƠng m rng, giúp các nhƠ
phát trin t do sáng to trong vic to ra các ng dng thơn thin vƠ hu ích hn.
Hn th, vi HTML5, mi thit b t máy tính cá nhơn đn các thit b di đng s có
th d dƠng tip cn ni dung, tc lƠ s không còn khác bit na, ch cn duy nht
mt điu kin : trình duyt đang dùng phi h tr HTML5, nhng điu nƠy có l
không còn lƠ điu kin khó gii quyt khi hu ht các trình duyt ph bin đu h
tr mnh m HTML5, t : Firefox, Chrome, Opera, Internet Explorer đn các trình
duyt trên iOS, Android đu h tr tt HTML5.
TƠi: Tìm hiu nn tng mư ngun m Phonegap vƠ xơy dng ng dng
Ngô Quang Trung ậ email: - 8
Website:
Vi HTML5, các nhƠ phát trin ch cn xơy dng ng dng 1 ln, nó có th hot
đng tt trên tt c các thit b, không nh Flash hoc Silverlight đòi hi phi cƠi
đt plugin đ có th hin th ni dung.
1.2.1. Ni dung đa dng
Thi gian trc, báo chí vƠ các nhƠ phát trin đư tn nhiu giy mc đ nói
v nhng gì mƠ HTML5 có th mang li, so sánh gia HTML5 vƠ Flash vn chim
phn ln ni dung trên Web. Flash lơu nay vn chim phn ln ni dung trên Web
nhng hin nay nó đư vƠ đang dn b thay th bi HTML5.
Huyn thoi Steve Jobs đư tng đa ra quan đim rt rõ rƠng, Flash s không bao
gi xut hin trên các thit b di đng ca Apple, vƠ cng đa ra s ng h tuyt đi
vƠo HTML5. Quan đim nƠy th hin rõ rƠng đn ni Steve Jobs đư vit 1 bc th
vƠ đng trên trang ch ca Apple đ th hin quan đim nƠy vƠ xóa tan nhng mong
mun đa Flash lên iOS ca ngi dùng.
Bên cnh nhng li ích mƠ HTML5 mang li, gii phát trin cng ch ra nhng hn
ch rt ln ca Flash, đó lƠ s bt n đnh, lƠm thit b hot đng nóng hn vƠ hao
pin hn, phi yêu cu cƠi Plugin đ hot đng. VƠ Flash không phi lƠ ti u cho
các thit b di đng khi vn đ v PIN trên các thit b nƠy luôn lƠ mi quan tơm ln
ca ngi dùng.
Hin nay, nhiu trang web vƠ dch v ln đư chuyn sang dùng HTML5, có th k
đn trong s đó lƠ Youtube, Nokia Mapsầ NgoƠi ra, rt nhiu games đc xơy
dng bng HTML5 đư xut hin, trong s đó có các games ni ting nh Angry
Bird, Fieldrunnersầ Cho thy HTML5 ngƠy cƠng đc quan tơm vƠ phát trin
nhiu hn.
1.2.2. H tr thay th Flash
Vi s quan tơm ngƠy cƠng ln mƠ các nhƠ phát trin dƠnh cho HTML5 cho
thy thi gian ti, HTML5 s ngƠy mt phát trin mnh m hn. ơy không phi lƠ
TƠi: Tìm hiu nn tng mư ngun m Phonegap vƠ xơy dng ng dng
Ngô Quang Trung ậ email: - 9
Website:
mt điu quá bt ng, vì vi nhng gì mƠ HTML5 mang li, đó lƠ s la chn thc
s đúng đn vƠ ngi s dng Web s đc hng li rt nhiu.
Thi gian trc, Google đư phát trin công c Google Swiffy cho phép ngi dùng
chuyn đi ni dung Flash sang HTML5, Adobe mua li Nitobi ậ công ty sáng lp
b khung lp trình ng dng PhoneGap vƠ PhoneGap Build cho phép lp trình viên
phát trin ng dng nn tng cross-flatform trên di đng vi HTML5 vƠ Javascript.
Bên cnh đó, bn thơn Adobe cng cho ra đi công c mang tên Wallaby cho phép
chuyn ni dung t Flash sang HTML5.
VƠ ngƠy 09/11 đánh du bc tin quan trng ca HTML5 khi chinh Adobe tuyên
b s ngng phát trin Flash trên các thit b di đng mƠ thay vƠo đó lƠ tp trung
phát trin HTML5. Vi gii công ngh, đơy có th lƠ mt bc ngot quan trng.
Adobe cho bit h vn s tung các bn sa li, nhng s không phát trin Flash trên
các thit b di đng na, vƠ Flash Player 11.1 s lƠ phiên bn nơng cp cui cùng.
“Hin ti HTML5 đư đc trin khai rng rưi trên nhiu nn tng khác nhau, nó s
tr thƠnh gii pháp tt nht cho vic phát trin ni dung trên trình duyt ca thit b
di đng” ậ Adobe cho bit. Vi thông báo trên, có th thy hin ti ngay c Adobe
cng đang dn t b Flash đ tp trung phát trin HTML5 vì mt chun Web chung
cho tng lai.
Vi HTML5, ngi dùng Web s có đc mt tri nghim hoƠn toƠn mi, ngi
dùng có th thoi mái xem Video, chi games trên trình duyt vi mi thit b mƠ
không cn quan tơm đn các thƠnh phn b sung cn phi cƠi thêm. Vi các thit b
di đng nh Smartphone, Tablet, ngi dùng s không còn lo lng v hiu nng
cng nh thi lng s dng PIN na. Vì HTML5 đư ti u hóa cho nhng lo ngi
đó.
1.2.3. Tng tính bo mt
Mi trình duyt có 1 plug-in riêng do các nhóm lp trình khác nhau lp ra vi
nhng tiêu chun khác nhau, đc đa ra vƠo thi đim khác nhau vƠ kiu mu bo
TƠi: Tìm hiu nn tng mư ngun m Phonegap vƠ xơy dng ng dng
Ngô Quang Trung ậ email: - 10
Website:
mt cng khác nhau. Thông thng, mt s phiên bn plug-in có tính bo mt hn
so vi loi khác. VƠ khi s lng plug-in gia tng, chúng lƠm tng đ phc tp
trong kim tra các li an ninh. Liu plug-in hay trình duyt đư có l hng ln vƠo
nm ngoái? Liu có phc tp không khi ch cp nhơt trình duyt mƠ không nơng cp
plug-in hoc ngc li? Ai có th nh đc?
Thay th nhiu loi plug-in vi các đc đim đc tích hp vi HTML5 s b đi
đc nhng khuyt đim có trong các plug-in trc đó. Nhng khuyt đim có th
b li dng đ thit lp mư đc. Nu nh nhóm an ninh kim tra Firefox, Chorme
hoc IE cho phép cƠi đt các plug-in nƠy, s nguy him s gim bt đi.
1.2.4. n gin hóa vic phát trin web
Bill Mill ậ chuyên viên thit k cho Lookingglass Cyber Solutions gii thích
ngn gn v s thay đi nƠy: “Tôi thc s thích HTML5 vì nó cho phép tôi làm vic
trong mt môi trng thích hp, trình duyt kt hp vi Javascript, DOM mà không
phi bt đi bt li Flash và HTML5. Nó va là 1 ngôn ng li va là 1 công c ,
không khác bit lm so vi các plug-in khác”.
HTML 5 cung cp 1 ngôn ng lp trình JavaScript, 1 kiu d liêu (XML hoc
DOM) vƠ 1 phn nguyên tc thit lp (CSS) đ kt ni vn bn, audio, video vƠ
ha. Thách thc trong vic to ra cái gì đó tt đp vn lƠ mênh mông nhng điu đó
s đn gin hn khi lƠm vic trong 1 tiêu chun thng nht.
Hin nay ch Adobe s dng HTML 5 đ tích hp các công c dƠnh cho Flash.
1.3. Các tính nng mi có trong HTML5
1.3.1. HTML5 h tr các phn t đnh ngha mi
c t HTML5 bao gm mt lot các phn t ng ngha mi đc s dng đ
đa ra mt s ngha cho các phn hoc các b phn khác nhau ca mt trang Web,
chng hn nh tiêu đ, chơn trang, chuyn hng, vƠ v.v Trong các phiên bn
trc ca HTML, thng s dng các phn t <div> đ to nhng b phn nƠy, s
TƠi: Tìm hiu nn tng mư ngun m Phonegap vƠ xơy dng ng dng
Ngô Quang Trung ậ email: - 11
Website:
dng ID hoc các thuc tính lp đ phơn bit chúng vi nhau. Vn đ lƠ điu nƠy
không có ngha ng ngha, vì không có các quy tc nghiêm ngt quy đnh phi ch
rõ các tên lp hoc các ID nƠo đc s dng, lƠm cho vic xác đnh vùng c th nƠo
đang lƠm vic tr nên vô cùng khó khn đi vi phn mm. HTML5 giúp lƠm gim
bt nhng vn đ nƠy, lƠm cho vic phơn tích cú pháp cu trúc ng ngha ca mt
tƠi liu tr nên d dƠng hn đi vi các trình duyt Web.
Tht đáng giá đ nói rng vic tip tc s dng các phn t <div> trong HTML5 lƠ
hoƠn toƠn hp l, nhng đ công vic đc nơng cp d dƠng, điu quan trng lƠ
nên s dng các phn t ng ngha ni có liên quan. Mt khác, điu cn thit lƠ
tránh s dng các phn t mi cho các mc đích khác hn so vi d đnh ca
chúng. Ví d, không nên s dng phn t <nav> cho nhóm các liên kt bt k; nó
đc d kin đ bao quanh khi chuyn hng chính trên trang đó.
Các phn t ng ngha chính mƠ HTML5 gii thiu lƠ:
<header (tiêu đ)>
Phn t nƠy đc s dng đ đnh ngha mt tiêu đ cho mt s phn ca mt trang
Web, có th lƠ toƠn b trang, mt phn t <article>, hoc mt phn t <section>.
<footer (chơn trang)>
Ging nh phn t <header>, phn t mi nƠy đnh ngha mt chơn trang cho mt
s phn ca mt trang. Mt chơn trang không cn cui ca mt trang, mt phn t
article (bƠi vit), hoc mt phn t section (phn), nh nó thng lƠm.
<nav (chuyn hng)>
ơy lƠ mt thùng cha cho các liên kt chuyn hng ban đu trên mt trang Web.
Phn t nƠy không đc d kin s dng vi tt c các nhóm các liên kt vƠ ch nên
đc dùng cho các khi chuyn hng ln. Nu có mt phn t <footer> có cha
các liên kt chuyn hng, thì không cn bc các liên kt nƠy trong mt phn t
<nav>, do phn t <footer> cng s đáp ng cho riêng nó.
TƠi: Tìm hiu nn tng mư ngun m Phonegap vƠ xơy dng ng dng
Ngô Quang Trung ậ email: - 12
Website:
<article (bƠi vit)>
Phn t <article> đc s dng đ đnh ngha mt mc đc lp trên trang có th
dùng cho riêng nó, chng hn nh mt mc tin tc, bƠi vit trên blog, hoc nhn
xét. Thng s dng các ngun cung cp RSS đ cung cp các mc nƠy.
<section (phn)>
Phn t nƠy đi din cho mt phn ca mt tƠi liu hoc ng dng, chng hn nh
mt chng hoc mt phn ca mt bƠi vit hoc hng dn. Ví d, phn đang đc
bơy gi có th đc bao quanh bi mt phn t <section> trong HTML5. Các phn
t <section> thng có mt tiêu đ, mc dù cng không cn thit lm. Ví d, tiêu đ
cho phn đang đc bơy gi s cha vn bn “Các phn t ng ngha”.
<aside (nhn xét)>
Phn t mi nƠy có th đc s dng đ đánh du mt thanh ph hoc mt s ni
dung khác đc cho lƠ có phn tách ri vi ni dung xung quanh nó. Mt ví d v
điu nƠy có th lƠ các khi qung cáo.
<hgroup>
Trong mt s trng hp, mt trang, bƠi vit, hoc mt phn có th cn nhiu hn
mt tiêu đ, chng hn nh đơy có mt tiêu đ vƠ ph đ. Ví d, hng dn nƠy
có tiêu đ “To các trang Web hin đi s dng HTML5 vƠ CSS3” vƠ ph đ “Trin
khai các phn t canvas vƠ video trong HTML5”, có th bc tiêu đ vƠ ph đ nƠy
trong phn t <hgroup> , bng cách s dng mt phn t <h1> cho tiêu đ chính vƠ
mt phn t <h2> cho ph đ.
1.3.2. HTML5 h tr đ ha tng tác vi phn t <canvas>
Chun Web c ti hình nh bng cách ti file GIF hay JPG. Chun Web mi
có th xơy dng hình nh trên Canvas. Mt lot th vin đ ha đp đc đa ra,
giúp cho đ ha ca Website tr nên tng tác hn.
TƠi: Tìm hiu nn tng mư ngun m Phonegap vƠ xơy dng ng dng
Ngô Quang Trung ậ email: - 13
Website:
Chính phn t <canvas> lƠ khá c bn, đnh ngha chiu rng, chiu cao, vƠ mư
đnh danh (ID) duy nht cho đi tng. Sau đó nhƠ phát trin phi s dng mt lot
các JavaScript API đ thc s v các đi tng trên khung nn nh (canvas),
thng khi trang Web đư hoƠn tt dng hình. Nhng API nƠy cho phép nhƠ phát
trin v hình dng vƠ các đng k, pht mƠu, đ m đc vƠ các gradient (đ dc);
to vn bn; chuyn đi các đi tng khung nn nh; vƠ th hin hình nh đng.
Các API cng cho phép phn t <canvas> tng tác vƠ đáp ng vi đu vƠo ngi
dùng chng hn nh các s kin chut vƠ các s kin bƠn phím, to điu kin thun
li cho vic sn xut các trò chi vƠ các ng dng Web trên khung nn nh
1.3.3. HTML5 cho phép các ng dng Lu tr cc b vi local storage
Các nhƠ phát trin Web có truyn thng s dng các cookie đ lu tr thông
tin trên máy tính cc b ca khách truy cp, cho phép mt trang Web đc li thông
tin nƠy ti mt đim sau đó. Trong khi các cookie rt có ích đ lu tr d liu c
bn, thì chúng li b hn ch bi thc t lƠ các trình duyt Web thng không cn
thit gi li hn 20 cookie cho mi mt máy ch Web hoc nhiu hn 4KB d liu
cho mi cookie (bao gm c tên vƠ giá tr). NgoƠi ra, chúng đc gi đn máy ch
Web vi mi yêu cu HTTP, gơy ra lưng phí tƠi nguyên.
HTML5 cung cp mt gii pháp cho các vn đ nƠy bng các Local Storage API
(API lu tr cc b ), đc trình bƠy trong mt đc t riêng vi tƠi liu HTML5
chính. Tp các API nƠy cho phép các nhƠ phát trin lu tr thông tin trên máy tính
ca khách truy cp trong khi vn có c s đ tin chc rng chúng vn có đó sau
nƠy. NgoƠi ra, thông tin có th truy cp bt k đim nƠo (ngay c sau khi trang đư
đc đa ra) vƠ không đc ti t đng vi mi yêu cu HTTP. c t nƠy gm có
các hn ch cùng ngun gc (same-origin), đ ngn cn các trang Web khi b các
trang Web khác đc hoc thay đi d liu đư lu.
Hu ht các trình duyt đu lu tr các trang Web trong b nh nhanh cc b, cho
phép xem chúng ngay c khi ngi dùng không ni mng. Vic nƠy hot đng tt
vi các trang tnh, nhng nó không có sn cho ni dung đng thng da vƠo c s
TƠi: Tìm hiu nn tng mư ngun m Phonegap vƠ xơy dng ng dng
Ngô Quang Trung ậ email: - 14
Website:
d liu, chng hn nh Gmail, Facebook, Twitter. HTML5 cung cp s h tr cho
các ng dng không ni mng, đơy trình duyt ti tt c các tp cn thit đ s
dng không cn ni mng ng dng, vƠ khi ngi dùng s dng không ni mng
ng dng, trình duyt có th cho phép các thay đi bt k đc thc hin trong quá
trình nƠy đc ti lên máy ch khi chúng kt ni li vƠo mng Internet.
1.3.4. HTML5 h tr phát <audio> vƠ <video>
Trong nhng nm gn đơy, tính ph bin ca các trang Web chia s video
nh YouTube vƠ các nn tng phơn phi ni dung nh Hulu đư chng kin mt s
bùng n to ln trong vic s dng Web đ to lung đa phng tin. Tht không
may, ngi ta không th xơy dng đc Web vi ni dung theo ý đ nƠy, vƠ kt qu
lƠ, đnh dng tp Flash Video (.flv) vƠ các nn tng Adobe Flash nhìn chung đư lƠm
đn gi hóa vic cung cp các video vƠ ơm thanh.
Tuy nhiên, HTML5 bao gm c s h tr cho hai phn t mi, <audio> vƠ <video>,
cho phép các nhƠ phát trin Web bao gm các ni dung đa phng tin mƠ không
cn ngi dùng cƠi đt các trình cm thêm ca trình duyt. Mt s trình duyt, gm
có Mozilla Firefox, Apple Safari, Google Chrome, đư bt đu h tr các phn t
mi nƠy vƠ cung cp các nút điu khin phát li ca trình duyt chun, nên chc lƠ
ngi dùng s chn s dng chúng. NgoƠi ra, mt tp hp các JavaScript API chun
đư đc cung cp đ cho phép các nhƠ phát trin to các nút điu khin phát li
riêng ca h, chc lƠ h mun lƠm nh vy. Mt li th quan trng đ phát li đa
phng tin nguyên gc lƠ v mt lý thuyt nó đòi hi ít tƠi nguyên CPU hn, điu
nƠy cho phép tit kim nng lng.
Tuy nhiên, mt vn đ quan trng vi các phn t đa phng tin mi nƠy lƠ các
đnh dng tp đc tng trình duyt h tr vƠ các vn đ cp phép bng sáng ch
thng đi cùng vi các b mư hóa/gii mư (codec) khác nhau dùng đ mư hóa các
tp nƠy. Mozilla vƠ Opera mun s dng các thùng cha video Theora vƠ codec mư
ngun m, không đòi hi cp giy phép bng sáng ch đ bao gm các codec đó
trong trình duyt Web. Mt khác, Apple vƠ Google không hƠi lòng vi cht lng
TƠi: Tìm hiu nn tng mư ngun m Phonegap vƠ xơy dng ng dng
Ngô Quang Trung ậ email: - 15
Website:
ca Theora, c th đi vi vic phơn phi các ni dung đ nét cao (HD) trên nhng
trang Web ging nh YouTube. H thích codec H.264, thng có trong các tp
MP4, MOV, hoc MKV.
Tuy nhiên, vn đ không ch vi video, do có các vn đ tng t vi các codec ơm
thanh. Các đnh dng MP3 vƠ AAC b hn ch bi các bng sáng ch, trong khi
đnh dng Vorbis thì không. Vn đ vi ơm thanh Vorbis lƠ nó không đc s dng
rng rưi, do các máy phng tin di đng vƠ nhiu ng dng phn mm phng tin
không h tr nó.
Có rt nhiu quyt đnh đc đa ra v các phn t <video> v <audio> ca
HTML5 trong tng lai gn, vƠ s rt thú v đ xem các codec vƠ các đnh dng nƠo
đc đn gin hóa theo khuyn cáo cui cùng.
1.3.5. HTML5 Ci tin biu mu Web
Nu đư to các ng dng Web t trc, nhƠ lp trình có kh nng quen hn
vi tp các nút điu khin biu mu ca HTML, mt s trong đó đc trin khai
thc hin bng cách s dng phn t <input>. Trong HTML 4, các kiu đu vƠo sau
đơy đư đc h tr:
button (nút n)
checkbox (hp kim tra)
file (tp)
hidden (n)
image (hình nh)
password (mt khu)
reset (thit lp li)
radio (nút tròn)
TƠi: Tìm hiu nn tng mư ngun m Phonegap vƠ xơy dng ng dng
Ngô Quang Trung ậ email: - 16
Website:
submit (trình lên)
text (vn bn)
NgoƠi ra, có mt s phn t khác đc s dng theo các biu mu nh <select> vƠ
<textarea>. Các nút điu khin ca biu mu nƠy cung cp nhiu chc nng cho các
trng biu mu c bn nh tên, s đin thoi, vƠ đa ch — ging nh nhng gì có
th thy trên mt biu mu liên h. Tuy nhiên, Web lƠ mt nn tng đư phát trin
vt xa giai đon mƠ đó các biu mu HTML đc s dng đ trình lên các biu
mu liên h — bơy gi chúng đc s dng đ trình lên d liu ng dng đ x lý
bên phía máy ch. Kt qu lƠ, chính các nhƠ phát trin ng dng Web liên tc thy
mình cn mt s nút điu khin biu mu tinh vi hn, chng hn nh các nút quay
tròn, các thanh trt, các nút chn ngƠy/gi, các nút chn mƠu sc, vƠ v.v
cung cp các kiu nút điu khin nƠy, các nhƠ phát trin cn s dng mt th
vin JavaScript bên ngoƠi đ cung cp các thƠnh phn giao din ngi dùng (UI),
hoc s dng mt khung công tác phát trin thay th khác nh Adobe Flex,
Microsoft Silverlight, JavaFX. HTML5 nhm mc đích lp đy mt s các khong
trng do phiên bn trc ca nó đ li trong lnh vc nƠy bng cách cung cp toƠn
b các kiu đu vƠo khác nhau ca biu mu mi:
color (mƠu)
date (ngƠy)
datetime (ngƠy gi)
datetime-local (ngƠy gi đa phng)
email (th đin t)
month (tháng)
number (s)
TƠi: Tìm hiu nn tng mư ngun m Phonegap vƠ xơy dng ng dng
Ngô Quang Trung ậ email: - 17
Website:
range (phm vi)
search (tìm kim)
tel (đin thoi)
time (thi gian)
url (đa ch)
week (tun)
Lúc nƠy, vic h tr cho các trng biu mu mi còn khá hn ch. Trình duyt
Mobile Safari trên iPhone s dng ca mt s các kiu mi nƠy đ thay đi kiu
trình bƠy bƠn phím cho ngi s dng (ví d, vi các kiu e-mail, ký hiu @ vƠ các
phím tt .com s đc hin th). NgoƠi ra, Opera cung cp mt s widget mi cho
nhiu nút điu khin nƠy, bao gm mt nút quay tròn cho kiu s vƠ mt nút chn
ngƠy ca lch cho các kiu có liên quan đn ngƠy. Kiu có sn ph bin nht trong
các đ xut mi nƠy lƠ kiu phm vi, đc Opera, Safari vƠ Google Chrome biu th
lƠ mt thanh trt.
NgoƠi các kiu đu vƠo mi, HTML5 cng h tr hai tính nng chính mi cho các
trng biu mu. Tính nng đu tiên trong s nƠy lƠ trng tơm t đng, đ ra lnh
cho mt trình duyt t đng tp trung vƠo mt trng biu mu c th khi trang
đc biu th, mƠ không đòi hi mư JavaScript lƠm nh vy. Tính nng nơng cao
th hai lƠ thuc tính gi ch, cho phép nhƠ phát trin đnh ngha vn bn s xut
hin trong mt nút điu khin có dng hp vn bn khi ni dung ca nó rng.
1.3.6. HTML5 h tr kh nng truy cp ti h thng file system
HTML5 cung cp các hƠm APIs ht sc mnh m đ tng tác vi d liu
kiu nh phơn vƠ h thng file system ca ngi s dng. các hƠm File APIs nƠy
cho phép các ng dng web có kh nng lƠm nhng vic nh đc các files d liu 1
cách đng b hoc không đng b, to ra các d liu nh phơn 1 cách tùy ý, vit các
files, đc 1 cơy th mc file 1 cách đ quy, cho phép thc hin x lý trên file khi
TƠi: Tìm hiu nn tng mư ngun m Phonegap vƠ xơy dng ng dng
Ngô Quang Trung ậ email: - 18
Website:
kéo th nó t desktop vƠo trong trình duyt vƠ ti lên d liu kiu nh phơn bng
cách s dng XMLHttpRequest2.
Ví d minh ha nh các hƠm File APIs có th đc s dng đ to ra 1 hình nh thu
nh dƠnh cho vic xem trc ca các bc nh khi chúng đang đc gi ti server,
hay cho phép 1 ng dng lu li trong 1 file mƠ file nƠy đc s dng đ tham
chiu ti khi ngi dùng s dng ng dng trong trng thái offline. Hay hn th,
bng cách s dng Web Audio API thì ng dng có th đc đc các file .mp3 vƠ
hin th 1 cách trc quan bn nhc khi nó đang đc chy, thêm vƠo đó, ngi dùng
có th s dng các điu kin logic t phía client đ kim tra li dng mimetype ca
d liu đc ti lên xem có tng ng vi đuôi m rng ca file hay gii hn kích
thc ca d liu đc ti lên.
1.3.7. HTML5 tng tc hiu nng x lý vi Web Worker vƠ Application Cache
“Web” vƠ “offline” lƠ 2 t mƠ rt nhiu ngi dùng nhn thy rng chúng
không bao gi song hƠnh cùng nhau. Tuy nhiên trong HTML5 thì mi chuyn li
khác, Trang web vn có th hot đng đc ngay c khi chúng không đc kt ni
trc tuyn. Ngi dùng có th ti v các files d liu rt ln (ln hn 1 GB) đ sau
đó có th duyt xem 1 cách offline
Application Cache mang li cho ng dng 3 li ích :
1. Duyt xem ngay c khi offline
2. Tng tc hiu nng x lý bi vì các ngun tƠi nguyên đc Cache li do đó
s đc np nhanh hn
3. Gim ti cho máy ch - trình duyt s ch ti v các ngun tƠi nguyên đc
cp nht hay đc thay đi t phía máy ch
NgoƠi kh nng lu tr d liu trong cache, thì HTML5 còn nơng cao tri nghim
ngi dùng so vi trc đơy. Theo cách x lý truyn thng, thì mư Javascript trong
trình duyt thc thi x lý trong 1 lung duy nht, do vy vi các tính toán yêu cu
thi gian thc thi dƠi thì trong khi thi gian thc thi cha kt thúc, nó s gơy ra 1
TƠi: Tìm hiu nn tng mư ngun m Phonegap vƠ xơy dng ng dng
Ngô Quang Trung ậ email: - 19
Website:
hiu ng ph lƠ khóa (hay ngn chn) tng tác ca ngi dùng. Tuy nhiên trong
HTML5, bng vic ra mt tính nng mi lƠ Web worker thì vn đ nƠy đư đc gii
quyt.
1 Web Worker (Các trình lƠm vic trên nn Web) lƠ 1 mư javascript mƠ nó có th
chy thc thi trong nn, thc thi 1 cách đc lp vi các mư khác mƠ không h gơy
nh hng ti hiu nng x lý ca trang page. Ngi dùng vn có th tng tác vi
trang page nh nhn chut, la chn nhiu th, cun trang, gõ vn bn, ầnói cách
khác Web Worker thúc đy s phát trin ca các ng dng đa lung, ti u hóa cho
các x lý tính toán phc tp.
1.3.8. HTML5 h tr đnh v ngi dùng
HTML5 có mt API đnh v đa lý cho phép mt ng dng Web xác đnh v
trí đa lý hin ti ca ngi dùng, gi s thit b mƠ ng dng đang nhm ti cung
cp các tính nng đ tìm kim các thông tin nh vy (ví d, GPS trên đin thoi di
đng). Nu ngi dùng không có mt thit b h tr tính nng nƠy (chng hn nh
mt đin thoi thông minh iPhone hoc Android 2.0), thì ngi dùng có th s dng
Firefox vƠ ti v mt trình cm thêm đ cho phép thit lp v trí ca h bng tay.
1.3.9. HTML5 h tr kh nng cng tác vƠ giao tip thi gian thc
Các tính nng có trong HTML5 đc chia lƠm 2 nhóm : mt lƠ nhóm các
tính nng dùng đ thúc đy các ng dng web đt th cơn bng vi các ng dng
nn desktop, hai lƠ nhóm các tính nng đem ti cho các ng dng web nhng li th
vt lên trên c các ng dng desktop truyn thng. Kh nng cng tác theo thi
gian thc lƠ dng tính nng đin hình thuc nhóm 2, nó đem ti li th cc k to ln
cho các ng dng web
WebSockets vƠ WebRTC có th thc s lƠm thay đi các trò chi games trong s
giao tip theo thi gian thc bi nó khin vic lp trình phát trin d dƠng hn vƠ
nơng cao tri nghim ca ngi dùng
TƠi: Tìm hiu nn tng mư ngun m Phonegap vƠ xơy dng ng dng
Ngô Quang Trung ậ email: - 20
Website:
WebSoket lƠ công ngh h tr giao tip hai chiu gia client vƠ server bng cách s
dng mt TCP socket đ to mt kt ni hiu qu vƠ ít tn kém. Mc dù đc thit
k đ chuyên s dng cho các ng dng web, lp trình viên vn có th đa chúng
vƠo bt kì loi ng dng nƠo.
D liu truyn ti thông qua giao thc HTTP (thng dùng vi k thut Ajax) cha
nhiu d liu không cn thit trong phn header. Mt header request/response ca
HTTP có kích thc khong 871 byte, trong khi vi WebSocket, kích thc nƠy ch
lƠ 2 byte (sau khi đư kt ni).
Vy gi s trong mt ng dng game có th ti 10,000 ngi chi đng nhp cùng
lúc, vƠ mi giơy h s gi/nhn d liu t server. Hưy so sánh lng d liu header
mƠ giao thc HTTP vƠ WebSocket trong mi giơy:
- HTTP: 871 x 10,000 = 8,710,000 bytes = 69,680,000 bits per second (66 Mbps)
- WebSocket: 2 x 10,000 = 20,000 bytes = 160,000 bits per second (0.153 Kbps)
Ch riêng phn header thôi cng đư chim mt phn lu lng đáng k vi giao
thc HTTP truyn thng.
WebRTC đem đn kh nng h tr cho video vƠ audio trong hi tho trc tuyn hay
trong truyn phát video trc tuyn.
1.3.10. HTML5 h tr tip nhn các s kin events đc gi t máy ch
HTML5 Server-Sent Events cho phép 1 trang page tip nhn các cp nht
liên tc, tc thi t phía máy ch, bt c khi nƠo có 1 s kin event mi xy ra trên
máy ch thì 1 thông báo s đc gi ti client. thc s hiu v Server-Sent
Events, thì trc ht cn phi hiu rõ v gii hn mƠ công ngh AJAX đi trc b
hn ch :
- Kim soát vòng Polling lƠ 1 k thut c đin đc s dng bi hu ht đa s các
ng dng AJAX. ụ tng ct yu đơy lƠ ng dng s gi lp đi lp li ti máy
ch đ thu nhn v d liu. iu nƠy tng t vi giao thc HTTP, xét cho cùng thì
vic nhn v d liu cng quay quanh 1 đnh dng request/response (yêu cu/hi
TƠi: Tìm hiu nn tng mư ngun m Phonegap vƠ xơy dng ng dng
Ngô Quang Trung ậ email: - 21
Website:
đáp). Client to ra 1 yêu cu request vƠ ch đi máy ch hi đáp li vƠ tr v d
liu.vn đ rc ri ln gp phi đơy lƠ vi nhng kim soát vòng polling rt ln,
thì nó s to ra chi phí ph cho giao thc HTTP rt ln.
- Kim soát vòng Long polling trong thi gian kéo dƠi trong khi máy ch cha sn
sƠng tr v d liu thì nó s gi yêu cu nƠy m cho ti khi d liu đc sn sƠng
đ tr v. Do vy, k thut nƠy thng đc trích dn nh 1 vic lƠm treo phng
thc GET. Khi d liu đư đc sn sƠng thì máy ch s hi đáp tr v vƠ đóng kt
ni, quá trình x lý nƠy s đc lp đi lp li.
Theo cách khác thì Server-Sent Events (SSEs) đc thit k đ mang li hiu qu
tt hn. Khi giao tip bng SSEs, thì máy ch có th đy d liu v ng dng bt
c khi nƠo nó mun mƠ không cn phi to ra 1 yêu cu request. Hay hiu theo cách
khác, thì các cp nht máy ch có th đc truyn phát 1 cách liên tc, t đng,
tc thi ti client. SSEs ch m ra 1 kênh giao tip 1 chiu gia máy ch vƠ client
im khác bit chính gia Server-Sent Events vƠ long-polling lƠ SSEs đc kim
soát trc tip t trình duyt vƠ ngi dùng ch đn gin lƠ lng nghe các thông đip
mƠ thôi.
1.3.11. Nhng tính nng khác
Các tính nng khác mi đc HTML5 gii thiu bao gm các kiu MIME vƠ
đng ký trình x lý giao thc, vì vy các ng dng Web có th đc đng ký nh
các ng dng mc đnh vi mt kiu tp hoc giao thc c th; qun lý lch s trình
duyt, mƠ cho đn bơy gi vn cn phi đc thc hin th công hoc bng cách s
dng mt khung công tác JavaScript bên ngoƠi; vƠ mt lot các phn t vƠ các
thuc tính mi khác lƠm cho các nhƠ phát trin Web thc hin d dƠng hn.
TƠi: Tìm hiu nn tng mư ngun m Phonegap vƠ xơy dng ng dng
Ngô Quang Trung ậ email: - 22
Website:
CHNG II: GII THIU V FRAMEWORK MÃ NGUN
M PHONEGAP
2.1. Phonegap lƠ gì ?
Phonegap lƠ 1 framework mư ngun m dùng cho vic xơy dng các ng dng
native Applications đa nn tng bng cách s dng các công ngh web tiêu chun
nh HTML, CSS, Javascripts. Kiu ng dng mobile dng nƠy đc gi lƠ hybrid
application (ng dng lai).
Hình 1: S đ tng quan v cách thc hot đng ca Phonegap
Phonegap hin ti h tr các nn tng mobile sau :
Apple iOS (gm c iPhone vƠ iPad):
Google Android : http ://developer.android.com
TƠi: Tìm hiu nn tng mư ngun m Phonegap vƠ xơy dng ng dng
Ngô Quang Trung ậ email: - 23
Website:
HP/Palm webOS:
Microsoft Windows Phone 7: />us/home/getting_started
Nokia Symbian: www.developer.nokia.com/Devices/Symbian
RIM BlackBerry (phiên bn BlackBerry 4.6 vƠ mi hn):
www.blackberry.com/developers
Samsung bada:
Bt đu t phiên bn 2.2.0 tr lên, thì phonegap bt đu h tr nn tng h điu
hƠnh mi nht ca Microsoft lƠ Windows 8 (bao gm c Window 8 chy trên trên
vi x lý cu trúc X86 vƠ Windows RT chy trên vi x lý cu trúc ARM)
2.2. ôi nét v lch s ca Phonegap
Phonegap lƠ mt d án mư ngun m hoƠn toƠn min phí ca Nitobi giúp vic
phát trin ng dng d dƠng hn đi vi mi h điu hƠnh. Phát trin đu tiên ti
mt s kin iPhoneDevCamp San Francisco, PhoneGap tip tc giƠnh chin
thng gii thng Choice Award ti O’Reilly Media 2009 hi ngh Web 2.0 tháng
4 nm 2009 ( 4 sn phm khác cng dƠnh chin thng bao gm: 80 legs, zealLog,
Bantam Network, Dubmenow) m ra hng đi mi cho các nhƠ phát trin ng dng
web. K t đó có 600.000 lt ti v vƠ hƠng ngƠn ng dng đc phát trin da
trên Phonegap. Apple đư xác nhn rng Framework nƠy đư đc phê duyt.
Tuy đc to ra bi Nitobi nhng đng sau Phonegap lƠ s đóng góp ca rt nhiu
ngi trong nhng t chc ln nh IBM, RIM vƠ Microsoft. Phonegap cng khng
đnh rng: H có mt cng đng phát trin hp đn, hot đng m, minh bch vƠ
hp tác.
Framework PhoneGap đc s dng bi mt s nn tng ng dng di đng nh
Worklight , Convertigo vƠ appMobi nh lƠ xng sng ca đng c phát trin đin
thoi di đng dƠnh cho khách hƠng ca h. Adobe chính thc công b vic mua li
ca Nitobi Software (nhƠ phát trin ban đu) vƠo tháng 10 nm 2011, trùng khp
TƠi: Tìm hiu nn tng mư ngun m Phonegap vƠ xơy dng ng dng
Ngô Quang Trung ậ email: - 24
Website:
vi điu đó các mư PhoneGap đư đc s dng cho Apache Software Foundation đ
bt đu mt d án mi đc gi lƠ Apache Cordova.
các phiên bn phonegap v trc, luôn bt buc nhƠ lp trình khi to ra các ng
dng iOS thì cn phi có 1 máy tính chy Mac ca Apple, hay nhƠ lp trình mun
to ra các ng dng cho windowphone thì phi có máy tính chy windows. Tuy
nhiên t sau tháng 9 nm 2012, thì dch v “PhoneGap Build” đư đc ra mt vƠ
cho phép nhƠ lp trình ti lên mư ngun ca h ti 1 h thng biên dch đám mơy ,
vƠ nh đó biên dch ra các ng dng tng ng cho tng nn tng h điu hƠnh
đc h tr.
2.3. Ti sao li s dng Phonegap ?
Nu lƠ mt lp trình viên hay nhng ngi lƠm vic trong lnh vc tin hc hn
còn nh đn thut ng: “Write one, run any where” xut hin vƠ tr thƠnh mt cn
st vƠo ngƠy 23/5/1995. NgƠy mƠ công ty máy tính Sun Microsystems đư gii thiu
mt công c lp trình mi ậ ngôn ng Java. Java ra đi vi mt x mnh khc phc
khó khn trong vic chuyn đi các ng dng vit trên h điu hƠnh OS vƠ các h
x lý CPU khác nhau. Do vy, ngi lp trình ch cn vit ng dng bng Java
đúng mt ln, sau đó có th s dng ng dng nƠy trên các h điu hƠnh khác nhau
nh Windows95, WindowsNT, Mac OS, Unix, theo phng chơm: “vit mt ln,
s dng bt k đơu”.
TƠi: Tìm hiu nn tng mư ngun m Phonegap vƠ xơy dng ng dng
Ngô Quang Trung ậ email: - 25
Website:
Hình 2: So sánh u đim ca vic s dng Phonegap vi Java
Cơu hi đư đc lƠm sáng t. ó lƠ Phonegap chính lƠ truyn nhơn sut sc ca
Java khi hoƠn thin vƠ đy tiêu chí “Write one, run any where” lên mt tm cao
mi.
2.4. Cách thc Phonegap hot đng
Nh đư nói đn t trc, Phonegap cho phép 1 nhƠ phát trin phn mm xơy
dng các ng dng native applications cho các thit b mobile (bao gm c
smartphones vƠ tablets) bng cách s dng các công ngh web nh HTML, CSS,
JavaScript. 1 nhƠ phát trin phn mm đóng gói 1 ng dng nn web (web
application) thƠnh 1 ng dng native application đc h tr cho tng nn tng
mobile da vƠo PhoneGap package.