Current structure concerns - Tuong-Nguyen/PreparationEduLog GitHub Wiki
Technical debts
- Android MVP
- Android Databinding
- Should combine MVP and Data binding?
- RxJava
- Reactive = Observable + Operator + Scheduler
- Observer grammar: onNext * (onError | onComplete)?
- Sample of operator: create, concat
- Output: wiki (apply RxJava on Android), sample
- Dagger
Purpose
Use the above technical knowledge to assess the current structure
- Good:
- What have been done?
- How to apply?
- Bad:
- What's wrong?
- How to improve?
Concerns
Current project |
Applying |
Should |
Suggestion / Note |
Package by components |
v |
x |
Package by features |
All UseCase use Rx |
v |
v |
Only networking or I/O operation use Rx |
MVP |
v |
v |
Impact: need cover lifecycle of Android components in Presenter |
Data binding |
x |
v |
2-way binding |
Dagger |
v |
v |
DO NOT apply Dagger for all DI, ex: Android components (Activity, fragment) |
API |
x |
|
Mock |
Features |
Applying |
Should |
Suggestion / Note |
Event tracking |
v |
v |
Apply partial, need double-check |
Motion detection |
x |
v |
|
Authentication |
v |
v |
User story not completed |
Unit test |
v |
v |
Partial |
Questions
- Can change project structure or techniques?
- Working process
- Who will review code?
- What's reviewing tool?
- Web API
- When it is available? Where it is hosting?
- Can we have the resource and mock the api?
- What must have unit tests? (ex: presenter)
- Layout constraint, it's not mandatory