Tải bản đầy đủ (.docx) (72 trang)

Xây dựng ứng dụng đặt phò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 (2.41 MB, 72 trang )

ĐỒ ÁN 1

SE121.N21.PMCL

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

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

ĐỒ ÁN MÔN HỌC

XÂY DỰNG ỨNG DỤNG ĐẶT PHÒNG

GIẢNG VIÊN GIẢNG DẠY
THS.THÁI THỤY HÀN UYỂN
Thành viên nhóm:
Trần Dư Gia Bảo – 20520409
Bùi Lương Hiếu – 20520994
TP. HỒ CHÍ MINH, 2023

1


ĐỒ ÁN 1

SE121.N21.PMCL

LỜI CẢM ƠN
Trước khi bước vào phần báo cáo đồ án, nhóm chúng em trân trọng gửi lời cảm ơn đến cô Thái
Thụy Hàn Uyển đã tạo điều kiện cho chúng em có cơ hội được thực hiện đồ án và đã nhiệt tình
góp ý, giúp đỡ chúng em trên lớp, cung cấp cho chúng em rất nhiều kiến thức và cả kinh nghiệm
hữu ích trong và ngồi mảng lập trình di động.


Dù vậy, trong quá trình học tập, cũng như làm đồ án vì thời gian và kiến thức có hạn nên nhóm
em khơng thể tránh khỏi những thiếu sót. Nhóm em mong nhận được sự thơng cảm, đóng góp và
xây dựng từ cơ để nhóm em có thêm nhiều kiến thức có ích và ngày càng hồn thiện Stelio hơn
nữa.
Nhóm thực hiện

Trường Đại học Cơng nghệ Thông tin, tháng 7 năm 2023

2


ĐỒ ÁN 1

SE121.N21.PMCL
MỤC LỤC

CHƯƠNG I.

GIỚI THIỆU ĐỀ TÀI

12

1.

Giới thiệu chung:

12

2.


Mục tiêu đề tài:

12

2.1.

Lý thuyết:

12

2.2.

Mục tiêu

13

3.

Quá trình hiện thực

13

4.

Tổng quan về chức năng

13

CHƯƠNG II.
1.


2.

3.

CƠ SỞ LÝ THUYẾT

React Native

15

1.1.

Tổng quan và lịch sử

15

1.2.

Thành phần của React Native

16

1.3.

Một số đặc điểm nổi bật

17

1.4.


Ưu và nhược điểm của React Native:

18

1.4.1.

Ưu điểm:

18

1.4.2.

Nhược điểm:

19

Ngôn ngữ lập trình JavaScript

19

2.1.

Tổng quan

19

2.2.

Tại sao React Native chọn JavaScript?


20

Hệ quản trị cơ sở dữ liệu Firebase

21

3.1.

Firebase là gì?

21

3.2.

Firebase Realtime database

21

3.3.

Firebase Authentication

21

3.4.

Firebase Hosting

21


3.5.

Ưu điểm của Firebase

22

3.6.

Nhược điểm của Firebase

22

CHƯƠNG III. XÂY DỰNG HỆ THỐNG
1.

15

Xây dựng kiến trúc hệ thống:

24
24

1.1.

Công nghệ sử dụng:

24

1.2.


Kiến trúc hệ thống: Mơ hình Client-Server:

24

1.3.

Kiến trúc ứng dụng: Mơ hình MVC:

25
3


ĐỒ ÁN 1

2.

SE121.N21.PMCL

1.4.

Mô tả thành phần hệ thống:

26

1.5.

Sơ đồ Use case:

26


1.6.

Mô tả Use case

28

1.7.

Đặc tả use case

29

1.7.1.

Đăng ký

29

1.7.2.

Đăng nhập với email và mật khẩu

31

1.7.3.

Yêu thích sản phẩm

32


1.7.4.

Tạo đơn hàng

33

1.7.5.

Thêm mã giảm giá

34

1.7.6.

Chọn phương thức thanh tốn

35

1.7.7.

Thanh tốn

36

1.7.8.

Tìm kiếm

37


1.7.9.

Lọc

39

1.7.10.

Sắp xếp

40

1.7.11.

Xem đơn đặt phịng

41

1.7.12.

Đánh giá homestay

42

1.7.13.

Cài đặt cá nhân

44


1.7.14.

Chỉnh sửa thơng tin cá nhân

45

1.7.15.

Đăng xuất

46

Mơ tả các màn hình:

47

2.1.

Màn hình đăng nhập:

47

2.2.

Màn hình đăng ký:

49

2.3.


Màn hình trang chủ:

51

2.4.

Màn hình thơng báo:

52

2.5.

Màn hình chi tiết Homestay:

54

2.6.

Màn hình chọn ngày giờ booking:

56

2.7.

Màn hình đề xuất homestay:

58

2.8.


Màn hình đặt nhanh Homestay:

59

2.9.

Màn hình thêm Homestay vào danh sách Fast booking:

61

2.10.

Màn hình ưu đãi:

63

2.11.

Màn hình chi tiết ưu đãi:

64

2.12.

Màn hình thơng tin tài khoản:

65
4



ĐỒ ÁN 1
2.13.

SE121.N21.PMCL
Màn hình homestay u thích:

67

3.

Sơ đồ lớp:

68

4.

Sơ đồ hoạt động:

69

4.1.

Hoạt động đăng ký:

69

4.2.

Hoạt động đặt phịng:


70

4.3.

Hoạt động tìm kiếm sản phẩm:

71

CHƯƠNG IV. KẾT LUẬN

72

1.

Kết quả đạt được:

72

2.

Ưu điểm:

72

3.

Nhược điểm và giải pháp:

72


TÀI LIỆU THAM KHẢO

73

5


ĐỒ ÁN 1

SE121.N21.PMCL
DANH MỤC HÌNH ẢNH

CHƯƠNG I.

GIỚI THIỆU ĐỀ TÀI

12

1.

Giới thiệu chung:

12

2.

Mục tiêu đề tài:

12


2.1.

Lý thuyết:

12

2.2.

Mục tiêu

13

3.

Quá trình hiện thực

13

4.

Tổng quan về chức năng

13

CHƯƠNG II.
1.

2.


3.

CƠ SỞ LÝ THUYẾT

React Native

15

1.1.

Tổng quan và lịch sử

15

1.2.

Thành phần của React Native

16

1.3.

Một số đặc điểm nổi bật

17

1.4.

Ưu và nhược điểm của React Native:


18

1.4.1.

Ưu điểm:

18

1.4.2.

Nhược điểm:

19

Ngôn ngữ lập trình JavaScript

19

2.1.

Tổng quan

19

2.2.

Tại sao React Native chọn JavaScript?

20


Hệ quản trị cơ sở dữ liệu Firebase

21

3.1.

Firebase là gì?

21

3.2.

Firebase Realtime database

21

3.3.

Firebase Authentication

21

3.4.

Firebase Hosting

21

3.5.


Ưu điểm của Firebase

22

3.6.

Nhược điểm của Firebase

22

CHƯƠNG III. XÂY DỰNG HỆ THỐNG
1.

15

Xây dựng kiến trúc hệ thống:

24
24

1.1.

Công nghệ sử dụng:

24

1.2.

Kiến trúc hệ thống: Mơ hình Client-Server:


24

1.3.

Kiến trúc ứng dụng: Mơ hình MVC:

25
6


ĐỒ ÁN 1

2.

SE121.N21.PMCL

1.4.

Mô tả thành phần hệ thống:

26

1.5.

Sơ đồ Use case:

26

1.6.


Mô tả Use case

28

1.7.

Đặc tả use case

29

1.7.1.

Đăng ký

29

1.7.2.

Đăng nhập với email và mật khẩu

31

1.7.3.

Yêu thích sản phẩm

32

1.7.4.


Tạo đơn hàng

33

1.7.5.

Thêm mã giảm giá

34

1.7.6.

Chọn phương thức thanh tốn

35

1.7.7.

Thanh tốn

36

1.7.8.

Tìm kiếm

37

1.7.9.


Lọc

39

1.7.10.

Sắp xếp

40

1.7.11.

Xem đơn đặt phịng

41

1.7.12.

Đánh giá homestay

42

1.7.13.

Cài đặt cá nhân

44

1.7.14.


Chỉnh sửa thơng tin cá nhân

45

1.7.15.

Đăng xuất

46

Mơ tả các màn hình:

47

2.1.

Màn hình đăng nhập:

47

2.2.

Màn hình đăng ký:

49

2.3.

Màn hình trang chủ:


51

2.4.

Màn hình thơng báo:

52

2.5.

Màn hình chi tiết Homestay:

54

2.6.

Màn hình chọn ngày giờ booking:

56

2.7.

Màn hình đề xuất homestay:

58

2.8.

Màn hình đặt nhanh Homestay:


59

2.9.

Màn hình thêm Homestay vào danh sách Fast booking:

61

2.10.

Màn hình ưu đãi:

63

2.11.

Màn hình chi tiết ưu đãi:

64

2.12.

Màn hình thơng tin tài khoản:

65
7


ĐỒ ÁN 1
2.13.


SE121.N21.PMCL
Màn hình homestay u thích:

67

3.

Sơ đồ lớp:

68

4.

Sơ đồ hoạt động:

69

4.1.

Hoạt động đăng ký:

69

4.2.

Hoạt động đặt phòng:

70


4.3.

Hoạt động đánh giá sản phẩm:

Error! Bookmark not defined.

4.4.

Hoạt động tìm kiếm sản phẩm:

71

CHƯƠNG IV. KẾT LUẬN

72

1.

Kết quả đạt được:

72

2.

Ưu điểm:

72

3.


Nhược điểm và giải pháp:

72

TÀI LIỆU THAM KHẢO

73

8


ĐỒ ÁN 1

SE121.N21.PMCL
DANH MỤC BẢNG

CHƯƠNG I.

GIỚI THIỆU ĐỀ TÀI

12

1.

Giới thiệu chung:

12

2.


Mục tiêu đề tài:

12

2.1.

Lý thuyết:

12

2.2.

Mục tiêu

13

3.

Quá trình hiện thực

13

4.

Tổng quan về chức năng

13

CHƯƠNG II.
1.


2.

3.

CƠ SỞ LÝ THUYẾT

React Native

15

1.1.

Tổng quan và lịch sử

15

1.2.

Thành phần của React Native

16

1.3.

Một số đặc điểm nổi bật

17

1.4.


Ưu và nhược điểm của React Native:

18

1.4.1.

Ưu điểm:

18

1.4.2.

Nhược điểm:

19

Ngôn ngữ lập trình JavaScript

19

2.1.

Tổng quan

19

2.2.

Tại sao React Native chọn JavaScript?


20

Hệ quản trị cơ sở dữ liệu Firebase

21

3.1.

Firebase là gì?

21

3.2.

Firebase Realtime database

21

3.3.

Firebase Authentication

21

3.4.

Firebase Hosting

21


3.5.

Ưu điểm của Firebase

22

3.6.

Nhược điểm của Firebase

22

CHƯƠNG III. XÂY DỰNG HỆ THỐNG
1.

15

Xây dựng kiến trúc hệ thống:

24
24

1.1.

Công nghệ sử dụng:

24

1.2.


Kiến trúc hệ thống: Mơ hình Client-Server:

24

1.3.

Kiến trúc ứng dụng: Mơ hình MVC:

25
9


ĐỒ ÁN 1

2.

SE121.N21.PMCL

1.4.

Mô tả thành phần hệ thống:

26

1.5.

Sơ đồ Use case:

26


1.6.

Mô tả Use case

28

1.7.

Đặc tả use case

29

1.7.1.

Đăng ký

29

1.7.2.

Đăng nhập với email và mật khẩu

31

1.7.3.

Yêu thích sản phẩm

32


1.7.4.

Tạo đơn hàng

33

1.7.5.

Thêm mã giảm giá

34

1.7.6.

Chọn phương thức thanh tốn

35

1.7.7.

Thanh tốn

36

1.7.8.

Tìm kiếm

37


1.7.9.

Lọc

39

1.7.10.

Sắp xếp

40

1.7.11.

Xem đơn đặt phịng

41

1.7.12.

Đánh giá homestay

42

1.7.13.

Cài đặt cá nhân

44


1.7.14.

Chỉnh sửa thơng tin cá nhân

45

1.7.15.

Đăng xuất

46

Mơ tả các màn hình:

47

2.1.

Màn hình đăng nhập:

47

2.2.

Màn hình đăng ký:

49

2.3.


Màn hình trang chủ:

51

2.4.

Màn hình thơng báo:

52

2.5.

Màn hình chi tiết Homestay:

54

2.6.

Màn hình chọn ngày giờ booking:

56

2.7.

Màn hình đề xuất homestay:

58

2.8.


Màn hình đặt nhanh Homestay:

59

2.9.

Màn hình thêm Homestay vào danh sách Fast booking:

61

2.10.

Màn hình ưu đãi:

63

2.11.

Màn hình chi tiết ưu đãi:

64

2.12.

Màn hình thơng tin tài khoản:

65
10



ĐỒ ÁN 1
2.13.

SE121.N21.PMCL
Màn hình homestay u thích:

67

3.

Sơ đồ lớp:

68

4.

Sơ đồ hoạt động:

69

4.1.

Hoạt động đăng ký:

69

4.2.

Hoạt động đặt phòng:


70

4.3.

Hoạt động đánh giá sản phẩm:

Error! Bookmark not defined.

4.4.

Hoạt động tìm kiếm sản phẩm:

71

5.

Kết quả đạt được:

72

6.

Ưu điểm:

72

7.

Nhược điểm và giải pháp:


72

TÀI LIỆU THAM KHẢO

73

11


ĐỒ ÁN 1

CHƯƠNG I.

SE121.N21.PMCL

GIỚI THIỆU ĐỀ TÀI

1. Giới thiệu chung:
Chúng tôi tự hào giới thiệu đề tài "Xây dựng ứng dụng đặt phịng", một dự án mà chúng
tơi đã đặt mục tiêu mang lại sự tiện lợi và tối ưu cho việc đặt phịng khách sạn thơng qua
sự kết hợp giữa công nghệ thông tin và nhu cầu thực tế của người dùng.
Trong thời đại công nghệ tiên tiến ngày nay, việc tìm kiếm và đặt phịng khách sạn trở
nên ngày càng quan trọng và cần thiết trong cuộc sống hiện đại và bận rộn. Tuy nhiên, các
phương pháp truyền thống, như tìm kiếm qua bài đánh giá hay tra cứu trên các trang web,
thường tốn nhiều thời gian và gây phiền phức cho người dùng.
Để giải quyết vấn đề này, chúng tơi đã phát triển ứng dụng đặt phịng, nhằm mang đến
một trải nghiệm tối ưu và tiết kiệm thời gian cho người dùng. Với sự tích hợp cơng nghệ
thơng tin và các tính năng tiên tiến, người dùng có thể dễ dàng tìm kiếm và đặt phịng
khách sạn theo sở thích và ngân sách của mình chỉ với vài thao tác trên điện thoại di động.

Ứng dụng đặt phịng của chúng tơi mang đến nhiều lợi ích đáng kể. Người dùng có thể dễ
dàng xem thơng tin chi tiết về các khách sạn, bao gồm hình ảnh, tiện nghi và đánh giá từ
các khách hàng trước đó. Đồng thời, họ có thể thực hiện việc đặt phịng và thanh tốn một
cách nhanh chóng và an tồn.
Chúng tơi cam kết mang đến cho người dùng trải nghiệm đặt phòng tiện lợi, tối ưu và
đáng tin cậy. Với đề tài này, chúng tơi hy vọng đóng góp vào việc cải thiện quy trình đặt
phịng khách sạn và giúp mọi người tiết kiệm thời gian, nỗ lực và tăng cường trải nghiệm
du lịch của họ.
Cùng chúng tơi trên hành trình khám phá và trải nghiệm ứng dụng đặt phòng tiện lợi này!
2. Mục tiêu đề tài:
2.1. Lý thuyết:
 Nghiên cứu về ReactNative và ngơn ngữ lập trình JavaScript.

12


ĐỒ ÁN 1

SE121.N21.PMCL

 Nắm rõ các thao tác trên môi trường phát triển tích hợp Android studio và cơng cụ
lập trình Visual studio code.
 Nghiên cứu và sử dụng dịch vụ cơ sở dữ liệu trên nền tảng đám mây – Firebase.
 Nghiên cứu cách thức phát triển ứng dụng đa nền tảng.
2.2. Mục tiêu
 Ứng dụng sẽ hỗ trợ từ cơ bản đến đầy đủ chức năng của một ứng dụng đặt phịng.
 Ứng dụng có giao diện thân thiện, dễ sử dụng.
3. Quá trình hiện thực
Trải qua quá trình tìm hiểu và thực hiện đề tài, nhóm đã giải quyết được các vấn đề đặt ra
ban đầu, từng bước giải quyết và liên tục đặt ra những vấn đề mới để ngày càng hoàn

thiện sản phẩm. Những bước thực hiện:
 Phân tích u cầu bài tốn.
 Lựa chọn nền tảng công nghệ phù hợp với yêu cầu.
 Nghiên cứu cơ sở lý thuyết của công nghệ lựa chọn.
 Áp dụng lý thuyết vào xây dựng ứng dụng thực tiễn.
 Kiểm tra và khám phá các ứng dụng tương tự để tối ưu hoá trải nghiệm người
dùng. và cải thiện các tính năng cho ứng dụng.

13


ĐỒ ÁN 1

SE121.N21.PMCL

4. Tổng quan về chức năng

Hình 1. Tổng quan về chức năng

14


ĐỒ ÁN 1

CHƯƠNG II.

SE121.N21.PMCL

CƠ SỞ LÝ THUYẾT


1. React Native
1.1. Tổng quan và lịch sử
React Native là một framework phát triển ứng dụng di động được phát triển bởi
Facebook. Nó cho phép bạn xây dựng các ứng dụng di động đa nền tảng bằng JavaScript,
sử dụng cùng một mã nguồn cho cả hai hệ điều hành iOS và Android.
React Native được ra mắt lần đầu vào tháng 3 năm 2015 bởi Jordan Walke, một nhân viên
của Facebook. Nguyên tắc chính của React Native là sử dụng các thành phần giao diện
(UI components) tái sử dụng, giúp phát triển ứng dụng di động nhanh chóng và hiệu quả.
Lịch sử của React Native có những sự kiện quan trọng như sau:
Tháng 3 năm 2015: Facebook giới thiệu React Native lần đầu tiên tại F8, sự kiện thường
niên của công ty.
Tháng 4 năm 2015: React Native trở thành mã nguồn mở (open-source) và có sẵn trên
GitHub. Điều này cho phép cộng đồng phát triển tham gia đóng góp và cải thiện
framework.
Tháng 9 năm 2015: React Native 0.1 được phát hành với sự hỗ trợ ban đầu cho iOS.
Tháng 1 năm 2016: React Native 0.18 được phát hành, hỗ trợ đầu tiên cho Android.
Tháng 4 năm 2017: React Native 0.44 được phát hành với sự ra mắt của React Fiber, một
phiên bản cải tiến của React để tăng hiệu suất và khả năng đáp ứng của ứng dụng.
Tháng 6 năm 2019: Microsoft công bố hỗ trợ React Native trên nền tảng Windows.
Tháng 8 năm 2019: Phiên bản Stabel 0.61 của React Native được phát hành với nhiều cải
tiến về hiệu suất, độ ổn định và tính năng mới.
Tháng 10 năm 2020: React Native 0.63 ra mắt, đi kèm với phiên bản ổn định của React
Native CLI và nâng cấp các phiên bản thư viện chính.
15


ĐỒ ÁN 1

SE121.N21.PMCL


Tháng 6 năm 2021: Facebook công bố khả năng tương thích ngược của React Native, cho
phép việc nâng cấp phiên bản React Native mà không cần cập nhật tồn bộ ứng dụng
cùng lúc.

Hình 2. Một số ứng dụng nổi tiếng được viết bằng React Native

1.2. Thành phần của React Native
React Native gồm các phần chính như sau:
 JavaScript Thread: React Native sử dụng một luồng JavaScript để thực thi mã
JavaScript trong ứng dụng. Mã JavaScript đóng vai trị chính trong việc xây dựng
giao diện người dùng và quản lý trạng thái của ứng dụng.
 Bridge (Cầu nối): Bridge là một cơ chế trung gian giữa luồng JavaScript và luồng
Native (thành phần Native). Bridge cho phép truyền thông tin và gọi các phương
thức native từ JavaScript và ngược lại. Điều này cho phép React Native giao tiếp
và tương tác với các tính năng và thành phần native trên các nền tảng iOS và
Android.
 Thành phần Native: React Native cung cấp một API để truy cập các thành phần
native của hệ điều hành. Điều này cho phép phát triển viên sử dụng các tính năng

16


ĐỒ ÁN 1

SE121.N21.PMCL

và thành phần native như camera, GPS, thông báo push, và các thư viện khác có
sẵn trên hệ điều hành.
 Virtual DOM (DOM ảo): React Native sử dụng một phiên bản nhỏ của Virtual
DOM, tương tự như React trên web. Virtual DOM là một bản sao ảo của giao diện

người dùng và được sử dụng để so sánh trạng thái hiện tại và trạng thái mới của
ứng dụng, từ đó cập nhật chỉ những phần thay đổi thực sự lên giao diện.
 Thành phần UI (User Interface Components): React Native cung cấp một bộ sưu
tập các thành phần giao diện người dùng đã được xây dựng sẵn. Các thành phần
này như Text, Image, View, Button và nhiều thành phần khác được sắp xếp và kết
hợp để xây dựng giao diện người dùng của ứng dụng.

Hình 3. Kiến trúc của Flutter

1.3. Một số đặc điểm nổi bật
 Đa nền tảng: React Native cho phép phát triển ứng dụng di động đồng thời trên cả
iOS và Android bằng cùng một mã nguồn. Điều này giảm bớt thời gian và công
sức cần thiết để phát triển và duy trì ứng dụng trên nhiều nền tảng, và giúp tiết
kiệm nguồn lực và chi phí phát triển.
 Tích hợp thành phần native: React Native cho phép truy cập và sử dụng các tính
năng và thành phần native của hệ điều hành như camera, GPS, thông báo push và
17


ĐỒ ÁN 1

SE121.N21.PMCL

nhiều hơn nữa. Điều này giúp tận dụng được sức mạnh của các tính năng native và
cung cấp trải nghiệm gần như ứng dụng native.
 Hiệu suất gần native: React Native sử dụng Virtual DOM để cập nhật chỉ những
phần thay đổi thực sự lên giao diện người dùng. Điều này giúp cải thiện hiệu suất
và tăng tốc độ của ứng dụng so với ứng dụng web dựa trên trình duyệt. Ngồi ra,
với việc sử dụng các thành phần native, React Native có thể đạt hiệu suất gần
tương đương với ứng dụng native truyền thống.

 Hot Reload: Tính năng Hot Reload cho phép xem ngay lập tức các thay đổi trong
mã nguồn và cập nhật giao diện mà không cần khởi động lại ứng dụng. Điều này
giúp phát triển nhanh chóng và tiết kiệm thời gian trong quá trình phát triển và
kiểm thử ứng dụng.
 Community lớn và hỗ trợ tốt: React Native có một cộng đồng phát triển mạnh mẽ,
với nhiều tài liệu, thư viện và hỗ trợ từ cộng đồng. Điều này giúp giải quyết các
vấn đề, tìm kiếm giải pháp và chia sẻ kiến thức với những người khác trong cộng
đồng.

1.4. Ưu và nhược điểm của React Native:
1.4.1. Ưu điểm:
 Đa nền tảng: React Native cho phép phát triển ứng dụng di động đa nền tảng, giúp
tiết kiệm thời gian và công sức so với việc phát triển riêng biệt trên iOS và
Android.
 Tích hợp thành phần native: React Native cho phép truy cập và sử dụng các tính
năng và thành phần native của hệ điều hành, giúp tận dụng sức mạnh của các nền
tảng.
 Hiệu suất tương đối: Nhờ sử dụng Virtual DOM và cơ chế tối ưu hóa khác, React
Native có thể cung cấp hiệu suất gần bằng với ứng dụng native.
 Hot Reload: Tính năng Hot Reload cho phép xem ngay lập tức các thay đổi trong
mã nguồn và cập nhật giao diện mà không cần khởi động lại ứng dụng, giúp tăng
năng suất phát triển.

18


ĐỒ ÁN 1

SE121.N21.PMCL


 Community lớn: React Native có một cộng đồng phát triển mạnh mẽ, với nhiều tài
liệu, thư viện và hỗ trợ từ cộng đồng.

1.4.2. Nhược điểm:
 Giới hạn của Bridge: Việc sử dụng Bridge để giao tiếp giữa JavaScript và thành
phần native có thể làm giảm hiệu suất và gây trễ trong một số trường hợp sử dụng
phức tạp.
 Khả năng tùy chỉnh giới hạn: Một số tính năng và giao diện người dùng phức tạp
có thể địi hỏi viết mã native hoặc sử dụng các thư viện bên thứ ba để đảm bảo tính
tùy chỉnh cao.
 Độ phức tạp trong môi trường phát triển: So với phát triển ứng dụng web, việc cấu
hình mơi trường phát triển và xây dựng ứng dụng React Native có thể phức tạp
hơn.
 Thư viện bên thứ ba có thể hạn chế: Mặc dù có một số thư viện và module hỗ trợ,
nhưng vẫn có những thư viện bên thứ ba hạn chế hoặc khơng tương thích tốt với
React Native.
2. Ngơn ngữ lập trình JavaScript
2.1. Tổng quan
JavaScript là một ngơn ngữ lập trình thơng dịch, đa nền tảng, được sử dụng rộng rãi trong
việc phát triển ứng dụng web. Ngôn ngữ này được thiết kế để cung cấp tính tương tác và
động cho các trang web, giúp tạo ra các trải nghiệm người dùng tốt hơn. JavaScript có cú
pháp tương đối dễ học và có khả năng tương tác với các thành phần HTML và CSS để
thay đổi và điều khiển nội dung trên trang web.
JavaScript là một ngôn ngữ dựa trên sự kiện, có khả năng xử lý các hành động của người
dùng như nhấp chuột, gõ phím, kéo và thả. Nó cũng hỗ trợ các khái niệm của lập trình
hướng đối tượng như class, object, inheritance và encapsulation. Ngôn ngữ này cũng có
các tính năng mạnh mẽ như xử lý bất đồng bộ (asynchronous) thông qua sử dụng
callback, Promise và async/await.

19



ĐỒ ÁN 1

SE121.N21.PMCL

JavaScript ban đầu được tạo ra bởi Brendan Eich tại Netscape vào năm 1995. Ngôn ngữ
này được đặt tên là LiveScript ban đầu, nhưng sau đó được đổi tên thành JavaScript để
tận dụng sự phổ biến của ngôn ngữ Java vào thời điểm đó.
Sau khi được giới thiệu, JavaScript nhanh chóng trở thành một phần quan trọng trong
phát triển web và được hỗ trợ bởi các trình duyệt phổ biến như Netscape Navigator và
Internet Explorer.
2.2. Tại sao React Native chọn JavaScript?
 JavaScript là một ngơn ngữ lập trình rất phổ biến và được sử dụng rộng rãi trong
cộng đồng phát triển web. Việc sử dụng JavaScript trong React Native giúp thu hút
một cộng đồng lập trình viên rộng lớn, cung cấp tài nguyên, thư viện và hỗ trợ
phong phú.
 JavaScript có cú pháp đơn giản và dễ hiểu, nên nó là ngơn ngữ lập trình lý tưởng
cho người mới bắt đầu hoặc người đã có kinh nghiệm với JavaScript. Việc sử dụng
JavaScript trong React Native giúp giảm thời gian học và nhanh chóng tiếp cận
phát triển ứng dụng di động.
 JavaScript không chỉ được sử dụng trên web mà còn được hỗ trợ trên nhiều nền
tảng khác nhau, bao gồm cả di động. Vì vậy, việc sử dụng JavaScript trong React
Native cho phép phát triển ứng dụng di động đa nền tảng (iOS và Android) bằng
cùng một mã nguồn.
 React Native cho phép nhà phát triển sử dụng các thành phần native của hệ điều
hành, chẳng hạn như camera, GPS, hoặc thông báo push, thông qua các giao diện
lập trình ứng dụng (API) native. JavaScript là ngơn ngữ giao diện với các thành
phần native này, cho phép tương tác và sử dụng chúng trong ứng dụng React
Native.


20



×