-
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.
.......data
...............api
.......................retrofit
...................................entities
.......................volley
...................................entities
...............db
......................realm
...............................entities
......................room
...............................entities
...............repository
.......di
.......ui
.............activity
.............adapter
.............fragment
.............viewModel
........entities
........interact
........repository
-
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
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
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