- Architecture MVVM (Model View ViewModel)
LiveData
(en particulierMediatorLiveData
)- Utilisation d'un
Fragment
comme vue (CreateMeetingFragment
) - Utilisation d'une
Activity
comme vue (MeetingActivity
) - Utilisation d'une
DialogFragment
customisée (SortDialogFragment
) RecyclerView
(et sonListAdapter
/DiffItemCallback
)- Dialogue entre un
Adapter
et sonActivity
(via l'interfaceOnMeetingClickedListener
) - Utilisation d'un Repository pour persister les différents Meetings pendant la vie de l'Application (
MeetingRepository
) - Utilisation d'un Repository pour faire communiquer 2 ViewModels :
MeetingActivity
etSortDialogFragment
(SortingParametersRepository
) Spinner
de MaterialDesign avec des vues complexes : TextInputLayout & AutoCompleteTextView (CreateMeetingSpinnerAdapter
)AnimatedVectorDrawable
avec multiple état et animations (asd_sort.xml
)- Enums (
Room
) - Singleton (
ViewModelFactory
) - Tests unitaires (TU) avec des
LiveData
etViewModels
(grâce àMockito
) - Code Coverage à 97% (
JaCoCo
) - Tests d'intégration poussés avec
Espresso
./gradlew jacocoDebugReport
pour générer le rapport de tests unitaires
./gradlew connectedDebugAndroidTest
pour lancer les tests d'intégration (avec un émulateur lancé ou device branché)