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

KHÓA LUẬN tốt NGHIỆP ỨNG DỤNG TÌM KIẾM và CHIA sẻ CHUYẾN đi

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.86 MB, 54 trang )

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CƠNG NGHỆ THƠNG TIN
KHOA CƠNG NGHỆ PHẦN MỀM

TRẦN TRUNG KIÊN

KHĨA LUẬN TỐT NGHIỆP

ỨNG DỤNG TÌM KIẾM VÀ CHIA SẺ CHUYẾN ĐI

Finding and Sharing Journey Application

KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM

TP. HỒ CHÍ MINH, 2021


ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM

TRẦN TRUNG KIÊN - 16521707

KHÓA LUẬN TỐT NGHIỆP

ỨNG DỤNG TÌM KIẾM VÀ CHIA SẺ CHUYẾN ĐI

Finding and Sharing Journey Application
KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM



GIẢNG VIÊN HƯỚNG DẪN
THS. NGUYỄN THỊ THANH TRÚC

TP. HỒ CHÍ MINH, 2021

2


THƠNG TIN HỘI ĐỒNG CHẤM KHĨA LUẬN TỐT NGHIỆP
Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số
…………………… ngày ………………….. của Hiệu trưởng Trường Đại học Công
nghệ Thông tin.

3


LỜI CẢM ƠN
Tục ngữ Việt Nam có câu: “Khơng thầy đố mày làm nên”. Thật vậy, nếu khơng
có sự hướng dẫn của cơ thì em khơng thể hồn thành đồ án đúng tiến độ. Để hồn thành
khóa luận này, em xin gửi lời cảm ơn chân thành nhất đến cô Nguyễn Thị Thanh Trúc người đã tận tình hướng dẫn em. Qua khóa luận này, em đã học tập được nhiều thứ mà
em chưa từng biết đến, hiểu rõ hơn về các quy trình cũng như cách vận hành và làm ra
một hệ thống ứng dụng đã đề ra. Em đã gặp rất nhiều khó khăn trong q trình thực hiện
nhưng nhờ sự tận tâm, cũng như sự góp ý của cô cho báo cáo của em đã giúp em định
hướng tốt hơn khi làm đồ án và các hướng phát triển có thể cho ứng dụng.
Đến nay, khóa luận của em cơ bản hồn thành, em khơng thể khơng nhớ đến sự
giúp đỡ của cô. Tuy nhiên, với điều kiện thời gian cũng như kinh nghiệm còn hạn chế
của sinh viên, đồ án này của em không thể tránh khỏi những sai lầm và thiếu sót. Em rất
mong nhận được sự chỉ bảo, đóng góp của cơ để em có điều kiện bổ sung, nâng cao kiến
thức của mình, phục vụ tốt hơn cho công việc thực tế sau này.

Một lần nữa, em rất biết ơn sự hỗ trợ to lớn của cô. Chúc cô luôn dồi dào sức
khỏe, hạnh phúc và thành công hơn nữa trong sự nghiệm của mình.

4


MỤC LỤC
THƠNG TIN HỘI ĐỒNG CHẤM KHĨA LUẬN TỐT NGHIỆP ................................. 3
LỜI CẢM ƠN .................................................................................................................. 4
MỤC LỤC ........................................................................................................................ 5
DANH MỤC HÌNH ......................................................................................................... 7
DANH MỤC BẢNG ........................................................................................................ 8
TĨM TẮT KHĨA LUẬN ............................................................................................... 9
Chương 1. TỔNG QUAN .............................................................................................. 10
1.1.

Giới thiệu .......................................................................................................... 10

1.2.

Khảo sát hiện trạng ........................................................................................... 11

1.3.

Khó khăn đề tài ................................................................................................. 13

1.4.

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


1.5.

Cách thức hoạt động ......................................................................................... 14

1.5.1

Người điều khiển phương tiện ................................................................... 15

1.5.2

Người đi nhờ xe ......................................................................................... 15

1.6.

Tổng kết ............................................................................................................ 15

Chương 2. CƠ SỞ LÝ THUYẾT ................................................................................... 16
2.1.

5

Xamarin ............................................................................................................ 16

2.1.1

Các ưu điểm của Xamarin ......................................................................... 17

2.1.2

Khuyết điểm ............................................................................................... 18



2.2.

API .................................................................................................................... 19

2.3.

Azure ................................................................................................................ 20

2.4.

Google Map API ............................................................................................... 21

2.5.

OpenRouteService ............................................................................................ 22

2.6.

Xamarin.Forms.GoogleMaps ........................................................................... 23

2.7.

Cách chọn và tìm kiếm ..................................................................................... 26

2.8.

Phân tích ........................................................................................................... 27


2.8.1

Vấn đề chung ............................................................................................. 27

2.8.2

Vấn đề riêng ............................................................................................... 28

Chương 3. THỰC HIỆN ................................................................................................ 30
3.1.

Thiết kế ............................................................................................................. 30

3.1.1

Sơ đồ Use case ........................................................................................... 30

3.1.2

Danh sách tác nhân hệ thống ..................................................................... 31

3.1.3

Danh sách usecase ..................................................................................... 31

3.1.4

Đặc tả usecase và sơ đồ hoạt động ............................................................ 32

3.1.5


Sơ đồ tuần tự .............................................................................................. 46

3.2.

Giao diện ........................................................................................................... 49

Chương 4. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ................................................... 51
4.1.

Kết luận............................................................................................................. 51

4.2.

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

4.2.1

6

Giao tiếp ..................................................................................................... 52


4.2.2

Tìm kiếm nhanh hơn .................................................................................. 52

4.2.3

Mở rộng phạm vi hoạt động ...................................................................... 52


4.2.4

Đăng ký nhanh ........................................................................................... 53

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

DANH MỤC HÌNH
Hình 1.1. Ứng dụng Đi Chung ............................................................................ 11
Hình 1.2. Hình ảnh ứng dụng theo vnexpress.net ............................................... 12
Hình 1.3. Ứng dụng GOVNU ............................................................................. 13
Hình 2.1. Sự khác nhau giữa cách lập trình truyền thống và Xamarin Forms.... 16
Hình 2.2. Hình ảnh một số API biểu thị trên Swagger ....................................... 20
Hình 2.3. Thiết lập trên Azure ............................................................................ 21
Hình 2.4. Bản đồ của OpenRouteService ........................................................... 23
Hình 2.5: Demo về Xamarin.Forms.GoogleMaps .............................................. 24
Hình 4.1. Màn hình đăng nhập có 2 nút đăng ký với tài khoản Google và Facebook
........................................................................................................................................ 53

7


DANH MỤC BẢNG
Bảng 2.1. So sánh Xamarin.Forms.Maps và Xamarin.Forms.GoogleMaps [1] . 25
Bảng 2.2. Các nền tảng hỗ trợ [1] ....................................................................... 26

8


TĨM TẮT KHĨA LUẬN

Ứng dụng Tìm kiếm và chia sẻ chuyến đi sử dụng Xamarin Forms làm nền tảng
để lập trình về cả Font-end và Back-end. Bên cạnh đó sử dụng .Net Core để tạo API phục
vụ cho việc gửi dữ liệu và xử lý ở server. Với sự hỗ trợ của nhà trường, tài khoản
Microsoft được sử dụng vài tính năng của Azure miễn phí trong khoảng thời gian nghiên
cứu và thực hiện. Cho nên em sử dụng đó làm server phục vụ cho việc xử lý API và cơ
sở dữ liệu. Về vấn đề xử lý đường đi và tính tốn khoảng cách em sử dụng
OpenRouteService, một nền tảng hỗ trợ API liên quan đến đường đi miễn phí.
Là 1 nền tảng lập trình ứng dụng di động cross-platform, Xamarin Forms cho
phép các nhà phát triển phần mềm xây dựng các ứng dụng di động đa nền tảng sử dụng
các thành phần giao diện cơ bản của hệ điều hành như: Pages, Layouts, Views, Controls.
Khi chạy chương trình, mỗi thành phần giao diện của Xamarin Forms sẽ được chuyển
hóa sang các thành phần giao diện tương ứng với mỗi nền tảng. Với quá trình làm việc
với các đồ án mơn học và làm việc, em có nhiều kinh nghiệm trong việc sử dụng C# và
XAML để tạo ứng dụng. Cho nên em lựa chọn Xamarin Forms để thực hiện đề tài này.
Ngoài việc sử dụng các ứng dụng thơng thường của .Net Core để tạo API, em cịn
sử dụng SignalR phục vụ việc kết nối real-time các người dùng với nhau. Áp dụng cho
việc người dùng có thể nhận thơng tin nhanh chóng khi gửi u cầu hay nhắn tin.
Vì việc sử dụng một số API của Google Maps là mất phí cho nên em đã tìm kiếm
một giải pháp khác, đó là OpenRouteService. OpenRouteService cung cấp nhiều API
cần thiết cho việc tìm kiếm đường đi và tính tốn khoảng cách trong thời gian nhanh
chóng mà miễn phí.
Qua quá trình nghiên cứu, em đã nắm bắt được các ứng dụng cũng như cách sử
dụng các cơng cụ nói trên, qua đó phục vụ cho việc thực hiện đề tài suôn sẻ hơn.

9


Chương 1. TỔNG QUAN
1.1.


Giới thiệu

Hiện nay, có rất nhiều người điều khiển xe máy có tuyến đường đi như nhau
nhưng lại đi hai xe khác nhau, việc này làm cho lượng phương tiện tham gia giao thông
vào giờ cao điểm tăng cao, dẫn đến việc ùn tắc và lượng khí thải cũng tăng theo.
Bên cạnh việc cùng tuyến đường thì có một số địa điểm tập trung người đi làm
cơng sở ở cùng khu vực. Việc di chuyển của một người chỉ giới hạn ở cung giờ hành
chính, và tuyến đường chỉ là từ nhà đến cơ quan hay công ty và ngược lại.
Một hình ảnh thực tế là nhà xe của trường đang quá tải sau mỗi năm, mặc dù khu
vực để xe đã và đang mở rộng nhiều hơn trước rất nhiều. Trước đây nhà xe chỉ quá tải
trong khoảng thời gian có tổ chức thi giữa kỳ hoặc cuối kỳ. Khoảng thời gian này tập
trung nhiều sinh viên nên hiện tượng ùn tắc chỉ xảy ra trong khoảng 1 hoặc 2 tuần. Nhưng
hiện nay với các ngành mới mở ra, lượng sinh viên tăng lên cùng với điều kiện đời sống
cao hơn, nhiều sinh viên đã sở hữu riêng cho mình xe máy riêng. Cho nên việc quá tải
trong nhà gửi xe là điều tất yếu. Các biện pháp như tăng kích thước nhà xe cũng chỉ là
vấn đề thời gian để việc quá tải tiếp diễn vào các năm tiếp theo.
Giải pháp thiết thực là làm sao để giảm thiểu lượng xe gửi vào nhà xe nhưng vẫn
đảm bảo lượng sinh viên đi học đầy đủ như bình thường. Các hình thức đi chung xe sẽ
hỗ trợ rất nhiều cho việc giải quyết bài toán này.
Hiện này cũng có một số ứng dụng giúp cho việc đi chung này nhưng cũng có
nhiều vấn đề gây trở ngại cho sinh viên hay người sử dụng, hoặc không giải quyết được
vấn đề mình đặt ra. Một số ứng dụng lại dành cho xe ô tô hoặc là taxi, việc đi chung ở
đây là giải quyết việc chia tiền để giảm bớt chi phí đi lại. Vấn đề chúng ta đang đặt ra là
cho xe máy, cho nên những ứng dụng này không giải quyết được.

10


Vì những lý do và điều kiện ở tên, một ứng dụng giúp đỡ những người có khả
năng chở thêm người và những người cần được chở ghép cặp để đi chung với nhau là

điều cần thiết. Giúp giảm lượng phương tiện tham gia giao thơng, qua đó tiết kiệm nhiên
liệu và hạ thấp lượng khí thải ra mơi trường.
1.2.

Khảo sát hiện trạng

Hình thức di chuyển tiết kiệm này phổ biến ở các nước phát triển như mơ hình đi
chung ô tô Covoiturage ở Pháp, Bla Bla Car ở châu Âu, hay ứng dụng Ridewith của
Google.
Những loại phương tiện phổ biến ở Việt Nam hiện nay lại là xe máy, vì vậy ứng
dụng sẽ đánh mạnh vào những người điều khiển xe máy, điều mà các ứng dụng đi chung
khác khơng chú trọng. Mặc dù cũng có nhiều hãng xe công nghệ nhưng điều mà ứng
dụng này hướng tới là dành cho những cơng dân bình thường muốn giúp đỡ cộng đồng
cũng như môi trường.
Một số ứng dụng đi chung ở Việt Nam hiện nay lại chú trọng vào đi xe ơ tơ hoặc
hình thức đi chung xe taxi như ứng dụng Đi Chung bên dưới:

Hình 1.1. Ứng dụng Đi Chung

11


Những hình thức đi xe máy khác thì là của những hãng xe ôm công nghệ như:
Grab, Bee, Vato, GoViet, Gojek,… Đây là dạng hình thức xe ơm chứ khơng phải là chia
sẻ chuyến đi.
Cũng có một số bạn sinh viên ở FPT đã từng thực hiện dự án này. Một bài báo
của vnexpress.net đưa tin về ứng dụng nhưng có vẻ khơng thành cơng vì tìm kiếm tên
HolaBike trên play.google.com khơng cịn tìm thấy ứng dụng nữa. Bài báo cũng từ năm
2017.


Hình 1.2. Hình ảnh ứng dụng theo vnexpress.net
12


Một ứng dụng khác của bạn Nguyễn Lê Trọng Đạt có tên GOVNU. Ứng dụng
này chỉ đơn thuần là danh sách các điểm đầu và điểm cuối như các nhà xe chở khách có
tuyến cố định. Ưu điểm của ứng dụng là dễ dàng đăng ký sử dụng. Nhược điểm là khơng
có tính linh hoạt trong lựa chọn địa điểm.

Hình 1.3. Ứng dụng GOVNU
1.3.

Khó khăn đề tài

− Việc đi chung xe không giống như việc book xe ôm công nghệ vì đây là tính tự
nguyện giữa cả hai bên. Sẽ có nhiều vấn đề phát sinh.
− Việc đảm bảo an tồn cho người sử dụng khá khó khăn. Mặc dù sẽ có kiểm sốt
bằng việc đăng ký sử dụng có các hình thức xác nhận bằng chứng minh thư, hình
ảnh,...

13


− Vì là ứng dụng phi lợi nhuận nên sẽ khó khăn trong việc duy trì server hay các chi
phí khác. Có thể khắc phục bằng cách chèn quảng cáo hoặc các hình thức phí khác.
− Phải có máy tính của Apple để có thể thực hiện debug và chạy thử ứng dụng trên
nền tảng ios. Vấn đề này vẫn có thể khắc phục được bằng máy ảo, nhưng sẽ khó có
thể khắc phục được lâu dài nếu khơng có thiết bị.
1.4.


Mục tiêu đề tài

Mục tiêu nhỏ là dành cho các bạn sinh viên Khu đô thị Đại học Quốc gia TPHCM
có thể cùng nhau đến trường, qua đó mở rộng quy mơ cho cả nước. Mong muốn góp
phần giúp ích cho cộng đồng.
Mục tiêu thứ hai là dành cho các bạn cần đồng đội để đi du lịch hay phượt chung.
Dựa trên nền tảng của mục tiêu thứ nhất, giúp các bạn có thể tìm bạn để đi chung với
nhau.
Kết quả mong đợi:
− Hồn thành ứng dụng và có thể áp dụng vào thực tế Khu đô thị Đại học Quốc gia
TPHCM
− Số lượng sinh viên tham gia sử dụng phần mềm ở Khu đô thị Đại học Quốc gia
TPHCM là trên 50%
− Mở rộng quy mô sử dụng ra tồn thành phố Hồ Chí Minh.
1.5.

Cách thức hoạt động

Vì đây khơng phải hình thức xe ơm cơng nghệ nên mọi hoạt động đều được lên
lịch trước giúp cho cả tài xế và người đi nhờ xe có thể chủ động sắp xếp thời gian với
nhau. Tuy nhiên vẫn có thể lập tức tìm xe hay phát tín hiệu có thể cho đi nhờ mọi lúc.
Chi tiết hoạt động được phân tích bên dưới

14


1.5.1 Người điều khiển phương tiện
Người điều khiển phương tiện (tài xế) sẽ thiết lập trước thời gian di chuyển và địa
điểm tới. Ứng dụng sẽ thiết lập quãng đường đi cho tài xế và cho phép tùy chỉnh cung
đường mà người đó đi, tương tự như Google Map. Sau khi hồn tất, ứng dụng sẽ gửi

thơng tin để server xử lý. Nếu có người muốn đi chung, ứng dụng sẽ thông báo. Hai
người đi chung xe với nhau sẽ có thể nhắn tin với nhau thơng qua trực tiếp ứng dụng để
trao đổi thêm, ví dụ như địa điểm đón, thời gian đi.
1.5.2 Người đi nhờ xe
Sau khi chọn trước thời gian đi và địa điểm đến, ứng dụng sẽ tính tốn dự trên dữ
liệu của tài xế, có thể cung đường đi ngang qua đích đến của người đi nhờ, hoặc là hai
người tới cùng một nơi. Màn hình thơng báo kết quả phù hợp, người dùng sẽ chọn trong
danh sách người mình muốn đi cùng. Sau khi kết nối và nhắn tin với tài xế, lịch trình
được chốt sẽ hủy việc quét tìm kiếm của cả hai.
1.6.

Tổng kết

Việc đi nhờ xe máy ở Việt Nam khá cần thiết, lượng xe tham gia giao thông hàng
ngày rất cao, dẫn đến nhiều vấn đề như quản lý bãi đậu đỗ xe, ơ nhiễm mơi trường,..
Ví dụ thực tế là vấn đề quá tải xe là ở nhà xe của trường. Số lượng sinh viên tăng
lên cùng với điều kiện kinh tế tốt cho nên nhiều sinh viên có xe máy riêng. Mặc dù đã
mở rộng nhà xe nhiều lần nhưng vẫn chưa thể đáp ứng được hết nhu cầu sử dụng.
Các hình thức chia sẻ xe ở Việt Nam chưa thực sự phổ biến và đa phần là ô tô,
nên một ứng dụng chia sẻ xe máy là một điều mới mẻ và hấp dẫn.
Cũng vì mới mẻ nên việc kêu gọi sử dụng ban đầu có thể gặp nhiều khó khăn,
cũng như nhiều vấn đề có thể phát sinh ngồi ý muốn. Nhưng cũng có thể từ từ khắc

15


phục qua thời gian thử nghiệm ở phạm vi nhỏ trước khi đưa ra sử dụng ở mơ hình lớn
hơn.

Chương 2. CƠ SỞ LÝ THUYẾT

Thơng qua q trình tìm hiểu về cách thức hoạt động cũng như các tính năng
thường có của một ứng dụng đi chung xe. Dựa theo những gì được học ở trường, có các
cơ sở lý thuyết để làm đề tài này như dưới đây.
2.1.

Xamarin

Dựa vào các kiến thức đã có trong q trình học, sử dụng WPF framework để tạo
ứng dụng trên Window đã cho em các kiến thức về nền tảng này. Nhận thấy Xamarin
cũng có nét tương đồng nên em đã chọn để nghiên cứu xây dựng ứng dụng. Bên cạnh
đó, Xamarin có thể cho phép tiết kiệm tới 70% công việc phát triển trên nền tảng di động
thứ hai bằng cách sử dụng lại source code.

Hình 2.1. Sự khác nhau giữa cách lập trình truyền thống và Xamarin Forms

16


Là 1 nền tảng lập trình ứng dụng di động cross-platform (có nghĩa là code một
lúc có thể chạy trên được cả iOS lẫn Android), Xamarin có những đặc điểm riêng biệt,
hiếm có so với các framework hiện tại trên thị trường.
2.1.1 Các ưu điểm của Xamarin
2.1.1.1

Tái sử dụng code tại nhiều chỗ, giảm thời gian làm ứng dụng

trên nhiều nền tảng
Xamarin sử dụng ngôn ngữ C# cùng với framework.Net để tạo ra ứng dụng cho
mọi nền tảng bất kì. Khi bạn tạo ứng dụng di động trên Xamarin, bạn sử dụng cùng ngôn
ngữ là C#, API và cấu trúc dữ liệu hay logic của ứng dụng nên thường là 90% code chức

năng có thể được dùng trên iOS và Android.
Qua đó có thể giảm đáng kể chi phí và thời gian phát triển ứng dụng di động cho
2 nền tảng phổ biến nhất. Ngồi ra có nhiều IDE hỗ trợ rất tốt mà miễn phí với nó như
Xamarin IDE (dành cho Mac) hay Visual Studio (dành Windows).
2.1.1.2

Performance gần như native

Các số liệu performances là tương đương khi so sánh với các số liệu performance
của Java cho Android và Objective-C hoặc Swift cho ứng dụng phát triển ứng dụng iOS
native. Hơn thế nữa, performance của Xamarin liên tục được cải thiện để phù hợp hoàn
toàn với tiêu chuẩn của lập trình native.
Ngồi ra, nền tảng Xamarin cung cấp thêm các giải pháp để testing và theo dõi
hoạt động của ứng dụng. Xamarin Test Cloud kết hợp với công cụ Xamarin Test
Recorder cho phép bạn chạy các UI test tự động và xác định các vấn đề về performance
trước khi ứng dụng release. Tuy nhiên, dịch vụ này có tính phí nhưng cũng đáng lưu tâm.

17


2.1.1.3

Hỗ trợ tất cả phần cứng

Với Xamarin, giải pháp của bạn sẽ giúp cách chức năng của ứng dụng đạt được
native-level, loại trừ tất cả vấn đề tương thích với phần cứng, sử dụng plugins và APIs
đặc biệt để làm việc với các chức năng thiết bị thông thường đa nền tảng. Ngoài khả
năng truy cập vào API riêng biệt cho mỗi nền tảng, Xamarin còn hỗ trợ liên kết với thư
viện native. Từ đó, functionality được tối ưu hóa và đạt được mức độ native tốt hơn với
ít chi phí hơn.

2.1.1.4

Nhiều thư viện hỗ trợ làm ứng dụng cực nhanh có sẵn

Component Xamarin cung cấp đến hàng ngàn UI controls tùy chỉnh, các charts,
biểu đồ, themes đa dạng và các chức năng mạnh mẽ khác có thể được thêm vào ứng dụng
chỉ với vài cú click. Điều này bao gồm quá trình xử lý payment built-in (như Stripe chẳng
hạn), tích hợp Beacons và các thiết bị di động, các services notification box push, giải
pháp lưu trữ đám mây, các tính năng streaming multimedia và hơn thế nữa.
2.1.2 Khuyết điểm
Bên cạnh các ưu điểm trên thì Xamarim vẫn có các khuyết điểm, tuy nhiên những
khuyết điểm này đều có thể chấp nhận được.
Hỗ trợ chậm các updates mới nhất của các hệ điều hành mobile
Điều này phụ thuộc hoàn toàn vào đội ngũ developer của Xamarin. Khi iOS hoặc
Android tung ra các phiên bản mới, phải mất một khoảng thời gian để thực hiện những
thay đổi hay đưa vào một plugins mới, v.v.. Mặc dù Xamarin khẳng định sẽ hỗ trợ cùng
lúc với những cập nhật mới nhất nhưng vẫn có những thời điểm bị trì hỗn.

18


2.1.2.1

Giới hạn truy cập vào thư viện mã nguồn mở

Native development giúp thói quen sử dụng cơng nghệ mã nguồn mở trở nên quen
thuộc, rộng rãi hơn. Với Xamarin, cả developer đều phải sử dụng duy nhất môt
component được cung cấp bởi Xamarin và một số mã nguồn mở .Net.
Trong khi native development có rất nhiều lựa chọn thư viện opensource cho ứng
dụng phát triển điện thoại Android và iOS. Rất tiếc là vẫn còn nhiều native library hay

vẫn chưa hỗ trợ cho Xamarin.
2.1.2.2

Apps thực hiện chậm hơn và yêu cầu nhiều dung lượng hơn trên

thiết bị
Ứng dụng Xamarin lớn hơn, nặng hơn so với ứng dụng native. So sánh với ứng
dụng native nó chiếm nhiều hơn vài Mb so với Java/Objective C tương ứng. kích thước
của một ứng dụng code bằng xamarin là 5Mb, trong khi code bằng Objective C chỉ chiếm
200 Kb. Càng sử dụng nhiều API, càng nhiều lưu trữ bị chiếm trên thiết bị.
2.2.

API

Em sử dụng .Net Core để viết API hỗ trợ cho việc truyền và nhận dữ liệu từ server
về ứng dụng. Mỗi khi client gọi bất kỳ một API nào, ngoại trừ API đăng nhặp hoặc đăng
ký, client đều phải kèm theo token được cấp mỗi khi đăng nhập. Việc này tăng tính bảo
mật và cịn hỗ trợ cho việc thấy thơng tin chuẩn xác hơn.
Ngồi các chức năng thơng thường, em có sử dụng thư viện SignalR. ASP.NET
SignalR là một thư viện cho các lập trình viên ASP.NET đơn giản hóa q trình thêm
chức năng web real-time trong phát triển ứng dụng. Lúc người dùng đăng nhập đồng
thời em cũng kết nối với một hub được tạo ở server. Thơng qua đó, người dùng có thể
nhắn tin với nhau hoặc đặt lịch real-time mà không cần phải load lại hay khởi động lại
ứng dụng.
19


Hình 2.2. Hình ảnh một số API biểu thị trên Swagger
2.3.


Azure

Phần xử lý dữ liệu như: Đăng nhập, tìm kiếm tài khoản thích hợp theo lộ trình,
lưu trữ thơng tin tài khoản,… được xử lý bằng cách gọi API từ Azure.
Azure cung cấp hơn 200 dịch vụ, được chia thành 18 loại. Các danh mục này bao
gồm máy tính, mạng, lưu trữ, IoT, di chuyển, di động, phân tích, container, trí tuệ nhân
tạo và machine learning, tích hợp, cơng cụ quản lý, công cụ nhà phát triển, bảo mật, cơ
sở dữ liệu, DevOps, nhận dạng media và web service. Với việc hỗ trợ tài khoản miễn phí
lên tới 12 tháng nên đây là phương án khá kinh tế và hiệu quả.
Cấu trúc Deloy App trên Azure
− Tạo Resource Group
− Tạo App Services Plan
− Tạo App Services
− Tạo SQL Server
− Tạo SQL Database

20


Hình 2.3. Thiết lập trên Azure
2.4.

Google Map API

Ứng dụng Google Map là một dịch vụ bản đồ trực tuyến trên web và app miễn
phí do Google phát hành và quản lý, ứng dụng hỗ trợ nhiều dịch vụ, tính năng cho người
dùng nhưng phổ biến nhất là dò đường, chỉ đường, tìm vị trí; hiển thị những tuyến đường
tối ưu cho từng phương tiện tham gia giao thơng, ngồi ra còn hướng dẫn cách bắt xe và
chuyển tuyến xe dành cho người tham gia các phương tiện lưu thông công cộng (xe bus),
hiển thị những địa điểm xung quanh vị trí người dùng hoặc vị trí chỉ định như ATM,

trạm xăng, bệnh viện,…
Vậy Google Map API là gì? Hiểu đơn giản đây là một phương pháp cho phép một
website B có thể sử dụng dịch vụ hoặc hiển thị nội dung của một trang web khác, ở đây
là là website A – Google Map (thông qua Map API), dịch vụ bản đồ của website A (Map)
sẽ được nhúng vào website B (Website cá nhân), tại trang web B có thể sử dụng những
dịch vụ mà Google Map cung cấp thông qua Google Map API như: di chuyển, zoom,
đánh dấu trên bản đồ,…
Hiện nay, các ứng dụng xây dựng trên nền tảng Google Maps như Grab thường
sử dụng Google Map API để nhúng bản đồ vào trang web hoặc ứng dụng thơng qua ngơn
ngữ Javascripts, chính vì vậy mà việc sử dụng API từ Google cũng khá dễ dàng. Đồng
thời Map API cũng đã được nâng cấp lên phiên bản mới, khơng chỉ hỗ trợ cho máy tính

21


và website truyền thống mà còn cả thiết bị di động, giúp ứng dụng hoạt động nhanh hơn
và hiệu quả hơn.
Hỗ trợ miễn phí bởi Google với các ứng dụng có lượng truy cập thấp.
2.5.

OpenRouteService

OpenRouteService khơng chỉ là một dịch vụ định tuyến: nó sử dụng một loạt các
dịch vụ dựa trên dữ liệu OSM có thể được sử dụng trong tất cả các loại ứng dụng và kịch
bản khác nhau. Hiện tại, các dịch vụ sau đã được triển khai trong khuôn khổ của
OpenRouteService.
Dịch vụ Chỉ đường xác định các tuyến đường du lịch và thông tin điều hướng
theo các tiêu chí đa dạng. Điều này đã được hiện thực hóa cho: ơ tơ: nhanh nhất, ngắn
nhất, được khuyến nghị một số tùy chọn để tránh các công cụ, đường hầm, v.v. nhiều
cấu hình xe hạng nặng (Giao hàng, Lâm nghiệp, Xe buýt ...) với nhiều tùy chọn có thể

tùy chỉnh xe đạp (MTB, xe đạp đua, tuyến đường an tồn nhất và hơn thế nữa) người đi
bộ (bình thường và đi bộ đường dài) định tuyến xe lăn
Dịch vụ Pois là một dịch vụ cung cấp quyền truy cập vào danh mục trực tuyến để
tìm vị trí của một địa điểm, sản phẩm hoặc dịch vụ cụ thể hoặc gần nhất.
Dịch vụ Isochrones tính tốn một đa giác đại diện cho khu vực có thể đến được
trong một khoảng thời gian nhất định dựa trên mạng lưới đường phố xung quanh một vị
trí nhất định.
Dịch vụ mã hóa địa lý cung cấp Bộ mã hóa địa lý / Bộ mã hóa địa lý ngược; bộ
mã hóa địa lý chuyển đổi mơ tả của một vị trí, chẳng hạn như tên địa điểm, địa chỉ đường
phố hoặc mã bưu điện, thành mơ tả chuẩn hóa của vị trí với dạng hình học điểm.

22


Hình 2.4. Bản đồ của OpenRouteService
Tải lên và tải xuống Đường đi GPS ở các định dạng khác nhau.
2.6.

Xamarin.Forms.GoogleMaps

Một thư viện cho Xamarin.Forms đã có tinh chỉnh cho Google Maps giúp đỡ
trong việc ứng dụng Google Map API thuận tiện hơn.

23


Hình 2.5: Demo về Xamarin.Forms.GoogleMaps
Có cách chức năng được nêu bên dưới hỗ trợ cho việc đánh dấu, vẽ tuyến đường,..
hỗ trợ cho cả 2 nền tảng android và ios.
Các chức năng: dựa theo bài viết gốc trên github

Tính năng
Map types

24

X.F.Maps


X.F.GoogleMaps



Traffic map

-



Map events

-



Panning with animation






Panning directly

-



Pins





Custom Pins

-



Pin drag & drop

-



Polygons

-




Lines

-



Circles

-



Custom map tiles

-



Bảng 2.1. So sánh Xamarin.Forms.Maps và Xamarin.Forms.GoogleMaps [1]

Nền tảng

Hỗ trợ

iOS Unified



25



×