Đề tài: hỗ trợ tìm kiếm nhà trọ trên smartphone
GVHD: Nguyễn Thanh Hải
TRƯỜNG ĐẠI HỌC CẦN THƠ
KHOA CÔNG NGHỆ THÔNG TIN
LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
HỖ TRỢ TÌM KIẾM NHÀ TRỌ TRÊN
SMARTPHONE
Sinh viên thực hiện
Cán bộ hướng dẫn
Lâm Quang Kha Ly
MSSV: 1111242
Lớp: Hệ Thống Thông Tin – K37
tin
Ths. Nguyễn Thanh Hải
MSCB: 2267
Bộ môn: Hệ thống thông
Cần Thơ, 05/2015
Sinh viên thực hiện: Lâm Quang Kha Ly – MSSV: 1111242
1
Đề tài: hỗ trợ tìm kiếm nhà trọ trên smartphone
GVHD: Nguyễn Thanh Hải
TRƯỜNG ĐẠI HỌC CẦN THƠ
KHOA CÔNG NGHỆ THÔNG TIN
LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
HỖ TRỢ TÌM KIẾM NHÀ TRỌ TRÊN
SMARTPHONE
Sinh viên thực hiện
Lâm Quang Kha Ly
Hải
MSSV: 1111242
Lớp: Hệ Thống Thông Tin – K37
thông tin
Cán bộ hướng dẫn
Ths. Nguyễn Thanh
MSCB: 2267
Bộ môn: Hệ thống
CÁN BỘ PHẢN BIỆN
Chủ tịch: TS. Phạm Thị Ngọc Diễm
Ủy viên: TS. Phạm Thị Xuân Lộc
Thư ký: Ths. Nguyễn Thanh Hải
Luận văn được bảo vệ tại: Hội đồng chấm luận văn tốt nghiệp Bộ môn Hệ
thống thông tin Khoa Công nghệ thông tin – Đại học Cần Thơ vào ngày
20/05/2015
Mã số đề tài:
Cần Thơ, 05/2015
Sinh viên thực hiện: Lâm Quang Kha Ly – MSSV: 1111242
2
Đề tài: hỗ trợ tìm kiếm nhà trọ trên smartphone
GVHD: Nguyễn Thanh Hải
NHẬN XÉT CỦA GIẢNG VIÊN
....................................................................
....................................................................
....................................................................
....................................................................
....................................................................
....................................................................
....................................................................
....................................................................
....................................................................
....................................................................
....................................................................
....................................................................
....................................................................
....................................................................
....................................................................
....................................................................
....................................................................
....................................................................
....................................................................
Cần Thơ, Ngày … Tháng 05 năm 2015
Sinh viên thực hiện: Lâm Quang Kha Ly – MSSV: 1111242
3
Đề tài: hỗ trợ tìm kiếm nhà trọ trên smartphone
GVHD: Nguyễn Thanh Hải
LỜI CẢM ƠN
Đầu tiên em xin gửi lời cảm ơn sâu sắc đến thầy Nguyễn Thanh Hải, người
thầy đã hướng dẫn, giúp đỡ và tạo điều kiện cho em trong suốt quá trình thực hiện
luận văn.
Kế đến, em cũng xin gửi cám ơn chân thành đến các thầy cô bộ môn hệ
thống thông tin đã luôn hết mình truyền đạt kiến thức quý báu, là tấm gương cho
bao thế hệ sinh viên noi theo. Đặc biệt là thầy Phan Tấn Tài cố vấn học tập lớp Hệ
thống thông tin khóa 37 đã dìu dắt em và các bạn trong lớp từ khi còn là sinh viên
chập chững bước vào trường đến khi bắt đầu tương lai với sự nghiệp của một kỹ
sư góp phần xây dựng đất nước.
Cuối cùng, em xin gửi lời cảm ơn đến thầy Nguyễn Viết Đức, giáo viên
trường Trung học cơ sở Ngô Quốc Trị, đã cho em niềm đam mê và những kiến
thức vô giá đầu tiên về tin học.
Khi thực hiện đề tài này, điều đầu tiên và điều cuối cùng em nghĩ đến đều
là những gì mình sẽ học, kiến thức đạt được sau khi hoàn thành. Vì vậy luôn mong
nhận được nhiều ý kiến góp của quý thầy cô và các bạn để em có thể có thêm
nhiều kiến thức và phát triển đề tài được hoàn thiện hơn.
Xin chân thành cảm ơn!
Cần Thơ, tháng 5 năm 2015
Sinh viên thực hiện
Lâm Quang Kha Ly
Sinh viên thực hiện: Lâm Quang Kha Ly – MSSV: 1111242
4
Đề tài: hỗ trợ tìm kiếm nhà trọ trên smartphone
GVHD: Nguyễn Thanh Hải
MỤC LỤC
LỜI CẢM ƠN ..................................................................................................................... 4
MỤC LỤC .......................................................................................................................... 5
MỤC LỤC HÌNH ............................................................................................................... 8
TÓM TẮT ........................................................................................................................... 9
ABSTRACT ..................................................................................................................... 10
TỪ KHÓA ........................................................................................................................ 11
CHƯƠNG 1: TỔNG QUAN .......................................................................................... 12
I. ĐẶT VẤN ĐỀ ........................................................................................................... 12
I.1 Hiện trạng........................................................................................................... 12
I.2 Mục tiêu: ............................................................................................................. 13
II. LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ .......................................................................... 13
III. PHẠM VI - Ý NGHĨA, YÊU CẦU CỦA ĐỀ TÀI ................................................. 13
III.1 Phạm vi ............................................................................................................ 13
III.2 Ý nghĩa của đề tài .......................................................................................... 13
III.3 Yêu cầu ............................................................................................................ 14
IV. PHƯƠNG PHÁP NGHIÊN CỨU VÀ HƯỚNG GIẢI QUYẾT VẤN ĐỀ ....... 15
IV.1 Thu thập dữ liệu ............................................................................................. 15
IV.2 Chọn công nghệ - công cụ phát triển.......................................................... 15
IV.3 Kế hoạch thực hiện........................................................................................ 15
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT .............................................................................. 17
I. CÁC LOẠI ỨNG DỤNG SMARTPHONE:........................................................... 17
II. HYBRID APPS ........................................................................................................ 18
II.1 Tại sao nên phát triển hybrid apps ............................................................... 18
II.2 Các framework hàng đầu để phát triển Hybrid Applications. ................... 19
II.2.1 IONIC ............................................................................................................. 20
II.2.2 Intel XDK........................................................................................................ 20
II.2.3 Appcelerator Titanium ................................................................................. 20
II.2.4 Sencha Touch. .............................................................................................. 21
II.2.5 PhoneGap ..................................................................................................... 21
III. CÁC NGÔN NGỮ SỬ DỤNG TRONG ĐỀ TÀI. .............................................. 22
III.1 Apache cordova: ............................................................................................. 22
III.1.1 Cordova là gì? ......................................................................................... 22
III.1.2 Lịch sử hình thành Apache Cordova ................................................... 23
III.1.3 Tại sao lại sử dụng Apache Cordova? ................................................ 23
III.1.4 Những ưu điểm khi sử dụng Apache cordova? ................................. 23
III.1.5 Những hạn chế của Apache cordova? ................................................ 24
III.1.6 Cách thức Apache cordova hoạt động ................................................ 24
III.1.7 Định nghĩa về web view ......................................................................... 25
III.1.9 Tổng quan về các APIs Apache Cordova ........................................... 27
III.2 HTML5 và CSS3............................................................................................ 28
III.2.1. HTML và CSS ......................................................................................... 28
III.2.2 Một số đặc điểm nổi bật của HTML5 ................................................... 29
III.2.3 HTML5 hỗ trợ khả năng truy cập tới hệ thống file system ............... 29
Sinh viên thực hiện: Lâm Quang Kha Ly – MSSV: 1111242
5
Đề tài: hỗ trợ tìm kiếm nhà trọ trên smartphone
GVHD: Nguyễn Thanh Hải
III.3 JavaScript ........................................................................................................ 30
III.4. SQLite: ............................................................................................................ 31
III.5. Jquery.............................................................................................................. 32
III.6. Google map API ............................................................................................ 32
III.6.1. Google Map API là gì? .......................................................................... 32
III.6.2. Đăng ký sử dụng Google map API ..................................................... 33
III.6.3. Load bản đồ về trang cá nhân ............................................................. 33
III.7 AJAX ................................................................................................................. 34
III.8 PHP ................................................................................................................. 34
III.9 MYSQL ............................................................................................................. 34
IV. CÁCH THIẾT LẬP CÀI ĐẶT MÔI TRƯỜNG LẬP TÌNH CHO APACHE
CORDOVA .................................................................................................................. 35
IV.1 Cài đặt thủ công. ............................................................................................ 35
IV. 2 Cài đặt và sử dụng với Visual Studio Community 2015. ........................ 36
IV.2.1 Giới thiệu đôi nét về Visual Studio Community. ................................ 36
IV.2.2 Cài đặt Apache Cordova với Visual studio Community 2015.......... 37
IV.2.3 Tạo ứng dụng Apache Cordova đầu tiên............................................ 39
IV.2.4 Đóng gói và xuất bản ứng dụng Apache Cordova ............................ 43
CHƯƠNG 3: NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU .......................................... 56
I. MÔ TẢ HỆ THỐNG ................................................................................................ 56
I.1 Đối tượng tìm nhà trọ chưa có tài khoản: ..................................................... 56
I.2 Đối tượng tìm nhà trọ có tài khoản: ............................................................... 57
I.3 Đối tượng chủ nhà trọ: ..................................................................................... 57
I.4 Đối tượng admin ............................................................................................... 57
II. PHÂN TÍCH VÀ THIẾT KẾ CÁC MÔ HÌNH ....................................................... 58
II.1 Mô hình quan niệm (CDM) ............................................................................. 58
a. Xây dựng các thực thể, thuộc tính và khóa:.............................................. 58
b. Xác định các mối kết hợp và biển số.......................................................... 61
c. Mô hình CDM hoàn chỉnh: ............................................................................ 64
II.3 Lưu đồ dòng dữ liệu (DFD) ............................................................................ 67
a. DFD cấp 0 ....................................................................................................... 67
b. DFD cấp 1 ....................................................................................................... 68
III. PHÂN TÍCH VÀ THIẾT KẾ CHƯƠNG TRÌNH ................................................. 70
III.1 Lưu đồ giải thuật ............................................................................................. 70
III.1.1 lưu đồ giải thuật đăng nhà trọ ............................................................... 70
III.1.2 Lưu đồ giải thuật tìm nhà trọ ................................................................. 71
III.2 Sơ đồ chức năng ............................................................................................ 72
III.2.1 Sơ đồ chức năng của đối tượng tìm kiếm nhà trọ chưa có tài khoản
............................................................................................................................... 72
III.2.2 Sơ đồ chức năng của đối tượng tìm kiếm nhà trọ có tài khoản ...... 72
III.2.3 Sơ đồ chức năng của đối tượng chủ nhà trọ ..................................... 73
III.2.4 Sơ đồ chức năng của đối tượng admin............................................... 73
IV. GIỚI THIỆU DEMO.............................................................................................. 74
IV.1 Một số giao diện chính của ứng dụng tìm kiếm nhà trọ trên smartphone
................................................................................................................................... 75
IV.1.1 Giao diện tìm nhà trọ.............................................................................. 75
Sinh viên thực hiện: Lâm Quang Kha Ly – MSSV: 1111242
6
Đề tài: hỗ trợ tìm kiếm nhà trọ trên smartphone
GVHD: Nguyễn Thanh Hải
IV.1.2 giao diện đăng thông tin nhà trọ ........................................................... 77
IV.1.3 Giao diện đăng nhập .............................................................................. 79
IV.1.4 Giao diện thêm loại phòng .................................................................... 79
IV.1.5 Giao diện hiển thị kết quả tìm kiếm lên bản đồ.................................. 83
V.KẾT QUẢ ĐẠT ĐƯỢC .......................................................................................... 83
VI. NHỮNG VẤN ĐỀ CHƯA ĐƯỢC GIẢI QUYẾT............................................... 84
KẾT LUẬN VÀ ĐỀ NGHỊ ............................................................................................... 84
1. KẾT LUẬN ............................................................................................................... 84
1.1 ƯU ĐIỂM VÀ HẠN CHẾ ................................................................................. 84
1.1.1 ƯU ĐIỂM ................................................................................................... 84
1.1.2 HẠN CHẾ................................................................................................... 85
1.2 THUẬN LỢI VÀ KHÓ KHĂN .......................................................................... 85
1.2.1 THUẬN LỢI ............................................................................................... 85
1.2.2 KHÓ KHĂN................................................................................................ 85
2. ĐỀ NGHỊ .............................................................................................................. 86
TÀI LIỆU THAM KHẢO ................................................................................................. 87
PHỤ LỤC.......................................................................................................................... 88
TỪ ĐIỂN DỮ LIỆU..................................................................................................... 88
Sinh viên thực hiện: Lâm Quang Kha Ly – MSSV: 1111242
7
Đề tài: hỗ trợ tìm kiếm nhà trọ trên smartphone
GVHD: Nguyễn Thanh Hải
MỤC LỤC HÌNH
Hình 2. 1 Bảng so sánh các dạng ứng dụng mobile ......................................................... 18
Hình 2. 2 Biểu đồ chi phí tiết kiệm khi phát triển ứng dụng hybrid so với native ............ 19
Hình 2. 3 Biểu đồ so sánh các loại ứng dụng di động 2016 ............................................. 19
Hình 2. 4 kiến trúc bên trong của ứng dụng Cordova ...................................................... 24
Hình 2. 5 cách ứng dụng Cordova làm việc trên thiết bị di động..................................... 26
Hình 2. 6 Bảng các hàm APIs được hỗ trợ cho từng nền tảng trong Cordova ................ 27
Hình 2. 7 Cài đặt visual studio community 2015 .............................................................. 38
Hình 2. 8 Cài đặt Tool for Apache Cordova for Visual Studio 2015 RC ......................... 39
Hình 2. 9 Tạo dự án Cordova ........................................................................................... 40
Hình 2. 10 Kết quả chương trình mặc định chạy trên Ripple ........................................... 43
Hình 3. 1 Sơ đồ CMD ....................................................................................................... 65
Hình 3. 2 Sơ đồ DFD cấp 0 .............................................................................................. 68
Hình 3. 3 Sơ đồ DFD cấp 1 ............................................................................................ 69
Hình 3. 4 Lưu đồ giải thuật đăng thông tin nhà trọ.......................................................... 70
Hình 3. 5 Lưu đồ giải thuật tìm kiếm nhà trọ ................................................................... 71
Hình 3. 6 Sơ đồ chức năng của đối tượng tìm kiếm nhà trọ chưa có tài khoản ............... 72
Hình 3. 7 Sơ đồ chức năng của đối tượng tìm kiếm nhà trọ có tài khoản ........................ 72
Hình 3. 8 Sơ đồ chức năng của đối tượng chủ nhà trọ ..................................................... 73
Hình 3. 9 Sơ đồ chức năng của đối tượng Admin ............................................................. 73
Hình 3. 10 Giao diện chính của ứng dụng hỗ trợ tìm kiếm nhà trọ trên smartphone ...... 74
Hình 3. 11 Giao diện tìm nhà trọ (phần 1) ....................................................................... 75
Hình 3. 12 Giao diện tìm kiếm nhà trọ (phần 2)............................................................... 76
Hình 3. 13 Giao diện đăng thông tin nhà trọ (phần 1) ..................................................... 78
Hình 3. 14 Giao diện đăng thông tin nhà trọ (phần 2) ..................................................... 78
Hình 3. 15 Giao diện đăng nhập ....................................................................................... 79
Hình 3. 16 Giao diện thêm loại phòng (phần 1) ............................................................... 80
Hình 3. 17 Giao diện thêm loại phòng (phần 2) ............................................................... 81
Hình 3. 18 Kết quả tìm kiếm hiển thị trên bản đồ ............................................................. 82
Hình 3. 19 Hướng dẫn chỉ đường đến nhà trọ .................................................................. 83
Sinh viên thực hiện: Lâm Quang Kha Ly – MSSV: 1111242
8
Đề tài: hỗ trợ tìm kiếm nhà trọ trên smartphone
GVHD: Nguyễn Thanh Hải
TÓM TẮT
Theo tình hình phát triển của Việt Nam, nhu cầu tìm thuê và cho thuê nhà
trọ sẽ ngày càng tăng do sự di dân giữa các vùng miền, số lượng người dân ra
thành phố lớn sinh sống ngày càng lớn. Tuy nhiên, trong thực tế mọi người đều
thấy rằng tìm được một nhà trọ vừa ý, giá cả hợp lý là vô cùng khó khăn, gây mất
rất nhiều thời gian cho cả người cho thuê lẫn người muốn thuê, vì hầu hết người
thuê đều là người ở xa mới đến, chưa rõ vị trí địa lý nên việc đưa thông tin nhà trọ
đến người tìm, và người tìm được thông tin không dễ dàng chút nào.
Thêm vào đó, sự phát triển của điện thoại thông minh đã dần đi đến mức
đỉnh điểm khi mà bất kì sự thống kê liên quan đến nó đều có thể bị lỗi thời sau
một vài ngày. Hầu hết các sinh viên, người lao động đều sở hữu một chiếc điện
thoại thông mình dùng để liên lạc, giải trí và phục vụ các mục đích khác.
Tận dụng ưu điểm của điện thoại thông minh và sức mạnh của cộng đồng
sử dụng, đề tài hỗ trợ tìm nhà trọ trên smartphone đã ra đời nhằm xây dựng ứng
dụng giải quyết bài toán nhà trọ. Với ứng dụng này người cho thuê sẽ dễ dàng đưa
thông tin nhà trọ đến mọi người, ngược lại người muốn thuê sẽ tìm được nhà trọ
một cách nhanh chóng.
Hệ thống được xây dựng theo loại ứng dụng lai, có thể sử dụng được trên 3
nền tảng lớn nhất hiện nay là Android, iOS, Windows Phone.
Sinh viên thực hiện: Lâm Quang Kha Ly – MSSV: 1111242
9
Đề tài: hỗ trợ tìm kiếm nhà trọ trên smartphone
GVHD: Nguyễn Thanh Hải
ABSTRACT
According to the development situation of Vietnam, the demand for leasing
and rental accommodation will skyrocket because of immigrants . However, in
fact, everyone agrees that finding a pleasant accommodation which has a
reasonable price is extremely difficult. Causing a lot of wasted time for both the
lease and who want to rent, because most tenants are not familiar with the
geography at the city where they plan to stay.
In addition, the development of the smart phone has gradually gone up to a
peak when any statistics related to it may be outdated after a few days. Typically,
most of the students, the workers have owned a smart phone for communication,
entertainment.
Taking advantages of smartphones and the power of the user community
and supporting system to find accommodation on the smartphone was launched to
design applications solve the problems for accommodation. With this application
the lessor will bring information to users boarding house easier, whereas they want
to rent will find an accommodation quickly.
The system was built as a hybrid application. This can be used on three
largest current platforms which are Android, iOS, and Windows Phone.
Sinh viên thực hiện: Lâm Quang Kha Ly – MSSV: 1111242
10
Đề tài: hỗ trợ tìm kiếm nhà trọ trên smartphone
GVHD: Nguyễn Thanh Hải
TỪ KHÓA
HTML5
API
OS
CPU
GPS
CLI
SDK
IDE
CDM
LDM
SQL
PHP
CSS
CSDL
Hyper Text Markup Language version 5
Application Programming Interface
Operating system
Central Processing Unit
Global Positioning System
Command Line Interface
Software Development Kit
Integrated Development Environment
Conceptual Data Model
Logical Data Model
Structured Query Language
Hypertext Preprocessor
Cascading Style Sheets
Cơ sở dữ liệu
Sinh viên thực hiện: Lâm Quang Kha Ly – MSSV: 1111242
11
Đề tài: hỗ trợ tìm kiếm nhà trọ trên smartphone
GVHD: Nguyễn Thanh Hải
CHƯƠNG 1: TỔNG QUAN
I. ĐẶT VẤN ĐỀ
I.1 Hiện trạng
Trong những năm gần đây, điện thoại thông minh hay còn được gọi là
smartphone luôn nhận được sự quan tâm hàng đầu trong lĩnh vực công nghệ thông
tin. Nó được xem là một trong những tiêu chí lớn nhất đề đánh giá thương hiệu
của các công ty công nghệ. Với tình hình đó các công ty công nghệ lớn trên thế
giới dù trước đây chỉ sản xuất phầm mềm, hay một lĩnh vực linh kiện đơn thuần
nào đó đều đầu tư chạy đua trong lĩnh vực sản xuất sản phẩm này. Kết quả của
cuộc chạy đua đó là những chiếc điện thoại ngày càng “thông minh” hơn, mạnh
mẽ hơn, chất lượng màn hình tốt hơn và giá ngày càng rẻ hơn. Nếu như trước đây
sở hữu một chiếc smartphone là điều xa xỉ thì hiện nay smartphone là thiết bị thân
thuộc đối với mọi người, mọi độ tuổi, đều dễ dàng sử dụng.
Tận dụng xu hướng phát triển và sức mạnh đó, rất nhiều ứng dụng đã được
xây dựng chuyển thể từ máy vi tính sang smartphone, hầu hết các ứng dụng đều
đáp ứng được nhu cầu người dùng, một số còn tỏ ra hiệu quả hơn. Trong đó, trước
hết phải kể đến các ứng dụng định vị, chỉ đường dựa trên hệ thống GPS của
smartphone. Những ứng dụng này phát huy tối đa được thế mạnh của smartphone
là nhỏ gọn và lúc nào cũng có thể truy cập vào mạng internet (mạng không dây
hay mạng dịch vụ di động). Với tư cách bản thân là một sinh viên trong ngành
công nghệ thông tin chưa có nhiều kiến thức về lập trình di động, tôi luôn khao
khát được học hỏi, phát triển những ứng dụng về lĩnh vực này. Và lựa chọn đề tài
“Hỗ trợ tìm kiếm nhà trọ trên Smartphone” như là một điều tất yếu.
Với cơ cấu dân số nông thôn chiếm khoảng 70% tổng dân số nhưng các
trường đại học, xí nghiệp, công ty lớn lại tập trung ở thành thị dẫn đến dòng người
lao động, sinh viên từ nông thôn, tỉnh lẻ kéo về đô thị là rất nhiều, dẫn đến nhiều
dịch vụ được hình thành để đáp ứng nhu cầu này, trong đó nhu cầu cơ bản nhưng
cũng quan trọng nhất đó là cho thuê nhà trọ. Chỉ tính riêng thành phố Hồ Chí
Minh đã có hơn 1 triệu lao động, nếu tính trung bình 3 người cần thuê 1 phòng thì
cần đến hơn 300 ngàn phòng trọ, con số này sẽ rất khủng khiếp khi xem xét tất cả
các tỉnh lớn trong nước. Với nhu cầu to lớn như vậy nhưng trước đây mọi người
tìm nhà trọ chủ yếu qua cách hỏi trực tiếp, còn việc đưa thông tin nhà trọ của mình
chỉ bằng cách treo bảng trước cửa nhà, những cách như vậy làm cho người ngoại
tỉnh gặp nhiều khó khăn vì không biết rõ đường dễ bị chủ nhà trọ nâng giá, còn
Sinh viên thực hiện: Lâm Quang Kha Ly – MSSV: 1111242
12
Đề tài: hỗ trợ tìm kiếm nhà trọ trên smartphone
GVHD: Nguyễn Thanh Hải
với chủ nhà trọ cho thuê phòng với giá tốt nhưng vị trí không thuận lợi thì khó
cạnh tranh.
Để giải quyết các vấn đề đó gần đây có nhiều website ra đời và một số
trang như đã
thành công vang dội, là nơi tham khảo đáng tin cậy của người tìm nhà trọ thông
qua mạng Internet. Các trang web này giải quyết được hầu hết các nhu cầu chia sẻ
và tìm thông tin nhà trọ. Nhưng điểm yếu của các hệ thống thực hiện bằng website
là xác định vị trí người dùng, vì vậy chưa đưa ra được hướng dẫn đường đi chi tiết
cho người tìm. Tiếp tục khẳng định vị trí số 1 của mình trong lĩnh vực này
tung ra ứng dụng “bất động sản” trên 2 nền tảng là
Android và iOS đã khắc phục được nhược điểm trên, hỗ trợ rất tốt cho người tìm
nhà trọ nhưng lại chưa có chức năng dành cho chủ nhà trọ. Một ứng dụng khác
đáng chú ý là “nhà trọ tốt” đã có hỗ trợ chức năng đăng thông tin dành cho chủ
nhà trọ nhưng lại phải tải thêm một ứng dụng khác, gây bất tiện. Và một số khác
cũng hỗ trợ giải quyết các vấn đề nhà trọ, nhưng điểm chung và quan trọng nhất là
những ứng dụng đó hầu hết đều chạy đơn nền tảng vì thế chưa tận dụng được tối
đa thông tin mà chủ nhà trọ muốn quảng bá, hạn chế về nền tảng cũng là hạn chế
về số lượng người dùng là hạn chế về thông tin.
I.2 Mục tiêu:
Mục tiêu chính của đề tài là xây dựng ứng dụng hỗ trợ tìm kiếm nhà trọ
trên smartphone, phát huy điểm mạnh của smartphone để giải quyết vấn đề đăng
thông tin và tìm nhà trọ.
II. LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ
Đã có một vài ứng dụng di động hỗ trợ tìm kiếm nhà trọ như “Tìm trọ”,
“Chung cư”, “OngNhaDat”, “batdongsan”… được phổ biến trong cộng động mạng.
Tuy nhiên, các ứng dụng này còn nhiều điểm hạn chế như chưa chạy được đa nền
tảng, chưa cho phép đăng thông tin nhà trọ hoặc chỉ cho đăng thông tin rất sơ sài,
ít tùy chọn hỗ trợ tìm kiếm.
Trong khuôn khổ các đề tài niên luận, luận văn tại khoa Công nghệ thông
tin và Truyền thông thì “Hỗ trợ tìm kiếm nhà trọ trên smartphone” là mảng đề tài
tương đối mới, nhất là lập trình bản đồ trên di động.
III. PHẠM VI - Ý NGHĨA, YÊU CẦU CỦA ĐỀ TÀI
III.1 Phạm vi
Ứng dụng phục vụ cho bất kỳ người dùng có nhu cầu tìm hoặc cho thuê nhà
trọ, chia sẻ thông tin phòng trọ trên toàn quốc.
III.2 Ý nghĩa của đề tài
Sinh viên thực hiện: Lâm Quang Kha Ly – MSSV: 1111242
13
Đề tài: hỗ trợ tìm kiếm nhà trọ trên smartphone
GVHD: Nguyễn Thanh Hải
Với người sử dụng:
Các chủ nhà trọ có thêm một công cụ mạnh mẽ tận dụng ưu thế của
smartphone để quảng bá thông tin nhà trọ của mình đến mọi người một cách
nhanh chóng không mất nhiều thời gian.
Giúp các chủ nhà trọ biết giá nhà trọ lẫn nhau để đưa ra mức giá cạnh
tranh mang đến lợi ích mình lẫn người tìm thuê.
Người tìm kiếm nhà trọ dễ dàng tìm được nhà trọ mình cần với mức
giá tốt nhất.
Giúp người tìm nhà trọ biết được vị trí chính xác và các dịch vụ xung
quanh nhà trọ, từ đó có thể lựa chọn nhà trọ theo sở thích của mình.
Hướng dẫn đường đến nhà trọ từ vị trí của người dùng đến nhà trọ, rất
tiện lợi khi không rành địa điểm.
Với bản thân:
Bước đầu sử dụng những kiến thức đã học để giải quyết vấn đề thực tế.
Học hỏi thêm những kiến thức về ứng dụng di động và nâng cao khả
năng lập trình.
Tăng cường khả năng tự học và có cơ hội tự đánh giá bản thân.
III.3 Yêu cầu
a. Về cơ sở lý thuyết:
Nghiên cứu về các hệ thống website cũng như các ứng dụng smartphone
đã có, từ đó rút ra các điểm mạnh yếu, còn thiếu.
Vận dụng lý thuyết phân tích hệ thống đã học để xây dựng các sơ đồ chức
năng, mô hình hệ thống thực thể kết hợp, lưu đồ giải thuật phục vụ cho đề tài.
Tìm hiểu về các nền tảng trên smartphone, từ đó lựa chọn ngôn ngữ thích
hợp để phát triển.
Nghiên cứu về ngôn ngữ phát triển cũng như các hệ quản trị cơ sở dữ liệu
cục bộ cũng như máy chủ sao cho phù hợp với ứng dụng.
b. Về chức năng:
Hệ thống hỗ trợ tìm kiếm nhà trọ trên smartphone gồm ứng dụng trên
smartphone và website quản lý.
Ứng dụng hỗ trợ tìm kiếm nhà trọ trên smartphone phải đảm bảo xây dựng
đầy đủ các chức năng. Cụ thể theo từng nhóm người dùng sau:
Đối tượng tìm nhà trọ chưa có tài khoản:
o Đăng ký tài khoản.
o Tìm nhà trọ.
o Xem thông tin chi tiết nhà trọ.
Sinh viên thực hiện: Lâm Quang Kha Ly – MSSV: 1111242
14
Đề tài: hỗ trợ tìm kiếm nhà trọ trên smartphone
GVHD: Nguyễn Thanh Hải
o Lưu thông tin nhà trọ.
o Xem hướng dẫn đường đi đến nhà trọ.
o Xem các thông tin dịch vụ xung quanh nhà trọ.
Đối tượng người tìm nhà trọ có tài khoản:
Có các tính năng như đối tượng khách chưa có tài khoản. Ngoài ra,
có thêm các tính năng sau:
o Bình luận về nhà trọ.
o Đánh giá cho nhà trọ.
Đối tượng chủ nhà trọ
Có các tính năng như đối tượng người tìm nhà trọ có tài khoản.
Ngoài ra, có thêm các tính năng sau:
o Đăng thông tin nhà trọ.
o Xem, sửa, xóa thông tin nhà trọ đã đăng.
Với website, có các chức năng để quản lý:
Đối tượng người quản lý (Admin):
o Xem, xóa nhà trọ đã đăng của người dùng.
o Xem, xóa bình luận của người dùng.
o Gửi email yêu cầu người dùng sửa thông tin đã đăng.
o Thống kê.
IV. PHƯƠNG PHÁP NGHIÊN CỨU VÀ HƯỚNG GIẢI QUYẾT VẤN ĐỀ
IV.1 Thu thập dữ liệu
Liên hệ trực tiếp nhu cầu bản thân các bạn sinh viên và chủ nhà trọ ở địa
phương. Tham khảo các website, ứng dụng về tìm nhà trọ, rút kinh nghiệm từ
những hạn chế và hiệu quả thực tiễn của nó. Từ đó xem xét và lựa chọn các dữ
liệu nào cần thiết và phù hợp cho ứng dụng di động.
IV.2 Chọn công nghệ - công cụ phát triển
Công nghệ phát triển:
o Framework Apache Cordova dùng để xây dựng ứng dụng.
o Ajax dùng để lấy dữ liệu từ máy chủ và đưa dữ liệu lên máy chủ.
o Google Maps API v3 đảm nhận toàn bộ về bản đồ.
Công cụ phát triển: Visual Studio Community 2013.
IV.3 Kế hoạch thực hiện
Phân chia thời gian cho từng công việc một cách hợp lý. Lên kế hoạch báo
cáo tiến độ và điều chỉnh thời gian cho phù hợp. Trong quá trình thực hiện, lắng
nghe và tiếp thu sự quan tâm, góp ý của giáo viên hướng dẫn.
Kế hoạch thực hiện cụ thể như sau:
Sinh viên thực hiện: Lâm Quang Kha Ly – MSSV: 1111242
15
Đề tài: hỗ trợ tìm kiếm nhà trọ trên smartphone
STT
1
2
3
4
5
6
7
8
9
10
11
Công việc
Nghiên cứu công
nghệ, thu thập yêu
cầu
Phân tích yêu cầu
Vẽ mô hình CMD,
LDM, DFD
Xây dựng cơ sở dữ
liệu
Thiết kế giao diện
Lập trình thiết kế các
chức năng
Kiểm thử chương
trình
Viết quyển báo cáo
Viết slides báo cáo
Báo cáo thử cho giáo
viên hướng dẫn, các
giáo viên phản biện
và chỉnh sửa trước
khi in
Nộp bản báo cáo
GVHD: Nguyễn Thanh Hải
Từ tuần
Tuần 1
Đến tuần
Đầu tuần 8
Đầu tuần 8
Đầu tuần 11
Đầu tuần 11
Đầu tuần 13
Đầu tuần 13
Cuối tuần 13
Cuối tuần 13
Cuối tuần 14
Cuối tuần 14
Cuối tuần 17
Cuối tuần 17
Cuối tuần 18
Cuối tuần 18
Cuối tuần 19
Đầu tuần 20
Cuối tuần 19
Đầu tuần 20
Cuối tuần 20
Cuối tuần 20
Cuối tuần 20
Sinh viên thực hiện: Lâm Quang Kha Ly – MSSV: 1111242
Ghi chú
16
Đề tài: hỗ trợ tìm kiếm nhà trọ trên smartphone
GVHD: Nguyễn Thanh Hải
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
I. CÁC LOẠI ỨNG DỤNG SMARTPHONE:
Navtive Application: Là những ứng dụng được xây dựng theo cách chính
thống với các ngôn ngữ lập trình/nền tảng do các nhà sản xuất di động quy định
(ví dụ: Objective-C cho iOS và Java cho Android, .Net cho Windows Phone,…).
Ưu điểm của dạng ứng dụng này là nhà phát 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ư hệ thống file, camera, microphone,
accelerometer,…). 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 tảng web (mà
điển hình là HTML5), chỉ hoạt động trên trình duyệ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ện 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 đi mới
cho việc phát triển ứng dụng di động. Ưu điểm là có thể thoải mái phát triển ứng
dụng mà không cần quan tâm tới nền tảng vì nó cross-platform. Nhược điểm là
không có được sức mạnh truy cập sâu vào hệ thống và thiết bị như native app.
Hybrid Application: Là con lai của 2 dạng ứng dụng trên. Có thể hiểu nôm
na ứng dụng này là: một native application chỉ có một đối tượng webview trên
màn hình, dùng để hiển thị nội dung trang web app, và web app giao tiếp với
native app thông qua một cầu nối (bridge) để mang lại sức mạnh của native app
cho web app. Vì vậy nhược điểm của nó là khó có thể xây dựng một ứng dụng đòi
hỏi tốc độ xử lý quá nhanh và cần tận dụng tối đa phần cứng như các game đồ họa
cao.
Sinh viên thực hiện: Lâm Quang Kha Ly – MSSV: 1111242
17
Đề tài: hỗ trợ tìm kiếm nhà trọ trên smartphone
GVHD: Nguyễn Thanh Hải
.
Hình 2. 1 Bảng so sánh các dạng ứng dụng mobile
II. HYBRID APPS
II.1 Tại sao nên phát triển hybrid apps
Theo như những phân tích như trên, để phát triển một ứng dụng có khả
năng truy cập đến hệ thống, phần cứng của thiết bị thì chỉ có thể là Navtive
Application hoặc Hybrid Application. Ngoại trừ ứng dụng trò chơi đồ họa cao, với
đa số ứng dụng hiện nay Hybrid Application đã cho thấy sức mạnh vượt trội của
nó so với Navtive Application với cùng khả năng nhưng có khả năng đa nền tảng
mà Navtive Application đạt được, ngoài ra chi phí còn tiết kiệm hơn từ 30% - 90%.
Biểu đồ sau đây sẽ cho ta thấy rõ điều đó:
Sinh viên thực hiện: Lâm Quang Kha Ly – MSSV: 1111242
18
Đề tài: hỗ trợ tìm kiếm nhà trọ trên smartphone
GVHD: Nguyễn Thanh Hải
Hình 2. 2 Biểu đồ chi phí tiết kiệm khi phát triển ứng dụng hybrid so với native
Theo dự đoán của các chuyên gia năm 2016 sẽ có hơn 50% ứng dụng sẽ
là Hybrid:
Hình 2. 3 Biểu đồ so sánh các loại ứng dụng di động 2016
II.2 Các framework hàng đầu để phát triển Hybrid Applications.
Sinh viên thực hiện: Lâm Quang Kha Ly – MSSV: 1111242
19
Đề tài: hỗ trợ tìm kiếm nhà trọ trên smartphone
GVHD: Nguyễn Thanh Hải
II.2.1 IONIC
IONIC là một trong những framework đầy hứa hẹn để phát triển ứng dụng
lai. Được xây dựng bằng cách sử dụng SASS (một dạng mở rộng của CSS), nó
cung cấp nhiều thành phần giao diện người dùng để giúp phát triển các ứng dụng
phong phú và tương tác. IONIC sử dụng các framework JavaScript MVVM,
AngularJS để xử lí trong ứng dụng, có kết nối dữ liệu 2 chiều, tương tác với dịch
vụ máy chủ, là sự lựa chọn phổ biến của các lập trình viên di động sử dụng
AngularJS. Với việc phát hành sắp tới của phiên bản AngularJS 2.0, nó chắc chắn
sẽ càng phổ biển hơn nữa.
Nhóm nghiên cứu tại IONIC sẽ sớm được giới thiệu một cách dễ dàng hơn
để tạo ra các ứng dụng IONIC với IONIC Creator. Chương trình này sẽ được phát
hành sớm và sẽ có chức năng kéo và thả dễ dàng hơn đối với người mới bắt đầu
II.2.2 Intel XDK
Intel XDK là một công cụ phát triển ứng dụng đa nền tảng được phát triển
bởi Intel. Bắt dầu lập trình với Intel XDK rất dễ dàng với công cụ được miễn phí
và có thể cài đặt trên các hệ điều hành Linux, Windows và Mac. Nó cung cấp một
số mẫu để hướng dẫn và một số framework giao diện người dùng như Twitter
bootstrap, jQuery Mobile và Topcoat.
Điểm mạnh của Intel XDK là phát triển ứng dụng trò chơi 2D rất tốt, hỗ trợ
được nhiều công nghệ làm trò chơi như: Cocos2d-JS Lite 3, EaselJS*, Pixi*…
Trên quan điểm cá nhân của nhiều lập trình viên, đa số đều nghĩ rằng phát
triển ứng dụng với Intel XDK là dễ nhất. Bời vì nó sử dụng phương thức kéo thả
là phương pháp tiếp cận chính, tuy nhiên nó cũng tạo ra rất nhiều mã không cần
thiết.
II.2.3 Appcelerator Titanium
Sinh viên thực hiện: Lâm Quang Kha Ly – MSSV: 1111242
20
Đề tài: hỗ trợ tìm kiếm nhà trọ trên smartphone
GVHD: Nguyễn Thanh Hải
Appcelerator Titanium là một framework mạnh mẽ mã nguồn mở để lập
trình ứng dụng di động, nó cung cấp một môi trường tạo ứng dụng gốc cho nhiều
nền tảng di động khác nhau.
Titanium là một giải pháp hoàn chỉnh cho việc tạo ra các ứng dụng di động
hybrid. Để bắt đầu với Titanium cần phải tải Titanium Studio, nó được trang bị
nhiều API nền tảng điện thoại di động và các dịch vụ đám mây để sử dụng như
một phụ trợ ứng dụng, các hàm API không phụ thuộc vào nền tảng, thêm với việc
sử dụng MVC framework, Alloy framework nên dễ dàng truy cập vào phàn cứng
của thiết bị khác nhau, mã nguồn dễ tái sử dụng và giảm thời gian phát triển.
Hiện nay nó chỉ hỗ trợ thực sự tốt cho hai hệ điều hành chính là Android,
iOS và Blackberry còn trên Window Phone và một số nền tảng khác còn hạn chế,
tuy nhiên với sự phát triển nhanh chóng của nó đây sẽ là một đối thủ nặng ký cho
các framework còn lại.
II.2.4 Sencha Touch.
Sencha Touch là framework HTML 5 xây dựng các ứng dụng di động tạo
ra các ứng dụng cho nhiều nền tảng bao gồm iOS, Android và Blackberry. Nó
cũng là một trong framework di động được nhiều người biết đến.
Thế mạnh của Sencha Touch với đối thủ cạnh tranh của nó là cung cấp giao
diện gốc cho tất cả các nền tảng được hỗ trợ. Bắt đầu với Sencha Touch không khó
nhưng để lập trình thực sự tốt với framework này,lập trình viên cần phải đầu tư
một lượng thời gian đáng kể.
II.2.5 PhoneGap
Sinh viên thực hiện: Lâm Quang Kha Ly – MSSV: 1111242
21
Đề tài: hỗ trợ tìm kiếm nhà trọ trên smartphone
GVHD: Nguyễn Thanh Hải
PhoneGap là một nhân tố không hẳn được nằm trong danh sách này, vì nó
được biết đến như là công cụ đóng gói và phát hành ứng dụng nhiều hơn.
PhoneGap được hình thành dựa trên framework Cordova, được Adobe mua lại và
cung cấp thêm các dịch vụ nói trên với hình thức trả phí.
Bạn có thể sử dụng bất kì framework Javasript và giao diện người dùng nào
để xây dựng ứng dụng, jQuery Mobile cùng KnockOut.js hoặc AngularJS là một
sự kết hợp tốt đẹp. Nó hỗ trợ tập các hàm API để truy cập sâu vào thiết bị, đám
ứng được hầu hết các nhu cầu của ứng dụng hiện tại .Sau khi hoàn thành mã
chương trình, PhoneGap sẽ đóng gói toàn bộ mã đó thành các phiên bản cho các
nền tảng khác nhau theo yêu cầu.
Với hình thức dễ tiếp cận và mạnh mẽ của nó PhoneGap hiện nay là
framework dùng cho lập trình ứng dụng lai di động phổ biến nhất thế giới.
III. CÁC NGÔN NGỮ SỬ DỤNG TRONG ĐỀ TÀI.
Với đề tài “Hỗ trợ tìm kiếm nhà trọ trên smartphone”, tôi đã chọn phát triển
ứng dụng này theo dạng ứng dụng lai trên di động. Theo như những lý thuyết đã
đề cập như trên, ứng dụng sẽ được xây dựng ở 2 phía bao gồm phía người dùng và
phía máy chủ. Phía người dùng sẽ đảm nhận nhiệm vụ hiển thị giao diện nhận tao
tác, dữ liệu lưu cục bộ và truyền cho bộ kết nối chuyển đến phía chủ sẽ nhận dữ
liệu lưu thông tin và truy xuất thông tin cơ sở dữ liệu máy chủ để bộ kết nối lấy về
cho các yêu cầu của phía người dùng. Phía người dùng sử dụng cơ sở dữ liệu
SQLite và các ngôn ngữ lập trình là HTML5, CSS, JavaScript hoặc TypeScript và
một hybrid apps Framework là bắt buộc, ở đây tôi chọn JavaSript và Framework
Apache Cordova, ngoài ra đặc thù của đề tài này cần sử dụng đến Google Map
API v3. AJAX được xem như là bộ kết nối được đề cập đến. Còn phía máy chủ
chúng ta có rất nhiều cặp ngôn ngữ lập trình và cơ sở dữ liệu, với đề tài này tôi sử
dụng PHP và MySQL vì nó đáp ứng được mục tiêu của phát triển của ứng dụng
này là sử dụng các ngôn ngữ, công cụ lập trình mã nguồn mở hoặc miễn phí.
Các ngôn ngữ và hệ quản trị cơ sở phía người dùng.
III.1 Apache cordova:
III.1.1 Cordova là gì?
Như chúng ta đã đề cập về các framework hàng đầu để lập trình ứng dụng
lai ở trên. Phonegap hiện đang đứng vị trí đầu tiên, tại sao nó lại có sức hút lớn
như vậy, chính là nhờ cái nhân điều khiển mọi hoạt động của nó là Cordova.
Cordova là một framework mã nguồn mở giúp lập trình viên sử dụng HTML,
JavaSript và CSS để lập trình ứng dụng di động đa nền tảng có khả năng sử dụng
Sinh viên thực hiện: Lâm Quang Kha Ly – MSSV: 1111242
22
Đề tài: hỗ trợ tìm kiếm nhà trọ trên smartphone
GVHD: Nguyễn Thanh Hải
các tính năng của phần cứng như Camera, GPS hay cảm biển gia tốc. Những ứng
dụng tạo ra bằng cách sử dụng framework Cordova sau khi đóng gói đều có thể
đưa lên các chợ ứng dụng của các nền tảng di động khác nhau.
III.1.2 Lịch sử hình thành Apache Cordova
Nói về Cordova trước hết phải bắt đầu với Phonegap. Phonegap được tạo ra
bởi công ty Nitobi năm 2008 và được phát hành như một sản phẩm mã nguồn mở
và miễn phí. Nó nhanh chóng phổ biển trong giới lập trình viên, đặc biệt đáp ứng
được nhu cầu lập trình ứng dụng di động nhanh chóng mà không cần có kiến thức
sử dụng ngôn ngữ lập trình ứng dụng gốc. Lập trình viên có thể dễ dàng sử dụng
những kỹ năng phát triển web phía người dùng đã có để xây dựng ứng dụng.
Trong lần công bố đầu tiên, Phonegap cung cấp những hàm API JavaSript
đơn giản để làm việc với những tính năng gốc trên thiết bị, và chỉ một số ít tình
năng được hỗ trợ. Nhưng trải qua thời gian, Phonegap đã phát triển to lớn gồm hầu
hết các tính năng gốc như máy ảnh, tập tin hệ thống, cảnh báo,…
Đến tháng 10 năm 2011, Adobe công bố mua lại Nitobi, và Adobe đã biến
Phonegap thành phiên bản có phí với việc cung cấp thêm các dịch vụ xung quanh
xây dựng ứng dụng dựa trên nó. Cũng cùng lúc đó, Nitobi đã quyết định tặng dự
án mã nguồn mở Phonegap cho tổ chức phần mềm Apache. Từ đó hình thành dự
án mới là Apache Cordova, cũng chính là framework đang được nói đến.
III.1.3 Tại sao lại sử dụng Apache Cordova?
Nếu là một lập trình viên hay những người làm việc trong lĩnh vực tin học
chắc hẳn còn nhớ đến thuật ngữ: “Write one, run any where” xuất hiện và trở
thành một cơn sốt vào ngày 23/05/1995. Ngày mà công ty máy tính Sun
Microsystems đã 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 hành OS và 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 đúng một lần, sau đó có thể sử dụng ứng dụng
này trên các hệ điều hành khác nhau như Windows XP, WindowsNT, Mac OS,
Unix,… theo phương châm: “viết một lân, chạy ở bất kỳ đâu”. Như vậy trước tiên,
Apache Cordova chính là truyền nhân suất sắc của Java khi hoàn thiện và đẩy tiêu
chí “Write one, run any Where” lên một tầm cao mớ trên các nền tảng điện thoại
di động.
III.1.4 Những ưu điểm khi sử dụng Apache cordova?
Cordova cho phép chúng ta “write once, run everywhere” (viết một
lần nhưng chạy trên mọi thiết bị).
Sinh viên thực hiện: Lâm Quang Kha Ly – MSSV: 1111242
23
Đề tài: hỗ trợ tìm kiếm nhà trọ trên smartphone
GVHD: Nguyễn Thanh Hải
Chỉ cần có kiến thức về HTML5, CSS3, Javascript là có thể làm
được.
Ta có được các file cài đặt trên mỗi nề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,…)
Là một framework mã nguồn mở, hoàn toàn miễn phí và có thể tự
phát triển thêm các plugin nếu cần.
Được phát triển bởi một cộng đồng đông đảo nên sẽ không sợ lạc
hậu, và được hỗ trợ bởi Microsoft trong việc lập trình bằng việc đưa
Apache cordova vào công cụ Visual Studio.
III.1.5 Những hạn chế của Apache cordova?
Khó hoạt động trên các mobile có browser cũ không hỗ trợ
javascript và tốc độ chậm.
Khả năng đồ họa hạn chế (3D).
III.1.6 Cách thức Apache cordova hoạt động
Hình 2. 4 kiến trúc bên trong của ứng dụng Cordova
Trong phạm vi của ứng dụng native application, thì giao diện làm việc của
ứng dụng về bản chất bao gồm duy nhất một màn hình và nó cũng giống như một
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
Sinh viên thực hiện: Lâm Quang Kha Ly – MSSV: 1111242
24
Đề tài: hỗ trợ tìm kiếm nhà trọ trên smartphone
GVHD: Nguyễn Thanh Hải
ứng dụng được khởi chạy thì nó sẽ tải trang page khởi tạo của ứng dụng (thông
thường là trang index.html nhưng lập trình viên có thể dễ dàng thay đổi thành
trang khác) vào trong khung nhìn web view và sau đó chuyển điều khiển tới web
view để cho phép người dùng tương tác với ứng dụng web application. Khi người
dùng tương tác với nội dung của ứng dụng, thì các liên kết links hay các mã
JavaScript trong phạm vi ứng dụng đó co thể tải các nội dung khác từ các files tài
nguyên được đóng gói trong ứng dụng này, hay có thể truy cập thông qua mạng
network và tải các nội dung từ một website hay từ một server về.
Đối với một vài nền tảng mobile như bada, Symbian hay webOS thì ứng
dụng native application về bản chất chính là 1 ứng dụng web application.
III.1.7 Định nghĩa về web view
Web view là 1 thành phần của ứng dụng native application mà được sử
dụng để biểu diễn nội dung web content (thông thường là các trang HTML) trong
phạm vi 1 cửa sổ hay 1 màn hình của ứng dụng native application. Về bản chất thì
nó giống như 1 thành phần có khả năng tiếp cận theo hướng lập trình, được đó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 chạy trong phạm vi 1 webview cũng giống như
bất kì những ứng dụng web application khác mà chúng được chạy bên trong 1
trình duyệt web của mobile. Nó có thể mở các trang HTML khác (theo cả 2 cách:
1 cách địa 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 dụng chịu trách nhiệm
thực thi xử lý các điều kiện logic, ẩn hiện nội dung content nếu cần, chơi các
media files, mở các trang pages mới, thực thi các tính toán, và nhận về nội dung
content từ sever hay gửi nội dung content tới server. Giao diện của ứng dụng được
tạo thành từ HTML và CSS.
Một trình duyệt web mobile thông thường không có khả năng truy cập vào
các thành 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 phần bên trong của thiết bị, vượt ra ngoài 1 trình
duyệt web thông thường. Cordova trợ giúp cho điều cần thiết này bằng cách cung
cấp ra 1 bộ các hàm JavaScript APIs, cho phép các nhà phát triển phần 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
Cordova có khả năng truy cập vào các thành phần 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 1 ứng dụng mà nó có sử dụng 1
trong các hàm Cordova APIs, thì ứng dụng gọi tới API bằng cách sử dụng
Sinh viên thực hiện: Lâm Quang Kha Ly – MSSV: 1111242
25