Nghiên cứu và phát triển ứng dụng tra cứu trao đổi thông tin tổng hợp cho sinh viên hàng hải trên nền tảng di động
Trang 1Mục lục
Lời mở đầu .5
Chương 1: Giới thiệu đề tài .6
Mục tiêu: .8
Nhiệm vụ nghiên cứu .9
Phương thức nghiên cứu .9
Chương 2: Giới thiệu công cụ cài đặt .11
2 : Tìm hiểu về Native Application, Mobile Application, Hybrid Application 11
2.1 :Native Application : .11
Điểm mạnh và yếu của Native application: .11
Điểm mạnh .11
Điểm yếu 12
2.2 : Mobile Application 13
Điểm mạnh và yếu của Mobile web application 13
Điểm mạnh: 13
Điểm yếu 14
2.3 : Hybrid .14
2.4 Lập trình PhoneGap 19
khái niệm: .19
PhoneGap có thể trở thành người bạn tốt nhất của bạn nếu bạn: 20
PhoneGap làm việc như thế nào? 20
Kiến trúc ứng dụng PhoneGap 21
Giới thiệu tổng quan về các API PhoneGap : .22
làm việc với Contacts (danh bạ điện thoạiS): 22
Làm việc với Camera .23
Làm việc với Geolocation: .23
Làm việc với Media File: .23
Làm việc với tùy chọn lưu trữ: .23
Trang 2Điểm khó khăn khi sử dụng PhoneGap: 23
: Những ưu nhược điểm của PhoneGap 24
Ưu điểm: 24
Nhược điểm: .24
Cài đặt phonegap .25
Chương 3 Phân tích thiết kế hệ thống 39
3.1Sơ đồ phân rã chức năng 39
3.2 : Sơ đồ mức ngữ cảnh: .40
3.3 Sơ đồ mức đỉnh .41
3.4 : Sơ đồ mức dưới đỉnh của hệ thống .42
3.5 : Sơ đồ mức dưới đỉnh của tra cứu thông tin 43
3.6 : Sơ đồ mức dưới đỉnh của trao đổi thông tin .44
3.7 : Sơ đồ mức dưới đỉnh của tìm kiếm .45
Danh mục hình ảnh .24
Lời mở đầu .35
Chương 1: giới thiệu đề tài .46
Chương 2 giới thiệu công cụ cài đặt .88
1: tìm hiểu về native application, mobile application, hybrid application .88
1.1:Native Application : .89
Điểm mạnh và yếu của Native application: .89
1.2:Mobile Application .1010
Điểm mạnh và yếu của Mobile web application .1010
1.3: Hybrid .1111
2 Lập trình phonegap .1614
2.1.khái niệm: .1614
PhoneGap làm việc như thế nào? 1716
: Sơ đồ ứng dụng PhoneGap làm việc: .1817
2.2: Giới thiệu tổng quan về các API PhoneGap : 1917
Trang 3Làm việc với Media File: ……… 2019
Làm việc với tùy chọn lưu trữ: .2019
Điểm khó khăn khi sử dụng PhoneGap: .2019
2.3: Những ưu nhược điểm của PhoneGap 2119
2.4: Cài đặt phonegap 2220
Chương 3 phân tích thiết kế hệ thống 3531
3.1 sơ đồ phân rã chức năng 3532
3.3:Sơ đồ mức đỉnh .3834
3.4: sơ đồ mức dưới đỉnh của hệ thống .3935
3.5: sơ đồ mức dưới đỉnh của tra cứu thông tin .4036
3.6: sơ đồ mức dưới đỉnh của trao đổi thông tin .4136
Danh mục hình ảnh
Trang 4Hình 1: .6
Sinh viên tra cứu được sinh viên khác mà mình quan tâm trên website 6
Hình 2: Sự phát triển của điện thoại di động .7
Hình 3: Ứng dụng di động .8
Hình 4: Các môi trường di động .10
Hình 5: Sơ đồ so sánh .16
Hình 6: Bảng so sánh .17
Hình 8 .18
: Hoạt động trong PhoneGap .18
Hình 9: So sánh .18
Hình 10: Ứng dụng chạy trên các nền tảng khác nhau .19
Hình 11: Ngôn ngữ sử dụng .19
Hình 12: Kiến trúc PhoneGap .19
Hình 13: Sơ đồ ứng dụng của PhoneGap .20
hình 14: Giới thiệu tổng quan về PhoneGap .21
Hình 15: Cách t ạo 1 Android Project trong Eclips e IDE 26
Hình 16: Cách thi ết l ập các thông s ố để tạo 1 Android Project 28
Hình17: Chỉnh sửa để chạy PhoneGap .30
Hình 18 : Cách chỉnh sửa bên tr ong file java chính 31
Hình 19: Code chèn để chạy PhoneGap .34
Hình 20: Chạy chương trình trên nền tảng Android .36
Hình21: Hình c hạy chương trình trên n ền Android Emulator .37
Hình 22: Sơ đồ phân rã chức năng .38
Hình 23: Sơ đồ mức ngữ cảnh .39
Hình 24: Sơ đồ mức đỉnh .40
Hình 25: Sơ đồ mức dưới đỉnh của hệ thống .42
Hình 26: Sơ đồ mức dưới đỉnh của tra cứu thông tin .42
Hình 27: Sơ đồ mức dưới đỉnh của trao đổi thông tin .43
Hình 28: Sơ đồ dưới đỉnh của tìm kiếm 44
Tài liệu tham khảo:
- Trang wed học trực tuyến:http://www.w3schools.com/
-Tài liệu phonegap cho người mới học của Ngô Quang Trung
http://www.slideshare.net/myloveforyounqt/phonegap-cho-nguoi-moi-hoc
“lập trình hướng đối tượng trong javascript và các kiểu mẫu thiết kế”:
http://www.slideshare.net/myloveforyounqt/lap-trinh-huong-doi-tuong-trong-javascript-va-cac-kieu-mau-thiet-ke?related=1
Tìm hiểu mã nguồn mở phonegap và xây dựng ứng dụng:
http://www.slideshare.net/myloveforyounqt/tim-hieu-ma-nguon-mo-phonegap-va-xay-dung-ung-dung?related=3
Trang 5tiệ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ứchấp dẫn từ những chiếc smartphone chính là hệ điều hành và các ứng dụng mà
Trang 6Hiện tại, các ứng dụng dành cho thiết bị di động đang bị phân mảnh rấtlớ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 di động của riêng mình Do đó PhoneGgap ra đời với mục đích
“viết một lần, biên dịch qua cloud và chạy khắp nơi – tương thích với hầu hếtcác nền tảng hệ điều hành di động hiện tại”, đã nhận được sự đóng góp củarất nhiều tổ chức và cộng đồng công nghệ lớn PhoneGgap giúp giảm nhẹgánh nặng - cần phải nắm bắt và hiểu rõ về các công nghệ bên trong mỗi nềntảng – đối với nhà lập trình trong việc tạo ra ứng dụng có thể chạy trên đa nềntảng di động Giờ đây, với sự hỗ trợ đắc lực của PhoneGgap, nhà lập trình chỉcần nắm bắt và chuyên sâu về 1 công nghệ duy nhất
Đề tài “nghiên cứu và phát triến ứng dụng tra cứu trao đổi thông tin tổnghợp cho sinh viên Hàng Hải trên nền tảng di động” giúp cho sinh viên có thể cócách vào mạng khác không phải thông qua máy tính
Chương 1: Giới thiệu đề tài
Trong những năm gần đây, mạng Internet đã trở thành nền tảng chính chi
sự trao đổi thông tin trên toàn cầu Có thể thấy một cách rõ ràng là Internet đã vàđang tác động lên nhiều mặt của đời sống chúng ta từ việc tìm kiếm thông tin,trao đổi dữ liệu đến việc hoạt động thương mại, học tập nghiên cứu và lam việctrực tuyến… Nhờ Internet mà việc trao đổi thông tin cũng ngày càng tiện lợi,nhanh chóng hơn, khái niệm thư điện tử (email) cũng không còn xa lạ với mọingười
Trang 7cuộc cách mạng cho các thiết bị di động, trong thời kì mà công nghệ số pháttriển
với tốc độ chóng mặt như hiện nay Nhu cầu sử dụng thiết bị di động đã trở
thông tin trên di động ngày nay càng phổ biến hơn
Đối với sinh viên Hàng Hải việc tra cứu thông tin trên các trang wed:www.vimaru.edu.vn
Hình 1:
Ssinh viên tra cứu được sinh viên khác mà mình quan tâm trên webdsite Sinh viên tra cứu những văn bản biểu mẫu cần thiết giúp sinh viên có thểnắm bắt thông tin như: học bổng, điều kiện xét tốt nghiệp, học phí, các khoa,phòng ban, thông tin tuyển sinh của trường trong năm nay và năm tới, các đề tàinghiên cứu khoa học
Những bạn sinh viên nhà có điều kiện mua máy tinh có thể vào mạng thườngxuyên sẽ nhanh chóng có thông tin trên webdsite Những sinh viên chưa có máytính phải ra quán nét mới có được thông tin cần thiết Máạy tính không thể mangtheo bên mình suốt ngày được Những thông tin khẩn cấp, lúc không có máytính ở bên cạnh, sinh viên không thể cập nhật dược thông tin nhanh chóng được.Những lúc có sự cố về mạng, sinh viên không thể tra cứu được trên bất kỳ
Trang 8phương tiện nào cả.
Những lúc có sự cố về máy tính, sinh viên không thể tra cứu được ngoàichiếc điện thoại có thể kết nối internet sinh viên có thể vào mạng qua phươngtiện kết nối internet nào cả.Những sinh viên ở quê không có điều kiện vào mạnginternet cũng không thể nào xem được thông tin trên wedsite củatrường.Ngooàai việc tra cứu internet sinh viên hỏi thông tin qua cán bộ lớp vềviệc học, sinh hoạt đầu tuần, học phí, văn bản liêen quan.Với chiếc điện thoại diđộng thông minh có kết nối internet,bạn có thể tìm được thông tin cần thiết Trong những năm gần đây điện thoại thông minh phát triển vượt bậc.trongnăm
Hình 2: Sự phát triển của điện thoại di động
Và ứng dụng trên di động
Hình 3: Ứng dụng di động
Trang 9Với đề tài “ Nnghiên cứu phát triển ứng dụng tra cứu thông tin cho sinh viêntrên nền tảng di động” giúp sinh viên đi đâu cũng có thể vào mạng lây thông tinqua ứng dụng Khi chưa có ứng dụng di động sinh viên thường dùng điện thoạikết nối vào ứng dụng như facebook, googlechome trên điện thoại di động
Mục tiêu:
Xây dựng ứng dụng di động cho phép sinh viên tra cứu, tìm kiếm và nhậncác thông tin chính xác kịp thời từ nhà trường Các thông tin này bao gồm (tintức từ nhà trường, các thông báo, lịch học, lịch thi, văn bản biểu mẫu dành chosinh viên, hướng dẫn cho sinh viên về công tác đào tạo, công tác sinh viên, tracứu kết quả học tập, ….) Có khả năng cài đặt đa nền tảng (Windows Phone,IOS, Android ) Toàn bộ các thông tin này đều được lấy thông qua dịch vụWebservice do site nhà trường cung cấp hoặc lấy thông tin qua RSS hoặcXML…
Nhiệm vụ nghiên cứu.
• Đọc tài liệu về lập trình ứng dụng trên phonegap
• - Tham gia thảo luận, hỏi đáp các diễn đàn chuyên môn, tham khảo code
ví dụ, hướng dẫn trên mạng Internet về thuật toán, cách xử lý các vấn đềgặp phải
Do lĩnh vực của đề tài này tương đối rộng, và bản thân kiến thức còn cónhiều hạn chế nên đồ án không tránh khỏi nhiều sai sót Em mong được sự
Trang 10góp ý và chỉ bảo của các thầy cô và các bạn sinh viên để nội dung đồ án đượchoàn thiện và phong phú hơn.
Một lần nữa, em xin chân thành cảm ơn các thầy cô giáo trong khoa CôngNghệ Thông Tin, đặc biệt là thầy giáo Đinh Đức Thiện đã tận tình giúp đỡ, chỉbảo giúp em hoàn thành đồ án
Trang 11
Chương 2: Giới thiệu công cụ cài đặt
2 1: Ttìm hiểu về Nnative Aapplication, Mmobile Aapplication,
Hhybrid Aapplication
2.11.1:Native Application :
Mmột ứng dụng được thiết kế đặc biệt chỉ chạy trên một hệ điều hành của mộtthiết bị nào đó và thường phải điều chỉnh để chạy được trên các thiết bị khácnhau
• Được phát triển dành riêng cho từng nền tảng cụ thể
• Được phát hành thông qua các kho ứng dụng
• Được xây dựng dược trên các công nghệ và các môi trường phát triểndành riêng
Trang 12tiếp thị và chào bán trên các chợ ứng dụng như App Store và Google market.Các chợ ứng dụng thúc đẩy nhu cầu tiêu dùng và đảm bảo công việc kinhdoanh của nhà phát triển thứ 3 Với Mobile web app thì việc kinh doanh vàtrả thanh toán cho ứng dụng vẫn còn nhiều thủ tục, không nhất quán, không
an toàn và không thúc đẩy mạnh mẽ tiêu dùng
• - Về mặt performance thì native app chạy nhanh hơn mobile app tronghầu hết trường hợp Tuy nhiên sự chênh lệch ở các ứng dụng có thể là nhỏ,chấp nhận được và khó nhận biết bởi người dùng Hiện tại, với game thìnative app vượt bậc và thắng tuyệt đối
• Về tính năng thì native app có khả năng truy cập các phần cứng (nhưcamera, GPS, thiết bị thu âm … ) và có thể truy cập đến các quyền localnhư : sao chép, tạo, ghi, đọc tập tin (trên bộ nhớ của mobile), các thông tindanh bạ, thông tin cá nhân, thực hiện cuộc gọi, nhắn tin … Trong khi MobileWeb app thì không thể (có trường hợp có thể đọc file, như upload)
• Ở chế độ offline: Native app có lợi thế so với mobile web app (luôn phảichạy online) Ở offline-mode, native app sẽ dùng những dữ liệu đã cachetrước đó ở lần cuối cùng mà người dùng truy cập online
Điểm yếu
You understand and agree that all of our multi-player poker games are publicand therefore may be reviewed and published by other players, either at thetime http://www.sacramentosirens.net/ of the game or thereafter
• Không thể cross platform: một native app chỉ có thể chạy trên một hệ điềuhành nhất định
• Với mỗi HDH thì người lập trình phải viết riêng native code cho nó , dẫnđến không nhất quán giữa các phiên bản ứng dụng, chi phí phát triển cao vàđòi hỏi khả năng thành thạo nhiều ngôn ngữ ở lập trình viên Đôi khi đòi hỏilập trình viên phải sử dụng những công cụ độc quyền và chỉ được làm việc
Trang 13trên một môi trường duy nhất như: dùng xcode trên Mac OS (nếu bạn muốnphát triển ứng dụng cho iOS).
• Hơn nữa, việc bảo trì hay nâng cấp sẽ làm mất nhiều thời gian Do phảisửa chữa từng app trên từng HDH, thủ tục đưa lên chợ ứng dụng và chờ đợiapproval (đôi khi bị reject vì vi phạm một số điều lệ của nhà phát triển chợứng dụng), nên bản cập nhật không đến tay người dùng ngay lập tức, hơn nữa
họ phải tự update khi vào chợ ứng dụng
• Tính đa dạng phiên bản của HDH làm cản trở việc phổ dụng các nativeapp Các thiết bị chạy phiên bản HDH cũ hơn sẽ không cài đặt được
2.21.2: Mobile Applicationn
Mmột phần mềm được viết cho một thiết bị di động như điện thoại hoặctablet, thực hiện một tác vụ đặc biệt cho một nhu cầu của người dùng như:game, lịch, trình chơi nhạc, bản đồ Google map … Mobile app mang một kháiniệm chung và rộng lớn cho tất cả các ứng dụng chạy trên thiết bị mobile (kể cảnative app và web app)
• Quá trình phát triển dễ dàng, nhanh chóng và đơn giản
• Phải chạy trong trình duyệt browser của mobile
• Được xây dựng dựa trên các công nghệ theo chuẩn W3C
• Bị giới hạn truy cập tới các tính năng của thiết bị
Đi m m nh và y u c a Mobile web application ểm mạnh ạnh ếu của Mobile web application ủa Mobile web application
Đi m m nh: ểm mạnh ạnh
• Cross platform: Có thể chạy trên tất cả trình duyệt của mobile hỗ trợphiên bản HTML và javascript
• Không cần cài đặt trên máy
• Thuận lợi cho các nhà phát triển:
• Với một phiên bản duy nhất cho tất cả, nên giảm chi phí và thời gian chophát triển, bảo trì, cũng như nâng cấp sau này
Trang 14• Ngôn ngữ lập trình phổ dụng là HTML và Javascript mà hầu hết các lậptrình viên đều biết.
• Không giới hạn môi trường lập trình, lập trình viên có thể làm việc trênhầu hết các HDH
• Ứng dụng không cần phải được build lại qua SDK hoặc một công cụ pháttriển độc quyền khác như xCode (chỉ cần deploy lên server và chạy)
• Việc cập nhật phiên bản sẽ đến ngay lập tức và trong suốt với người dùng(ngay sau khi deploy) mà không cần thông qua thủ tục và chờ đợi approvalnhư các chợ ứng dụng
• Có thể được đánh dấu bởi search engines (tốt cho SEO)
• Dễ dàng quảng bá: người dùng có thể tìm thấy thông qua search engine,share link từ email, từ social netwoks hoặc từ các dich vụ quảng cáo trựctuyến như Google Ads
Đi m y u ểm mạnh ếu của Mobile web application
• Về performance, không chạy nhanh , không thích hợp cho các ứng dụnggame
• Luôn phải chạy online, không thể phát triển ở chế độ offline
• Thích hợp cho các ứng dụng, dich vụ thường là miễn phí, vì thủ tục thanhtoán không an toàn và nhanh chóng, dẫn đến thu hút tiêu dùng kém
2.31.3: Hybrid
Ttheo định nghĩa là bất cứ điều gì từ các nguồn không đồng nhất, hoặc baogồm các yếu tố của các loại khác nhau hoặc không thích hợp Một ứng dụnghybrid là một trong đó được viết với cùng một công nghệ được sử dụng cho cáctrang web và triển khai web di động, và được lưu trữ hoặc chạy bên trong mộtcontainer có nguồn gốc trên một thiết bị di động Đây là cuộc hôn nhân của côngnghệ web và thực hiện bản địa
Trang 15Ứng dụng hybrid sử dụng một điều khiển xem web (UIWebView trên iOS,WebView trên Android và những người khác) để trình bày HTML và JavaScripttập tin trong một định dạng toàn màn hình, bằng cách sử dụng một trình duyệt tựrendering động cơ (không phải là bản thân trình duyệt) WebKit là công cụ trìnhduyệt dựng hình được sử dụng trên iOS, Android, Blackberry và những ngườikhác Điều đó có nghĩa là HTML và JavaScript được sử dụng để xây dựng mộtứng dụng lai là ra / xử lý bởi các công cụ rendering WebKit (cho bạn Windows
8 folks, đây là những gì động cơ IE10 không cho các ứng dụng phong cáchMetro sử dụng WinJS) và hiển thị cho người sử dụng một toàn màn hình điềukhiển xem web, không phải trong một trình duyệt Không còn là bạn buộc phải
sử dụng HTML và JavaScript chỉ trong trình duyệt triển khai thực hiện trên cácthiết bị di động
Các ứng dụng lai là việc thực hiện một lớp trừu tượng đó cho thấy nhiềukhả năng thiết bị (đọc: API bản địa) đến các ứng dụng lai như một APIJavaScript Đây là điều không thể với di động triển khai Web vì ranh giới anninh giữa các trình duyệt và các API thiết bị Apache Cordova (trước đây làPhoneGap) là một ví dụ của một lớp trừu tượng JavaScript trên các API bản địa(đối với Windows 8 bạn folks, WinJS là một ví dụ của một lớp trừu tượngJavaScript trên đầu trang của API bản địa) Thông qua lớp trừu tượng này mộttập hợp chung các API được tiếp xúc trong JavaScript, và các JavaScript APIlàm việc trên bất kỳ thiết bị hỗ trợ bởi khuôn khổ (cho WinJS đó là chỉ dành choWindows 8, nhưng cho Cordova đó là bảy nền tảng di động bao gồm iOS,Android, Blackberry và Windows Điện thoại 7) Khi wrapper bản địa được biêndịch xung quanh HTML, CSS và JavaScript tài nguyên, có một lớp Interop thêmkết nối các API JavaScript với các API nền tảng cụ thể
Điều này thực sự có nghĩa là, ví dụ nếu tôi xây dựng một ứng dụng điện
Trang 16thoại di động với Apache Cordova, tôi có thể sử dụng JavaScript để truy cập vàomột API bản địa, như máy ảnh, sử dụng một cuộc gọi API duy nhất bất kể nềntảng ứng dụng sẽ chạy trên
10.function onCameraSuccess (imageData) {
11 var image = document.getElementById('myImage');
12 image.src = "data:image/jpeg;base64," + imageData;
13.}
14
15.function onCameraError (message) {
16 alert('Failed because: ' + message);
17.}
Tóm tắt :
Ứng dụng lai là một lựa chọn tuyệt vời cho bạn nếu bạn:
ảnh
Trang 17• Không cần hiệu năng đồ họa cao cấp mà bạn chỉ có thể nhận được từ mộtứng dụng bản địa
Ứng dụng lai được xây dựng với công nghệ web có nghĩa là có hàng triệu nhàphát triển web, những người đã có kỹ năng thiết lập cơ sở để xây dựng các ứngdụng di động
Hình 54: Sơ đồ so sánh
Trang 18ứng dụng bản địa nếu cần
Vậy em chọn hybrib app là ngôn ngữ phát triển trên mobile
Ứng dụng lai được xây dựng với công nghệ web có nghĩa là có hàng triệu nhà
Trang 19phát triển web, những người đã có kỹ năng thiết lập cơ sở để xây dựng các ứngdụng di động
2.42 Lập trình PphoneGgap
2.1.khái niệm:
PhoneGap là một nền tảng mã nguồn mở dùng để phát triển ứng dụngmobile cho cả iOS, Android, Windows Phone, BlackBerry, webOS, Bada,Symbian cùng lúc, viết một lần, biên dịch qua cloud và chạy trên nhiều nền tảngsmartphone khác nhau Đây là một dự án nguồn mở miễn phí của Nitobi giúpviệc phát triển ứng dụng di động dễ dàng hơn đối với mọi hệ điều hành, hiện đã
có 40.000 lượt tải về mỗi tháng, tổng cộng là 600.000 lượt tải, đội ngũ phát triển
ổn định Phiên bản hiện tại PhoneGap 2.7.0 vừa được phát hành, cho phép nhàphát triển sử dụng HTML, CSS và JavaSript để viết và triển khai ứng dụng
Hình 86
: Hoạt động trong PhoneGap
Phát triển ứng dụng truyền thống sẽ giống như thế này:
Hhình 97: So sánhNếu bạn muốn pháttriển ứng dụng trên nhiềunền tảng khác nhau như
Trang 20iOS, Android, Symbian, Windows, BlackBerry ????
Hình 108: Ứng dụng chạy trên các nền tảng khác nhau
i. PhoneGap có th tr thành ngể trở thành người bạn tốt nhất của bạn nếu bạn: ở thành người bạn tốt nhất của bạn nếu bạn: ười bạn tốt nhất của bạn nếu bạn: ạn tốt nhất của bạn nếu bạn: ốt nhất của bạn nếu bạn:i b n t t nh t c a b n n u b n:ất của bạn nếu bạn: ủa bạn nếu bạn: ạn tốt nhất của bạn nếu bạn: ếu bạn: ạn tốt nhất của bạn nếu bạn:
Trang 21PhoneGap làm việc như thế nào?
Xem hình trên, một ứng dụng xây dựng bằng PhonGap sẽ gồm hai thành phầnchính yếu:
1 JavaScript Business Logic Part: thành phần điểu khiển về giao diện và chức
năng của chương trình
2 JavaScript Part: thành phần truy cập và điều khiển thiết bị (điện thoại hoặc
máy tính bảng)
Lấy minh họa về một ứng dụng như Facebook Thành phần chính đầu tiêncủa ứng dụng là trang đăng nhập và sau đó là tải các hình ảnh, các bài đăng.Tiếp theo, khi người dùng muốn chụp và đăng ảnh của mình lên Facebook Lúc
Trang 22đó, ứng dụng sẽ gọi Camera API của PhoneGap để truy cập vào Camera điệnthoại, chụp hình, lưu hình và truy xuất hình đó Tiếp đó nữa, Ajax sẽ gọiFacebook Server để tải ảnh lên
: Sơ đồ ứng dụng PhoneGap làm việc:
Hhình 13: Sơ đồ ứng dụng của PhoneGap1
Hình 142: Giới thiệu tổng quan về PhoneGap
Trang 23àm việc với Contacts (danh bạ điện thoại S)):
Danh bạ là một tính năng đáp ứng trên tất cả các dòng diện thoại thông minh.
Với PhoneGap, chúng ta có thể dễ dàng sử dụng những tính năng dưới đây cósẳn trong danh bạ điện thoại:
• Ø 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()
• Ø Tìm một liên hê, sử dụng phương thức find()
• Ø Sao chép một liên hệ, sử dụng phương thức clone()
• Ø Xóa một liên hệ, sử dụng phương thức remove()
Chẳng hạn, để tạo một tài khoản mới, chúng ta phải thông qua một đối tượngJavaScript Object Notation (JSON) là contacts.create(), đối tượng này chỉ đượclưu trữ trong bộ nhớ của ứng dụng Sau đó, để muốn lưu trữ xuống cơ sở dữliệu, chúng ta phải dùng phương thức save() PhoneGap API hỗ trợ các thuộctính khác nhau giúp hỗ trợ tìm kiếm (chẳng hạn như tên, bí danh, số điện thoại,e-mail, địa chỉ, sinh nhật, hình ảnh,…) Ta có thể tìm kiếm thông quacontacts.find() Tương tự như thế, đối với những hàm khác như clone(),remove(); chúng ta dễ dàng sử dụng và kết hợp những chức năng đó tùy vào ýtưởng khác nhau mà có tạo ra những ứng dụng như mong muốn ở các nhà pháttriển
Làm việc với Camera
thông qua đối tượng Camera có sẳn Thứ hai, bằng cách sử dụng Media CaptureAPI Cụ thể hơn là sử dụng qua phương thức camera.getPicture() Ta cũng cóthể lấy một bức ảnh từ thư viện hình ảnh, một đường dẫn lưu trữ tập tin
Làm việc với Geolocation:
Hầu hết các điện thoại thông minh đều hỗ trợ GPS, qua đó bạn có thể sử
dụng nó, hoặc cũng có thể sử dụng một số công nghệ khác để xác định vị tríthông qua kinh độ, vĩ độ PhoneGap Geolocation API sẽ cho phép chúng ta lấy
Trang 24vị trí hiện tại qua kinh độ, vĩ độ (các yếu tố khác như độ cao, vẫn là điều có thể)cũng như sự thay đổi tọa độ Điều này rất hữu ích cho việc chúng ta muốn theodỏi sự duy chuyển của thiết bị.
Làm việc với Media File:
Trong PhoneGap, Media Capture API không chỉ đơn thuần là chụp một bức
ảnh (trong Media), chúng ta cũng có thể sử dụng nó để ghi lại âm thanh, hìnhảnh (audio, video) Thật vậy, Media Capture API cho phép ghi âm, ghi hình,chơi một tập tin media (bao gồm: play, pause, stop) từ một đường dẫn
Làm việc với tùy chọn lưu trữ:
Với HTML5, PhoneGap cũng hỗ trợ cơ sở dữ liệu Web SQL Và tất nhiên, khilàm việc cục bộ, SQLite cũng đủ làm cho ứng dụng của bạn trở nên phong phú
và hữu ích hơn
Điểm khó khăn khi sử dụng PhoneGap:
tốc độ chậm
quản lý các tiến trình(đồng bộ, bất đồng bộ), khả năng đồ họa hạn chế (3D)
phân giải khác nhau, và tùy thuộc vào độ hỗ trợ của trình HTML của thiết bị
vd các apps cho android trên các thiết bị khác nhau thì sẽ không rõ nét vì trênandroids hỗ trợ các bộ icon cho các độ phân giải khác nhau nên rõ nét hơn
track ball, tapping,rocker …
khi phát triển ứng dụng bị stuck là điều có thể xảy ra
Trang 252.3: Những ưu nhược điểm của PhoneGap
ư u Ưu u đi m ểm mạnh :
PhoneGap là một nền tảng mã nguồn mở dùng để phát triển ứng dụng mobile
cho cả iOS, Android, Windows Phone, BlackBerry, webOS, Bada, Symbiancùng lúc, viết một lần, biên dịch qua cloud và chạy trên nhiều nền tảngsmartphone khác nhau
Điểm nổi bật của PhoneGap đầu tiên ở đây như đã được đề cập trước đó là việc
sử dụng các ngôn ngữ chuẩn HTML, CSS và Javascript Và tất cả những gìchúng ta cần là tìm hiểu về các thành phần API mà PhoneGap đã cung cấp Tiếp
đó nữa, việc sử dụng PhoneGap giúp chúng ta có thể dễ dàng truy cập nhanhhơn vào các tính năng của điện thoại cung cấp như la bàn, camera,… Đặc biệt,nếu ứng dụng của ta cần kết nối tới các Web Service (thông thường là một WebService hoặc là một RESTful API), thì sẽ dễ dàng hơn với các bộ công cụ hỗ trợnhư jQuery, tạo sức mạnh hơn trong việc xử lý Ajax
Nhược điểm:
Mặc dù vậy, nhưng vẫn còn những vướn mắc trong việc xây dụng mộtứng dụng chạy trên mọi nền tảng Chẳng hạn, khi xây dựng một ứng dụng bằngPhoneGap viết cho iPhone, thì khi biên dịch cho các nền tảng khác như Android,Windows Phone,… cũng cần phải có những tinh chỉnh thích hợp để ứng dụng
đó có thể chạy hoàn toàn tính năng Cũng như việc phát triển ứng dụng thôngthường, thì ứng dụng sử dụng PhoneGap cũng cần phải quan tâm đến môitrường phát triển trên các nền tảng riêng biệt
Khó hoạt động trên các mobile browser cũ vì không hỗ trợ javascript và tốc
độ chậm
Việc quản lý các tài nguyên sâu 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 qua các màn hình thiết bị có độ phângiải khác nhau, và tùy thuộc vào độ hỗ trợ của trình HTML của thiết bị vd các
Trang 26apps cho android trên các thiết bị khác nhau thì sẽ không rõ nét vì trên androids
hỗ trợ các bộ icon cho các độ phân giải khác nhau nên rõ nét hơn
Các bộ nhập liệu trên từng thiết bị không điều khiển được như: keypad, trackball, tapping,rocker …
Khó trong việc phát triển vì debug khó khăn
Tài liệu khá ít, Phonegap đang trên đà hoàn thiện vì thế nguy cơ tiềm ẩn khiphát triển ứng dụng bị stuck là điều có thể xảy ra
2.4: Cài đặt phonegap
Cách thiết lập cài đặt Phonegap cho Android Project bằng Eclipse
Yêu cầu cài đặt
Android SDK và Android ADT Plugin cho eclipse: Tải
Trang 27 Phonegap Framework : Tại bản phonegap mới nhất tại
Tạo project mới sử dụng Phonegap trong Eclipse IDE
Mở Eclipse, chọn New > Android Project
Hình 153: Cách tạo 1 Android Project trong Eclipse IDE