ItbCalendar
Volem fer una aplicació que ens digui quines classes tenim el dia actual.
Preparació del projecte
Creació del projecte
- Crea un projecte nou amb: Fragment + ViewModel
- El package ha de ser: cat.itb.itbcalendar
- Prova d'executar l'aplicació a l'emulador.
- Puja el projecte a Git (ves fent commits amb els canvis que fagis)
Reestructuració
Relcol·locarem les classes que ens ha creat l'Android Studio
- Crea el package cat.itb.itbcalendar.presentation
- Mou la Activity a dins del package
- Crea el package cat.itb.itbcalendar.presentation.screens.dayofweek
- Mou el fragment i el ViewModel a dins
- Puja el projecte a Git
Layout simplificat de llistat de classes
Començarem creant una versió simplificada del fragment que ens mostrarà la llista de classes. Per ara, només mostrarem una sola classe.
Usant l'editor de layouts modifica el layout del fragment que tens creat per a que tingui una estètica semblant a la següent però només amb un sol item:
Layout del detall d'una classe
Crearem un segon fragment (crea'l com a Fragment+ViewModel) que ens mostrarà l'informació d'una classe.
Usant l'editor de layouts modifica el layout del fragment que tens creat per a que tingui una estètica semblant a la següent:
Afegeix la navegació
- Configura la navegació entre fragments per tal que al fer clic sobre la sessió del fragment DayOfWeek es navegui cap a MpDetail.
- Comprova que funciona correctament.
- Modifica la navegació per a que MpDetail demani com a paràmetre un enter 'mpNumber'. Per ara fes que sempre s'envii el numero 7 com a paràmetre.
Mostra els detalls de la sessió actual
Volem que ara l'aplicació mostri a la primera pantalla les dades de la sessió actual.
Desde el ViewModel obté les dades i actualitza les vistes.
Importa el codi
El model del domini i els repositori necessari us el podeu descarregar aquí:
Hi ha dos packages domain i repository.
Domain
Conté les classes del model de domini.
- Mp conté informació d'un mòdul
- MpSession conté informació del mòdul que es dona a una certa hora en un dia de la setmana.
Repostory
Conté classes d'accés a dades.
- MpRepository funcions per obtenir la Session actual.
- List
getClassesForToday() - Mp getModuleByNumber(int mpNumber)
- List
- MpRepositoryFactory Factory Singleton del MpRepository
- MpData Dades dels mòduls*
- MpData Dades de les sessions*
(*) El podeu modificar si voleu tenir les dades reals
Exemple d'us
Per obtenir una sessió podeu fer:
MpRepository mpRepository = MpRepositoryFactory.getInstance();
// Returns one session
MpSession mpSession = mpRepository.getOneSession();
// Returns the current session (may be null)
MpSession mpSession = mpRepository.getCurrentSession();
// Get MP7 data
Mp mp7 = mpRepository.getModuleByNumber(7);
Mostra dades
- Modifica el DayOfWeek fragment per a que mostri les dades de la primera sessió del dia actual
- Modifica el FragmentDetail per a que mostri les dades del fragment clicat en el DayOfWeek
- Ja estàs pujant el projecte al GIT?
Creació de tests
- Fes els tests de l'aplicació.
- Hauries de comprobar que es mostren les dades correctes.
- Ja estàs pujant el projecte al GIT?
Mostra el llistat
- Modifica el DayOfWeek fragment per a que mostri el llistat de les sessions d'avui.
- Al fer clic a una sessió s'ha de mostrar la informació del mòdul
Creació de tests
- Fes els tests de l'aplicació.