Tổng quat
Hãy thảo luận về cách triển khai Kiến trúc MVP của Android trong trường hợp thực tế.
- Phần 1: Tổng quan Yêu cầu về chức năng Đăng nhập và Kiến trúc MVP
- Phần 2: Triển khai mã nguồn của Kotlin trong Ứng dụng Android
Chúng tôi sẽ thiết kế Kiến trúc MVP như dưới đây
- Xem lớp:
- UI: hiển thị dữ liệu -> cấu hình bố cục hoạt động / phân đoạn, dữ liệu ràng buộc, hành động ràng buộc -> với ngữ cảnh của ứng dụng
- Bộ điều hợp: chuyển đổi dữ liệu nếu cần thiết (thường sử dụng với chế độ xem tái chế, …)
- Lớp mô hình:
- mạng và DAO: xử lý cách lấy / tải dữ liệu (từ bộ đệm, từ API REST, …)
- thực thể: chỉ cần thông tin mà các chức năng cần. (Nó có thể được lưu trữ trong cơ sở dữ liệu phòng, …)
- Lớp trình bày:
- người trình bày: mở rộng ViewModel () / AndroidViewModel ()
- biến dữ liệu kepp của bố trí cho dữ liệu ràng buộc
- có trạng thái -> quyết định hành vi của Chế độ xem (do LiveData thực hiện)
- giữ các tham chiếu thực thể để giữ dữ liệu cho Chế độ xem
- giữ tham chiếu DAO / mạng để nhận / tải dữ liệu
- tùy chọn: giữ / giới thiệu doanh nghiệp khác / xác thực tài liệu tham khảo cho doanh nghiệp chủ sở hữu
- kinh doanh khác, xác nhận, …
- người trình bày: mở rộng ViewModel () / AndroidViewModel ()
Yêu cầu:
Người dùng muốn xây dựng một chức năng gọi là Đăng nhập. Nó có:
- GUI: hiển thị dữ liệu và tiếp tục tương tác với người dùng.
- dữ liệu: lưu trữ dữ liệu của người dùng để sử dụng cho doanh nghiệp đăng nhập.
- hướng dẫn đăng nhập: kinh doanh chính.
- đăng nhập một lần: tự động đăng nhập khi người dùng có tác giả trước.
- xác nhận: xác thực dữ liệu.
- hiển thị thông báo: thông tin và thông báo lỗi.
Hãy phân tích kinh doanh của người dùng
chúng tôi có một thông số chức năng đăng nhập như dưới đây:
- Màn hình hiển thị
- sso (đăng nhập tự động) bằng bộ nhớ cache
- sso -> false: người dùng phải đăng nhập thủ công
- sso -> true: tự động chuyển hướng đến màn hình chính
- Hướng dẫn đăng nhập
- xử lý đầu vào của người dùng: cả hai (tên người dùng, mật khẩu) đều được điền -> bật nút đăng nhập, nếu không thì tắt
- xác thực: (tắt nút đăng nhập khi kích hoạt tính năng không hợp lệ của người dùng khác.)
- Tên người dùng không trống
- Độ dài của tên người dùng là từ 6-8 ký tự
- mật khẩu không trống
- Độ dài của mật khẩu là từ 6-10 ký tự
- cả tên người dùng và mật khẩu không thể chứa ký tự khoảng trắng
- hành động đăng nhập
- gọi API RESTfull để thực hiện đăng nhập bằng params: tên người dùng, mật khẩu theo định dạng JSON
- Sự thành công:
- Cập nhật trạng thái đăng nhập bộ đệm để đăng nhập lần sau
- Chuyển hướng màn hình chính
- Sai: hiển thị lỗi từ máy chủ