- Architecture MVVM (Model View ViewModel)
LiveData(en particulierMediatorLiveData)- Utilisation d'un
Fragmentcomme vue (CreateMeetingFragment) - Utilisation d'une
Activitycomme vue (MeetingActivity) - Utilisation d'une
DialogFragmentcustomisée (SortDialogFragment) RecyclerView(et sonListAdapter/DiffItemCallback)- Dialogue entre un
Adapteret 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 :
MeetingActivityetSortDialogFragment(SortingParametersRepository) Spinnerde MaterialDesign avec des vues complexes : TextInputLayout & AutoCompleteTextView (CreateMeetingSpinnerAdapter)AnimatedVectorDrawableavec multiple état et animations (asd_sort.xml)- Enums (
Room) - Singleton (
ViewModelFactory) - Tests unitaires (TU) avec des
LiveDataetViewModels(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é)

