Diario di bordo - ProgettoLAM/FourEvent.user.droid GitHub Wiki
-Ogni iterazione ha durata di 5 giorni-
29 Luglio, 2 Agosto - Iterazione 1
Per questa iterazione ci si occupa del caso d'uso registrazione e login dell'utente.
Valentina si occuperà della parte del layout, mentre Gianmarco della parte Java. Si crea la classe Utente (con Builder e static chaining), con i seguenti parametri:
- Email, Password obbligatori
- Nome e cognome opzionali
Necessaria la valutazione della modalità di salvataggio dell'utente, per verificare se è loggato o meno, e la creazione dell'utente, con i dati immessi nella registrazione. Chiamata HTTP, tramite libreria Volley per fare una richiesta PUT/POST al web service e gestire il database mongodb.
- put (registrazione)
- post (login, per non inviare password in chiaro nell'uri)
L'activity principale è la SplashActivity, che mostra l'icona dell'applicazione, mentre controlla che esista un utente nelle SharedPreferences.
E' stata creata una classe UserManager che consente di editare e leggere le SharedPreferences, e salvare oggetti sotto forma di stringhe in formato JSON. La classe User utilizza i design pattern di Builder e chaining, ed ha tutte le proprietà "public final" per non sprecare memoria con getter e setter inutili nel campo mobile.
Nel caso in cui l'utente non esista, viene eseguita l'activity corrispondente alla registrazione. Utilizzando la libreria di Volley per effettuare richieste HTTP, si è eseguita una PUT per "registrare" l'utente. Una classe VolleyRequest si occupa di inizializzare la RequestQueue, mentre la classe CustomJsonRequest è effettivamente la richiesta da aggiungere alla RequestQueue.
Per ogni richiesta è sufficiente istanziare un oggetto CustomJsonRequest ed eseguire l'override delle interfaccie Listener e VolleyError.
Il passaggio da un activity ad un altra è eseguito tramite l'Intent, in un secondo momento sarà necessario implementare l'interfaccia Parcelable (più ottimizzante di Serializable, in ambiente mobile) per gestire il passaggio di oggetti complessi tra le Activity.
E' stato istanziato un ProgressDialog per bloccare il thread principale, durante la registrazione e login
###Diagramma casi d'uso

9 Agosto, 13 Agosto - Iterazione 2
In questa iterazione Valentina si occuperà della divisione delle categorie che l'utente sceglierà dopo essersi registrato. Come prima cosa, si svilupperà il lato grafico, utilizzando un GridLayout ed un metodo di selezione temporaneo delle categorie cliccate.
Si è creato uno steppers per far completare il profilo all'utente.
- Primo step: inserimento dei dati personali (nome, cognome, data di nascita, località e sesso - opzionali) e passaggio dei dati allo step 2.
- Secondo step: scelta delle categorie, salvataggio delle preferenze in una lista associata all'utente e passaggio dei dati allo step 3.
- Terzo step: spiegazione dei microcrediti (per ora lasciato vuoto) e creazione dell'utente completo con dati personali e lista di categorie, con relativa richiesta Volley.
E' stato realizzato un manager per il salvataggio dello stato degli steppers -> se l'utente chiude l'app durante il completamento del profilo, alla riapertura sarà reindirizzato al primo step, altrimenti alla MainActivity.
14 Agosto, 18 Agosto - Iterazione 3
Nella terza iterazione ci occupiamo di creare la lista di eventi da far visualizzare nella MainActivity, scegliendo di utilizzare una RecyclerView con un CardLayout e visualizzando su ogni evento un'immagine che lo ritrae, il titolo, la città, la data e orario, la categoria, il prezzo ed un simbolo per aggiungerlo ai preferiti.
Si realizzerà oggi una nuova Activity che rappresenterà i dettagli di un evento, dopo averlo cliccato dalla Recycler.
Valentina si occuperà del backend:
- Salvataggio preferiti nelle SharedPreferences (creazione di un FavouriteManager)
- Aggiunta dei campi nella classe Event che rappresentano le info più dettagliate dell'evento (descrizione, num. partecipazioni -opzionale-, num.posti -opzionale-, posti totali -opzionale-, immagine, dataOra inizio, dataOra fine)
- Implementare API Google Maps
Gianmarco si occuperà del layout dei dettagli di un evento ed eliminare gli anti-patterns.
Task di oggi:
- Visualizzazione degli eventi preferiti nel fragment "Preferiti" presente nella Navigation Drawer
- Prelevare coordinate della propria posizione con il gps
- Aggiungere dettagli al layout relativo dell'evento
Realizzazione del fragment Profilo, con l'implementazione del cambio della password. Raffinamento del sistema di Google Maps + localizzazione GPS
Aggiunta del fragment profilo + modifica della password
19 Agosto, 23 Agosto - Iterazione 4
Ci occuperemo di completare le ultime task di questa prima app:
- Logout (DONE)
- Risolvere i TODO (vedi issues) (solo 1)
- Filtri (popolari e vicini) e quelli generali [da fare dopo la seconda app]
- Aggiungere partecipazioni nella navigation view [ut supra]
- Fab nel dettaglio eventi con varie opzioni (partecipa/acquista biglietto, condividi, scrivi commento)
Si è scelto di non inserire la possibilità di aggiungere un commento nel fab, ma di inserirlo e visualizzarlo direttamente nel dettaglio di un evento.
Si creano i due layout relativi al portafoglio e all'acquisto dei tickets. Per il primo si utilizza un plugin per la timeline sugli ultimi acquisti, per il secondo si introdurrà poi la tecnologia NFC tag, una volta acquistato il biglietto.
Ultime modifiche e si passa alla seconda app dei planners.