Chương 1: GIỚI THIỆU CHUNG 1.1 Tổng quan đề tài - Tên ứng dụng: X-Job - Chủ đề chính: Tư vấn, hỗ trợ định hướng nghề nghiệp trong ngành công nghệ thông tin - Nền tảng phát triển: Android - Mô hình phát triển: MVC - Tích hợp chatbot: DialogFlow 1.2 Lý do chọn đề tài Trong nhiều năm qua, công tác tư vấn hướng nghiệp cho học sinh đã được tổ chức với nhiều hình thức khác nhau như cẩm nang “Những điều cần biết” của Bộ Giáo dục & Đào tạo, các chương trình tư vấn hướng nghiệp trực tiếp tại sân trường hay các buổi tọa đàm chia sẻ kinh nghiệm. Những hoạt động này đa phần được tổ chức theo kiểu offline. Trong khi đó với xu hướng số hóa trong thời đại công nghiệp 4.0 và những khó khăn từ việc giãn cách do đại dịch Covid-19 gây ra, học sinh, phụ huynh, trường học và những người làm công tác giáo dục đều rất cần một giải pháp hướng nghiệp số hóa, có khả năng giải đáp những thắc mắc của học sinh một cách tức thời, tường tận và đầy đủ. Hướng nghiệp là một quá trình lâu dài, trong khi các chương trình tư vấn hiện nay chỉ đang giải quyết một lát cắt, tại thời điểm cụ thể.
Chính vì thế chúng em chọn đề tài này, để có thể hỗ trợ các bạn học sinh, cung cấp nguồn thông tin và công cụ tin tưởng để hỗ trợ cho việc tự tìm hiểu bản thân, ngành nghề, đồng thời hỗ trợ tư vấn các bạn để kịp thời tháo gỡ những băn khoăn của các bạn về tương lai nghề nghiệp đặc biệt là ngành Công nghệ thông tin 1 Báo cáo đồ án 1 Ứng dụng tư vấn nghề nghiệp 1.3 Đối tượng sử dụng - Tất cả những người có định hướng theo Công nghệ thông tin, hoặc muốn hiểu thêm về ngành Công nghệ thông tin - Quản trị viên phía trung tâm tư vấn muốn quản lý tin tức đến mọi người sử dụng ứng dụng 1.4 Phạm vi nghiên cứu: 1.1 Phạm vi môi trường: - Ứng dụng di động 1.2 Phạm vi chức năng: - Đối với ChatBot + Có khả năng trả lời các câu hỏi về ngành nghề một cách đầy đủ chi tiết + Phân tích được yêu cầu và đưa ra tư vấn hợp lý cho người dùng + Cung cấp liên hệ trực tiếp nhân viên trung tâm tư vấn khi vấn đề đặt ra ngoài phạm vi của bản thân nó và cập nhật được cách xử lý đối với trường hợp này trong tương lai + Cung cấp các thông tin về ngành nghề Công nghệ thông tin + ChatBot hiểu được tương đối ngôn ngữ tự nhiên - Đối với ứng dụng: + Cung cấp thông tin mới nhất về ngành nghề Công nghệ thông tin + Cung cấp các bài kiểm tra để định hướng bản thân, cũng như bài kiểm tra để xác định ngành nghề phù hợp + Cung cấp chức năng quản lý tin tức bao gồm đăng tải, sửa và xóa bỏ 2 Báo cáo đồ án 1 Chương 2: CƠ SỞ LÝ THUYẾT 2.1 Tìm hiểu về Dart Hình 2.1 Dart là gì? Dart là một ngôn ngữ được phát triển bởi Google, có thể sử dụng để phát triển các ứng dụng web, máy tính để bàn, phía máy chủ và thiết bị di động. Dart là ngôn ngữ lập trình được sử dụng để viết mã các ứng dụng Flutter và cung cấp trải nghiệm tốt nhất cho nhà phát triển để tạo ứng dụng di động chất lượng cao.2 Tính năng tiêu biểu + Cung cấp công cụ hiệu quả: Dart bao gồm các công cụ phân tích mã, các plugin môi trường phát triển tích hợp (IDE) và các gói hệ sinh thái lớn. + Khả năng thu gom rác: Nó quản lý hoặc xử lý việc cấp phát bộ nhớ (bộ nhớ chủ yếu bị chiếm bởi các đối tượng lỗi thời). + Nhập Ghi chú (tùy chọn): Điều này dành cho những người dùng cần bảo mật và nhất quán để kiểm soát tất cả dữ liệu trong ứng dụng của họ.
3 Báo cáo đồ án 1 Ứng dụng tư vấn nghề nghiệp + Có hỗ trợ Typed tĩnh: Chữ ký kiểu là tùy chọn, nhưng phi tiêu là kiểu an toàn và sử dụng suy luận kiểu để phân tích kiểu thời gian chạy. Chức năng này rất quan trọng để tìm lỗi thời gian biên dịch. + Tính di động: Ngoài tính năng dựa trên web (được chuyển sang JavaScript), tính năng này có thể được biên dịch nguyên bản sang mã ARM và x86.3 Sự phát triển của Dart Dart được công bố vào năm 2011 và đã phát triển kể từ đó. Dart được phát hành đều đặn vào năm 2013, với những thay đổi lớn được đưa vào bản phát hành Dart 2.
Trong khi tập trung vào phát triển web độc lập với mục đích chính là thay thế JavaScript, Dart hiện đang tập trung vào lĩnh vực phát triển di động cũng như Flutter. Nó đã cố gắng giải quyết một vấn đề về JavaScript: JavaScript không mang lại sự mạnh mẽ mà nhiều ngôn ngữ thống nhất cung cấp, vì vậy Dart muốn mang đến một phiên bản kế thừa tốt hơn cho JavaScript.4 Tại sao Flutter sử dụng Dart Flutter nhằm mục đích trở thành người thay đổi cuộc chơi trong phát triển ứng dụng dành cho thiết bị di động, cung cấp tất cả các công cụ cần thiết cho nhà phát triển để tạo ra các ứng dụng tuyệt vời mà không có nhược điểm về hiệu suất và khả năng mở rộng. Trong cấu trúc cốt lõi của nó, Flutter có nhiều khái niệm tập trung vào hiệu suất ứng dụng và giao diện người dùng. Để cung cấp những gì tốt nhất của thế giới phát triển với hiệu suất cao so với các SDK gốc chính thức, Flutter sử dụng sự hỗ trợ của Dart để cung cấp các công cụ đóng góp vào năng suất của nhà phát triển trong giai đoạn phát triển và xây dựng các ứng dụng được tối ưu hóa để xuất bản.2 Tìm hiểu về Flutter Hình 2.1 Khái niệm Flutter là bộ phát triển phần mềm giao diện người dùng (SDK) mã nguồn mở miễn phí dành cho thiết bị di động, được Google công bố lần đầu vào năm 2015 và chính thức phát hành vào năm 2017.
Flutter được sử dụng để tạo và phát triển các ứng dụng chất lượng cao và cung cấp trải nghiệm tuyệt vời trên nhiều hệ điều hành như iOS và Android. Flutter được biên dịch nguyên bản từ một cơ sở dữ liệu duy nhất cho web, máy tính để bàn và thiết bị di động. Flutter bao gồm hai thành phần. SDK (Bộ phát triển phần mềm): Đây là tập hợp các công cụ giúp bạn phát triển ứng dụng của mình.
Bao gồm các công cụ để biên dịch mã thành mã máy gốc (mã cho iOS và Android). Framework (thư viện giao diện người dùng dựa trên widget): Đây là tập hợp các thành phần giao diện người dùng (UI) có thể tái sử dụng (Button, Text Inputs, Slider, v.2 Lợi ích của Flutter Thời gian phát triển nhanh hơn: Flutter giúp bạn phát triển ứng dụng nhanh hơn. Bạn có thể khởi chạy ứng dụng của mình trên nhiều nền tảng bằng cách sử dụng cơ sở mã 5 Báo cáo đồ án 1 Ứng dụng tư vấn nghề nghiệp duy nhất của Flutter. Bạn chỉ cần viết mã một lần thay vì phải viết mã riêng cho từng hệ điều hành.
Do đó, nó tiết kiệm chi phí và cực kỳ hiệu quả. Tự do tùy chỉnh và kết xuất nhanh hơn: Flutter có kiến trúc phân lớp cho phép bạn tự do tùy chỉnh các phần tử giao diện người dùng. Đặc biệt, giao diện người dùng của Flutter không yêu cầu các thành phần giao diện người dùng dành riêng cho nền tảng. Flutter có cách tiếp cận rất đơn giản và hiệu quả, giúp giao diện người dùng nhất quán trên nhiều nền tảng.
Tính năng Hot Reload: Tính năng Hot Reload được coi là một tính năng nổi bật và mang tính cách mạng của Flutter. Khi sử dụng Hot Reload, có thể sửa đổi mã và xem chúng trong thời gian chạy trong bản xem trước ứng dụng. Không cần phải biên dịch lại mã mỗi lần, thêm các tính năng và sửa lỗi nhanh hơn. cho phép bạn tự do thử nghiệm với các giao diện người dùng khác nhau khi bạn xây dựng.
Ngoài ra, không bị mất trạng thái, trên trình giả lập, trình mô phỏng và thiết bị dành cho iOS và Android khi tải lại lần thứ hai. Tương đương với hiệu suất ứng dụng gốc: Trải nghiệm người dùng tốt sẽ mang lại thành công cho ứng dụng của bạn, trong khi hiệu suất kém sẽ ảnh hưởng nghiêm trọng đến trải nghiệm người dùng trong ứng dụng. Các ứng dụng dành cho thiết bị di động được phát triển bằng Flutter sẽ không thể phân biệt được với các ứng dụng được xây dựng bằng mã gốc. Trên thực tế, các ứng dụng Flutter có thể hoạt động tốt hơn trong các tình huống giao diện người dùng phức tạp.
Vì Flutter không dựa vào cầu nối JavaScript hay bất kỳ mã trung gian nào mà được tích hợp trực tiếp vào mã máy. Điều này giúp loại bỏ các lỗi hiệu suất có thể xảy ra. Tài liệu tốt và cộng đồng mạnh: Flutter có nhiều ưu điểm hơn nhiều framework khác nên thu hút nhiều nhà phát triển, tạo ra một cộng đồng tích cực có thể cung cấp hoặc hỗ trợ lẫn nhau.cung cấp hoặc hỗ trợ lẫn nhau.3 Nhược điểm của Flutter Không ổn định: Flutter là một trong những khung công tác mới nhất và luôn phát triển. Nhiều thư viện của nó cần được kiểm tra trước khi chúng hoạt động ổn định.
Vì vậy, cần có thời gian để Flutter phát huy hết tiềm năng của một hệ điều hành. 6 Báo cáo đồ án 1 Kích thước tệp lớn: Kích thước tệp lớn là một nhược điểm khi sử dụng Flutter. Các ứng dụng được tạo bằng Flutter rất nặng, vì vậy chúng mất nhiều thời gian để khởi động hoặc tải. Điều này có thể dẫn đến hiệu suất kém và trải nghiệm người dùng kém.
Thay đổi và cập nhật trong framework: Vì Flutter là một khuôn khổ tương đối mới, nên thường có những thay đổi hoặc cập nhật có thể ảnh hưởng đến sự phát triển. Vì vậy, có thể khó để duy trì mã khi nó thay đổi quá nhanh. Thiếu hướng dẫn phát triển tiêu chuẩn: Các framework ổn định có các hướng dẫn bằng văn bản dễ phát triển hơn. Flutter mới, thiếu các nguyên tắc như vậy, sẽ gặp khó khăn trong việc xây dựng các ứng dụng phức tạp.
Bổ sung thường xuyên ngôn ngữ Dart: Theo một số khảo sát, số lượng lập trình viên biết đến Dart không lớn, và nhiều người cho rằng khi học xong ngôn ngữ Dart, các lập trình viên có thể liên kết với Dart trong lĩnh vực phát triển ứng dụng di động. Vì vậy vấn đề chuyển đổi linh hoạt giữa JS hoặc Python hoặc có thể chuyển đổi linh hoạt giữa front, back hay AI… sẽ không còn nữa.3 Tìm hiểu về Firebase Hình 2.