Skip to content

hoanganhtuan95ptit/MVVM-CleanArchitectureExample

Repository files navigation

Đây là một project vi dụ về Clean Architecture kết hợp với MVVM

2.Clean Architecture
Drag Racing Drag Racing
  • Entities là khái niệm dùng để mô tả các Business Logic. Đây là layer quan trọng nhất, là nơi bạn thực hiện giải quyết các vấn đề - mục đích khi xây dựng app. Layer này không chứa bất kỳ một framework nào, bạn có thể chạy nó mà không cần emulator. Nó giúp bạn dễ dàng test, maintain và develop phần business logic.

  • Use case chứa các rule liên quan trực tiếp tới ứng dụng cục bộ (application-specific business rules).

  • Interface Adapter tập hợp các adapter phục vụ quá trình tương tác với các công nghệ.

  • Framework and Drivers chứa các công cụ về cơ sở dữ liệu và các framework, thông thường bạn sẽ không phải lập trình nhiều ở tầng này. Tuy nhiên cần chắc chắn về mức ưu tiên sử dụng các công cụ này trong project.

2.Cấu trúc pakage dự án:
Dựa vào kiến trúc trên ta sẽ có cấu trúc dự án như sau:

app

.......data

...............api

.......................retrofit

...................................entities

.......................volley

...................................entities

...............db

......................realm

...............................entities

......................room

...............................entities

...............repository

.......di

.......ui

.............activity

.............adapter

.............fragment

.............viewModel

domain

........entities

........interact

........repository

Trong đó:
  • app: xử lý giao diện và các phần liên quan đến api và db, FrameWork

  • data: chuyên xử lý các vấn đề liên quan đến api và db

  • db: sử lý vấn đề api về db

  • api: xử lý vấn đề api về api

  • repository: xử lý các nghiệp vụ thuần

  • di: Khởi tạo dự án

  • ui: liên quan đến giao diện

  • domain: chuyển xử lý nghiệp vụ dự án, module này thuần java

  • entities: các thực thế của dự án

  • interact: xử lý các nghiệp vụ về dự án

  • repository: định nghĩa các phương thức hỗ trợ interacto

Pakage với kiến trúc Clean Architecture

Drag Racing

  • Entities

-- domain/entities

  • Use case

-- domain/interact

-- domain/repository

  • Interface Adapter

-- domain/repository

-- app/data/repository

-- app/ui/viewModel

  • Framework and Drivers

-- app/data/db

-- app/data/api

-- app/ui/activity

-- app/ui/adapter

-- app/ui/viewModel

Pakage với kiến trúc MVVM
  • View

-- app/ui/activity

-- app/ui/adapter

-- app/ui/viewModel

  • Model

-- app/data/db

-- app/data/api

-- app/data/repository

-- domain/entities

-- domain/interact

-- domain/repository

  • ViewModel

-- app/ui/viewModel

3.Cảm ơn

Anthony Liberatore

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages