Liên hệ với bài toán thực tế kể trên, đối với các nhà hàng hoặc khu vực hoạt động ăn uống, tại sao lại không sử dụng chính những thiết bị gần gũi hằng ngày đó để giúp đỡ những tiểu thươn
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
VÀ TRUYỀN THÔNG VIỆT - HÀN
KHOA KHOA HỌC MÁY TÍNH
HỌ VÀ TÊN HSSV Trương Vĩnh Kha
TÊN ĐỀ TÀI Xây dựng ứng dụng “Đặt món ăn tại bàn” cho nhà
hàng, quán ăn
ĐỒ ÁN TỐT NGHIỆP
NGÀNH CÔNG NGHỆ THÔNG TIN
Đà Nẵng – Tháng 11 Năm 2021
Trang 2TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
VÀ TRUYỀN THÔNG VIỆT - HÀN
KHOA KHOA HỌC MÁY TÍNH
HỌ VÀ TÊN HSSV Trương Vĩnh Kha
Mã HSSV: 191C900022
TÊN ĐỀ TÀI Xây dựng ứng dụng “Đặt món ăn tại bàn” cho nhà
Trang 3Nhận xét của cán bộ hướng dẫn
Trang 4
Nhận xét của phản biện 1
Trang 5
Nhận xét của phản biện 2
Trang 6
LỜI CẢM ƠN
Lời đầu tiên, em không biết nói gì hơn ngoài bày tỏ sự biết ơn sâu sắc đến các thầy cô Trong suốt chặng đường học tập tại Trường Đại học Công nghệ Thông tin và Truyền thông Việt – Hàn, em đã nhận được rất nhiều sự quan tâm, giúp đỡ của quý thầy cô cùng bạn bè Với lòng biết ơn và chân thành, em xin gửi đến quý thầy cô Trường Đại học Công nghệ Thông tin và Truyền thông Việt – Hàn đã luôn cân cần giúp đỡ và hướng dẫn em, dùng tri thức và tâm huyết của mình để truyền đạt vốn kiến thức quý báu cho em trong suốt thời gian em học tại trường
Đặc biệt, em xin gửi lời cảm ơn chân thành và sự tri ân sâu sắc nhất đến thầy ThS Phạm
Hồ Trọng Nguyên, thầy là người đã trực tiếp hướng dẫn em trong việc lựa chọn đề tài nghiên cứu, hướng tiếp cận và giúp em chỉnh sửa những thiếu sót trong quá trình nghiên cứu Trong quá trình nghiên cứu, khó tránh khỏi sai sót, rất mong các Thầy, Cô bỏ qua và giúp em hoàn thiện hơn
Đồng thời do trình độ lý luận cũng như kinh nghiệm thực tiễn còn hạn chế nên bài luận văn không thể tránh khỏi những thiếu sót, em rất mong nhận được ý kiến đóng góp từ phía Thầy, Cô để em học thêm được nhiều kinh nghiệm và sẽ hoàn thành tốt hơn
Em xin chân thành cảm ơn!
Trang 7MỤC LỤC
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT 10
DANH MỤC HÌNH VẼ 11
MỞ ĐẦU 13
1 Tính cấp thiết của đề tài 13
2 Mục tiêu nghiên cứu 13
3 Đối tượng và phạm vi nghiên cứu 13
4 Phương pháp nghiên cứu 14
5 Ý nghĩa khoa học và thực tiễn của đề tài 14
6 Bố cục đề tài 14
Chương 1: Tổng quan về công nghệ sử dụng trong đề tài 1
1 Node JS 1
1.1 Khái niệm Node JS 1
1.2 Đặc điểm của Node JS 1
1.3 Điểm mạnh và hạn chế của Node JS 1
2 React JS 2
2.1 Khái niệm React JS 2
2.2 Tính năng nổi bật của React JS 2
2.3 Tại sao nên dùng ngôn ngữ React JS để xây dựng web app 3
3 React Native 4
3.1 Khái niệm React Native 4
3.2 Ưu điểm và nhược điểm của React Native 4
3.3 Điểm khác biệt của ReactJS và React Native 5
4 MySQL 5
4.1 Khái niệm MySQL 5
4.2 Ưu điểm, nhược điểm của MySQL 5
4.3 Tại sao nên sử dụng hệ quản trị cơ sở dữ liệu MySQL 6
5 Socket IO 6
5.1 Khái niệm Socket IO 6
5.2 Những điểm nổi bật của Socket IO 7
Chương 2: Phân tích, thiết kế hệ thống 8
1 Các tác nhân 8
Trang 81.1 Người dùng 8
1.2 Người quản trị 8
1.3 Nhân viên 8
2 Biểu đồ use-case 8
2.1 Biểu đồ use-case tổng quát 8
2.2 Biểu đồ use-case người dùng 9
2.3 Biểu đồ use-case nhân viên 9
2.4 Biểu đồ use-case admin 10
3 Biểu đồ tuần tự 11
3.1 Biểu đồ tuần tự đăng nhập admin, nhân viên 11
3.2 Biểu đồ tuần tự thêm tài khoản nhân viên 12
3.3 Biểu đồ tuần tự chỉnh sửa tài khoản nhân viên 13
3.4 Biểu đồ tuần tự xóa tài khoản nhân viên 13
3.5 Biểu đồ tuần tự thêm món ăn 14
3.6 Biểu đồ tuần tự chỉnh sửa giá thành, hình ảnh món ăn 14
3.7 Biểu đồ tuần tự tự xóa món ăn 15
3.8 Biểu đồ tuần tự thêm bàn 15
3.9 Biểu đồ tuần tự xóa bàn 16
3.10 Biểu đồ tuần tự tạo hóa đơn mới 16
3.11 Biểu đồ tuần tự gọi món 17
3.12 Biểu đồ tuần tự xác nhận đặt món 17
3.13 Biểu đồ tuần tự thanh toán 18
4 Biểu đồ ERD 18
Chương 3: Xây dựng ứng dụng 19
1 Ứng dụng di động (Dành cho khách hàng) 19
1.1 Màn hình trang chủ 19
1.2 Màn hình chọn món 19
1.3 Màn hình chi tiết gọi món 20
1.4 Màn hình cài đặt 20
2 Ứng dụng Web (Dành cho Admin, nhân viên) 21
2.1 Màn hình đăng nhập 21
2.2 Màn hình trang chủ 21
2.3 Màn hình lịch sử gọi món 22
Trang 92.5 Màn hình quản lý món ăn (Dành cho Admin) 23
2.6 Màn hình quản lý bàn (Dành cho Admin) 23
Chương 4: Kết luận và hướng phát triển 24
1 Kết quả đạt được 24
2 Hướng nghiên cứu 24
TÀI LIỆU THAM KHẢO 25
Trang 10DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
CPU Central Processing Unit
HTML Hypertext Markup Language
DOM Document Object Model
SEO Search Engine Optimization
VPS Virtual Private Server
Perl Practical Extraction and Report Language
ASP Active Server Pages
NET Network Enabled Technologies
JSX Javascript eXtensible Markup Language
Trang 11DANH MỤC HÌNH VẼ
Hình 1: Các tác nhân 8
Hình 2: Biểu đồ use-case 8
Hình 3: Biểu đồ use-case người dùng 9
Hình 4: Biểu đồ use-case nhân viên 9
Hình 5: Biểu đồ use-case nhân viên bếp 10
Hình 6: Biểu đồ use-case admin 10
Hình 7: Biểu đồ tuần từ đăng nhập của admin 11
Hình 8: Biểu đồ tuần tự đăng nhập của nhân viên 11
Hình 9: Biểu đồ tuần tự đăng nhập của nhân viên bếp 12
Hình 10: Biểu đồ tuần tự thêm tài khoản nhân viên 12
Hình 11: Biểu đồ tuần tự chỉnh sửa tài khoản nhân viên 13
Hình 12: Biểu đồ tuần tự xóa tài khoản nhân viên 13
Hình 13: Biểu đồ tuần tự thêm món ăn 14
Hình 14: Biểu đồ tuần tự chỉnh sửa giá thành, hình ảnh món ăn 14
Hình 15: Biểu đồ tuần tự xóa món ăn 15
Hình 16: Biểu đồ tuần tự thêm bàn 15
Hình 17: Biểu đồ tuần tự xóa bàn 16
Hình 18: Biều đồ tuần tự tạo hóa đơn 16
Hình 19: Biểu đồ tuần từ gọi món 17
Hình 20: Biểu đồ tuần tự xác nhận đặt món 17
Hình 21: Biểu đồ tuần tự thanh toán 18
Hình 22: Biểu đồ ERD 18
Hình 23: Màn hình trang chủ trên di động 19
Hình 24: Màn hình chọn món 19
Hình 25: Màn hình chi tiết gọi món 20
Hình 26: Màn hình cài đặt 20
Hình 27: Màn hình đăng nhập 21
Hình 28: Màn hình trang chủ 21
Hình 29: Màn hình lịch sử gọi món 22
Trang 12Hình 30: Màn hình quản lý tài khoản 22Hình 31: Màn hình quản lý món ăn 23Hình 32: Màn hình quản lý bàn 23
Trang 13MỞ ĐẦU
1 Tính cấp thiết của đề tài
Hiện nay, ngành nhà hàng, dịch vụ ăn uống tại Việt Nam đang phát triển, nhu cầu nhân viên phục vụ trong giờ cao điểm càng cần thiết hơn Tuy nhiên, tình trạng khách hàng phải chờ quá lâu hoặc phục vụ sai món hoặc thanh toán nhầm vẫn còn xảy ra Đôi khi chính bản thân em cũng bị rơi vào tình trạng đó và đúng là không dễ chịu chút nào
Bên cạnh đó các thiết bị điện tử đặc biệt là điện thoại thông minh và máy tính bảng đang có sự phát triển vượt bậc và dần trở nên phổ biến hơn đối với mọi người cũng như mọi gia đình So với mười năm trước đây, bây giờ không khó để bắt gặp những chiếc điện thoại thông minh mỗi khi đi ra đường
Liên hệ với bài toán thực tế kể trên, đối với các nhà hàng hoặc khu vực hoạt động ăn uống, tại sao lại không sử dụng chính những thiết bị gần gũi hằng ngày đó để giúp đỡ những tiểu thương và chủ nhà hàng trong việc quản lý các đơn hàng ở quán của họ?
Từ những lý do đó, em đã chọn đề tài này nhằm giúp họ giải quyết các vấn đề trên
2 Mục tiêu nghiên cứu
Với mục tiêu vận dụng những gì đã được học trên ghế nhà trường vào thực tế, đặc biệt hơn nữa là nước ta đang trong thời kì chuyển đổi số, em muốn tạo ra một ứng dụng cho phép đặt món ăn tại bàn do chính khách hàng trực tiếp chọn và yêu cầu nhà hàng phục vụ
Từ đó, giảm thiểu được sai sót trong các khâu trung gian, vừa trao quyền chủ động cho khách hàng vừa giảm tải giúp nhân viên trong những dịp cao điểm
Em thấy rằng mình cần phải hoàn thành được 2 nhiệm vụ chính Về mặt khách hàng: Ứng dụng phải sinh động, dễ sử dụng với mọi đối tượng Về phía chủ nhà hàng: phải đảm bảo nghiệp vụ rõ ràng, chính xác trong khâu tính toán để tránh khỏi thất thoát và lỗ vốn do phần mềm gây ra
3 Đối tượng và phạm vi nghiên cứu
Với tính thực tiễn cao của đề tài, ứng dụng của em không chỉ thích hợp để sử dụng cho các mô hình nhà hàng/quán ăn vừa và lớn, có số lượng khách vào giờ cao điểm đông (điển hình như: Đặc sản Trần, chuỗi quán ăn Bún đậu Gia Di, …) mà còn có thể sử dụng tại các cửa hàng quán ăn quy mô nhỏ hơn như quán bánh tráng kẹp, ăn vặt… Do chi phí xây dựng
hệ thống là không quá lớn, tối thiểu chỉ cần một chiếc máy tính và một chiếc điện thoại thông minh có kết nối mạng là đã có thể vận hành được
Trang 144 Phương pháp nghiên cứu
Em chọn phương pháp nghiên cứu từ thực tế, bằng cách tìm hiểu và nắm bắt quy trình phục vụ của một số nhà hàng quán ăn, cũng như khảo sát một số thói quen khi chọn lựa món ăn của khách hàng Từ những thông tin đã thu thập được, em có thể phân tích và đưa
ra được các nghiệp vụ mà hệ thống cần phải giải quyết, qua đó khắc phục những điểm bất cập so với cách gọi món truyền thống bằng miệng hoặc ghi giấy
5 Ý nghĩa khoa học và thực tiễn của đề tài
Giúp chủ nhà hàng/quán ăn ứng dụng công nghệ vào kinh doanh, cắt giảm chi phí nhân viên, tăng khả năng tương tác, lôi kéo khách hàng tiềm năng
6 Bố cục đề tài
Sau phần Mở đầu, báo cáo được trình bày trong ba chương, cụ thể như sau:
Chương 1 Tổng quan về ngôn ngữ và hệ quản trị cơ sở dữ liệu MySQL
1.1 Ngôn ngữ Node JS
1.1.1 Khái niệm Node JS
1.1.2 Đặc điểm của Node JS
1.1.3 Điểm mạnh và hạn chế của Node JS
1.2 Ngôn ngữ React JS
1.2.1 Khái niệm React JS
1.2.2 Tính năng nổi bật của React JS
1.2.3 Tại sao nên dùng ngôn ngữ React JS để xây dựng web app
1.3 Ngôn ngữ React Native
1.3.1 Khái niệm React JS
1.3.2 Ưu điểm, nhược điểm của React Native
1.3.3 Điểm khác biệt của ReactJS và React Native
1.4 Hệ quản trị cơ sở dữ liệu MySQL
1.4.1 Khái niệm MySQL
1.4.2 Ưu điểm, nhược điểm của MySQL
1.4.3 Tại sao nên sử dụng hệ quản trị cơ sở dữ liệu MySQL
1.5 Socket IO
Trang 151.5.2 Những điểm nổi bật của Socket IO
Chương 2 Phân tích thiết kế hệ thống và tạo cơ sở dữ liệu
2.1 Các tác nhân
2.1.1 Tác nhân người dùng
2.1.2 Tác nhân người quản trị
2.1.3 Tác nhân nhân viên
2.2 Biểu đồ use-case
2.2.1 Biểu đồ use-case tổng quát
2.2.2 Biểu đồ use-case admin
2.2.3 Biểu đồ use-case nhân viên
2.2.4 Biểu đồ use-case người dùng
2.3 Biểu đồ tuần tự
2.3.1 Biểu đồ tuần tự đăng nhập admin, nhân viên
2.3.2 Biểu đồ tuần tự thêm tài khoản nhân viên
2.3.3 Biểu đồ tuần tự chỉnh sửa tài khoản nhân viên
2.3.4 Biểu đồ tuần tự xóa tài khoản nhân viên
2.3.5 Biểu đồ tuần tự thêm món ăn
2.3.6 Biểu đồ tuần tự chỉnh sửa giá thành, hình ảnh món ăn 2.3.7 Biểu đồ tuần tự xóa món ăn
2.3.8 Biểu đồ tuần tự thêm bàn
2.3.9 Biểu đồ tuần tự xóa bàn
2.3.10 Biểu đồ tuần tự tạo hóa đơn mới
2.3.11 Biểu đồ tuần tự gọi món
2.3.12 Biểu đồ tuần tự xác nhận đặt món
2.3.13 Biểu đồ tuần tự thanh toán
2.4 Biểu đồ ERD
Chương 4 Demo sản phẩm
Trang 16Chương 1: Tổng quan về công nghệ sử dụng trong đề tài
1 Node JS
1.1 Khái niệm Node JS
NodeJS là mã nguồn mở chạy trên môi trường V8 JavaScript runtime (một trình thông dịch JavaScript chạy cực nhanh trên trình duyệt Chrome) NodeJS giúp các nhà phát triển xây dựng các ứng dụng web một cách đơn giản và dễ dàng mở rộng
NodeJS có thể được dùng để xây dựng các loại ứng dụng khác nhau như các ứng dụng dòng lệnh, ứng dụng web, ứng dụng trò chuyện theo thời gian thực, máy chủ REST API, Tuy nhiên, NodeJS thường được dùng chủ yếu để xây dựng các chương trình mạng như máy chủ web, tương tự như PHP, Java hoặc ASP.NET
Vì đây là mã nguồn mở nên cho phép bạn sử dụng miễn phí và đồng thời được liên tục được chỉnh sửa, cải tiến bởi cộng đồng các nhà phát triển toàn cầu
1.2 Đặc điểm của Node JS
NodeJS không cần đợi API trả dữ liệu về, do đó mọi APIs nằm trong thư viện NodeJS đều không được đồng bộ
Đây là một Platform chứ không phải là một Framework Do đó, NodeJS cho phép bạn có thể xây dựng các website một cách độc lập và nhanh chóng hơn
NodeJS có thể chạy trên đa nền tảng gồm: Window, MacOS, Linux
NodeJS được xem là một máy chủ đơn luồng và không thể hỗ trợ đa luồng
NodeJS không được xem là một ngôn ngữ lập trình, nên những người mới phải nắm chắc kiến thức lập trình căn bản như: các giao thức, Javascript,… mới có thể
sử dụng NodeJS
Phần core của NodeJS thường được biết bằng ngôn ngữ C++ nên nó hiệu năng và tốc độ xử lý tương đối cao Nhờ vậy, hầu hết các ứng dụng NodeJS đều có khả năng đáp ứng được thời gian thực chạy trên đa nền tảng, đa thiết bị,…
1.3 Điểm mạnh và hạn chế của Node JS
1.3.1 Điểm mạnh
IO hướng sự kiện không đồng bộ giúp xử lý nhiều yêu cầu đồng thời
Đáp ứng được những yêu cầu về thời gian thực
Có tốc độ cực rất nhanh, đáp ứng được nhu cầu sử dụng của khách truy cập khổng lồ trong thời gian ngắn
Sử dụng JavaScript, một ngôn ngữ lập trình rất dễ học
Trang 17 Npm và các module rất mạnh mẽ và vẫn đang tiếp tục phát triển
Có một cộng đồng lớn mạnh, có nhiều mã được chia sẻ qua github
Tương thích với nhiều thiết bị, nhiều hệ điều hành như MacOS, Window, Linux,…
Nếu không hiểu rõ về JavaScript, bạn sẽ gặp khó khăn với NodeJS
NodeJS không phù hợp với các tác vụ đòi hỏi nhiều CPU mà chỉ phù hợp với những I/O như máy chủ web
Nếu bạn có một web hosting dùng chung, sẽ rất khó khăn nếu bạn tải lên một ứng dụng NodeJS VPS và Dedicated server là một sự lựa chọn tốt hơn nhiều
2 React JS
2.1 Khái niệm React JS
ReactJS là một thư viện JavaScript được sử dụng để xây dựng giao diện người dùng (UI), bạn cũng có thể gọi với một cái tên khác là React
Năm 2013, Facebook đã công bố một thư viện JavaScript có mã nguồn mở có tên là ReactJS, ngay lập tức ReactJS được cộng đồng đón nhật một cách nồng nhiệt Rất nhanh chóng, ReactJS đã phát triển vượt bậc và áp đảo lượng người sử dụng trên bản thịnh hành, soán ngôi của Angular và Bootstrap
ReactJS được các tập đoàn khổng lồ như: Netflix, Airbnb, American Express, Facebook, WhatsApp, eBay, Instagram, … sử dụng để xây dựng giao diện người dùng cho ứng dụng của họ
Mục đích cốt lõi của ReactJS chính là giúp cho giao giao diện của các thiết bị có thể phản ứng một cách nhanh nhẹn hơn, hay nói khác đi là gia tăng độ mượt cho trang web, ứng dụng của bạn
2.2 Tính năng nổi bật của React JS
Có thể sử dụng ReactJS để viết ứng dụng trực tiếp bằng JavaScript
Biến các thành phần UI phức tạp trở thành những component độc lập
Chuyển các dữ liệu đã được tùy biến đến một UI component cụ thể
Trang 18 Thay đổi trạng thái cho nhiều component con và không gây ảnh hưởng đến component gốc dù đang ở trong đang ở trạng thái Stateful
Khả năng xác định chính xác khi nào cần render lại cũng như khi nào bỏ đi phần
tử DOM
2.3 Tại sao nên dùng ngôn ngữ React JS để xây dựng web app
Dễ sử dụng, giao diện thân thiện với người dùng: Sử dụng ReactJS, người dùng có thể
tạo ra những ứng dụng web hấp dẫn, nhanh và hiệu quả với mã hóa tối thiểu Người dùng
sẽ cảm nhận rõ độ tối ưu của ReactJS ở các component (thành phần) riêng lẻ Thay vì phải làm việc trên toàn bộ ứng dụng website, khi sử dụng ReactJS, developer có thể chia nhỏ cấu trúc UI thành những component đơn giản hơn Với trình độ của một lập trình viên JavaScript, sử dụng ReactJS, có thể dễ dàng phát triển các ứng dụng dựa trên website
Hỗ trợ Reusable Component trong Java: Không phải developer nào cũng có thể thiết
kế những component hiệu quả Có thể tái sử dụng component mang đến cho developer cơ hội sử dụng rộng rãi những tính năng đã được tối ưu sẵn Nhờ ReactJS, developer hoàn toàn có thể sử dụng lại components đã được phát triển thành các ứng dụng khác có cùng chức năng
Dễ dàng viết component dễ dàng hơn: Để viết React component, người dùng sẽ sử dụng
JSX Đây là một sự kết hợp giữa JavaScript và HTML Tuy không phải là phần mở rộng
cú pháp phổ biến nhất, JSX được người dùng đánh giá cao khi phát triển components đặc biệt hoặc các ứng dụng có khối lượng lớn Sử dụng JSX, người dùng có thể mở rộng cú pháp với nhiều lựa chọn dễ dàng Quá trình viết cấu trúc trang web cũng rõ ràng hơn
Hiệu suất tốt hơn với Virtual DOM: Các dự án ứng dụng trên website thường dễ gặp
rắc rối trong quá trình DOM Với lợi thế sử dụng Virtual-DOM, ReactJS sẽ giúp người dùng tránh được vấn đề này Bên cạnh đó, ReactJS cũng cho phép người dùng xây dựng các Virtual DOM và host chúng trong bộ nhớ Ưu điểm này sẽ giúp Vitural thay đổi ngay khi DOM thực tế có sự thay đổi Cập nhật liên tục giúp các ứng dụng tránh tình trạng bị gián đoạn Người dùng sử dụng liên tục, website ổn định giúp doanh thu duy trì và tăng trưởng vượt bậc
Thân thiện với SEO: Đây là mong muốn của tất cả doanh nghiệp trong thời đại thương
mại điện tử sôi động hiện nay Giao diện người dùng có thể truy cập càng nhiều công cụ tìm kiếm khác nhau đồng nghĩa với khả năng tiếp cận khách hàng càng cao Đây là một trong những yếu tố ảnh hưởng trực tiếp đến sự tăng trưởng doanh thu bán hàng qua website Thực tế, không phải tất cả các khung JavaScript đều thân thiện với SEO May mắn thay, ReactJS ra đời như một lời giải cho bài toán này React cho phép bạn tạo giao diện người dùng có thể được truy cập trên các công cụ tìm kiếm khác nhau Tuy nhiên, ReactJS chỉ là một thư viện JavaScript ReactJS càng không thể tự làm mọi thứ, thay thế cho cả đội ngũ SEO, SALE hay Developer Người dùng có thể kết hợp ReactJS cùng các thư viện bổ sung cần thiết cho mục tiêu quản lý, định tuyến và tương tác
Trang 193 React Native
3.1 Khái niệm React Native
React Native là một framework do công ty công nghệ nổi tiếng Facebook phát triển nhằm mục đích giải quyết bài toán hiệu năng của Hybrid và bài toán chi phí khi mà phải viết nhiều loại ngôn ngữ native cho từng nền tảng di động
Chúng ta sẽ build được ứng dụng Native, và chúng ta cũng có thể build ứng dụng đó một cách đa nền tảng (multi-platform) chứ không phải là một “mobile web app”, không phải là “HTML5 app”, và cũng không phải là một “hybrid app” hay cũng không chỉ build trên iOS hay Android mà chúng ta build và chạy được cả hai hệ sinh thái
Một điểm hay ho nữa mà mình có đề cập là giảm chi phí recompile của Native bằng cách sử dụng Hot-Loading tức là bạn không cần phải build lại ứng dụng từ đầu nên việc chỉnh sửa diễn ra rất nhanh chóng Giúp cho lập trình viên có thể thấy được những chỉnh sửa của họ một cách nhanh chóng trực quan, không còn phải bỏ quá nhiều thời gian trong việc build và run ứng dụng nữa
Và điểm lợi hại kế tiếp của React Native đó chính là chúng ta chỉ cần sử dụng JS để phát triển được một ứng dụng di động hoàn chỉnh, đồng thời giải quyết được các vấn đề
mà Native App gặp phải Và còn kết hợp với code native như Swift, Java, v.v…
3.2 Ưu điểm và nhược điểm của React Native
Xây dựng cho nhiều hệ điều hành khác nhau với ít native code nhất
Trải nghiệm người dùng tốt hơn là hybrid app
3.2.2 Nhược điểm
Vẫn đòi hỏi native code
Hiệu năng sẽ thấp hơn với app thuần native code
Bảo mật không cao do dựa trên JS
Quản lý bộ nhớ
Khả năng tùy biến cũng không thực sự tốt đối với một vài module
Trang 203.3 Điểm khác biệt của ReactJS và React Native
Thiết lập và đóng gói (setup and bundling): Thiết lập và vận hành React Native khá nhanh chóng vì có sẵn tất cả những module cần thiết Trong khi đó, bạn cần phải xác định các module cần thiết cho ứng dụng của mình khi dùng ReactJS
DOM và Styling: React Native không dùng HTML để render app mà cung cấp các component để thay thế Component React Native sẽ map các UI iOS hoặc Android được render trên ứng dụng
Animations và Gestures: Thay vì CSS animation, bạn sẽ phải sử dụng JavaScript
để tạo các Component động trong React Native
Điều hướng (Navigation): Navigator trong React Native cung cấp tất cả những
gì mà bạn cần để thực hiện việc chuyển đổi giữa các Scene trong ứng dụng
Nền tảng code riêng (Platform specific code): React Native có khả năng phát hiện và nạp đúng code cho nền tảng được hỗ trợ
4 MySQL
4.1 Khái niệm MySQL
MySQL là hệ quản trị cơ sở dữ liệu tự do, nguồn mở phổ biến nhất thế giới và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng Vì MySQL là hệ quản trị
cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển, hoạt động trên nhiều
hệ điều hành, cung cấp một hệ thống lớn các hàm tiện ích rất mạnh Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có truy cập CSDL trên internet Người dùng có thể tải về MySQL miễn phí từ trang chủ MySQL có nhiều phiên bản cho các hệ điều hành khác nhau: phiên bản Win32 cho các hệ điều hành dòng Windows, Linux, Mac
OS X, Unix, FreeBSD, NetBSD, Novell NetWare, SGI Irix, Solaris, SunOS,
MySQL là một trong những ví dụ rất cơ bản về Hệ Quản trị Cơ sở dữ liệu quan hệ sử dụng Ngôn ngữ truy vấn có cấu trúc (SQL)
MySQL được sử dụng cho việc bổ trợ Node.js, PHP, Perl, và nhiều ngôn ngữ khác, làm nơi lưu trữ những thông tin trên các trang web viết bằng NodeJs, PHP hay Perl,
4.2 Ưu điểm, nhược điểm của MySQL
4.2.1 Ưu điểm của MySQL
Dễ sử dụng : MySQL là cơ sở dữ liệu tốc độ cao, ổn định, dễ sử dụng và hoạt
độn trên nhiều hệ điều hành, cung cấp một hệ thống lớn các hàm tiện ích rất mạnh
Độ bảo mật cao: MySQL rất thích hợp cho các ứng dụng có truy cập CSDL
trên Internet khi sở hữu nhiều tính năng bảo mật, thậm chí là ở cấp cao
Đa tính năng: MySQL hỗ trợ rất nhiều chức năng SQL được minh chờ từ một