PHẦN MỞ ĐẦU 1. TÍNH CẤP THIẾT CỦA ĐỀ TÀI Công nghệ thông tin đã và đang ngày càng phát triển mạnh mẽ trong mọi lĩnh vực của đời sống, kinh tế, xã hội. Đặc biệt trong cơ chế thị trường sự phát triển của các quan hệ kinh tế cũng như sự mở rộng ngày càng lớn về quy mô của các doanh nghiệp, xí nghiệp, cơ quan đã làm tăng các luồng và khối lượng thông tin, làm cho công tác quản lý trở nên phức tạp hơn. Với việc làm công tác quản lý thủ công bằng sổ sách (như trước kia) thì không thể đáp ứng được với sự phát triển như hiện nay.
Trong xu thế ấy, việc quản lý dựa vào máy tính là một nhu cầu thiết yếu của hầu hết mọi ngành, mọi doanh nghiệp, việc tin học hóa từng bước trong công tác quản lý, khai thác, điều hành sản xuất kinh doanh và quản lý hoạt động là một đòi hỏi ngày càng cấp thiết. Trong môi trường giáo dục hiện nay, việc trao đổi thông tin, hỏi đáp giữa sinh viên và các giảng viên là điều rất cần thiết bởi thắc mắc của sinh viên là không có giới hạn. Nếu như tầm chục năm trước, khi một sinh viên có một thắc mắc với nhà trường, sinh viên đó phải lên tận phòng tư vấn sinh viên để hỏi, và không phải lúc nào cũng có người đủ chuyên môn trả lời thắc mắc có mặt ngay lúc đó để trả lời, và việc di chuyển như vậy cũng rất mất thời gian. Còn bây giờ, nếu có một thắc mắc nào đó thì sinh viên Sư phạm kỹ thuật có thể lên trang web tuvansinhvien.vn để được các tư vấn viên tư vấn, giải đáp tận tình.
Nhưng vấn đề đặt ra là, muốn đặt câu hỏi thì sinh viên phải truy cập website của nhà trường, và các tư vấn viên cũng phải trực website liên tục để việc tư vấn diễn ra nhanh chóng nhất. Vậy nên nhóm em nghĩ đến việc tạo ra một ứng dụng mobile dựa trên ý tưởng và chức năng của website trên để sinh viên có thể đặt câu hỏi ngay trên điện thoại di động, các tư vấn viên có thể nhận được thông báo trên điện thoại của mình, giúp việc tư vấn diễn ra dễ dàng hơn. Xuất phát từ ý tưởng đó, nhóm em xin thực hiện đề tài Xây dựng ứng dụng mobile tư vấn sinh viên. MỤC ĐÍCH CỦA ĐỀ TÀI Mục đích chính của việc xây dựng ứng dụng mobile tư vấn sinh viên đó là tạo nên sự tiện lợi, tiết kiệm thời gian, kinh phí nhưng vẫn đem lại hiệu quả cao.
Ngoài ra còn đem lại sự rõ ràng, rành mạnh của dữ liệu, tránh sai sót, mất mát dữ liệu. Dữ liệu được lưu trên firebase nên sẽ dễ dàng xử lý realtime tạo nên sự nhanh chóng cho quá trình vận hành. PHƯƠNG PHÁP THỰC HIỆN Tìm hiểu các kiến thức cần thiết để thực hiện đề tài: Các kỹ thuật phân tích thiết kế hệ thống. Tìm hiểu ngôn ngữ lập trình Dart.
Tìm hiểu Flutter, các thư viện hỗ trợ cho đề tài. Tìm hiểu Firebase Firestore 19 PHẦN NỘI DUNG CHƯƠNG 1.1 Giới thiệu về Flutter Flutter là một bộ SDK đa nền tảng có thể hoạt động trên iOS và Android do Google phát triển được sử dụng để tạo ra các ứng dụng dành cho di động (native app). Flutter gồm 2 thành phần quan trọng: Một SDK (Software Development Kit): Một bộ sưu tập các công cụ sẽ giúp bạn phát triển các ứng dụng của mình. Một Framework (UI Library based on widgets): Một 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.) giúp bạn có thể cá nhân hóa tùy theo nhu cầu của riêng mình.
Flutter là một bộ công cụ giao diện người dùng để tạo các ứng dụng nhanh, đẹp, được biên dịch nguyên bản cho thiết bị di động, web và máy tính để bàn với một ngôn ngữ lập trình và cơ sở code duy nhất. Nó là miễn phí và code nguồn mở. Ban đầu nó được phát triển từ Google và bây giờ được quản lý theo tiêu chuẩn ECMA. Ứng dụng Flutter sử dụng ngôn ngữ lập trình Dart để tạo ứng dụng.
Flutter chủ yếu được tối ưu hóa cho các ứng dụng di động 2D có thể chạy trên cả nền tảng Android và IOS. Chúng ta cũng có thể sử dụng nó để xây dựng các ứng dụng đầy đủ tính năng, bao gồm máy ảnh, bộ nhớ, vị trí địa lý, mạng, SDK của bên thứ ba, … Hình 1.2 Điều làm Flutter trở nên độc đáo Flutter khác với các framework khác vì nó không sử dụng WebView cũng như các widget OEM (Original Equipment Manufacturer) đi kèm với thiết bị. Thay vào đó, nó sử dụng công cụ kết xuất hiệu suất cao của riêng mình để vẽ các widget. Nó cũng triển khai hầu hết các hệ thống của nó như hoạt ảnh, cử chỉ và widget bằng ngôn ngữ lập trình Dart cho phép các nhà phát triển đọc, thay đổi, thay thế hoặc loại bỏ mọi thứ một cách dễ dàng.
Nó cung cấp khả năng kiểm soát tuyệt vời cho các nhà phát triển đối với hệ thống.3 Các tính năng của Flutter Flutter cung cấp các phương pháp dễ dàng và đơn giản để bắt đầu xây dựng các ứng dụng dành cho thiết bị di động và máy tính để bàn đẹp mắt với một bộ thiết kế material design và widget phong phú. Ở đây, chúng ta sẽ thảo luận về các tính năng chính của nó để phát triển framework di động.2 Các tính năng của Flutter [1] Code nguồn mở (Open-Source:): Flutter là một framework code nguồn mở và miễn phí để phát triển các ứng dụng di động. Đa nền tảng (Cross-platform): Tính năng này cho phép Flutter viết code một lần, 21 duy trì và có thể chạy trên các nền tảng khác nhau. Nó tiết kiệm thời gian, công sức và tiền bạc của các nhà phát triển.
Tải lại nóng (Hot Reload): Bất cứ khi nào nhà phát triển thực hiện thay đổi trong code, thì những thay đổi này có thể được nhìn thấy ngay lập tức với Tải lại nóng. Nó có nghĩa là những thay đổi hiển thị ngay lập tức trong chính ứng dụng. Đây là một tính năng rất tiện dụng, cho phép nhà phát triển sửa các lỗi ngay lập tức. Các tính năng và SDK gốc có thể truy cập (Accessible Native Features and SDKs): Tính năng này cho phép quá trình phát triển ứng dụng dễ dàng và thú vị thông qua code gốc của Flutter, tích hợp bên thứ ba và các API nền tảng.
Do đó, chúng tôi có thể dễ dàng truy cập SDK trên cả hai nền tảng. Code tối thiểu (Minimal code): Ứng dụng Flutter được phát triển bởi ngôn ngữ lập trình Dart, sử dụng biên dịch JIT và AOT để cải thiện thời gian khởi động tổng thể, hoạt động và tăng tốc hiệu suất. JIT nâng cao hệ thống phát triển và làm mới giao diện người dùng mà không cần nỗ lực thêm vào việc xây dựng hệ thống mới. Widget: framework công tác Flutter cung cấp các widget có khả năng phát triển các thiết kế cụ thể có thể tùy chỉnh.
Quan trọng nhất, Flutter có hai bộ widget: Material Design và các widget Cupertino giúp mang lại trải nghiệm không có trục trặc trên tất cả các nền tảng.4 So sánh Flutter và các đối thủ Một trong những framework được so sánh và đắn đo nhiều nhất khi đề cập đến Flutter là React Native, sau đây là một số so sánh giữa hai framework.1 So sánh Flutter và React Native Flutter React Native Ngôn ngữ Dart + Flutter Java Script/React.js lập trình, Framework Biên dịch Biên dịch thành các Native Biên dịch một phần thành 22 App Native App, một phần trong App được chạy dưới dạng JavaScript Xây dựng Không biên dịch code Biên dịch code thành các các thành thành các UIComponent UIComponent của riêng phần UI của riêng Android hay IOS Android hay IOS mà Flutter kiểm soát từng pixel trên màn hình Nền tảng Ứng dụng di động, web, Hầu như là ứng dụng di động ứng dụng desktop (Có thể có React Native Web) Nhà phát Google Facebook triển 1.1 Giới thiệu về Dart Dart là một ngôn ngữ lập trình hướng đối tượng mã nguồn mở, có mục đích chung với cú pháp kiểu C do Google phát triển vào năm 2011. Mục đích của lập trình Dart là tạo giao diện người dùng frontend cho web và ứng dụng dành cho thiết bị di động. Nó đang được phát triển tích cực, được biên dịch sang mã máy gốc để xây dựng ứng dụng di động, lấy cảm hứng từ các ngôn ngữ lập trình khác như Java, JavaScript, C # và Typed mạnh. Vì Dart là một ngôn ngữ biên dịch nên bạn không thể thực thi code của mình trực tiếp; thay vào đó, trình biên dịch phân tích cú pháp nó và chuyển nó thành code máy.
Nó hỗ trợ hầu hết các khái niệm chung của ngôn ngữ lập trình như lớp, giao diện, hàm, không giống như các ngôn ngữ lập trình khác. Ngôn ngữ Dart không hỗ trợ mảng trực tiếp. Nó hỗ trợ tập hợp, được sử dụng để sao chép cấu trúc dữ liệu như mảng, generic và kiểu tùy chọn.3: Ngôn ngữ Dart [2] 1.2 Ưu điểm Dart được sử dụng để tạo các ứng dụng chất lượng cao, quan trọng cho các nền tảng khác nhau (Android, IOS, Web). Dart giúp bạn tạo ra những trải nghiệm đẹp, chất lượng cao trên tất cat các màn hình, với: Một ngôn ngữ được tối ưu hóa cho client.
Framework mạnh mẽ. Công cụ linh hoạt. Cú pháp dễ làm quen, rõ ràng, súc tích, sớm xác định được các lỗi.1 Giới thiệu về Google 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. Firebase là một nền tảng để phát triển ứng dụng di động và trang web, bao gồm các API đơn giản và mạnh mẽ mà không cần backend hay server.2 Freebase Authentication 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.3 Ưu điểm Tạo tài khoản và sử dụng dễ dàng.
Tốc độ phát triển nhanh. Nhiều dịch vụ trong một nền tảng. Được cung cấp bởi Google.