Tải bản đầy đủ (.pdf) (40 trang)

xây dựng bản đồ chia sẽ địa điểm giải trí tại thành phố cần thơ trên thiết bị di động andriod

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.51 MB, 40 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CẦN THƠ
KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG

LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
NGÀNH KỸ THUẬT PHẦN MỀM

Đề tài

XÂY DỰNG BẢN ĐỒ CHIA SẼ
ĐỊA ĐIỂM GIẢI TRÍ TẠI THÀNH PHỐ CẦN
THƠ TRÊN THIẾT BỊ DI ĐỘNG ANDRIOD

Sinh viên: Lê Trương Quốc Thắng
Mã số: 1111342
Khóa: K37

Cần Thơ, 8/5/2015


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CẦN THƠ
KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
BỘ MÔN CÔNG NGHỆ PHẦN MỀM

LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
NGÀNH KỸ THUẬT PHẦN MỀM

Đề tài

XÂY DỰNG BẢN ĐỒ CHIA SẼ


ĐỊA ĐIỂM GIẢI TRÍ TẠI THÀNH PHỐ CẦN
THƠ TRÊN THIẾT BỊ DI ĐỘNG ANDRIOD
Người hướng dẫn
PGS.TS Trần Cao Đệ

Sinh viên thực hiện
Lê Trương Quốc Thắng
Mã số: 111342
Khóa: K37

Cần Thơ, 8/5/2015


Luận văn tốt nghiệp Đại học – Khóa 37

Đại học Cần Thơ

LỜI CẢM ƠN
Luận văn này cũng như bao luận văn khác, được hoàn thành một cách tốt đẹp nhờ
sự giúp đỡ của những người xung quanh. Dù trực tiếp hay gián tiếp thì đều rất đáng
trân trọng.
Xin gửi lời cảm ơn sâu sắc nhất đến trường Đại học Cần Thơ, khoa CNTT & TT
đã tạo ra một môi trường tốt nhất để em học tập. Cảm ơn quý thầy cô trong khoa đã
dạy dỗ tận tâm cho tất cả sinh viên. Đặc biệt cảm ơn thầy Trần Cao Đệ đã chấp nhận
hướng dẫn và nhiệt tình hỗ trợ em thực hiện đề tài này.
Cũng xin gửi lời cảm ơn đến các chủ quán và toàn thể người dùng của ứng dụng
vì đã cùng nhau tạo ra một cộng đồng chia sẽ địa điểm chất lượng.
Trân trọng!
Cần Thơ, tháng 5 năm 2015
Sinh viên thực hiện

Lê Trương Quốc Thắng

Trang 3


Luận văn tốt nghiệp Đại học – Khóa 37

Đại học Cần Thơ

MỤC LỤC
LỜI CẢM ƠN.....................................................................................................3
DANH MỤC ĐỒ THỊ VÀ BIỂU BẢNG: .........................................................6
TÓM TẮT: .........................................................................................................7
ABSTRACT: ......................................................................................................8
CHƯƠNG 1. GIỚI THIỆU TỔNG QUAN .......................................................9
1.1

Đặt vấn đề ............................................................................................9

1.2

Tóm tắt lịch sử giải quyết vấn đề ........................................................9

1.3

Mục tiêu đề tài ...................................................................................10

1.4

Đối tượng và phạm vi nghiên cứu .....................................................11


1.5

Nội dung nghiên cứu .........................................................................11

1.6

Những đóng góp chính của đề tài ......................................................12

1.7

Bố cục quyển luận văn ......................................................................12

CHƯƠNG 2. SƠ LƯỢC VỀ CÁC CÔNG NGHỆ SỬ DỤNG .......................14
2.1

Android ..............................................................................................14

2.2

Google Maps Android API V2 ..........................................................15

2.3

Back-end as service (Baas) - Parse.com............................................16

2.4

Quản lý hình ảnh trên mây (Imgur.com) ..........................................17


2.5

Facebook Android SDK ....................................................................18

CHƯƠNG 3. PHÂN TÍCH VÀ THIẾT KẾ PHẦN MỀM ..............................19
3.1

Các yêu cầu chính về chức năng .......................................................19

3.1.1 Các chức năng chính .....................................................................19
3.1.2 Phân tích đánh giá các giải pháp/ có liên quan đến bài toán ........20
3.1.3 Tiếp cận giải quyết vấn đề, chọn lựa giải pháp.............................21
3.2

Thiết kế và cài đặt giải pháp ..............................................................21

3.2.1 Thiết kế tổng thể hệ thống ............................................................21
3.2.2 Thiết kế theo chức năng ................................................................22
3.2.3 Thiết kế giao diện và giải thích chức năng ...................................24
3.2.4 Thiết kế chi tiết .............................................................................30
Trang 4


Luận văn tốt nghiệp Đại học – Khóa 37

Đại học Cần Thơ

3.2.5 Tối ưu ứng dụng ............................................................................31
3.2.6 Các vấn đề và giải pháp quản trị dữ liệu .......................................33
3.3


Kiểm thử và đánh giá ........................................................................34

3.3.1 Mục tiêu kiểm thử .........................................................................34
3.3.2 Kịch bản kiểm thử .........................................................................34
3.3.3 Các trường hợp kiểm thử ..............................................................34
3.3.4 Kết quả kiểm thử ...........................................................................36
3.3.5 Đánh giá ........................................................................................36
CHƯƠNG 4. KẾT LUẬN ................................................................................37
3.1

Kêt quả đạt được................................................................................37

3.2

Hướng phát triển ................................................................................37

TÀI LIỆU THAM KHẢO ................................................................................39
PHỤ LỤC .........................................................................................................40

Trang 5


Luận văn tốt nghiệp Đại học – Khóa 37

Đại học Cần Thơ

DANH MỤC ĐỒ THỊ VÀ BIỂU BẢNG:
Hình 1. Các mẫu điện thoại thông dụng tại Cần Thơ (khảo sát 500 máy) .......15
Hình 2. Sơ đồ thiết kế tổng thể hệ thống ..........................................................22

Hình 3. Sơ đồ Use Case ....................................................................................23
Hình 4. Sơ đồ lớp .............................................................................................30
Bảng 1. Kết quả kiểm thử .................................................................................36

Trang 6


Luận văn tốt nghiệp Đại học – Khóa 37

Đại học Cần Thơ

TÓM TẮT:
Thành phố Cần Thơ nói riêng cũng như nước Việt Nam nói chung đang trên đà
phát triển mạnh mẽ. Cùng với đó, các địa điểm giải trí cũng được tạo ra và thay đổi
theo từng ngày. Với sự vận động nhanh chóng như vậy, việc tạo ra một công cụ để
hệ thống hóa và cập nhật nhanh chóng các địa điểm là điều hết sức cần thiết.
Các hệ thống hiện tại như Google Maps, Foody, FourSquare … đều có nhược
điểm là thông tin đến với người dùng chậm chậm và sự thay đổi thông tin còn chậm
hơn. Nhận thức được điều này, hệ thống mới phải được xây dựng trên xu hướng mở
mạnh mẽ, giúp người dùng chia sẽ và đánh giá địa điểm với nhau.
Ứng dụng sẽ gợi ý cho người dùng những địa điểm phù hợp với yêu cầu, người
dùng chỉ việc lựa chọn một chỗ để đến và trải nghiệm.

Trang 7


Luận văn tốt nghiệp Đại học – Khóa 37

Đại học Cần Thơ


ABSTRACT:
Can Tho city in particular and Vietnam in general is on track to grow strongly.
Along with that, the entertainment places are also created and changed day by day.
With this movement, creating a tool to systematize and update places quickly is
essential.
The current system, such as Google Maps, Foody, FourSquare... are
disadvantages that information come to user slow and change more slowly. Aware
of this, the new system must be built on strong tendency open, allowing users to
share and review the places together.
Applications will suggest to users a list of places matching their requirements,
users simply choose a place to come and experience.

Trang 8


Luận văn tốt nghiệp Đại học – Khóa 37

Đại học Cần Thơ

CHƯƠNG 1. GIỚI THIỆU TỔNG QUAN
1.1

Đặt vấn đề

Ngày nay, nhu cầu tìm kiếm một địa điểm để đi chơi, học nhóm, tụ họp bạn bè là
không thể thiếu trong cuộc sống của những con người hiện đại. Khi con người hiện
đại muốn làm điều gì thì họ thường tìm hiểu thông tin về điều đó trước, việc muốn đi
chơi cũng không ngoại lệ. Tuy nhiên để tìm được một địa điểm như ý là không dễ
dàng vì thông tin quá nhiều nhưng lại rời rạc. Chắc hẳn ai trong chúng ta cũng từng
nhiều lần tự hỏi những câu như đi chơi/ đi ăn uống/ nhậu nhẹt/ hẹn hò ở đâu bây giờ?

Đây là một vấn đề cần được giải quyết và đã được giải quyết nhưng vẫn chưa có giải
pháp nào thật sự hoàn hảo.
Chỉ riêng tại thành phố Cần Thơ, các địa điểm giải trí đang phát triển ngày càng
nhanh và đa dạng. Nhu cầu có một hệ thống để người dùng có thể chia sẽ, tim tìm
kiếm địa điểm là hết sức cần thiết.

1.2

Tóm tắt lịch sử giải quyết vấn đề

Để trả lời câu hỏi vừa nêu đã có rất nhiều phần mềm – giải pháp ra đời. Có thể
kể những sản phẩm tiêu biểu như:
- Google Maps:
 Ưu điểm: Kho dữ liệu khổng lồ với hơn 100 triệu địa điểm trên toàn thế giới.
Địa điểm và thông tin liên quan được kiểm duyệt chặt chẽ, cho phép người
dùng tương tác. Ứng dụng trên di động thể hiện xuất sắc.
 Nhược điểm: Quy trình xét duyệt chậm, không thích hợp với tình hình thuê
mướn mặt bằng để bán quán ở TP Cần Thơ hiện nay. Các trường thông tin về
địa điểm còn ít, thiếu chi tiết. Google Map chỉ trả lời câu hỏi “đi như thế nào?”
(dẫn đường) chứ không thể trả lời câu hỏi “đi đâu?”.
- Foody: Một công ty startup về mô hình đánh giá địa điểm ăn uống của Việt Nam.
 Ưu điểm: Thông tin địa điểm rất chi tiết, được kiểm duyệt, phân loại rõ ràng.
Kho dữ liệu hơn 30.000 địa điểm ở Việt Nam. Có tính tương tác mạnh mẽ,
chia sẽ thông tin dễ dàng.
 Nhược điểm: Hình ảnh về thực phẩm hơi ảo (quá đẹp), có lẽ chủ yếu do đội
ngủ khảo sát của Foody hoặc chủ quán thực hiện nên không khách quan lắm.
Chức năng duyệt thông tin còn chậm, đánh giá về địa điểm mập mờ. Ứng dụng
trên di động khó sử dụng, cho cảm giác không thoải mái
- FourSquare:
 Ưu điểm: Kho dữ liệu lớn trên toàn cầu, nhiều hình ảnh, thông tin chi tiết. Tích

hợp mạng xã hội sâu và hiệu quả.
Trang 9


Luận văn tốt nghiệp Đại học – Khóa 37

Đại học Cần Thơ

 Nhược điểm: Ứng dụng di dộng chưa tốt lắm. Giao diện khó sử dụng, bố trí
không gian không tốt. Chưa hỗ trợ tiếng Việt, các địa điểm ở Việt Nam còn sơ
khai.
- Các nhóm chia sẽ về ăn uống trên Facebook: Cần Thơ măm măm 24h, Thích ăn
uống,…
 Ưu điểm: tính chia sẽ và tương tác cao, thông tin được cộng đồng chia sẽ và
công nhận. Địa điểm cập nhật từng ngày, từng giờ.
 Nhược điểm: Khi muốn tìm lại địa điểm nào đó sẽ rất khó khăn vì mỗi địa
điểm đươc thể hiện như một trạng thái Facebok, sẽ chìm dần theo dòng thời
gian.
Ngoài ra gần đây tại TP Cần Thơ còn xuất hiện một trang web
( chia sẽ những địa điểm trên địa bàn TP tuy nhiên dữ
liệu còn quá ít ỏi.
Một trong nhưng hạn chế rất lớn của những phần mềm nói trên hiện nay là thông
tin không thay đổi (hoặc rất chậm) theo thời gian trong khi chất lượng của địa điểm
thì thay đổi từng ngày.
Đề tài này xác định người dùng chính là yếu tố trung tâm. Người dùng cùng nhau
chia sẽ, bình luận, đánh giá địa điểm. Người dùng cũng là người cảm nhận nhanh
nhất sự thay đổi của địa điểm. Các thông tin từ một người xa lạ không liên quan đến
địa điểm sẽ là những thông tin khách quan và nhận được sự tin tưởng từ cộng đồng
nhất.
Ứng dụng hoàn thành sẽ là một nơi lý tưởng để cộng đồng cùng nhau chia sẽ

những địa điểm ưa thích của mình và biết thêm những địa điểm khác từ bạn bè khắp
nơi.

1.3

Mục tiêu đề tài

Xây dựng bản đồ chia sẽ địa điểm tại TP Cần Thơ.
- Cung cấp thông tin chi tiết và khách quan nhất về địa điểm từ những người đã
từng đến và trải nghiệm.
- Chạy trên các thiết bị di dộng Android, người dùng có thể cầm trên tay mọi lúc
mọi nơi, khắc phục nhược điểm phải dùng PC để truy cập các group Facebook,
web để tra cứu thông tin.
- Thông tin về sự thay đổi của địa điểm cập nhật nhanh chóng từ những người dùng
khác, khắc phục nhược điểm thông tin đến từ chủ quán (một lần khi mở quán) nên
cứng nhắc và không được cập nhật.

Trang 10


Luận văn tốt nghiệp Đại học – Khóa 37

-

-

Liên kết mạnh mẽ với Facebook để quảng quá, chia sẽ thông tin mạnh mẽ hơn.
Mô hình mới để kết hợp những ưu điểm thông tin nhanh chóng của các nhóm
Facebook và dữ liệu được tổ chức và sắp xếp khoa học của ứng dụng
Tốc độ tải dữ liệu nhanh chóng, có thể sử dụng khi ngoại tuyến.

Xây dựng các tính năng nhỏ mà hữu ích như lấy thông tin từ trang fanpage trên
Facebook, từ Google Map, chạm vào số điện thoại để gọi, chạm vào mật khẩu để
tự động tìm và kết nối WiFi, chạm vào địa chỉ để hiển thị trên bản đồ và dẫn
đường.

1.4
-

-

-

-

Đối tượng và phạm vi nghiên cứu

Đối tượng:
 Lập trình Android
 API về bản đồ trên Android
 Thói quen người dùng
Pham vi:
 Giải thuật để tối ưu các địa điểm trên bản đồ
 Các kỹ thuật cải tiến hiệu năng của ứng dụng Android
 Google Map Android API V2
 Thói quen ăn uống/ đi chơi của người Cần Thơ

1.5
-

Đại học Cần Thơ


Nội dung nghiên cứu
Tìm hiểu các sản phẩm tương tự hiện có để học hỏi. Nhận ra những điểm yếu để
cải tiến
Khảo sát từ người quen/ bạn bè về những điều họ muốn biết về một địa điểm để
tạo ra đối tượng Địa điểm (Place).
Sử dụng Baas (Back-end as service) để đơn giản hóa việc cài đặt Back-end, chủ
yếu tập trung vào trải nghiệm người dùng. Ở đây sử dụng 2 dịch vụ là Parse
(Parse.com) cho việc lưu trữ đối tượng và Imgur (Imgur.com) để tối ưu tốc độ và
băng thông cho việc lưu trữ ảnh.
Tiếp tục học về lập trình di dộng nói chung và trên Android nói riêng.
Tìm hiểu và sử dụng Google Map API V2 Android cho ứng dụng.
Tìm hiểu và sử dụng Facebook Android SDK cho việc đăng nhập và chia sẽ thông
tin.
Tìm hiểu và áp dụng kỹ thuật làm mờ ảnh theo thời gian thực (Gaussian blur) vào
ứng dụng.
Sử dụng Android Studio làm công cụ lập trình chủ yếu.
Tiếp tục tìm hiểu các khái niệm, nguyên tắc cơ bản về thiết kế giao diện
Trang 11


Luận văn tốt nghiệp Đại học – Khóa 37

Sử dụng Photoshop cho việc thiết kế và xử lý cac hình ảnh, icon, marker,…
Sử dụng CloudCode (Code chạy trên Back-end) để tối ưu một số chức năng.
Tối ưu hiệu năng của các danh sách địa điểm, bản tin….

-

1.6

-

-

Đại học Cần Thơ

Những đóng góp chính của đề tài

Về lý thuyết:
 Hiểu sâu và áp dụng hợp lý các kỹ thuật lập trình hướng đối tượng với Java.
 Hiểu về lập trình di dộng nói chung cũng như lập trình với Android nói riêng,
có thể áp dụng tạo ra một phần mềm tốt.
 Biết cách sử dụng Baas, Facebook SDK
 Sử dụng thành thạo Android Studio
 Biết cách cải thiện hiệu năng cho một ứng dụng
 Có thể thiết kế giao diện và thành phần giao diện đơn giản, hiệu quả.
Về sản phẩm
 Có thể đưa ra những câu trả lời hợp lý cho câu câu hỏi “đi đâu?” tại Cần Thơ
 Có thể gợi ý những địa điểm đang được nhiều người quan tâm, nhiều người
đánh giá cao.
 Có thể dẫn đường ngay khi người dùng cần đi tới một địa điểm trên bản đồ.
 Hiển thị các địa điểm được tạo trên một dòng thời gian để người dùng có thể
lướt qua mà không cần xem chi tiết.
 Luôn có những địa điểm mới lạ dành cho người thích khám phá
 Tốc độ nhanh, ổn định. Có thể sử dụng khi ngoại tuyến một cách bình thường.

1.7

Bố cục quyển luận văn
Gồm 4 phần:

1. Phần giới thiệu
 Đặt vấn đề
 Lịch sử giải quyết vấn đề
 Mục tiêu đề tài
 Đối tượng và phạm vi nghiên cứu
 Những đóng góp chính của đề tài
 Bố cục quyển luận văn
2. Phần nội dung
 Chương 1 – Mô tả bài toán

Trang 12


Luận văn tốt nghiệp Đại học – Khóa 37

Đại học Cần Thơ

 Chương 2 – Thiết kế và cài đặt giải pháp
 Chương 3 – Kiểm thử và đánh giá
3. Phần kết luận
 Kết quả đạt được
 Hướng phát triển
4. Phần tài liệu tham khảo và phụ lục

Trang 13


Luận văn tốt nghiệp Đại học – Khóa 37

Đại học Cần Thơ


CHƯƠNG 2. SƠ LƯỢC VỀ CÁC CÔNG NGHỆ SỬ DỤNG
2.1

Android

Android là một hệ điều hành dựa trên nền tảng Linux được thiết kế dành cho các
thiết bị di động có màn hình cảm ứng như điện thoại thông minh và máy tính bảng.
Ban đầu, Android được phát triển bởi Tổng công ty Android, với sự hỗ trợ tài chính
từ Google và sau này được chính Google mua lại vào năm 2005. Android ra mắt vào
năm 2007 cùng với tuyên bố thành lập Liên minh thiết bị cầm tay mở: một hiệp hội
gồm các công ty phần cứng, phần mềm, và viễn thông với mục tiêu đẩy mạnh các tiêu
chuẩn mở cho các thiết bị di động. Chiếc điện thoại đầu tiên chạy Android được bán
vào tháng 10 năm 2008.
Android có mã nguồn mở và Google phát hành mã nguồn theo Giấy phép
Apache. Nhờ điểm này mà nó nhanh chóng trở thành hệ điều hành có số lượng người
dùng số 1 thế giới sau một thời gian ngắn ra mắt. Android chiếm 75% thị phần điện
thoại thông minh trên toàn thế giới vào thời điểm quý 3 năm 2012.
Tất cả những điều đó là lý do hợp lý nhất để chọn nền tảng Android. Tại Cần Thơ
số lượng người dùng Android cũng vô cùng đông đảo, đa phần là các điện thoại
Zenphone 5, Zenphone 4, các máy dòng Galaxy,..

Trang 14


Luận văn tốt nghiệp Đại học – Khóa 37

Đại học Cần Thơ

Hình 1. Các mẫu điện thoại thông dụng tại Cần Thơ (khảo sát 500 máy)


2.2

Google Maps Android API V2

Google Maps hay Bản đồ Google (thời gian trước còn gọi là Google Local) là
một dịch vụ ứng dụng và công nghệ bản đồ trực tuyến trên web miễn phí được cung
cấp bởi Google và hỗ trợ nhiều dịch vụ dựa vào bản đồ như Google Ride Finder và
một số có thể dùng để nhúng vào các trang web của bên thứ ba thông qua Google
Maps API. Nó cho phép thấy bản đồ đường sá, đường đi cho xe đạp, cho người đi bộ
và xe hơi, và những địa điểm kinh doanh trong khu vực cũng như khắp nơi trên thế
giới.
Google cũng phát hành riêng bộ Google Maps Android API V2 cho lập trình
viên. Với bộ API này, các lập trình viên có thể hiển thị bản đồ hoàn toàn tương tự
như ứng dụng Google Maps trên Android cũng như bản đồ trên Web. Một tính năng
quan trọng được sử dụng trong ứng dụng là thêm các đối tượng đánh dấu (Marker)
vào bản đồ. Mỗi Marker tượng trưng cho một địa điểm với các thông tin như tên, tọa
độ, địa chỉ,…
- Các tính năng Google Maps Android API V2 hỗ trợ:
 3D Rendering – Vẽ bản đồ 3D
 Draw on the Map – Thêm các Marker đại diện cho địa điểm vào bản đồ
 Gesture Control – Hỗ trợ các thao tác cử chỉ như zoom, vuốt,… để thay đổi
cách hiển thị bản đồ
 Vector Tiles – Tải bản đồ bằng các vector, giảm thời gian và băng thông

Trang 15


Luận văn tốt nghiệp Đại học – Khóa 37


-

-

Đại học Cần Thơ

 Location Services – Dịch vụ mới ra mắt trong Google Play Service 7, có thể
lấy các thông tin cơ bản của địa điểm từ bản đồ.
Sử dụng các tính năng sử dụng trong đề tài:
 3D Rendering: Dùng trong tính năng chỉ đường. Vẽ bản bản đồ ở dạng 3D để
người dùng dễ dàng nhận biết địa điểm và tên đường.
 Draw on the Map: Dùng trong tính năng hiển thị địa điểm trên bản đồ
 Gesture Control: Dùng để tối ưu hóa việc hiển thị địa điểm trên bản đồ, khi
người dùng hiển thị bản đồ ở đâu thì chỉ việc tải địa điểm ở lân cận đó.
 Vector Tiles – Giúp việc tải bản đồ nhanh và tốn ít băng thông
 Location Services – Dùng trong tính năng chọn địa điểm từ bản đồ, sau khi
người dùng chọn địa điểm, ứng dụng sẽ lấy các thông tin cơ bản của địa điểm
về và điền vào form tạo địa điểm.
Để sử dụng được Google Maps Android API V2 thì lập trình viên phải trải qua
nhiều bước:
 Cài đặt Android SDK
 Tải và cầu hình Google Play services SDK (chứa Google Maps Android API).
 Nhận API Key. Để làm điều này, lập trình viên phải đăng ký project trong
Google Developers Console sau đó nhận signing certificate (tạm gọi là chứng
nhận đăng ký).
 Thêm các thông tin vào manifest trong ứng dụng
 Thêm bản đồ vào ứng dụng
 Phát hành ứng dụng.

2.3


Back-end as service (Baas) - Parse.com

Cung cấp một giải pháp back-end hoàn chỉnh và tuyệt vời cho rất nhiều nền tảng
như Android, iOS, JavaScript, OSX, Unity, PHP, Xamarin, Arduino,.. Với Parse lập
trình viên có thể tập trung vào việc tao những trải nghiệm người dùng ở Front-end
mà không phải lo lắng những gì diễn ra ở phía sau.
Có thể giúp xây dựng ứng dụng với đầy đủ tính năng, mạnh mẽ. Parse sẽ xử lý
phần Back-end, lập trình viên chỉ cần chú trọng vào trải nghiệm người dùng
Các đặc điểm nổi bật:
- Tạo ứng dụng đẹp. Không cần bảo dưỡng máy chủ và sử dụng cơ sở hạ
tầng phức tạp.
- Có một chương trình phụ trợ để kiểm soát tất cả các ứng dụng SDK.
- Khả năng quản lý người dùng hữu hiệu dành cho ứng dụng. Kết nối người
dùng thông qua các quy trình đăng nhập truyền thống hoặc mạng xã hội
của bên thứ ba chỉ bằng vài dòng mã.
Trang 16


Luận văn tốt nghiệp Đại học – Khóa 37

Đại học Cần Thơ

Sơ lược về cách sử dụng: Parse nói riêng cũng như hầu hết các API khác nói
chung khi muốn sử dụng thì đều thông qua một quy trình như sau:
- Đăng ký tài khoản tại nhà cung cấp API
- Đăng ký ứng dụng với nhà cung cấp
- Nhận API key để sử dụng
- Tiến hành cài đặt các thư viện cần thiết
Trong đề tài này, việc lưu trữ và xử lý dữ liệu về đối tượng hoàn toàn thực hiện

với Parse. Việc tương tác cũng hoàn toàn tương tự các thao tác với cơ sở dữ liệu thông
thường. Có thể lấy một ví dụ cơ bản nhất như sau:
- Để sử dụng Parse, đầu tiên ta gọi hàm khởi tạo của thư viện như sau:
Parse.initialize(this,
"qx9Utb44munYCTVENaEnaGX0u9oEfol1E8gLRHJa",
"erTjc1DILdC9YieHLoXpz4Ceh8pZie0iU5l9QT3D");

-

Trong đó, 2 chuỗi ký tự lần lượt là ClientID và API Key mà chúng ta đã
đăng ký ở phần trước.
Tiếp theo chúng ta có thể sử dụng tất cả các tính năng của Parse, có thể
tạo một đối tượng đơn giản như sau;
ParseObject testObject = new ParseObject("TestObject");
testObject.put("foo", "bar");
testObject.saveInBackground();

Đoạn mã thực hiện tạo mới một đối tượng là testObject, sau đó thêm 1
thuộc tính là foo có giá trị là “bar”. Dòng code cuối cùng dùng để lưu trữ
đối tượng vừa tạo lên database.

2.4

Quản lý hình ảnh trên mây (Imgur.com)

Imgur là back-end lưu trữ và quản lý ảnh cho ứng dụng Web và Mobile. Một
giải pháp end-to-end cho tất cả hình ảnh
Các tính năng chính:
- Tải ảnh lên (Image Upload): Lưu ảnh hoặc tập tin bất kỳ với bất kỳ tỉ lệ nào
và từ bất kỳ nguồn nào. Điểm nổi trội của Cloudinary là tốc độ tải rất nhanh

- Lưu trữ trên mây (Cloud Storage): Lưu trữ ảnh một cách riêng tư và an toàn
với chế độ backup thường xuyên
- Chuyển đổi hình ảnh (Image Manipulation): Tự động sinh các thumbnail cho
ảnh (tính năng rất hữu ích)
Về cách đăng ký ứng dụng thì tương tự như Parse. Về cách sử dụng thì do Imgur
chưa có thư viện riêng cho Android (chưa có thư viện riêng cho bất cứ ngôn ngữ nào)
nên chúng ta phải tự viết lấy.
Trang 17


Luận văn tốt nghiệp Đại học – Khóa 37

Đại học Cần Thơ

Ý tưởng thực hiện như sau:
- Đầu tiên ta tạo lớp Photo để lưu trữ thông tin của một ảnh.
- Tiếp theo ta tạo lớp Upload, ImageResponse, ImgurAPI cho việc upload và
nhận kết quả trả về
- Tiếp theo ta tạo một lớp tác vụ để thực hiện việc upload ảnh dưới nền. Việc
này có thể dễ dàng thực hiện bằng cách thừa kế lớp Asynctask có sẵn trong
Android API. Lớp này sẽ thực hiện việc upload ảnh lên và nhận kết quả trả
về.
- Sau khi có kết quả chúng ta tiến hành lưu 2 thuộc tính quan trọng của ảnh là
link và deleteHash (dùng để xóa ảnh sau này) vào lớp Photo
- Lưu đối tượng Photo lại để sử dụng về sau.

2.5

Facebook Android SDK


Bộ SDK được Facebook phát triển và phân phối, cho phép ứng dụng tích hợp
nhiều tính năng của Facebook. Trong phạm vi của đề tài sử dụng 2 tính năng là đăng
nhập bằng Facebook (Facebok Login), Chia sẽ (Sharing) và lấy thông tin về các địa
điểm lân cận người dùng.
Facebook có cung cấp tính năng tìm kiếm địa điểm lân cận. Chỉ cần tuyền vào
tọa độ của người dùng, Facebook sẽ trả về một danh sách các địa điểm lân cận cùng
với các thông tin cơ bản như tên, địa chỉ, địa chỉ Facebook,…
Nhìn chung người dùng thì lười biếng, thường có xu hướng sử dụng hơn là tạo
ra. Hiểu được điều này nên đề tài này được phát triển theo cách giảm nhẹ nhất những
thao tác người dùng phải làm để tạo ra thứ gì đó. Việc tạo địa điểm là một tính năng
cốt lõi của ứng dụng, vậy nên để thuận tiện nhất cho người dùng thì địa điểm và các
thông tin cơ bản sẽ được lấy từ Facebook. Đây là một tính năng quan trọng và được
sử dụng nhiều trong ứng dụng.

Trang 18


Luận văn tốt nghiệp Đại học – Khóa 37

Đại học Cần Thơ

CHƯƠNG 3. PHÂN TÍCH VÀ THIẾT KẾ PHẦN MỀM
3.1

Các yêu cầu chính về chức năng
3.1.1 Các chức năng chính

-

Hiển thị địa điểm trên bản đồ:

 Hiển thị mỗi địa điểm bằng một đối tượng đánh dấu (Marker) tương ứng
với vị trí (kinh độ và vĩ độ) của địa điểm đó. Đối với các chủ bán hàng
online thì không hiển thị.
 Marker được thiết kế sẵn phù hợp với loại địa điểm để người dùng dễ dàng
nhận ra và tìm được loại địa điểm muốn tìm.
 Khi bấm chọn vào 1 marker thì sẽ phóng to marker đó lên (phản hồi cho
người dùng) đồng thời hiển thị các thông tin cơ bản về địa điểm đó.
 Trên ô thông tin có nút dẫn đường, khi người dùng bấm vào sẽ bật tính
năng dẫn đường
 Khi người dùng bấm vào vị trí bất kì trên ô thông tin sẽ dẫn vào màn hình
thông tin chi tiết.

-

Tìm kiếm địa điểm theo tên, thể loại, khoảng cách,...
 Theo tên: người dùng nhập tên địa điểm hoặc mô tả lên ô tìm kiếm, các địa
điểm thỏa mãn sẽ được liệt kê
 Theo thể loại: người dùng chọn một biểu tượng tượng trưng cho loại địa
điểm, tất cả các địa điểm thuộc thể loại đó sẽ được liệt kê
 Tất cả các liệt kê theo thứ tự từ gần đến xa

-

-

Xem các địa điểm theo dòng thời gian: Các địa điểm tạo ra sẽ được xếp trên một
dòng thời gian. Bao gồm hình ảnh đại diện và các thông tin cơ bản khác. Tại đây
người dùng có thể cuộn xem đến khi nào chán thì thôi (Infinitive scrolling).
Xem thông tin chi tiết về địa điểm qua mô tả, hình ảnh, bình luận
 Màn hình mô tả chi tiết cho phép người dùng xem đầy đủ thông tin mong

muốn về địa điểm như: Địa chỉ (bằng chữ và hình ảnh vị trí trên bản đồ),
giá cả (giá thấp nhất và cao nhất của quán), thời gian mở cửa và đóng cửa,
mô tả quán, các thông tin chi tiết nhỏ nhặt như mật khẩu WiFi, số diện
thoại, trang Facebook…

Trang 19


Luận văn tốt nghiệp Đại học – Khóa 37

Đại học Cần Thơ

 Có thể chọn vào album ảnh để xem chi tiết về ảnh
 Có thể bình luận bằng chữ và (hoặc) hình ảnh.
 Có thể báo xấu, báo sai thông tin để người đăng địa điểm/Admin điều
chỉnh
 Có thêm một số tính năng nhỏ: Bấm vào biểu tượng WiFi để kết nối vào
WiFi, bấm vào điện thoại để gọi, bấm vào biểu tượng ưa thích để thêm vào
ưa thích,…
-

Tạo và chỉnh sửa địa điểm:
 Người dùng đã đăng nhập sẽ có quyền tạo địa điểm.
 Màn hình tạo địa điểm thể hiện đẩy đủ các trường thông tin như đã nêu
 Các thông tin phức tạp như địa chỉ, link Facebook sẽ được chọn ra từ các
Picker (người dùng bấm vào rồi chọn từ một danh sách gợi ý)

-

-


-

Đăng nhập bằng Facebook, sau khi đăng nhập bạn có toàn quyền để tạo mới, xóa,
sửa các địa điểm của riêng mình. Hãy thể hiện mình là 1 người sành điệu và chia
sẽ các địa điểm sành điệu với bạn bè.
Đăng nhập và đăng ký thông thường: Nếu không có hoặc không muốn sử dụng
Facebook để đăng nhập, người dùng có thể chọn tạo tài khoản và đăng nhập như
thông thường.
Quên mật khẩu: Khi người dùng quên mật khẩu có thể yêu cầu một email với link
để reset mật khẩu.

3.1.2 Phân tích đánh giá các giải pháp/ có liên quan đến bài toán
-

-

Giải pháp lấy thông tin địa điểm từ chủ quán: Các chủ quán sẽ tạo tài khoản sau
đó đăng bài về quán của mình lên
 Ưu điểm: Thông tin chi tiết và đầy đủ, có thể phản hồi khách hàng (bằng
cách comment) khi cần thiết
 Nhược điểm: Thông tin không được khách quan
Giải pháp lấy thông tin từ người dùng: Mỗi người dùng có một tài khoản. Khi
ghé thăm quán mà mình ưa thích, người dùng sẽ đăng tải chia sẽ thông tin về địa
điểm đó.
 Ưu điểm: Thông tin khách quan (rất quan trọng)
 Nhược điểm: Người dùng bình thường có xu hướng muốn sử dụng những
cái có sẵn hơn là tự mình tạo ra. Thường ngại khi ăn gì cũng phải vừa ăn
vừa phải chụp hình. Người dùng sẽ thích ứng dụng có đầy đủ tất cả địa
Trang 20



Luận văn tốt nghiệp Đại học – Khóa 37

-

Đại học Cần Thơ

điểm, nhiệm vụ của họ chỉ là tìm và đến ăn sau đó có thể góp ý nhẹ bằng
bình luận và đánh giá (đánh số dấu sao).
Giải pháp lấy thông tin từ các bài đăng trên Facebook:
 Ưu điểm: Thông tin đến từ những người ăn uống/ đi chơi nhiều và tích cực
chia sẽ. Đây là nhóm người dùng tích cực và quan trọng, góp phần tạo nên
sự thành công của ứng dụng. Thông tin từ nguồn này rất rộng lớn, lại khách
quan, đầy đủ chi tiết và được kiểm chứng bởi nhiều người khác
 Thông tin rời rạc, không có định dạng thống nhất, địa chỉ không rõ ràng.
Đa phần viết theo cảm hứng.

3.1.3 Tiếp cận giải quyết vấn đề, chọn lựa giải pháp
Giải pháp được chọn lựa là lấy nguồn thông tin từ các bài đăng trên Facebook.
Sau đó tổng hợp và hệ thống lại. Sau khi đã có được nhiều địa điểm, các người dùng
bình thường sẽ đến với ứng dụng để tìm kiếm địa điểm cho mình. Từ đó ứng dụng sẽ
có được nhiều lượt truy cập và bình luận.

3.2

Thiết kế và cài đặt giải pháp
3.2.1 Thiết kế tổng thể hệ thống

Hệ thống xây dựng theo mô hình Client – Server. Điểm khác biệt ở đây là Server

chính là Bass và có tới 2 Baas (Parse.com để lưu trữ các dữ liệu về đối tượng và
Cloudinary.com để lưu trữ hình ảnh).
Client chính là thiết bị Android (ở đây bao gồm smartphone và tablet).

Trang 21


Luận văn tốt nghiệp Đại học – Khóa 37

Đại học Cần Thơ

Hình 2. Sơ đồ thiết kế tổng thể hệ thống

3.2.2 Thiết kế theo chức năng
Sơ đồ Use Case

Trang 22


Luận văn tốt nghiệp Đại học – Khóa 37

Đại học Cần Thơ

Hình 3. Sơ đồ Use Case

Trang 23


Luận văn tốt nghiệp Đại học – Khóa 37


Đại học Cần Thơ

3.2.3 Thiết kế giao diện và giải thích chức năng
Màn hình

Mô tả chức năng
Hiển thị địa điểm trên bản đồ
Các địa điểm hiển thị trực tiếp trên
bản đồ bằng một Marker thể hiện
tọa độ và thể loại địa điểm. Người
dùng có thể dễ dàng quan sát và tìm
địa điểm theo loại và vị trí mà mình
muốn

Dẫn đường
Sau khi chọn địa điểm, người dùng
có thể chọn chức năng chỉ đường.
Đường đi sẽ được sinh ra từ vị trí
hiện tại của người dùng tới địa
điểm đã chọn.

Trang 24


Luận văn tốt nghiệp Đại học – Khóa 37

Đại học Cần Thơ

Tìm kiếm địa điểm
Có thể dễ dàng tìm kiếm địa điểm

theo tên, loại (café, quán ăn,..), mô
tả.
Ngoài ra có thể bấm vào nút gần
đây để hiện thị tất cả địa điểm từ
gần đến xa
Thêm một tính năng đặc biệt và
khác biệt: Tìm đồ ăn giao hàng tận
nơi. Người dùng chỉ cần ngồi tại
chỗ, bấm vào nút gọi điện trên ứng
dụng và đợi hàng về.

Trang 25


×