DANH SÁCTI TÌNH VẼ, Hinh I- 1 Téng quan vé Mobile Application "Hình T- 2 Sự khách nhan về phương thức giao tiệp Link 1- 3 Sự phân mảnh phát triển song song với số lượng bệ điều hành Hìn
Trang 1'TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIÊN ĐÀO TẠO SAU ĐẠI HỌC
Trang 2LOT CAM DOAN
Tôi xin cam đoan luận văn được thực hiện là quá trình nghiên cứu khoa học của
ban thân được đúc kết từ quả trinh nghiên cửu từ việc tập hợp các nguồn tải liệu, các kiến thức đã học đẻn việc tự thu thập các thông tin liên quan và liên hệ thực tế tại đơn vị công
tác Mọi sự giúp đỡ cho việc thục hiện luận văn này đã được táo giả cảm ơn và các thông
tin đã được trích din trong luận văn đều đã được chỉ rõ nguồn gốc
Tác giả
Nguyễn Tuần Anh
tạ
Trang 3Đấu tiên cho phép lôi chân thành cảm ơm tới Thấy giáo TS Nguyễn Thanh Hùng đã trục
tiếp lướng dẫn vá sửa chữa trong suốt thời gian nghiên cửu hoán thành luận văn này
‘Téi cling xin bảy tỏ lòng biết ơn sâu sắc tới các thầy cô giáo Viện dâo tạo sau đại học đã tham gia giảng đạy lớp Cao học ngành công nghệ thông tin khỏa 2013 Tôi xin cảm ơn
gia đình, các đồng nghiệp, các phòng ban chúc năng và bạn bè đã giúp đỡ đông viên tôi
trong suốt thời gian học tập và hoàn thiện luận vẫn
Xm chân thành cảm ơn!
Người thực luện
Nguyễn Tuần Anh
Trang 4MỤC LỤC
TỎI CAM ĐOAN
2.1 Phân loại các ứng dụng đi động
2.2 5o sánh các Framework phat triển di động đa nền tảng
2.2.1 Xamarin ‘Tools
2.2.2 Appeeleralor Titanium,
2.2.3, PROnegap vicssescesesstisteneeesiee sevssguvieetsiessinereeesoneteee consonant
2.2 Gidi thigu vé Framework m4 nguén ma Phonegap
2.2.1 Phonegap là gi? HH HH HH ng reo
2.1.3 Đôi nét về lịch sử của Phoncgap
2.1.4 Tại sao lại sử dụng Phonegap?
Ö 18
LB
19
Trang 5CHUONG 3 XAY DỰNG CHƯƠNG TRÌNH ỨNG DỤNG
3.1 Mô hình phát triển ứng dụng đa nên tang
3.2 Mỗi trường và quy trình phát triển
3.2.1 Môi trường, phát triển
3.2.2 Quy trình phát triển
3.3 Phân tích thiết kế và xây dựng chương trình ứng đụng
3.3.1 Giới thiệu chung về chương Hình ứng dụng,
3.3.3 Phân tích chức năng của chương trình
3.3.2.1 Biểu dễ phân rã chức năng
3.3.2.2 Dặc tá chức năng của chương trình "_.-
3.3.3 Phân tích chương Ixình ứng đụng về biểu dé Use Case
3.3.3.1 Biểu đổ phân rã use case thể hiện chứo năng Đăng nhập
3.3.3.2 Biểu đồ phản rã use case thể hiện chức năng Đăng xuất ¬ 3.3.3.3 Biểu đỗ phân rã use case thé hién chite ning Quan ly bang tin
3.3.3.4 Hiểu để phản rã use case thể hiện chức năng Quản lý băng lương,
3.3.3.5 Biểu đỗ phân rã e thế hiện chức nẵng Tìm kiểm cản bộ
3.3.3.6 Biểu dé phan ra use case thé hién chức năng Xem thông tin cán bộ
3.3.3.7 Big đồ phân rã uee case thẻ hiện chức nẵng Iuiên lạc nhanh
3.4 Thiết kế cơ sở đữ liệu
3.4.1 Thiết kế cơ sở đữ liệu bảng Accouit neo
3.4.2 Thiết kế cơ sở đữ liệu bang Employee
3.4.3 Thiết kế cơ sở dữ liệu báng Hmployee_News
3.4.4 Thiết kế cơ sở đữ hiệu bảng News
3.4.5 Thiết kế cơ sở đữ liệu bảng Salary TH H122 t1 1E
Trang 63.4.6 Thiết kế cơ sở đữ liệu bảng Cat Salary
3.5 Thiết kế giao điêu
3.5.6 Màn hình Xem thông tin cán bộ
3.6 Đảnh giá mức độ phủ hợp khi sử dụng Phoncgap để phát triển img dung
CHƯƠNG 4 KT LUẬN VÀ HƯỚNG PHÁ? TRIN, ccoooo5ccccccreieee
4.1 Kết quả, đánh giá chương Irình phan mém
4.2 Kết luận và hướng phát triển
'TẢI LIỆU THAM KHẢO HH HH.” HH HH HH ng ngư
Trang 7DANH SÁCTI TÌNH VẼ,
Hinh I- 1 Téng quan vé Mobile Application
"Hình T- 2 Sự khách nhan về phương thức giao tiệp
Link 1- 3 Sự phân mảnh phát triển song song với số lượng bệ điều hành
Hình ï - 4 Su gia tăng nguôn nhân lực cho các nên tảng phải triển
Vinh 7 - 5 Phát triển tng dựng riêng biệt trên ede nan tang
Hình 1Ï - 1 Kiên trúc bên trong 1 ứng đụng Phonegap
Tình 1Ï - 2 Cách thức 1 ứng dụng Phoncgap tương tác với thiết bị
Hinh Ul - 1 Yéng quan ứng dung
dé phan ra chive nang
Hinh Ul - 4 Bibu dé Use Case tong quat
Hinh HI - 5 Biéu dé Use case chức năng Đăng nhập
Hinh Ul - 6 Bibu dé Use case chite ning Dang xudt
Hinh Ul-? Biéu dé Use cave chibe năng Quản lý bằng tìm
Vinh Tif - 8 Biéu dé Use case chive ning Quan ly bang heang
Hinh Ul - 9 Bib dé Use case chite ning Tim kiểm can bộ
Hinh TIF - 10 Bidu dé Use case chite ning Xem thong in edn bd
Vinh TT - 11 Bidu db Use case chive néng Liên lạc nhanh
Trang 8Hình TT - 19 Mùa hình Danh sich can bộ
Hình 1H - 20 Màn hình thẳng tìm cản bộ
Tình TH - 21 Min hành danh sách câu bộ dưới quyền
Trang 9DANTI SACTI BANG
Bang 1 Phân mảnh theo tình nẵng
Bang 2 Bang so sinh cic dang img dung Mobile
Bang 3 Bang so sinh cdc dang ting dung Mobile
Bảng 4 Bảng các hàm 4PIs được hỗ trợ cho rừng nên tảng trong Phonagap
Bảng 5 Bảng đặc tá chức nẵng cũa chương trình
Bảng 6 Thiết kế cơ sở đữ liêu bằng Accourd
Bảng 7 Thiết kế ca sẻ: Äữ liệu bằng Tìmplayee
"Bảng 8 Thiết ké cor sé: dit liệu bằng Emplayee News
Bảng 9 Thiết kế cơ sở đữ liêu bằng Neue
Bang 10 Thiét ké ea «6 dit lidu bang Salary
Báng 11 Thiết kế cơ sở đữ liêu bang Cat Salary
Trang 10TÓM TẮT
Trong thời kì mã công nghệ số phát triển với tốc độ chóng mặt như hiện nay, điện thoại thông minh bay còn gọi là Smartphone thục sự đã mang đến một cuốc cách mạng cho các thiết bị đi động Sự tiến bê vượt bậc của công nghệ đã làm thay đối hoàn toàn
thối quen cũng như hành vi của con người Thiết bị di động đã dang và sẽ rỡ [hành
phương tiện giao tiếp và làm việc chủ yếu của cong người Và phần cốt lõi để tạo ra sức hap đần từ chiếc Smartphone chính là hệ điều hành và các ứng đụng mà chúng dang
chay
Hiện lại, các ứng dụng dành cho thiết bị đi động dang bị phần mãnh rất lớn do các hãng công nghệ lớn cạnh tranh, ganh dua nhau tạo ra các nên táng hệ điều hanh di động,
cia riéng minh: IOS Android, Window Phone, BlackBerry, webOS,
iramework ngôn ngữ lập trinh lần lượt ra dời với mục dích “viết một lần, có thẻ chạy
Trong hiện vẫn này, lôi sẽ tập trung phủ yếu vào việc tim hiểu Phonegrp, và xây
dựng một chương trình phản mềm ứng dụng sử dụng Phonegap có thể chạy trên nhiều
nên tảng Smartphane khảo nhan
Trang 11CHƯƠNG 1 MỞ ĐẦU
1.1 Giới thiệu
Điện thoại thông minh hay edn goi là smartphone thực sự dã mang đến một cuộc
cách mạng cho các thiết bị di động, trong thời kì mà công nghệ số phát triển với tốc độ chóng mặt nữư hiên nay Như cầu sử dụng thiết bị đi động đã trở nên rất phế biến không chỉ ở Việt Nam mã trên toàn thế giới Sự tiền bộ vượt bậc của công nghệ đã làm thay déi
hoàn toàn thói quen cũng như hành vi của con người Trong tương lai, thiết bị di động sẽ
trỗ thành phương liện giao tiếp và làm việc chủ yêu của con người Và phần cốt lõi để tạo
ra sức hấp dẫn từ chiếc smartphone chính là hệ điều hành và các ứng dựng mả chứng
đang chạy
Hiện tại, các ứng dụng dành cho thiết bị di động đang, bị phân mảnh rất lớn do các hãng công nghệ lớn cạnh tranh, ganh đua nhau tạo ra các nên tầng hệ điều hành đi động của riêng minh Do do co nhigéu framework ng6n ngữ lập trình ra dời, với ruục dích “viết một lần, biên địch qua cloud va chay khắp nơi — tương thích với hau hết các nên tảng hệ
điều hành đi động hiện tại”, cững có nghĩa là những famework này là những ngén ngit lap trình độc lập trên mobile,
Phonegap chỉnh là một Irong những emework phố biển nhất đáp ứng được mục
dich đó Nó là công cụ phát triển ủng dụng cho cá iOS, Android, Window Phone, BlackBerry, webOS, Bada, Symbian cing lic Vide ra doi cia cdc Ñramework này rủi
chung va của Phoncgap nói riêng đã nhận được sự đóng góp của rất nhiều tỏ chức va cộng đồng công nghệ lớn
Đổi với các lập trình viên trong việc tạo ra ứng dụng có thể chạy trên đa nên tang
di động thi cần phải nằm bắt và hiểu rõ về các công nghệ bên trong mỗi nên tàng Nimg
giờ đây, với nự hỗ trợ đấc lực của Phoncgan, cóc lập trình viên a nắm bắt và chuyên
sâu về một công nghệ đuy nhất, đó là công nghệ nén Web(bao gdm ITTMLS, Javascript, C853, Jquery Mobile
YW
Trang 12Nội đung dé tai: “Framework phát triển ứng đựng di động trên đa nên tăng” sẽ néu
Tên thực trạng phân mảnh của ứng dụng đi động hiện tại sau đó đưa ra giải pháp sử dung
Phonegap, các công nghệ nên Web liên quan dễ giải quyết vẫn dễ, ngoái ra còn xây dựng mỗi chương trình phan mềm ứng đụng sử dang Phonegap, TqueryMoible có thể chạy trên các nên tảng di dòng khác nhau
Nội đụng Luan văn nay gdm 4 chương,
Chương 1 — Mở đầu: Nêu thực trạng, các khó khăn hiện tại, đặt ra bài toán công, nghệ
cầu giải quyết
Chương 2— Cơ sở lý thuyết: So sảnh đánh giá một số framework phát triển đa nên tầng Giới thiêu vẻ Phoncgap và những công nghẻ, cơ sở lý thuyết dược áp dung dễ xây dựng
chương trinh
Chương 3 — Xây dựng chương tinh: ‘Trinh bảy mô hình vả quy trình phát triển ang
dung đa nên tảng, phân tích thiết kế và xây dựng, kiểm thử chương trình phân mêm sử
dung framework Phonegap va JqueryMobile
Chương 4— Kết luận và hướng phát triển: Tóm hược những kết quả của Luân văn, những đạt dược và hạn chế, triển vọng và hướng phát triển ong tương lai
Che đến hiện nay, trên thị trường có rât nhiều nên tảng điện thoại thông minh như:
Android, iPhone, BlackBerry, Nokia, Windows Phone, va WebOS, Gắn dây với sự ra mắt
của các nên tầng mới hơn như Samsung I3ada và Meego, cũng đang có xu hướng phát triển mạnh và ngày càng co thé trên thị trường Với một số lượng lớn các tiên tăng điện thoại thông mình như vậy, đã tác động dang ké va déi hỏi quan điểm vững chắc của các nhà phát triển ứng dụng trên đi động,
'Trong năm 2000, chúng ta đã từng biết một hiện tượng tương tự trong thể giới máy tinh dé ban (Desktop), voi su co mặt cửa các nên tầng như Windows (Microsoft), Mac (Apple) cing nhiều phiên ban khée nhau cia Linux va UNIX Vao thời điểm đó, rất khỏ đề xây dựng một sản phẩm mà có thể chạy trên moi nén tang Kết quả hướng giải
12
Trang 13quyết được thục hiện trong nội bộ bằng cách xây dime cdc Framework C1! va tích hợp
in ca mé-dim, Bi cùng với đó, Sun đã xây dựng một nên lãng chưng (Java Phatfomn) và
vân dễ dã dần dược lắm nhẹ di,
Từ những năm 2004 đến năm 2008, cộng đông các nhả phát triển đã nhìn thấy một loại phân mánh khảo đang diễn ra trong thể giới tỉnh duyệt Vá dễ dàng nhìn thấy hơn ở
đây đó là giữa Internet Explorer 6 với Firefox và Safari Sau đó, cùng với sự ra đời của
Chrome va các trình duyệt khác thì sự phân mánh nảy ngảy cảng điển ra mạnh, cụ thể
hơm nữa Dân chất của sự phân mảnh này chủ yêu là đo một số trình đuyệt không tuân thủ
theo một số thông số kỹ thuật được đặt sẵn của W3C (World Wide Web Consorliim}) Và
vi vậy, điều náy không quá khỏ để giái quyết Rất nhiều thư viện JavaScript đã giúp và
giải thoát tình trạng Cross-Browser trên
Sự phân mánh trong thé giới điện thoại thông minh Mobile OS lai phic tap hon, bởi vì không có một đặc điểm kỹ thuật hay một chuẩn nhật định nào trong lĩnh vực phát triển nảy Năm 2007, Apple va Google déu tung ra những nên tảng di dong của thế hệ điện thoại thông minh Và cho đến năm 2008 thì cả hai công ty nay déu cá thị trường phát triển riêng với số lượng người đùng tăng đần theo cap sé mii
Các nhà phát triển ứng dung di đồng nhanh chóng tiếp cận với các nên tảng mới và
xây dựng lợi thững ứng dụng lương tự trên iPhone, Android, BlaokBeny, WebOS, Symbia và giờ đây lại phải thêm Samsung Dada, Window Phone vào danh sách này Sự
thách thức cũng được lâm rõ như khi chúng phát triểu ứng dụng cho iPhone thì cần Mac, cho BlackBerry thi lại cần Windows
Trang 141.2 Những thách thức trước khi phát triển ứng dụng đa nền tảng ra đời
Hinh I~ 1 Téng quan vé Mobile Application
Điều đầu tiên cần lưu ÿ mobile applieation không phải là web application Sự khác biệt được thê hiện trong cả bản chất vả các tính năng được cung cấp
Cách người dùng tương tác với web applieation va mobile application cũng hoàn toàn khác nhau Người dùng tương tác với điện thoại thông mình thông qua mãn hình
cảm ửng sinh động hơn và với nhiều phương thức khác
Hình 1- 2 Sự khách nhan về phương thite giao tiếp
Sự khác biệt đỏ còn thể hiện ở trong việc nhân dạng vị trí thiết bị khả năng Push Notification (thong bio)
Trong khi phat trien img dung di dong đang là xu hướng hiện nay, với số lượng ngay cảng tăng của các hệ điều hành (OS) di động, có rất nhiều thách thức liên quan đến việc phát triển các ứng dụng di động
14
Trang 15Sự phân mảnh của các nền tảng hệ điều hành: Xu hướng phân mảnh với số lượng ngay cảng tăng của các nên tảng di động Đầu tiên, đỏ là BlackBerry vả điện thoại thông minh Symbian, sau đó đền sự phát triển mạnh mẽ của iPhone, Android Chắc chắn rằng, nên tảng đi động không đừng lại ở đó khi HP đến với WebOS, Microsoft đã giới thiệu Windows Phone, va gid day, lại đến Samsung với Bada
( windows bees ) | HH khác |
(ios ì | ham ì [ mm |
Hình 1- 3 Sự phân mảnh phát triển song song với sổ lương hệ điều hành
Tiéu hao nguồn nhân lực: Nếu chúng ta chọn việc xây dựng một ứng dụng di động trên từng nen tang thi chúng ta phải đối mat voi nhieu van đề nan giải Cân một số lượng đội (Team) phát triển ứng dụng tương ứng với mỗi nẻn tảng di đông đó, đi kèm với đó sẽ là các mức chủ phí, người quản lý (Team Leader) với nhiều rủi ro có thẻ xãy ra
ec¢eeéee€ €
| Mỗi hệ điều hành phải có 1 đội phát triển |
Hình 1 - 4 Sự gia tăng nguồn nhân lực cho các nên tảng phát triển
Yêu cầu về kinh nghiệm với một nền tảng di động nhất định: Sự đòi hỏi kinh nghiệm chuyên môn của một nhả phát triển ứng dụng đi động là điểu bắt buộc Điều đó đảm bảo
xnức độ chuyên nghiệp trong việc xây dựng ứng dụng di động ở một nén tang nao do
15
Trang 16( iOS | ( nao | |pmaeem ) | wee | HoH ene >
Hinh I- 5 Phát triển tỉng dụng riêng biệt trên các nền tảng
Sự phân mảnh theo tính năng: Khả năng phân mảnh theo tính năng của các mobile
applieation cũng xãy ra cao, khi khả năng đáp ứng các chức năng cơ bản của hệ điều
Bang 1 Phan manh theo tinh nang
Phân mảnh trong môi trường phát triển ứng dụng: Môi trường phát triển ứng dụng là
một trong những phân mảnh quan trọng Chúng ta phải càn ít nhất hai hệ điều hành Windows và Mac đề phát triển ứng dụng cho các nêu tảng sau đây
o 10S
Trang 17Symbian ‘Windows/Mac/Linux Carbide, C++ CH
WebOS ‘Windows/Mac/Linux | EclipseWebOSplugin | HTML/IavaScrip/C++
‘Windows Phone Windows Visual Studio CH, NET, Silveriieht
Trang 18CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
2.1 Phân loại các ứng dụng di động
Trước tiền ta tìm hiểu các loại ứng dụng di động Ngày nay, lĩnh vực phát triển ủng dụng di động tổn tại ba khải niệm la: Native Application, Web Application va
Hybird Application,
Native Application: La nhing img dung được xây đựng theo cách chính thông
lập trình, rên tăng đo các nhà sam xual di động quy định (ví dụ:
với các ngôn nữ
Objective-C cho iOS, lava cho Android, NET cho Windows Phone, }
* Uu dim ciia Native Application la nha phat triển có thể thoải mái truy cập vào hệ thông, phân cứng của thiết bị (như bệ thống tập tín, camera, microphone, cảm biển gia tốc Ì
+ Nhược điểm là bị bó buộc với công nghệ và nên tảng mà nhà sản xuất đưa ra
Web Application: Lả các ứng dụng được xây dựng trên nên tang web (m điển
hình là HTML5), chỉ hoạt động trên trình đuyệt của điện thoại Tiển thân của ý tưởng này
là những trang web có giao diệu tủy biến cao, chạy được trên nhiều độ phân giải mắn
hình, về sau phát triển mạnh và hình thành nên một hướng di mới cho việc phát triển img
Trang 19va web application giao tiep voi native application thong qua mét cau noi (bridge) dé
mang Jai site manh cua native application cho web application
Sau dây là bảng so sảnh đánh giá ba loại ứng dụng di động trên
ree Khả'chuyện còn ing Cao Cao Không có
lung
Hiệu năng xử lý Nhanh Coed eens tem Rit h
hiện nay như Vnexpress, Dantri v.v déu la những ứng dụng lai Nhìn vào bảng so sánh
trên, ta có thẻ thấy ứng đụng Hybrid lả lựa chọn đề giải quyết vẫn đề phân mảnh của các
đứng dụng di đông hiện nay
2.2 So sánh các Framework phát triển di động đa nền tảng
Hiện nay trên thị trường có kha nhieu framework phat trien di déng đa nén tang, trong do ba framework phé bién hon ca la Xamarin, Appcelerator Titanium va Phonegap
19
Trang 20Dé lua chon duce framework phù hợp, sau đây ta sé đánh giá ưu nhược điểm của từng
lramework trên
2.2.1 Xamarin Tools
Xamarin là công cụ về cơ bản sẽ cho phép phát triển các ứng dụng Android hoặc
iOS bằng ngôn ngĩt C# và có thế chia sẽ rất nhiều phân code giữa các mg dụng với nhau
Xamarin cho cung cấp bộ công cụ cho phép người dùng sử dụng một lớp trừu
tượng phía trên các ADT của các thiết bị iOS, Android và Windows Thone Lớp bửu
tượng nảy có thể truy cập vào tài nguyễn của thiết bị, nhờ dé Xamarin có thể xây dựng
một ứng dụng native hoàn toàn cũng với giao điện người dùng native trên mỗi nên táng,
Nhưng điều này cũng có nghĩa là ta sẽ bị giới hạn tới một nức độ nào đó việc chia
sẻ code giữa các nên tăng này Điển hình là khi phát triển một ứng dung sir dung céng cu
ay dụng một phần lõi của ửng dụng má code của nỏ có
của Xamarin, lập trình viên
thể chia sẻ giữa hai nên tảng iOS và Android, và thậm chí là cả phiên bản trên Windows
Thone của ứng dụng cũng dựa trên thư viện lõi này Với hướng tiếp sân này thì đội ng lập trình viên có khả năng sử dụng lại khoảng từ 60-70% codc của ủng dụng mà không,
phải vất và
Ngoài ra để có thể tiến xa hơn bằng cách tự phát triển các lớp trừu tượng,
(abstractions) của riêng minh sử đựng một kiên trúc kiểu nhnt MVC hay MVVM, với
hướng tiếp cận này, dĩ nhiên là sẽ khó hơn một chút để bắt dẫu nhưng có thể sử dụng,
được lại nhiều code hơn, có lẽ lên đến khoáng 80-90%
Nều đánh giả về công cụ Khi các dông cụ oủa Xamarm có thê nói là rãi tuyệt với
Xamarin cũng có môi IDE của riêng nó gọi là Xamarin Studio, IDE này thì đa nên ting,
nó được thiết tốt và đề đảng sử dụng Công cụ Xamarim này cũng có một pÌupm
cho Visual Studio, nó sẽ cho phép phát triển ứng dụng da nên tảng trong, Visual Studio Plugin nay thậm chí cho phép phát triển một ứng dung iOS ty Visual Studio, nhưng sẽ
Trang 21cân một máy Mac để thực hiện công việc build ứng đang, (Công oụ này sử dựng một
triệu gợi từ xa tới máy Mac để thực hiện công việc buikd đỏ }
Mặc đủ có những trụ điểm như trên, tuy nhiên Xamarin cũng có những nhược
điểm Thứ nhất Xamarin là framework thu phí, và đẻ sử dụng dây đủ tính năng của
framework doanh nghiệp sẽ phái bó ra một khoán chỉ phí không hẻ nhỏ Một nhược điểm nữa của Xamarin là hiện tại framework nay chưa hễ trợ nhiều nên tảng mà chỉ đứng lại ở
iOS, Android và Windows Phone,
2.2.2 Appeclerator Titanium
TTianium là công cụ cho phép lập trình viên viết tất cả code của rainh dựa trên
SDK của nhà sẵn xuất bao gồm các thành phần giao điện UT Điều mày có nghĩa là khi viết một ứng dụng Titanium đồng nghĩa với việc ta đang viết một giao diện người dùng
đã nên tảng,
Các ứng dụng Appcelerator Titanium được biên địch thành các ứng dụng góc hoàn toàn và sử đụng những conrol gốc thực sự trên nên tảng đó.Ví du, trong Titanium vide
lập trình khai báo một buton và layout xác dịnh cũng như một số thuộc tính cho button
đó, khi ta biên dịch ứng dụng, thì button nảy sẽ xuất hiện như là một button gốc của Android khi chạy trên thiết bị Android và nhú là một buton gốc của iOS khi nó chạy Irên
iOS Điều nảy cỏ nghĩa lả ta có thể xảy dựng một ứng dụng da nên tảng, hoàn chỉnh bao gồm giao diện gốc với 100% code được sử dụng lại và thực hiện nó trong JavaScript Tuy nhiên, các hệ điều hành có nhiều thành phản UI và mỏ bình tương tác là da nền tảng vẫn tổn tại nhiều phần không giếng nhau Vi dụ, trong ¡O5 cỏ một control rit ly tudng là Navigation Controller, nó sẽ lưu vết các sereen nào mà người đùng đã lướt qua và cho
phép ho quay trở lại một cách dé dang; trong Android thi không cỏ control như vậy Mặc
dé Titanium cũng hã trợ các cantrol theo nên tảng xác định, nhưng điêu này có nghĩa là
lập trình viên phải viết thêm một vài đoạn code điều kiện dựa trên niên tằng cu the.
Trang 22Như vậy, mặc đủ đội ngũ lập trình có thể lập trinh với mau sé chung nhỏ nhật giữa
các nền tầng và thư được một ứng dụng đa nên lắng đây đủ và bộ souree code có thể sử dụng lại nhưng việc sử dụng các control trong, Titanhun hơi phức tạp vả việc phát triển, bảo đưỡng trở nên vat va hon
2.2.3 Phonegap
PhoneGap về cơ bin la mat tp ede ham JavaScrip APT, nó cho phép ứng đựng có thể truy cập những tài nguyên gốc trong thiết bị đi động Nó cũng là một wrapper và cho phép xây dựng một ứng dựng web được cài đặt cục bộ trên thiết bị
Khi xây dựng một ứng dụng sử dụng PhoneGap, về cơ bán là đang xây dụng một trang web di động sử dụng HTMILS và IavaScript, cũng giống rửnz việc xây dựng những trang web khác hiện nay, sau đó đặt mã HTML vả JavaScript đỏ trên thiết bị dị động Các
tứmg dụng PhoneGap chạy trên trình duyệt cục hộ trên điên thoại và có một số cơ chê để
triệu gọi vào các thư viện gốc thông qua các giao diện lập trình ứng dụng JavaScript API
Tiêu này có nghĩa là nêu ta đang phát triển một ứng dụng PhoneGap, thì ta có thể phát triển nó giồng như một trang web đi động đa nên tâng và cé thé sir dung bat ky mobile
framework nao ma ta mudn, nhu Sencha Touch, hede JQuery Mobile, v.v Vì tắt cả code
trong imp dung la HTML va JavaScript nén phân lớn sẽ có thé chia sé được Công cụ để
phát triển PhoncGap rất để dàng để xây dựng lập trình viên có thể xây dựng môi trường
trên nhiều hệ diều hành khác nhau, day là một ưu điểm của Phonegap Phonegap cũng cũng cấp các Phigïn cho nhiều TDE vì vậy lập trình viên sẽ không mắt thời gian làm quen với các IDE mới Một tra điểm nữa của PhoncGap là cho phép triển khai dự ân vào bắt cứ môi trưởng nảo khác môi trường đang phát triển, và có thể build một cách tự động cho
những nên tảng khác
Như vậy, mặc dù Phonegap cũng có những hạn chế, nhưng so với cdc framework
khác thì Phonegap là lựa chọn phú hợp nhất Doanh nghiệp sẽ không phải trã phí, đội ngữ
phát triển sẽ dễ dàng tiếp cận với việc phát triển ứng dụng di động bởi yêu cầu vẻ công nghệ chỉ là những ngôn ngữ phổ biển như HTML, Javaseript
22
Trang 232.2 Giới thiệu về Framework mã nguồn mở Phoncgap
2.2.1 Phonegap là gì?
Phoncgap là một nễn tầng (ramework) mã nguồn mở đảng đẻ phát triển ứng dụng
mobile (native Applicatiens) cho cả iOS, Android, Windows Phone, Ilacklerry, webOS, Bada va Symbian cũng lúc, viết một lần, biển dich qua cloud và chạy trên nhiều nên tang smartphone khác nhau Đây là một đự án mã nguồn mở miễn phí của Nitebi giúp việc
phát triển img dung đi động dé đàng hơn đối với mọi hệ điêu hành Cho phép nhà phát triển sử đựng HTML, Ơ8S và JavaseripL để việt và triển khai ứng dụng Kiéu img dung
mobile dang nảy dược goi là hybrid application (ứng dụng lai)
2.1.3 Dôi nét về lịch sử của Phonegap
Phonegap là một dự án mã nguồn mở hoàn toản miễn phí của Nitobi giứp việc
phát triển img dung dé đàng hơn đổi với mọi hệ điển hành Phát tr âu tiên tại môi sự kiện iPhonel2evCamp ở San lrancisco, Phonegap tiếp tục giảnh chiến thẳng giải thưởng
Choice Award tại O"Reilly Media 2008 ở hội nghị Web 2.0 tháng 4 năm 2009 Điểu đó
đã ruở ra hướng đi mới cho cde ha phat trién ứng dụng web Kế (ù do có hơn 600,000 lượt tải về và hang ngan ứng dụng được phát triển dựa trên Phonegap Apple đã xác nhận
rằng Framework này đã được phê duyệt
Tuy được tạo ra bởi Nitobi nhưng đăng sau Phonegap là sự đóng góp của rất nhiều người trong những tổ chức lớn như TBM, RIM và MierosolL Phonegap cũng khẳng dink ring: 1lọ có một cộng đồng phát triển hấp đẫn, hoạt động mớ, minh bạch vả hợp tảo
Framework Phonogap được sử dụng bởi một số mến tảng ứng dụng di động như Worklight, Gonvertigo và appMobi như là xương sống của động cơ phát triển điện thoại
di động đành cho khách hàng của họ Adobe chính thức công bố việc mua lại của Nitabi Sofware — nha phat tién ban dâu, vào tháng 10 năm 2011 Từ đỏ các mã Phonceap dã
được sử dụng cho Apache Software loundation dé bat đầu một dự án mới gọi là Apache
Cordova
23
Trang 24Ở các phiên ban Phanegap vẻ trước, luôn bắt buộc các nhà lập trình khi tạo ra cáo ứng dung iOS thì cân phôi có Ì máy tính chạy trên hệ điều hành Mac cửa Apple, hay nhà lập
trình muốn tạo ra các ứng dụng cho Window Phone thì phải có máy tính chạy Windows
Tuy nhiên từ sau tháng 9 âm 2012, thì địch vụ “Phonsgap Build” đã được ra mắt và cho phép các nhà lập trình tải lên mã nguồn của họ tới 1 hệ thống biên dịch đảm mây, và nhớ
đó biên dịch ra các ứng dụng tương ứng cho từng nên tăng, chạy được trên nhiều loại
smartphone khác nhau
2.1.4 Tại sao lại sứ đụng Phunegap?
Nếu là một lập trình viên hay những người lảm việc trong lĩnh vue tin học chắc hắn còn nhớ đến thuật ngữ: “Write one, rưn any where” xuất hiện và trở thành một con
sốt vào ngày 23/05/1995 Ngày mả công ty máy tính Sun Microsystemas đã giới thiệu một công cụ lập trình mới ngôn ngữ Java Java ra đời với một xử mệnh khắc phục khỏ khăn
trong việc chuyến đối các ứng dụng việt trên các hệ điều hanh OS va các hệ xử lý CPU
khác nhau Do vậy, người lập trình chỉ cần viết ứng dụng bằng Java ding một lần, sau dó
cổ thể sử dụng ứng dụng nảy trên các hệ diéu hảnh khác nhau như Windows XP,
WimdowsNT, Mac OS, Dnöx, theo phương châm: “viết một lân, chạy ở bắt kỳ đầu”
Như vậy trước tiên, Phonegap chính là truyền nhân suất sắc của Java khi hoàn
thiện va day liéu chi “Wrile one, run any Where” 1én mdt tam cao moi
Những ưu điểm khi sử dựng Phonegap
® Phonecgap cho phén chúng la “wrile onee, run everywhere” (vidl mt lan nhung
chạy trên mọi thiết bị)
«_ Chỉ cân có kiến thức về HTMIL5, C883, Javascript là có thể làm dược
» Ta có được các file cài đất trên mỗi rên tảng khác nhau thông qua các application
stores (App Store, Android Market, )
«Cung cấp nhiều API cho phép thao tác tốt với các tính năng của thiết bị (camera,
GPS, Files, Contacts, )
Trang 25Những hạn chế của Phonegap
©- Khó hoạt động trên các mobile browser cũ không hồ trợ javascript va toc dé cham
«_ Việc quản lý các tài nguyên của thiết bị không thực hiện được như: quản lý các
tiên trình (đồng bô, bất đồng bộ), khả năng đồ họa hạn chẻ (3D)
© Layoutửng dụng sẽ không phủ hợp khi chạy trên các mân hình thiết bị có độ phân giải khác nhau, và tủy thuộc vào độ hỗ trợ HTML của trình duyệt của thiết bị Ví dụ: các apps cho android trên các thiết bị khác nhau thì sẽ không rõ nét vi trên
android hỗ trợ các bộ icon cho các độ phân giải khác nhau trên từng loai thiết bị
© Khả năng đáp ứng các tỉnh năng còn hạn chẻ ở một số nền tảng Khi chủng ta phát triển ứng dụng trên Android hoặc iPhone thì hầu hết các tính năng đều có thể áp dụng được Nhưng trên các nên tảng khác thì có thể một vải tính năng bị lỗi
Nhưng trên hết, với các ưu điểm của Phonegap thì có thể thấy đây là mot framework đang có đả phát triên rất tốt và chúng ta không nên lo lắng vi Phonegap luôn cập nhật nhưng phiên bản mới để khắc phục nhưng hạn chế của nó
Sau day ta sé tim hiéu cách thức Phonegap hoạt động và các APIs mả nỏ hỗ trợ
Trang 26Trong phạm vi của ứng đựng native appHoation, thì giao diện làm việc oủa ứng
dựng về bản chất bao gầm duy nhất mội mèn hình và nó cũng giống như mội khung nhân
web view chiếm dụng toàn bộ không gian màn hình của thiết bị, Khi ứng dụng được khởi
chay thi nf sẽ tải trang page khởi tạo của ứng địng (hông thường là bang index.huml
nhưng lập trình viên có thể dé dang thay dỗi thành trang khác) vào trong khung nhìn web view va sau đỏ chuyển điêu khiển toi web view để cho phép người dùng tương táo với
ứng dụng web apphoation Khi người đùng Lương tác với nội dung (content) của tg
dụng, thì các liên kết links bay các mã JavaScript trong phạm vi ửng dụng đỏ co thể tải các nội dưng khác từ các BÌes tải nguyên được đóng gói trong ứng đụng nay, hay có thể
truy cập thông qua mạng nelwrrk va (ai cáo nội dụng cortenl từ miột website hay từ miột
server VỀ,
Đối với một vài nền wing mobile nhu bada, Symbian hay webOS thi tmg dung native application vẻ bản chất chính la 1 ung dung web application
Định nghĩa về web view
} web view là Ì thành phần của img dung native application ma die sir dung dé
biểu diễn nội dung web conlent (théng thudng 1d cdc trang LITML) trong pham vi I cita
sẽ hay 1 màn hình của ứng dụng native application Vé ban chat thi nd giéng nine 1 thành phân cá khá năng tiếp cận theo hướng lập trình, được dông gói vào bên trong trình duyệt web browser có sẵn trong các thiết bị mobile
Ứng dụng web application chay trong phạm vi Ì webview cũng giống như bất kì
những ứng dụng web applicaticn khác mnà chúng được chạy bên trong 1 trình đuyệt web
của mobile Nó có thể mở các trang HTMI, khác (theo cả 2 cách: 1 cach dia phương trực
tiếp trên thiết bị hay theo cách mở từ 1 web server) JavaScript nhúng vào bên trong các
files mã nguồn của ứng đụng chịu trách nhiệm thực thì xử lý các điều kiện logic, ăn hiện
nội đụng content néu can, choi cdc media files, mG ede trang pages méi, thu thi céc tinh toán, và nhận về nội dung content từ sever hay gửi nội dung contem tới server Giao điện của ứng đựng được tạo thành từ HTMI và CSS
26
Trang 27Một trình duyệt web mobile thông thường không có khả năng truy cập vảo các
thanh phản sâu bên trong thiết bị giống như những ứng dụng chạy trực tiếp trên thiết bị
(như Contacts, Accelerometer, Camera, Compass, Microphone, ) Đề có thẻ xây dựng 1
ứng dụng mobile thú vị thì ứng dụng đó cần phải cỏ khả năng truy cập vào các thành
phan bên trong của thiết bị, vượt ra ngoài 1 trình duyệt web thông thường Phonegap trợ
giúp cho điêu cần thiết này bằng cách cung cap ra 1 bộ các hàm JavaScript APIs, cho phép các nhà phát triển phan mềm có thể sử dụng đề tạo nên ứng dụng web application
chạy trong môi trường ứng dụng của Phonegap có khả năng truy cập vào các thành phan
của thiết bị vượt quá giới hạn ngữ cảnh trình duyệt web
Khi 1 lập trình viên xử lý 1 tính năng trong ] ứng dụng mà nó có sử dụng Ì trong
các hảm Phonegap APIs, thì ứng dụng gọi tới API bằng cach str dung Javascript va sau
đó 1 lớp layer đặc biệt trong ứng dụng sẽ dịch hàm Phonegap API này, để gọi tới hàm native API thich hop với tính năng tương ửng
Tất cả các lý thuyết nói trong phần trên được minh họa trong hình bên dưới Sau
đó ta sẽ xem xét đến các hảm APIs mả hiện tại Phonegap hỗ trợ trên các nên tảng mobile
Trang 282.1.6 Các hàm APIs mà Phonegap hiện đang hỗ trợ trên các nền tảng mobile
Phonegap cung cap hé thé
có thể sử dụng thông qua giao diện được viết bằng Tavaseript
iOS | Android | BlaekBeny | Webos | V993 | symbian | ada
Bang 4 Bang cae ham AP Is direc ho tro cho timg nen tang trong Phonegap
Lm việc với Contacts (đanh bạ điện thoại): Danh bạ là một tỉnh năng dap ứng trên
tắt cả các đông điện thoại, không chỉ riêng smartphone Với Phonegap, chúng ta có thẻ dễ đảng sử dụng những tính năng có sẵn trong danh bạ điện thoại như dưới đây
Tạo một liên hệ (contact) mới, sử dụng phương thức create()
Lưu một liên hệ, sử dụng phương thúc save()
Tim một liên hé, str dụng phương thức find()
Sao chép một liên hệ, sử dụng phương thức elone()
Xóa một liên hệ với phương thức remove()
Chẳng hạn, de tạo một tải khoản mới, chúng ta phải thông qua một đổi tượng
JavaScript Object Notation (JSON) la contacts.create(), đối tượng nảy chỉ được lưu trữ
28