Current structure concerns - Tuong-Nguyen/PreparationEduLog GitHub Wiki

Technical debts

  • Android MVP
    • Output: wiki, sample
  • 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
    • Output: wiki, sample

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