Allo stato attuale, la gestione delle dipendenze del progetto va migliorata. Ci sono tre opzioni,
Capire quale è meglio, e implementarla. Non dovrebbe essere un lavoro lungo
usare ServiceLocator come nelle esercitazioni, inizializzandolo in un viewmodelfactory
come vuole il prof
verboso, serve una factory per ogni viewmodel.
Aggiunde un po di complessita,
usare ServiceLocator come nelle esercitazioni, ma inizializzandolo in un androidviewmodel
probabilmente toglie punti, non è best practice
poco verboso
aggiunge pochissima complessita
rende difficili futuri test
usare HILT
è best practice, sicuramente non toglie punti
poco verboso, ma riempie di annotazioni
aggiunge tantissima complessita
rende facili test. Se capisci come usare hilt
L'opzione migliore per ora sembra essere ServiceLocator, con androidviewmodel. Si puo cambiare in qualsiasi momento con HILT
Architettura repository
Progettare la repository delle regate, con questi requisiti:
Le classi di riferimento, con cui lo strato ui interagirà, saranno i modelli retrofit. Quindi no annidamenti di oggetti.
Ci sono dinamiche complicate dietro alla creazione delle boe di una regata. Capire come progettare questa logica, che va sicuramente in domain package
Le posizioni si gestiscono tramite oggetto Location, ma sia retrofit che le api vogliono solo latitudine e longitudine. capire a quale livello di profondita, come, dove convertire.
modelli api utilizzano bignumber, capire se bignumber è scomodo, ed eventualmente cosa mettere in retrofit.
capire se richieste posizione vanno considerate una data source, ed eventualmente implementare li la loro logica
una volta progettata, implementare una versione abbozzata della repository. Non è fondamentale che funzioni, ma l'interfaccia deve essere definita chiaramente per non doverla cambiare in futuro
cose da fare:
Dependency injection
Allo stato attuale, la gestione delle dipendenze del progetto va migliorata. Ci sono tre opzioni, Capire quale è meglio, e implementarla. Non dovrebbe essere un lavoro lungo
L'opzione migliore per ora sembra essere ServiceLocator, con androidviewmodel. Si puo cambiare in qualsiasi momento con HILT
Architettura repository
Progettare la repository delle regate, con questi requisiti:
https://italiancoders.it/builder-pattern-un-ottima-alternativa-al-costruttore/
implementare repository
una volta progettata, implementare una versione abbozzata della repository. Non è fondamentale che funzioni, ma l'interfaccia deve essere definita chiaramente per non doverla cambiare in futuro