CHƯƠNG 1. Flutter là gì? Flutter là một SDK phát triển ứng dụng di động nguồn mở được tạo ra bởi Google. Nó được sử dụng để phát triển ứng ứng dụng cho Android và iOS, cũng là phương thức chính để tạo ứng dụng cho Google Fuchsia. Lịch sử phát triển Phiên bản đầu tiên của Flutter được gọi là "Sky" và chạy trên hệ điều hành Android.
Nó được công bố tại hội nghị nhà phát triển Dart 2015, với dự định ban đầu để có thể kết xuất ổn định ở mức 120 khung hình trên giây. Trong bài phát biểu chính ở hội nghị Google Developer Days tại Thượng Hải, Google công bố phiên bản Flutter Release Preview 2, đây là phiên bản lớn cuối cùng trước Flutter 1. Vào ngày 4 tháng 12 năm 2018, Flutter 1.0 đã được phát hành tại sự kiện Flutter Live, là phiên bản"ổn định"đầu tiên của framework này. Kiến trúc khung Các thành phần chính của Flutter gồm: − Nền tảng Dart: Ứng dụng Flutter được viết bằng ngôn ngữ Dart và tận dụng nhiều tính năng nâng cao của ngôn ngữ này.
Trên Android, và trên Windows, macOS và Linux thông qua dự án chưa chính thức mang tên Flutter Desktop Embedding, Flutter chạy trên máy ảo Dart với engine thực thi just-in- time (JIT). Do giới hạn về thực thi mã động của App Store, ứng dụng Flutter sử dụng biên dịch ahead-of-time (AOT) trên iOS. − Flutter engine: Engine của Flutter được viết chủ yếu bằng C++, cung cấp sự hỗ trợ kết xuất ở mức độ thấp bằng thư viện đồ họa Skia của Google. Thêm vào đó, nó giao tiếp với các SDK của riêng nền tảng như các SDK do Android và iOS cung cấp.
− Thư viện Foundation. − Các widget được thiết kế riêng. Ngôn ngữ lập trình Dart 1. Dart là gì? Dart là một ngôn ngữ lập trình web do Google phát triển.
Nó được chính thức công bố tại Hội thảo GOTO Lưu trữ 2012-12-21 tại Wayback Machine ngày 10-12 tháng 10 năm 2011 tại Aarhus. Mục đích của Dart không phải để thay thế JavaScript như là ngôn ngữ kịch bản chính bên trong trình duyệt web, mà là cung cấp sự lựa chọn hiện đại hơn. Sinh viên thực hiện: Nguyễn Văn Hoàn Người hướng dẫn: TS. Nguyễn Tấn Thuận 3 Xây dựn ứng dụng nhắn tin 1.
Các thư viện Dart có một bộ thư viện cốt lõi phong phú , cung cấp các yếu tố cần thiết cho nhiều tác vụ lập trình hàng ngày: − Các loại, bộ sưu tập tích hợp và chức năng cốt lõi khác cho mọi chương trình Dart ( dart:core) − Các loại bộ sưu tập phong phú hơn như hàng đợi, danh sách được liên kết, hashmap và cây nhị phân ( dart:collection) − Bộ mã hóa và giải mã để chuyển đổi giữa các biểu diễn dữ liệu khác nhau, bao gồm JSON và UTF-8 ( dart:convert) − Các hằng số và hàm toán học, và tạo số ngẫu nhiên ( dart:math) − Tệp, ổ cắm, HTTP và hỗ trợ I/O khác cho các ứng dụng không phải web ( dart:io) − Hỗ trợ lập trình không đồng bộ, với các lớp như Futurevà Stream ( dart:async) − Danh sách xử lý hiệu quả dữ liệu có kích thước cố định (ví dụ: số nguyên 8 byte không dấu) và loại số SIMD ( dart:typed_data) − Giao diện chức năng nước ngoài cho khả năng tương tác với mã khác trình bày giao diện kiểu C ( dart:ffi) − Lập trình đồng thời bằng cách sử dụng các bộ tách biệt —các công nhân độc lập tương tự như các luồng nhưng không chia sẻ bộ nhớ, chỉ giao tiếp qua thông báo ( dart:isolate) − Các phần tử HTML và các tài nguyên khác dành cho các ứng dụng dựa trên web cần tương tác với trình duyệt và Mô hình đối tượng tài liệu (DOM) ( dart:html) 1. Nền tảng Công nghệ biên dịch của Dart cho phép bạn chạy mã theo nhiều cách khác nhau: − Native platform: Đối với các ứng dụng nhắm mục tiêu thiết bị di động và máy tính để bàn, Dart bao gồm cả Dart VM với trình biên dịch just-in-time (JIT) và trình biên dịch trước thời hạn (AOT) để tạo mã máy. − Web platform: Đối với các ứng dụng nhắm mục tiêu web, Dart có thể biên dịch cho mục đích phát triển hoặc sản xuất. Trình biên dịch web của nó dịch Dart thành JavaScript.
Khái niệm MongoDB là một hệ quản trị cơ sở dữ liệu NoSQL mã nguồn mở đa nền tảng viết bằng C++. Bản ghi trong MongoDB được lưu trữ dạng một dữ liệu văn bản (Document), là một cấu trúc dữ liệu bao gồm các cặp giá trị và trường tương tự như các đối tượng JSON. MongoDB được phát triển bởi MongoDB Inc. dưới dạng giấy phép Server Side Public License (SSPL) Sinh viên thực hiện: Nguyễn Văn Hoàn Người hướng dẫn: TS.
Nguyễn Tấn Thuận 4 Xây dựn ứng dụng nhắn tin 1. Lịch sử − MongoDB được bắt đầu phát triển vào đầu năm 2007 khi công ty 10gen đang phát triển một nền tảng tương tự dịch vụ Azure của Microsoft. Công ty 10gen là một công ty phần mềm có trụ sở tại New York, nay được đổi tên thành MongoDB Inc. Việc phát triển ban đầu tập trung vào xây dựng PaaS (một nền tảng dịch vụ) nhưng sau đó vào năm 2009, MongoDB đã xuất hiện trên thị trường như một dự án mã nguồn mở máy chủ cơ sở dữ liệu và được duy trì bởi chính tổ chức này.
− Tháng 3 năm 2010, MongoDB Inc. đã tung ra sản phẩm sẵn sàng đầu tiên của mình là phiên bản 1. Phiên bản ổn định tiếp theo của MongoDB là phiên bản 2.9 được phát hành vào ngày 10 tháng 1 năm 2014. − Đầu năm 2015, phiên bản 3.0 được phát hành, cuối năm 2015 phiên 3.2 ra đời đi kèm với công cụ quản trị trên giao diện đồ họa MongoDB Compass.js là một hệ thống phần mềm được thiết kế để viết các ứng dụng internet có khả năng mở rộng, đặc biệt là máy chủ web.
Chương trình được viết bằng JavaScript, sử dụng kỹ thuật điều khiển theo sự kiện, nhập/xuất không đồng bộ để tối thiểu tổng chi phí và tối đa khả năng mở rộng.js bao gồm có V8 JavaScript engine của Google, libUV, và vài thư viện khác. Sinh viên thực hiện: Nguyễn Văn Hoàn Người hướng dẫn: TS. Nguyễn Tấn Thuận 5 Xây dựn ứng dụng nhắn tin CHƯƠNG 2. PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 2.
Khảo sát yêu cầu người dùng - Chức năng cung cấp khả năng chat với bạn bè. - Cung cấp khả năng tải hình đại diện cho bản thân. - Hệ thống sẽ lưu trữ thông tin của người dùng. - Hệ thống giúp xem được những người đang hoạt động hay không.
- Tìm kiếm bạn bè một cách nhanh nhất. - Cho phép thay đổi mật khẩu một cách dễ dàng. Mô tả nghiệp vụ 2. Danh sách Actors Bảng 2.
Danh sách Actors Khách vãng lai Những khách vãng lai Người dùng Những thành viên có tài khoản và đã đăng nhập vào hệ thống Người quản lý Người quản lý 2. Xác định use-case của hệ thống Bảng 2. Use-case của hệ thống Khách vãng lai - Đăng ký tài khoản Người dùng - Đăng nhập - Đăng xuất - Cập nhật mật khẩu - Nhắn tin. - Ghi lại và gửi tin nhắn thoại/tin nhắn video - Gửi file, ảnh và video.
- Chia sẻ vị trí. - Duy trì kết nối bằng cuộc gọi video. - Xóa lịch sử cuộc gọi. - Gỡ hoặc thu hồi tin nhắn.
- Tạo nhóm chat. - Rời khỏi nhóm chat. - Thêm liên hệ mới vào nhóm chat. - Chặn tài khoản người dùng.
- Ghim tin nhắn. Sinh viên thực hiện: Nguyễn Văn Hoàn Người hướng dẫn: TS. Nguyễn Tấn Thuận 6 Xây dựn ứng dụng nhắn tin - Xem và chỉnh sửa hồ sơ cá nhân. - Xem hồ sơ người khác.
- Thêm bạn bè. - Chấp nhận lời mời kết bạn. - Xem trạng thái hoạt động. - Thả cảm xúc tin nhắn.
- Phản hồi tin nhắn. - Chuyển tiếp tin nhắn. Quản lý - Xem thống kê (tin nhắn, thành viên,…). - Quản lý người dùng.
- Xem và chỉnh sửa hồ sơ quản lý. Sinh viên thực hiện: Nguyễn Văn Hoàn Người hướng dẫn: TS. Nguyễn Tấn Thuận 7 Xây dựn ứng dụng nhắn tin 2. Biểu đồ Usecase Tổng quát Hình 2.
Biểu đồ Usecase tổng quát Sinh viên thực hiện: Nguyễn Văn Hoàn Người hướng dẫn: TS. Nguyễn Tấn Thuận 8 Xây dựn ứng dụng nhắn tin 2. UseCase Đăng ký và đăng nhập Hình 2. Sơ đồ Usecase Đăng ký và đăng nhập 2.
UseCase Quản lý hồ sơ Hình 2. Sơ đồ UseCase Quản lý hồ sơ Sinh viên thực hiện: Nguyễn Văn Hoàn Người hướng dẫn: TS. Nguyễn Tấn Thuận 9 Xây dựn ứng dụng nhắn tin 2. UseCase Xem danh sách liên hệ Hình 2.
Sơ đồ UseCase Xem danh sách liên hệ 2. UseCase Tìm kiếm Hình 2. Sơ đồ UseCase Tìm kiếm Sinh viên thực hiện: Nguyễn Văn Hoàn Người hướng dẫn: TS. Nguyễn Tấn Thuận 10 Xây dựn ứng dụng nhắn tin 2.
UseCase Gửi tin nhắn Hình 2. Biểu đồ UseCase Gửi tin nhắn 2. UseCase Gửi hình ảnh video Hình 2. Biểu đồ UseCase Gửi hình ảnh video Sinh viên thực hiện: Nguyễn Văn Hoàn Người hướng dẫn: TS.
Nguyễn Tấn Thuận 11 Xây dựn ứng dụng nhắn tin 2. UseCase Gửi Audio Hình 2. Biểu đồ UseCase Gửi Audio 2. UseCase Gửi File Hình 2.
Biểu đồ UseCase Gửi File Sinh viên thực hiện: Nguyễn Văn Hoàn Người hướng dẫn: TS. Nguyễn Tấn Thuận 12 Xây dựn ứng dụng nhắn tin 2. Usecase Gọi video Hình 2. Biểu đồ Usecase Gọi video 2.
UseCase Bày tỏ cảm xúc tin nhắn Hình 2. Biểu đồ UseCase Bày tỏ cảm xúc tin nhắn 2. Đặc tả UseCase 2. Đặc tả Usecase Đăng ký Usecase name Đăng ký Primary actor Khách vãng lai Brief description Đăng ký tài khoản Input Họ và tên, số điện thoại di động, mật khẩu, ngày sinh và giới tính của mình.
Output Thông báo “Đã đăng ký thành công” Sinh viên thực hiện: Nguyễn Văn Hoàn Người hướng dẫn: TS. Nguyễn Tấn Thuận 13 Xây dựn ứng dụng nhắn tin Truy cập vào trang chủ thành công Basic flows 1. Khách vãng lai truy cập ứng dụng. Khách vãng lai nhập tên, số điện thoại di động, mật khẩu, ngày sinh và giới tính của mình.
Khách vãng lai nhấn nút Đăng ký. Hệ thống kiểm tra thông tin người dùng đúng tiêu chuẩn không → Hệ thống gửi mã xác minh đến số điện thoại. Khách vãng lai nhập mã xác nhận số điện thoại di động của mình. Khách vãng lãi nhấn nút Xác nhận 7.
Kết thúc UseCase Sub flows - Khách vãng lai đóng trang Đăng ký (bắt đầu từ sau bước 3) ➔ Kết thúc usecase Exceptional 4a. Hệ thống xác thực thông tin sai tiêu chuẩn. Khách vãng lai nhập lại số điện thoại trong trường hợp số điện thoại sai hoặc đã đăng ký trước đó. Khách vãng lai nhập lại mật khẩu trong trường hợp mật khẩu không hợp lệ.
Tiếp tục Use case 5-7. Hệ thống xác thực mã xác nhận. Nhập lại mã bảo mật.