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

ỨNG DỤNG TÌM KIẾM và CHIA sẻ CHUYẾN đi kỹ sư cử NHÂN NGÀNH kỹ THUẬT PHẦN mềm

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.89 MB, 66 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
LƯU HOÀNG KHANG

ĐỒ ÁN 2
ỨNG DỤNG TÌM KIẾM VÀ CHIA SẺ CHUYẾN ĐI
KỸ SƯ/ CỬ NHÂN 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
LƯU HOÀNG KHANG - 16520564

ĐỒ ÁN 2
ỨNG DỤNG TÌM KIẾM VÀ CHIA SẺ CHUYẾN ĐI
KỸ SƯ/ CỬ NHÂN NGÀNH KỸ THUẬT PHẦN MỀM

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

TP. HỒ CHÍ MINH, 2021



NHẬN XÉT CỦA GIÁO VIÊN
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………

3


LỜI CẢM ƠN
Cám ơn cô Nguyễn Thị Thanh Trúc, trong quá trình giảng dạy đã đưa ra
những kiến thức thiết thực để áp dụng vào báo cáo. Cũng như sự góp ý của cơ

cho báo cáo của nhóm em. Những điều cô chỉ ra trong những lần báo cáo tiến
độ đã giúp nhóm 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.
Hi vọng sẽ có cơ hội cùng cơ hồn thiện dự án này ở khóa luận tốt nghiệp.

4


Mục Lục
Chương 1.

TỔNG QUAN ..................................................................................7

1.1.

Giới thiệu ................................................................................................7

1.2.

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

1.3.

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

1.4.

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

1.5.


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

1.6.

Tổng kết ................................................................................................12

Chương 2.

CƠ SỞ LÝ THUYẾT .....................................................................14

2.1.

Xamarin ................................................................................................14

2.2.

Giới thiệu tổng quan về Azure ..............................................................17

2.3.

Firebase .................................................................................................19

2.4.

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

2.5.

Xamarin.Forms.GoogleMaps ...............................................................22


2.6.

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

Chương 3.

PHÂN TÍCH ..................................................................................26

3.1.

Vấn đề chung ........................................................................................26

3.2.

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

Chương 4.

THIẾT KẾ ......................................................................................29

4.1.

Sơ đồ Use case ......................................................................................29

4.2.

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

4.3.


Danh sách usecase ................................................................................30

4.4.

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

4.5.

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

Chương 5.

GIAO DIỆN ...................................................................................48

5.1.

Đăng nhập .............................................................................................48

5.2.

Tạo tài khoản ........................................................................................49

5.3.

Giao diện chính .....................................................................................51

5.4.

Danh bạ .................................................................................................52


5.5.

Cuộc gọi ................................................................................................53

5


5.6.

Tin nhắn ................................................................................................55

5.7.

Tài khoản ..............................................................................................57

5.8.

Tìm kiếm chuyến đi ..............................................................................58

Chương 6.

HƯỚNG PHÁT TRIỂN .................................................................61

6.1.

Giao tiếp ................................................................................................61

6.2.


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

6.3.

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

6.4.

Đăng ký nhanh ......................................................................................64

Chương 7.

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

6


Chương 1.
1.1.

TỔNG QUAN

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 tố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.

7


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.
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.


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
1.2.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 hoà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.2.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.

8


1.3.

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:

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.

9


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 ảnh ứng dụng theo vnexpress.net

10


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.


1.4.

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 toà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,...
– 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.

11


– 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.5.

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.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.

12


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 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.


13


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.

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

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.

14



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 hồn tồn với tiêu chuẩn của lập trình native.
Ngoà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.
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,

15


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.
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.

16


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.

Giới thiệu tổng quan về 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ả.
2.2.1. Dịch vụ tính tốn
2.2.1.1.

Máy ảo

Dịch vụ này cho phép bạn tạo một máy ảo trong Windows, Linux hoặc bất
kỳ cấu hình nào khác trong vài giây.
2.2.1.2.

Dịch vụ điện toán đám mây

Dịch vụ này cho phép bạn tạo các ứng dụng có thể mở rộng trong đám mây.
Sau khi ứng dụng được triển khai, mọi thứ, bao gồm việc cung cấp, cân bằng
tải và theo dõi sức khỏe, đều do Azure đảm nhận.

17


2.2.2. Kết nối mạng
2.2.2.1.

Azure CDN

Azure CDN (Content Delivery Network) dùng để cung cấp nội dung cho
người dùng. Nó sử dụng băng thơng cao và nội dung có thể được truyền đến
bất kỳ người nào trên toàn cầu. Dịch vụ CDN sử dụng một mạng lưới các máy
chủ được đặt ở những vị trí chiến lược trên tồn cầu để người dùng có thể truy
cập vào dữ liệu càng sớm càng tốt.
2.2.2.2.


Express Route

Dịch vụ này cho phép bạn kết nối mạng tại chỗ của mình với đám mây
Microsoft hoặc bất kỳ dịch vụ nào khác mà bạn muốn, thông qua kết nối riêng
tư. Vì vậy, thơng tin liên lạc duy nhất sẽ xảy ra ở đây sẽ là giữa mạng doanh
nghiệp và dịch vụ mà bạn muốn.
2.2.2.3.

Mạng ảo

Mạng ảo cho phép bạn để bất kỳ dịch vụ Azure nào giao tiếp với nhau một
cách riêng tư và an toàn.
2.2.2.4.

Azure DNS

Dịch vụ này cho phép bạn host các DNS domain hoặc domain hệ thống của
mình trên Azure.
2.2.3. Lưu trữ
2.2.3.1.

Disk Storage

Dịch vụ này cho phép bạn chọn từ HDD (Hard Disk Drive) hoặc SSD (Solid
State Drive) làm tùy chọn lưu trữ cùng với máy ảo.

18



2.2.3.2.

Blob Storage

Dịch vụ này được tối ưu hóa để lưu trữ một lượng lớn dữ liệu phi cấu trúc,
bao gồm văn bản và thậm chí cả dữ liệu nhị phân.
2.2.3.3.

File Storage

Đây là một dịch vụ lưu trữ file được quản lý, có thể được truy cập thơng qua
giao thức SMB (Server Message Block).
2.2.3.4.

Queue Storage

Đây là dịch vụ lưu trữ số lượng lớn tin nhắn. Dịch vụ này có thể được truy
cập từ bất kỳ đâu trên thế giới này.
2.3.

Firebase

Firebase là dịch vụ cơ sở dữ liệu hoạt động trên nền tảng đám mây – cloud.
Kèm theo đó là hệ thống máy chủ cực kỳ mạnh mẽ của Google. Chức năng
chính là giúp người dùng lập trình ứng dụng bằng cách đơn giản hóa các thao
tác với cơ sở dữ liệu.
Cụ thể là những giao diện lập trình ứng dụng API đơn giản. Mục đích nhằm
tăng số lượng người dùng và thu lại nhiều lợi nhuận hơn.
Đặc biệt, còn là dịch vụ đa năng và bảo mật cực tốt. Firebase hỗ trợ cả hai
nền tảng Android và IOS. Khơng có gì khó hiểu khi nhiều lập trình viên chọn

Firebase làm nền tảng đầu tiên để xây dựng ứng dụng cho hàng triệu người
dùng trên tồn thế giới.
Các lợi ích này bao gồm:
● Triển khai ứng dụng nhanh chóng
● Bảo mật
● Sự ổn định

19


2.3.1. Firebase Realtime Database
Khi đăng ký một tài khoản trên Firebase để tạo ứng dụng, bạn đã có một cơ
sở dữ liệu thời gian thực. Dữ liệu bạn nhận được dưới dạng JSON. Đồng thời
nó cũng ln được đồng bộ thời gian thực đến mọi kết nối client.
Đối với các ứng dụng đa nền tảng, tất cả các client đều sử dụng cùng một cơ
sở dữ liệu. Nó được tự động cập nhật dữ liệu mới nhất bất cứ khi nào các lập
trình viên phát triển ứng dụng. Cuối cùng, tất cả các dữ liệu này được truyền
qua kết nối an tồn SSL có bảo mật với chứng nhận 2048 bit.
Trong trường hợp bị mất mạng, dữ liệu được lưu lại ở local, vì thế khi có mọi
sự thay đổi nào đều được tự động cập nhật lên Server của Firebase. Bên cạnh
đó, đối với các dữ liệu ở local cũ hơn với Server thì cũng tự động cập nhật để
được dữ liệu mới nhất.
2.3.2. Freebase Authentication

Firebase xây dựng hành động tự động đăng nhập cho ứng dụng bằng cách xác
thực danh tính

20



Hoạt động nổi bật của Firebase là xây dựng các bước xác thực người dùng bằng
Email, Facebook, Twitter, GitHub, Google. Đồng thời cũng xác thực nặc danh cho
các ứng dụng. Hoạt động xác thực có thể giúp thơng tin cá nhân của người sử dụng
được an toàn và đảm bảo không bị đánh cắp tài khoản.

2.3.3. Cloud Messaging

Cloud Messaging là dịch vụ gửi tin, thơng báo miễn phí đến user trên nền
tảng Android, IOS và Web. Bạn có thể gửi tin nhắn đến các nhóm thiết bị, chủ
đề hoặc phân đoạn người dùng cụ thể. Đây là công cụ gửi hàng tỷ thư mỗi ngày
trên ứng dụng lớn nhỏ.
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,…

21


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 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.

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.

22


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

X.F.Maps

X.F.GoogleMaps

Map types






Traffic map

-



Map events

-



Panning with animation





Panning directly

-



Pins






23


Custom Pins

-



Pin drag & drop

-



Polygons

-



Lines

-




Circles

-



Custom map tiles

-



Các nền tảng hỗ trợ
Nền tảng

Hỗ trợ

iOS Unified



Android



Windows 10 UWP




Others

-

2.6.

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

Google API khơng hỗ trợ miễn phí việc gợi ý địa điểm khi tìm kiếm như
chức năng tìm địa điểm của Google map. Cho nên sẽ có một danh sách các địa
điểm được cập nhật sẵn trong thư viện địa điểm của ứng dụng. Mỗi lần tìm
kiếm sẽ dựa theo các địa điểm đã có sẵn. Nếu như địa điểm đó chưa có trong
thư viện thì người dùng vẫn có thể trực tiếp chọn trên bản đồ.
Tọa độ của người dùng cũng sẽ được yêu cầu lúc sử dụng ứng dụng nhằm
nhanh chóng xác định điểm đón. Vì chức năng này là không bắt buộc cho nên
nếu không được cấp phép truy cập của người dùng, ứng dụng vẫn hoạt động
bình thường.

24


Dựa theo điểm khởi hành và điểm đến của tài xế, ta sẽ có “tuyến đường” của
tài xế thơng qua Google Map API. Tương tự, người đi nhờ cũng có điểm khởi
hành và điểm đến nhưng chỉ cần điểm khởi hành nằm trên tuyến đường mà tài
xế chọn sẽ được tiếp tục so sánh. Lý tưởng nhất là khi 2 người trùng điểm đến,
cịn khơng thì sẽ có 2 trường hợp xảy ra:
- Người đi nhờ có điểm đến xa hơn tài xế một chút hoặc có vị trí địa lý khác
nhau nhưng khoảng cách đó có thể đi bộ được.
- Người đi nhờ có điểm đến gần hơn nhưng vẫn nằm trên tuyến đường hoặc
từ điểm gần nhất có thể đi bộ được.

Những trường hợp tối ưu hơn sẽ được ưu tiên trước, vì như vậy sẽ tối đa
được số người có thể đi cùng nhau. Tránh việc một số người thì khơng đi tới
nơi cịn có người thì khơng có ai chở đi.

25


×