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

Xây dựng ứng dụng tìm kiếm và quản lý nhà trọ online trên nền tảng di động

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 (3.34 MB, 59 trang )

ĐỒN THANH NIÊN CỘNG SẢN HỒ CHÍ MINH
BAN CHẤP HÀNH TP. HỒ CHÍ MINH
----------------------

CƠNG TRÌNH DỰ THI
GIẢI THƯỞNG SINH VIÊN NGHIÊN CỨU KHOA HỌC EURÉKA
LẦN THỨ XIX NĂM 2017

TÊN CÔNG TRÌNH :

XÂY DỰNG ỨNG DỤNG TÌM KIẾM VÀ QUẢN LÝ NHÀ TRỌ ONLINE TRÊN
NỀN TẢNG DI ĐỘNG

LĨNH VỰC NGHIÊN CỨU: CÔNG NGHỆ THÔNG TIN
CHUYÊN NGÀNH : CÔNG NGHỆ PHẦN MỀM

Mã số cơng trình : …………………………….


i

Tóm tắt
Đề tài phát triển ứng dụng “Tìm kiếm và quản lý nhà trọ online trên thiết bị
di động” giải quyết vấn đề khó khăn giữa người đi tìm th trọ và người cho thuê,
và việc quản lý các phòng trọ của người cho th. Ứng dụng có nhiều tính năng hỗ
trợ cho cả người tìm kiếm và quản lý phịng trọ cho th, đặc biệt như đăng tin tìm
người ở ghép phịng đã chọn, tìm kiếm phịng theo các tiêu chí cụ thể giúp cho
người dùng tìm kiếm phịng nhanh hơn và chính xác hơn phịng cần tìm; người quản
lý thì có thể nhanh chóng thống kê chỉ cần chọn các tiêu chí thống kê, tính tốn tiền
hàng tháng nhanh chóng và chính xác. Đáp ứng xu hướng áp dụng công nghệ thông
tin vào việc kinh doanh quản lý, thực hiện tự động hóa nghiệp vụ. Đem lại hiệu quả


cho việc quản lý và tìm kiếm phịng dễ dàng hơn.
Kết quả đã xây dựng được ứng dụng giải quyết được mục tiêu đề ra, ứng
dụng có thể hỗ trợ cho nhiều đối tượng người dùng và nhiều người chủ có thể quản
lý tốt hơn, đem lại hiệu quả cao.


ii

Mục lục
Tóm tắt ............................................................................................................................ i
Mục lục ........................................................................................................................... ii
Danh mục bảng biểu .................................................................................................... iv
Danh mục hình .............................................................................................................. v
CHƯƠNG 1 : TỔNG QUAN ĐỀ TÀI ......................................................................... 1
1.1

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

1.2

Nhiệm vụ đề tài.................................................................................................. 2

1.3

Cấu trúc đề tài .................................................................................................... 3

CHƯƠNG 2 : CƠ SỞ LÝ THUYẾT ........................................................................... 5
2.1

Tìm hiểu về nghiệp vụ quản lý .......................................................................... 5


2.1.1

Nghiệp vụ quản lý ....................................................................................... 5

2.1.2

Giải pháp quản lý ....................................................................................... 6

2.2

Tổng quan về lập trình di động .......................................................................... 7

2.3

Giới thiệu công cụ Android Studio.................................................................... 9

2.3.1

Giới thiệu về Android: ................................................................................ 9

2.3.2

Kiến thức liên quan ..................................................................................... 9

2.3.3

Android Studio .......................................................................................... 10

2.4


Giới thiệu dữ liệu JSON .................................................................................. 10

2.5

Tìm hiểu RXAndroid – RxJava2 ..................................................................... 11

2.6

Tìm hiểu thư viện Retrofit ............................................................................... 12

2.7

Cơng cụ quản lý cơ sở dữ liệu SQL Server ..................................................... 13

2.8

Giới thiệu Web API MVC5(Web service) ...................................................... 14

2.8.1

Giới thiệu về API ...................................................................................... 14

2.8.2

Giới thiệu về Web API .............................................................................. 14

CHƯƠNG 3 : PHÂN TÍCH THIẾT KẾ ................................................................... 16
3.1


Cơ chế hoạt động của ứng dụng ...................................................................... 16

3.2

Sơ đồ kiến trúc tổng thể ................................................................................... 17


iii

3.3

Sơ đồ chức năng và giao diện .......................................................................... 33

3.4

Sơ đồ thiết kế dữ liệu ....................................................................................... 37

CHƯƠNG 4: KẾT QUẢ THỰC NGHIỆM .............................................................. 44
4.1

Giới thiệu ......................................................................................................... 44

4.2

Chương trình mơ phỏng................................................................................... 44

4.2.1

Các chức năng chương trình .................................................................... 44


4.2.2

Kết quả thực nghiệm ................................................................................. 49

4.3

Kết luận............................................................................................................ 50

5.1

Các kết quả đã đạt được................................................................................... 51

5.2

Hướng phát triển tiếp theo ............................................................................... 51

TÀI LIỆU THAM KHẢO .......................................................................................... 52


iv

Danh mục bảng biểu
Bảng 2.1 So sánh performance Retrofit với Volley và AsyncTask. ............................. 13
Bảng 3.1 Mô tả các nghiệp vụ trong sơ đồ sử dụng. ..................................................... 20
Bảng 3.2 Đặc tả Use case đăng tin cho thuê. ................................................................ 22
Bảng 3.3 Đặc tả Use case đăng ký tìm phịng ở ghép. .................................................. 23
Bảng 3.4 Đặc tả Use case đăng ký quản lý. .................................................................. 23
Bảng 3.5 Đặc tả Use case thống kê. .............................................................................. 24
Bảng 3.6 Đặc tả Use case tính tiền nợ. ......................................................................... 24
Bảng 3.7 Đặc tả Use case cho thuê phòng. ................................................................... 25

Bảng 3.8 Bảng danh sách màn hình quản lý. ................................................................ 34
Bảng 3.9 Bảng danh sách màn hình tìm kiếm............................................................... 35
Bảng 3.10 Danh sách các thành phần dữ liệu. .............................................................. 38
Bảng 3.11 Đặc tả bảng CHUTRO. ................................................................................ 38
Bảng 3.12 Đặc tả bảng DANGKICT. ........................................................................... 39
Bảng 3.13 Đặc tả bảng KHACHTRO. .......................................................................... 39
Bảng 3.14 Đặc tả bảng CHITIETTRO. ......................................................................... 40
Bảng 3.15 Đặc tả bảng NHATRO................................................................................. 40
Bảng 3.16 Đặc tả bảng PHONG. .................................................................................. 40
Bảng 3.17 Đặc tả bảng QUANLYTRO. ....................................................................... 41
Bảng 3.18 Đặc tả bảng TIENNGHI. ............................................................................. 41
Bảng 3.19 Đặc tả bảng TINPHONGTRO. .................................................................... 41
Bảng 3.20 Đặc tả bảng NGUOIDUNG. ........................................................................ 42
Bảng 3.21 Đặc tả bảng HOADON. ............................................................................... 42
Bảng 3.22 Đặc tả bảng CHITIETSUDUNG. ................................................................ 42


v

Danh mục hình
Hình 2.1 Thị phần trong thị trường di động của các hệ điều hành. ................................ 7
Hình 2.2 Hoạt động của RXAndroid – RxJava2. .......................................................... 12
Hình 3.1 Cơ chế hoạt động của ứng dụng. .................................................................... 16
Hình 3.2 Sơ đồ Use Case System tổng thể.................................................................... 17
Hình 3.3 Sơ đồ Use Case Người tìm kiếm chi tiết. ....................................................... 18
Hình 3.4 Sơ đồ Use Case Chủ nhà chi tiết. ................................................................... 19
Hình 3.5 Sơ đồ Use Case Quản lý nhà. ......................................................................... 19
Hình 3.6 Sơ đồ Sequence Cho th phịng. .................................................................. 26
Hình 3.7 Sơ đồ Sequence Đăng kí quản lý. .................................................................. 26
Hình 3.8 Sơ đồ Sequence Đăng tin cho thuê. ............................................................... 27

Hình 3.9 Sơ đồ Sequence Thêm mới nhà mới. ............................................................. 27
Hình 3.10 Sơ đồ Sequence Thống kê. ........................................................................... 28
Hình 3.11 Sơ đồ Sequence Tìm kiếm phịng. ............................................................... 28
Hình 3.12 Sơ đồ Sequence Tính tiền. ........................................................................... 29
Hình 3.13 Sơ đồ Sequence Trả phịng. ......................................................................... 29
Hình 3.14 Sơ đồ Activity chức năng Đổi mật khẩu. ..................................................... 30
Hình 3.15 Sơ đồ Activity chức năng Quản lý khách hàng. ........................................... 30
Hình 3.16 Sơ đồ Activity chức năng Quản lý nhà. ....................................................... 31
Hình 3.17 Sơ đồ Activity chức năng Thống kê............................................................. 32
Hình 3.18 Sơ đồ Activity chức năng Thay đổi giá tiện nghi. ....................................... 32
Hình 3.19 Sơ đồ màn hình quản lý tổng thể. ................................................................ 33
Hình 3.20 Sơ đồ màn hình tìm kiếm tổng thể. .............................................................. 35
Hình 3.21 Sơ đồ Diagram Cơ sở dữ liệu. ...................................................................... 37
Hình 4.1 Giao diện đầu tiên khi vào ứng dụng quản lý(trái) và tìm kiếm(phải). ......... 44
Hình 4.2 Giao diện chính tìm kiếm. .............................................................................. 45
Hình 4.3 Giao diện chính quản lý. ................................................................................ 45
Hình 4.4 Giao diện tùy chọn chức năng chính. ............................................................. 46
Hình 4.5 Danh sách phịng để chọn xem thơng tin khách trong phòng. ....................... 47


vi

Hình 4.6 Tùy chọn quản lý. ........................................................................................... 47
Hình 4.7 Giao diện quản lý khu nhà trọ. ....................................................................... 48
Hình 4.8 Giao diện tính tiền hàng tháng cho từng phịng. ............................................ 48
Hình 4.9 Cho th phịng, thêm người mới vào phịng................................................. 49
Hình 4.10 Tìm kiếm phịng theo u cầu người dùng. ................................................. 49


1


CHƯƠNG 1 : TỔNG QUAN ĐỀ TÀI
1.1 Đặt vấn đề
Với sự phát triển bùng nổ của công nghệ thông tin như hiện nay thì việc ứng
dụng cơng nghệ thơng tin vào quản lý là hết sức cần thiết nhằm đơn giản hóa và nâng
cao hiệu suất cơng việc. Chính vì vậy mà sự lớn mạnh của các doanh nghiệp công
nghệ thơng tin trong nước đã và đang đóng một vai trị vơ cùng quan trọng trong sự
phát triển kinh tế của nước nhà.
Việt Nam đã chính thức gia nhập Tổ Chức Thương Mại Thế Giới, mở ra những
cơ hội và thách thức mới. Hịa mình vào dịng chảy kinh tế chun nghiệp có quy mơ
lớn nhất hành tinh, với những quy định mới áp dụng cho tất cả các tổ chức kinh tế, các
rào cản thương mại cũng từng bước được gỡ bỏ. Hội nhập kinh tế quốc tế càng sâu,
các sản phẩm của Việt Nam càng phải chịu áp lực cạnh tranh mạnh mẽ. Vì vậy, các
doanh nghiệp phải nghiên cứu, áp dụng công nghệ mới để tạo lợi thế cạnh tranh riêng
cho mình.
Việc dần thay thế, tự động hóa, vi tính hóa các thủ tục giấy tờ văn bản theo cách
làm việc hiện hành qua đó sẽ tạo ra phong cách, các cách thức mới trong việc quản lý
đồng thời hỗ trợ người dùng hồn thành tốt cơng việc và nhiệm vụ của mình. Việc cải
cách hiệu quả quản lý đồng nghĩa với các tổ chức và doanh nghiệp phát triển tốt hơn,
góp phần đẩy mạnh cơng cuộc hiện đại hóa và phát triển đất nước.
Chính vì thế, để giải quyết vấn đề nóng mỗi khi đến mùa sinh viên nhập học đó
là việc tìm kiếm nhà trọ để ổn định nơi ở. Nhưng việc thuê một căn phịng/nhà vừa ý là
rất khó khăn, người đi th ngồi việc đối mặt với kinh tế, môi trường sống,… mà phải
đối mặt với nhiều rủi ro tiềm ẩn như trộm cắp, lừa gạt v.v.. trong khi tìm phịng/nhà.
Đó là khó khăn đối với người đi tìm phịng/nhà trọ, cịn đối với người quản lý những
nhà/phịng trọ đó cũng có khó khăn không kém, từ trước đến nay việc quản lý các nhà
trọ hầu như đều trên sổ sách viết tay, đánh máy, nên việc dẫn đến nhầm lẫn, thất thoát,
vẫn dựa trên sổ sách theo cách truyền thống từ trước giờ. Đó cũng là cách quản lý phổ
biến hiện nay tại các dãy phịng trọ, điều đó thường xảy ra tình trạng thất thốt, khơng
rõ ràng trong thu chi hàng tháng. Dẫn đến nhiều mâu thuẫn và uy tín khơng đáng xảy

ra trong quá trình quản lý kinh doanh nhà trọ.


2

1.2 Nhiệm vụ đề tài
Nhận thức được tầm quan trọng của tin học hóa các hệ thống quản lý doanh
nghiệp trong cơ chế thị trường như hiện nay ở Việt Nam, sau một thời gian nghiên cứu
và học tập, nhóm em đã quyết định chọn đề tài “Xây dựng ứng dụng tìm kiếm và
quản lý nhà trọ Online trên nền tảng di động” nhằm ứng dụng những kiến thức công
nghệ thông tin đã học và kết hợp chúng với kiến thức về kinh tế.
1.2.1 Mục tiêu và nhiệm vụ nghiên cứu.


Mục tiêu nghiên cứu: Xây dựng ứng dụng quản lý nhà trọ trên nền tảng

thiết bị di động thông minh, cụ thể triển khai trên nền tảng Android trước.


Nhiệm vụ nghiên cứu:



Thu thập, đọc tài liệu, nghiên cứu tìm hiểu cách làm việc và lập trình

trên nền tảng thiết bị di động thông minh Android.


Nghiên cứu sử dụng ngôn ngữ Java và các thư viện trong Android để lập


trình ứng dụng.


Phân tích thiết kế và xây dựng ứng dụng.



Viết đề cương, báo cáo, cài đặt chương trình.

1.2.2 Phạm vi áp dụng
Phần mềm gồm hai phân hệ chính:
(1) Phân hệ dành cho quản lý thơng tin cho th phịng trọ: Phần
mềm có thể sử dụng trong nội bộ trong các dãy trọ với quy mơ khoảng 50
phịng trở lại giúp cho việc quản lý được thuận tiện và nhanh chóng hơn
như: chức năng lưu trữ danh sách phịng trong đó có số phịng, giá tiền của
phịng. Lưu trữ thơng tin người thuê gồm tên người thuê, chứng minh nhân
dân, số điện thoại, giới tính, ngày sinh. Chức năng kiểm tra phịng trống,
kiểm tra thơng tin phịng đã th, thời gian th. Thu chi tiền phòng từng
tháng, tiền điện, tiền nước, tiền Internet, tivi, tiền rác, tiền an ninh, tiền phát
sinh thêm (nếu có). Thống kế tiền từng phịng đã đóng trong tháng, phịng
chưa đóng, tổng tiền trong tháng. Tổng tiền trong năm.
(2) Phân hệ dành cho người đi thuê phòng trọ: người th phịng có
thể truy cập để tìm kiếm thơng tin phịng trọ theo các tiêu chí được cung cấp
như: giá tiền, diện tích, số phịng, khu vực…Đặc biệt có chức năng tìm kiếm
thơng tin phịng trọ ở ghép thơng minh phù hợp với các yêu cầu của người


3

tìm kiếm. Người dùng chỉ cần chọn vài tiêu chí là hệ thống sẽ tự động so

khớp tìm ra những người dùng khác (người cũng đang tìm phịng ở ghép) có
khả năng ở ghép chung phù hợp nhất. Và hệ thống sẽ đưa ra danh sách đề
xuất những khả năng ở ghép phù hợp cùng với phòng trọ tương ứng. Có thể
nói tính năng này khá thú vị, giúp cho người tìm phịng khơng phải mất thời
gian duyệt và tìm kiếm phòng cũng như bạn ở ghép trong số lượng hàng
trăm, hàng ngàn phòng trọ được cung cấp.
1.2.3 Ứng dụng phần mềm
Phần mềm có thể được ứng dụng rộng rãi cho nhiều loại người dùng có thể tìm
kiếm phịng trọ dễ dàng theo nhu cầu và người cho thuê phòng có thể quản lý các
phịng của họ đảm bảo và thuận tiện hơn.
Ngồi ra, về mảng quản lý thì ứng dụng khơng chỉ có thể áp dụng cho các dãy
trọ mà cịn có thể áp dụng cho nhiều loại hình tương tự khác như: nhà nghỉ, v.v….
1.3 Cấu trúc đề tài
Cấu trúc của đồ án sẽ bao gồm những nội dung sau đây:
 Chương 1 : Tổng quan đề tài
Giới thiệu về tổng quan về đề tài nghiên cứu, lý do thực hiện đề tài, xác định
nhiệm vụ của đề tài, tính ứng dụng của phần mềm “Tìm kiếm và Quản lý nhà
trọ Online trên nền tảng di động”, đồng thời nghiên cứu phạm vi ứng dụng của
phần mềm trong tương lai.
 Chương 2 : Cơ sở lý thuyết
Trình bày các lý thuyết liên quan đến đề tài nghiên cứu:
 Tìm hiểu về nghiệp vụ quản lý nhà trọ.
 Giới thiệu cơng cụ lập trình Android Studio.
 Dữ liệu JSON.
 Tìm hiểu thư viện Retrofit.
 Cơng cụ quản lý cở sở dữ liệu SQL Server.
 Giới thiệu Web API MVC 5.
Cơ chế, thiết kế và mơ hình hoạt động của ứng dụng.
 Chương 3: Phân tích và thiết kế



4

Mơ tả phần phân tích và thiết kế ứng dụng theo yêu cầu đưa ra. Bao gồm các sơ
đồ thiết kế chức năng, sơ đồ giao diện, phần thiết kế dữ liệu.
 Chương 4: Kết quả thực nghiệm
Giới thiệu giao diện ứng dụng. Kết quả thực nghiệm của ứng dụng, triển khai
thử nghiệm để kiểm tra tính thực tế của ứng dụng.
 Chương 5: Kết luận và kiến nghị
Tổng kết những kết quả đã đạt được của đề tài và kiểm tra ưu và nhược điểm
của ứng dụng, tính triển khai thực tế và hướng phát triển trong tương lai.


5

CHƯƠNG 2 : CƠ SỞ LÝ THUYẾT
2.1 Tìm hiểu về nghiệp vụ quản lý
2.1.1

Nghiệp vụ quản lý
Cho thuê nhà trọ là loại hình kinh doanh bất động sản được khá nhiều người lựa

chọn vì có nhiều ưu điểm như tiềm năng lớn, doanh thu ổn định và an toàn, tài sản có
khả năng gia tăng giá trị. Tuy nhiên, bên cạnh những ưu điểm đó thì cho th nhà trọ
cũng có khá nhiều khó khăn mà nếu khơng lường trước, người cho thuê có thể vướng
vào cảnh “dở khóc dở cười”, thậm chí thua lỗ nặng.
Dù là người mới bắt tay vào đầu tư kinh doanh nhà trọ cho thuê hay những
người đã làm việc lâu năm cũng đều phải khẳng định rằng việc quản lý nhà trọ và
khách thuê trọ rất khó khăn đặc biệt là khi quy mơ nhà trọ quá lớn.
Quản lý người thuê nhà trọ

Khi kinh doanh cho thuê nhà trọ, đối tượng khách hàng nhắm tới thường là
những người có mức thu nhập khá khiêm tốn như cơng nhân, sinh viên, hộ gia đình trẻ
từ ngoại tỉnh ra thành phố làm ăn…
Với nhóm đối tượng khách hàng có khá nhiều thành phần như vậy nên việc
quản lý khách thuê trọ thực sự là yếu tố khó khăn nhất khi kinh doanh mơ hình này. Sẽ
gặp những khách hàng thực sự “khó quản lý”, thậm chí có cả những đối tượng thường
xuyên quậy phá, nhậu nhẹt, chửi bới, đánh nhau, lại có những người chây ì trong việc
thanh toán tiền thuê nhà…. Những khách thuê nhà trọ kiểu này khơng chỉ khiến “đau
đầu” tìm hướng giải quyết mà nhiều khách hàng khi biết trong khu trọ có những đối
tượng như vậy lập tức khơng th nữa, làm ảnh hưởng đến doanh thu.
Thu hồi vốn mất nhiều thời gian
Kinh doanh cho thuê nhà trọ chỉ đơn thuần tìm kiếm khách rồi hàng tháng thu
tiền thì điều đó là hoàn toàn sai lầm. Một khu nhà trọ cho th với quy mơ khoảng 2030 phịng sẽ cần riêng một người quản lý để có thể nắm bắt được mọi vấn đề đến từ
khách thuê phòng.
Các khách thuê phòng trọ thường là những đối tượng có thu nhập khiêm tốn,
nên việc yêu cầu đóng tiền “cọc” quá nhiều sẽ khiến mất khách. Trong khi đó, việc
khơng đóng tiền cọc có thể gặp rủi ro bị khách thuê nhà chây ì trong việc thanh tốn.
Do đó, để bảo đảm mọi thứ hoạt động trơn tru khơng có cách nào khác là phải tốn thời
gian giám sát khách thuê.


6

Chi phí khi phịng trọ cho th đi vào hoạt động
Kinh doanh cho th phịng trọ được ví như việc “bỏ tiền chẵn ra để thu tiền lẻ.
Do đó, nếu khơng tính tốn đầy đủ các loại chi phí khi kinh doanh phịng trọ cho th
có thể sẽ đối mặt với khả năng thua lỗ, đặc biệt nếu vay ngân hàng để kinh doanh
phịng trọ cho th thì áp lực tài chính sẽ rất lớn.
2.1.2


Giải pháp quản lý
Tự quản lý nhà trọ
Những chủ trọ có quy mơ nhỏ khoảng từ 2-30 phịng có thể tự quản lý các

phịng và kiểm sốt được số lượng người th, hình thức này giúp có thể tính tốn và
kiểm sốt một cách chi tiết nhất về các khoản tiền. Tuy nhiên, thứ mà chủ nhà khơng
thể quản được đó là việc ra vào và khách đến chơi của người thuê nhà. Để tránh được
tình trạng trộm cắp và bảo đảm được an ninh cho cả gia đình chủ trọ và những người
thuê trọ, là nên lắp đặt camera tại các hành lang để tiện theo dõi.
Hình thức quản lý này chỉ gặp phải một vấn đề duy nhất đó là một chủ nhà phải
quản lý ít nhất là 30 người và nhiều vấn đề phát sinh trong q trình sống và sinh hoạt.
Khốn quản lý nhà trọ
Đối với những dãy trọ riêng, không chung chủ, có từ 30 phịng trở lên thì việc
quản lý thực sự khó khăn. Từ việc quản lý giờ giấc để đảm bảo an toàn khu trọ, quản
lý số lượng người ra vào, quản lý vệ sinh, quản lý trật trự khu trọ… bởi việc nhận thức
và ý thức của mỗi người lại khác nhau nên việc quản lý cần mất rất nhiều công sức.
Nhiều chủ trọ với kinh nghiệm của mình đã đưa ra hình thức khốn quản lý nhà
trọ. Họ thuê thẳng một quản lý, một bảo vệ riêng cho khu trọ, đến tháng chỉ việc đến
thu tiền. Tuy nhiên, hình thức này cũng sẽ có những điểm bất cập như: bảo vệ và quản
lý hợp tác với nhau trộm tiền và bỏ trốn, quản lý ăn gian tiền, quản lý phát sinh tiền
cho người thuê trọ…


7

2.2 Tổng quan về lập trình di động

Hình 2.1 Thị phần trong thị trường di động của các hệ điều hành.
Có nhiều người truy cập web thơng qua các thiết bị di động hơn là từ máy tính
cá nhân. Khi số lượng thiết bị mở rộng đáng kể, người dùng đang quen với việc có cả

truy cập web và máy tính thơng qua các thiết bị di động và điện thoại nhỏ. Điều này
dẫn đến sự gia tăng đáng kể nhu cầu cho các nhà phát triển có kinh nghiệm sử dụng
nhiều nền tảng như iOS và Android. Đồng thời, sự tăng trưởng của tính phổ biến của
điện tốn đám mây đã làm tăng khả năng cho các thiết bị này thực hiện các chức năng
mà trước đây yêu cầu sức mạnh tính tốn khơng có trên các thiết bị di động.
Người lập trình ứng dụng cho thiết bị di động truyền thống luôn luôn phải nhớ
trong đầu nguyên tắc "tiết kiệm tối đa tài nguyên" của thiết bị, dùng mọi cách để tối ưu
hóa độ phức tạp tính tốn cũng như lượng bộ nhớ cần sử dụng. Tuy nhiên, cùng với sự
phát triển nhanh chóng của phần cứng, các thiết bị di động hiện đại thường có cấu hình
rất tốt, với chip xử lý mạnh mẽ, bộ nhớ (RAM) lớn, khiến việc lập trình cho thiết bị di
dộng trở nên dễ dàng hơn bao giờ hết. Các bộ kit phát triển của các hãng sản xuất hệ
điều hành di động hiện nay cũng thường làm trong suốt hầu hết các tác vụ liên quan
đến quản lý bộ nhớ, quản lý tiến trình... Lập trình viên có thể ít quan tâm hơn đến việc
tối ưu hóa sử dụng tài nguyên và tập trung vào việc "lập trình", phát triển tính năng
cho ứng dụng như khi lập trình cho máy tính cá nhân.
Tuy nhiên, đặc trưng di động của các thiết bị này cũng đem đến nhiều vấn đề
mà người lập trình cần phải quan tâm như:


8


Tính "di động" của các thiệt bị này khiến kết nối mạng trở nên rất bất ổn định
và khó kiểm soát. Các ứng dụng phụ thuộc nhiều vào kết nối Internet cần chú ý
điểm này.



Lưu lượng Internet trền thiết bị di động thường có chi phí cao hơn so với
Internet cố định. Điều này cũng cần lưu ý khi phát triển các ứng dụng sử dụng

nhiều tài nguyên Internet như phim trực tuyến, nhạc trực tuyến...



So với máy tính cá nhân, các thiết bị di động hiện đại được trang bị thêm rất
nhiều tính năng giúp việc tương tác với người dùng trở nên thuận tiện (màn
hình cảm ứng đa điểm, tương tác giọng nói, cử chỉ...), các loại kết nối đa dạng
(NFC, GPS, 3G, 4G, bluetooth, ...), các cảm biến phong phú giúp trải nghiệm
rất đa dạng (cảm biến ánh sáng, cảm biến tiệm cận, la bàn, cám biến chuyển
động, gia tốc kế...). Người lập trình, tùy thuộc vào ứng dụng cụ thể, có thể sử
dụng đến các tính năng đặc biệt này để đem đến cho người dùng trải nghiệm tốt
nhất trên thiết bị di động của mình.
Ngồi ra các hãng phát triển hệ điều hành di động đều làm ra bộ công cụ phát

triển (SDK) và môi trường phát triển tích hợp (IDE) rất thuận tiện cho việc viết mã
nguồn, biên dịch, gỡ rối, kiểm thử cũng như xuất bản phần mềm.
Xét theo thị phần trên thị trường, ba hệ điều hành phổ biến nhất cho thiết bị di
động hiện nay là Google's Android, Apple's iOS và Microsoft's Windows Phone. Mỗi
ứng dụng thành công thường được phát triển cho cả 3 hệ nền này. Mỗi hệ nền đều có
một chợ ứng dụng chính hãng (Google có Google Play Store, Apple có Apple
AppStore, Microsoft có Windows Phone Store) với rất nhiều khách hàng tiềm năng,
giúp người phát triển có thể phân phối ứng dụng miễn phí hoặc có phí với chi phí nhất
định.
Ngồi việc phát triển ứng dụng cho từng hệ điều hành như kể trên, lập trình
viên có thể lựa chọn các thư viện lập trình đa nền tảng để phát triển ứng dụng, phổ
biến nhất trong các ứng dụng đa nền là các ứng dụng viết bằng ngơn ngữ Web
(HTML5, CSS & Javascript). Trình duyệt web của các thiết bị di động hiện nay có đầy
đủ tính năng lẫn hiệu năng để chạy tốt các ứng dụng web hiện đại. Một ứng dụng Web
có thể được đặt trên máy chủ hoặc được đóng gói thành native app (ứng dụng cho từng
hệ điều hành) qua một số cơng cụ đóng gói của các hãng thứ ba.



9

2.3 Giới thiệu công cụ Android Studio
2.3.1 Giới thiệu về Android:
Android là hệ điều hành trên điện thoại di động (và hiện nay là cả trên một số
đầu phát HD, HD Player, TV) phát triển bởi Google và dựa trên nền tảng Linux. Trước
đây, Android được phát triển bởi công ty liên hợp Android ( sau đó được Google mua
lại vào năm 2005).
Các nhà phát triển viết ứng dụng cho Android dựa trên ngôn ngữ Java. Sự ra
mắt của Android vào ngày 5 tháng 11 năm 2007 gắn với sự thành lập của liên minh
thiết bị cầm tay mã nguồn mở, bao gồm 78 công ty phần cứng, phần mềm và viễn
thơng nhằm mục đính tạo nên một chuẩn mở cho điện thoại di động trong tương lai.
2.3.2 Kiến thức liên quan
Ứng dụng Android được viết trên nhiều ngôn ngữ khác nhau, nhưng chủ yếu
dựa trên ngôn ngữ Java. Để lập trình ứng dụng Android địi hỏi bạn phải biết về Java
và có kiến thức cơ bản về nó.
 JDK (Java Deverlopment Kit)
-

JDK là một bộ công cụ phát triển Java, nó dành cho những người lập trình Java
để phát triển ứng dụng. Về cơ bản nó bao gồm:

-

JRE (Java Runtime Environment) là một môi trường chạy ứng dụng Java.

-


Javac: Một chương trình để dịch mã viết thành mã bytecode, khi ứng dụng Java
chạy nó dịch mã bytecode thành mã máy tính và thực thi, điều đó có nghĩa là
bytecode chỉ là một mã trung gian.

-

Archive (jar): Là một chương trình nén các file thành một file duy nhất có đi
jar. Thường dùng để đóng gói các file class.

-

Javadoc: Là một công cụ tạo ra tài liệu hướng dẫn sử dụng API.

-

Và các công cụ khác cần thiết cho phát triển Java.


10

 IDE (Integrated Development Environment)
Là một môi trường phát triển tích hợp (IDE), về bản chất nó là một chương
trình để viết code. Chương trình này hỗ trợ nhiều tính năng tự động hóa cho người
phát triển. Chẳng hạn các gợi ý khi lập trình, tự hồn thiện mã,…
2.3.3 Android Studio
Android Studio là một IDE (Intergrated Development Environment) được
Google xây dựng và cung cấp miễn phí cho các nhà phát triển ứng dụng Android.
Android studio dựa vào IntelliJ IDEA, là một IDE tốt nhất cho Java hiện nay. Do đó
Android Studio sẽ là môi trường phát triển ứng dụng tốt nhất cho Android.
Cho phép lập trình viên tạo ứng dụng, dễ dàng thực hiện các thay đổi và xem

trước trong thời gian thực, đồng thời cũng có khả năng tăng tốc sản phẩm, thiết kế giao
diện đẹp hơn trước. Đặc biệt là tiếng Việt cũng được hỗ trợ trong Android Studio.
Android Studio hỗ trợ một loạt các giả lập để xem trước ứng dụng, vì vậy ngay
cả khi khơng có thiết bị thử nghiệm, vẫn có thể chắc chắn rằng mọi thứ đều hoạt động
trơn tru. Bên cạnh đó, loạt cơng cụ như lời khun tối ưu hóa, đồ thị doanh số bán
hàng, và số liệu lấy từ phân tích sẽ giúp các nhà phát triển quản lý ứng dụng đang bán
của mình và tìm ra hướng đi cụ thể với từng thiết bị Android.
Một số công cụ giả lập hệ điều hành Android trên Windows:
-

Genymotion Shell

-

Blue Stack

2.4 Giới thiệu dữ liệu JSON
JSON là chữ viết tắt của Javascript Object Notation, đây là một dạng dữ liệu
tuân theo một quy luật nhất định mà hầu hết các ngôn ngữ lập trình hiện nay đều có
thể đọc được, bạn có thể sử dụng lưu nó vào một file, một record trong cơ sở dữ liệu
rất dễ dàng. JSON có định dạng đơn giản, dễ dàng sử dụng và truy vấn hơn XML rất
nhiều nên tính ứng dụng của nó hiện nay rất là phổ biến, theo tơi thì trong tương lai tới
trong các ứng dụng sẽ sử dụng nó là đa số.
Cú pháp của JSON rất đơn giản là mỗi thông tin dữ liệu sẽ có 2 phần đó là key
và value, điều này tương ứng trong cơ sở dữ liệu là tên field và giá trị của nó ở một
record nào đó. Tuy nhiên nhìn qua thì đơn giản nhưng nếu ta mổ xẻ nó ra thì có một
vài điều như sau:


Chuỗi JSON được bao lại bởi dấu ngoặc nhọn {}.



11


Các key, value của JSON bắt buộc phải đặt trong dấu nháy kép {"}, nếu đặt nó
trong dấu nháy đơn thì đây khơng phải là một chuỗi JSON đúng chuẩn. Nên
trường hợp trong value có chứa dấu nháy kép thì hãy dùng dấu (\) để đặt trước
nó.



Nếu có nhiều dữ liệu (nhiều cặp key => value) thì dùng dấu phẩy (,) để ngăn
cách.



Các key của JSON nên đặt chữ cái khơng dấu hoặc số, dấu _ và khơng có
khoảng trắng., ký tự đầu tiên không nên đặt là số. Điều này rất giống với
nguyên tắc đặt tên biến trong PHP.

2.5 Tìm hiểu RXAndroid – RxJava2
RxJava là một thư viện cho phép bạn tạo các ứng dụng theo phong cách lập
trình phản ứng. Ở cốt lõi của nó, lập trình phản ứng cung cấp một phương thức xử lý
hiệu quả, sạch sẽ và phản ứng với các luồng dữ liệu thời gian thực, bao gồm dữ liệu có
các giá trị động.
Các luồng dữ liệu này không nhất thiết phải mang dạng dữ liệu truyền thống, vì
RxJava coi mọi thứ như một dòng dữ liệu - tất cả mọi thứ từ các biến đến các thuộc
tính, cache và thậm chí các sự kiện đầu vào của người dùng như nhấp chuột và vuốt.
Dữ liệu phát ra từ mỗi luồng có thể là giá trị, lỗi hoặc tín hiệu "đã hồn tất",

mặc dù bạn không nhất thiết phải thực hiện hai kết quả cuối cùng. Khi bạn đã tạo
luồng dữ liệu phát, bạn kết hợp chúng với các đối tượng phản ứng tiêu thụ và sau đó
hành động trên dữ liệu này, thực hiện các hành động khác nhau tùy thuộc vào luồng đã
phát ra. RxJava bao gồm một loạt các toán tử hữu ích để làm việc với các luồng , giúp
bạn dễ dàng làm những việc như lọc, lập bản đồ, trì hỗn, đếm, và nhiều hơn nữa.


12

Hình 2.2 Hoạt động của RXAndroid – RxJava2.
Để tạo luồng công việc này của các luồng dữ liệu và các đối tượng phản ứng
với chúng, RxJava mở rộng mơ hình thiết kế phần mềm Observer. Về cơ bản, trong
RxJava có Observable các đối tượng phát ra một luồng dữ liệu và sau đó kết thúc, và
Observable các đối tượng đăng ký với Observable. An Observable nhận được thông
báo mỗi lần được chỉ định Observable phát ra giá trị, lỗi hoặc tín hiệu đã hồn thành.
Vì vậy, ở một mức rất cao, RxJava là tất cả về:


Tạo một Observable.



Cho phép một Observable số dữ liệu phát ra.



Tạo một Observer.




Gán Observer cho Observable.



Đưa ra các Observer nhiệm vụ để thực hiện bất cứ khi nào nó nhận được một
phát thải từ nó được chỉ định Observable.

2.6 Tìm hiểu thư viện Retrofit
Retrofit là một Rest Client (Tìm hiểu thêm về chuẩn RESTFul dưới link tham
khảo) cho Android và Java và được tạo ra bởi Square. Họ làm cho việc nhận và tải lên
JSON (hoặc dữ liệu khác) một cách khá dễ dàng tới một WebService dựa trên mơ hình
REST.
 Các gói trang bị thêm cho phép sử dụng các bộ chuyển đổi sau đây:


Gson: com.squareup.retrofit:converter-gson



Jackson: com.squareup.retrofit:converter-jackson



Moshi: com.squareup.retrofit:converter-moshi


13


Protobuf: com.squareup.retrofit:converter-protobuf




Wire: com.squareup.retrofit:converter-wire



Simple XML: com.squareup.retrofit:converter-simplexml
Đa số ứng dụng Android hiện nay đều đi kèm với một backend server nên thư

viện giúp hỗ trợ giao tiếp với server sẽ rất hữu ích. Retrofit là một trong những thư
viện nổi tiếng trong việc hỗ trợ Netwoking.
 Một số lý do mà mình dùng Retrofit cho Networking:


Performance tốt.



Dễ sử dụng.



Dùng chung được với RxAndroid.
Bảng 2.1 So sánh performance Retrofit với Volley và AsyncTask.

2.7 Công cụ quản lý cơ sở dữ liệu SQL Server
SQL Server là viết tắt của Structure Query Language, nó là một công cụ quản lý
dữ liệu được sử dụng phổ biến ở nhiều lĩnh vực. Hầu hết các ngôn ngữ bậc cao đều có
trình hỗ trợ SQL như Visual BaSic,Oracle,Visual C…

Các chương trình ứng dụng và các cơng cụ quản trị cơ sở dữ liệu cho phép
người sử dụng truy nhập tới cơ sở dữ liệu mà không cần sử dụng trực tiếp SQL. Nhưng
những ứng dụng đó khi chạy phải sử dụng SQL.
 Đặc điểm của SQL Server:
 SQL là ngôn ngữ tựa tiếng Anh.
 SQL là ngôn ngữ phi thủ tục, nó khơng u cầu ta cách thức truy nhập cơ sở dữ
liệu như thế nào. Tất cả cácthông báo của SQL đều rất dễ sử dụng và ít khả
năng mắc lỗi.
 SQL cung cấp tập lệnh phong phú cho các công việc hỏi đáp dữ liệu.
o Chèn, cập nhật, xoá các hàng trong một quan hệ.
o Tạo, sửa đổi, thêm và xoá các đối tượng trong của cơ sở dữ liệu.


14

o Điều khiển việc truy nhập tới cơ sở dữ liệu và các đối tượng của cơ sở dữ
liệu để đảm bảo tính bảo mật của cơ sở dữ liệu.
o Đảm bảo tính nhất quán và sự ràng buộc của cơ sở dữ liệu.
Yêu cầu duy nhất để sử dụng cho các hỏi đáp là phải nắm vững được các cấu
trúc cơ sở dữ liệu của mình.
2.8 Giới thiệu Web API MVC5(Web service)
2.8.1 Giới thiệu về API
API là từ viết tắt của Application Programming Interface : Giao diện ứng dụng
lập trình.
API là các hàm , phương thức để cho các ứng dụng bên ngồi có thể gọi , tương
tác để trao đổi thơng tin , tính tốn.
Việc trao đổi này giúp các nhà lập trình tạo ra các service hỗ trợ những lập
trình viên khác có thể tương tác với ứng dụng của chính mình.
Hiện nay trên web các dịch vụ của google , facebook cung cấp rất nhiều api để
lập trình viên có thể xây dựng tương tác giữa website của họ với google ,facebook.

Mỗi phần mềm,ứng dụng có các cung cấp các API để các ứng dụng khác có thể
tương tác với nó.Và việc xây dựng lên các API để cho các ứng dụng bên ngoài cũng
cần tuân thủ các chuẩn công nghệ để nhiều nền tảng công nghệ có thể sử dụng được
API mà ứng dụng cung cấp.
2.8.2 Giới thiệu về Web API
Web API là một phiên bản kế tiếp của WCF, giúp chúng ta xây dựng lên các
Service cung cấp dịch vụ cho các ứng dụng Web, Window…
Web service cho phép client và server tương tác được với nhau ngay cả trong
những môi trường khác nhau.
Trước Web API chúng ta để có các Service API chúng ta phải cấu hình, xây
dựng các ứng dụng WCF, Web Service khá phức tạp.
Một ứng dụng đơn giản như là: chúng ta có một Web API cung cấp các dịch vụ
lưu trữ dữu liệu, cung cấp các chỉ số chứng khốn, kết quả bóng đá, xổ số…
Các ứng dụng Client như Website, ứng dụng Winform, WPF có thể kết nối vào
Web API để lấy các dữ liệu về xử lý, cũng như cập nhật thông tin lại Web API.


15

Web API dùng phương thức trao đổi dữ liệu là HTTP, kiểu dữ liệu trao đổi là
JSON, một chuẩn dữ liệu hướng đối tượng được dùng khá nhiều trong việc lưu chuyển
thông tin trên Internet .
Do dùng JSON là kiểu dữ liệu chuyển đổi nên tốc độ các trang web sử dụng
Web API tương tác dữ liệu có tốc độ khá cao. Ngoài ra do Web API dùng giao thức
HTTP nên hầu như tất cả các ứng dụng trên các cơng nghệ đều có thể kết nối tới để lấy
cũng như tương tác với Web API cụ thể như chúng ta có thể dùng các cơng nghệ web
như: ASP.NET ( MVC ,Web Page , Web Form) ,PHP , JSP hay các ứng dụng Desktop
như: Winform , WPF đều có thể dễ dàng kết nối tới Web API.
Với Web API chúng ta có thể xây dựng và phân tách các ứng dụng Web lớn
.Cấu hình từng thành phần riêng biệt của website. Đâu là tầng data, đâu là tầng xử lý,

đâu là tầng dịch vụ… Nền tảng của các ứng dụng lớn ln là các Service để các
Website thành viên có thể kết nối tương tác dữ liệu .
Do đó với Web API chúng ta có thể ứng dụng vào các dự án Web (cũng như
Window) lớn để phát triển trên nhiều tầng xử lý khác nhau.
Dùng Web API chúng ta dễ dàng xây dựng các ứng dụng Window kiểu điện
toán (dữ liệu ở server) còn Client chỉ cài giao diện .
Hay có thể xây dựng các Website Single Page Application(SPA) (tất cả Web
chỉ gói gọn trong 1 trang). Ứng dụng này tương tác khá cao với người dùng, tốc độ
nhanh (do dùng AJAX) thường được dùng làm các Website tương tác với các thiết bị
di động (các thiết bị di động thường có kết nối Internet chậm).


16

CHƯƠNG 3 : PHÂN TÍCH THIẾT KẾ
3.1 Cơ chế hoạt động của ứng dụng
Ứng dụng chạy trên mơ hình Client và Server nên khi có nhu cầu sử dụng của
khách hàng thì thiết bị của khách hàng là Client sẽ gửi yêu cầu dữ liệu lên Web API,
Web API sẽ lấy dữ liệu từ Server là SQL Server theo yêu cầu của khách hàng, sau đó
sẽ trả lại dữ liệu kiểu JSON. Retrofit sẽ nhận dữ liệu JSON và phân tích dữ liệu để
hiển thị lên cho người dùng một cách trực quan. Cơ chế được hiện thực chi tiết trên
hình 3.1.

Hình 3.1 Cơ chế hoạt động của ứng dụng.


17

3.2 Sơ đồ kiến trúc tổng thể


Hình 3.2 Sơ đồ Use Case System tổng thể.


18

Hình 3.3 Sơ đồ Use Case Người tìm kiếm chi tiết.


×