Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Sopra la Media

No description
by

Ivano Donadi

on 28 January 2016

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Sopra la Media

Sopra la Media
Logica dell'App
Obiettivo
Creare un’applicazione Android che implementa la funzione di ricerca scuole SopraLaMedia.
L'applicazione si deve basare sul richiedere le informazioni di cui necessita al database presente nel server, tramite uno scambio di dati di tipo RESTful.


Applicazione android
Strumenti utilizzati
Ho utilizzato l’ambiente di sviluppo "AndroidStudio" per la programmazione dell’applicazione. Per l’analisi dei JSON ho utilizzato l’estensione di Chrome “Postman”.
L’applicazione deve presentare all’utente un form di ricerca semplice e adattabile al cambiamento dei dati presenti nel server, e permettergli di filtrare le scuole in base alle preferenze espresse nel form. Quando l’utente ha scelto la scuola che fa a caso suo può vedere la scheda di dettaglio della scuola e visualizzare l’elenco degli indirizzi tra cui può scegliere. Da qui l’utente può visualizzare la scheda di dettaglio del singolo indirizzo che descrive le caratteristiche del corso e i servizi e le attività offerti dalla scuola, la raggiungibilità e le materie principali.
L'utente apre l'applicazione
Creazione form di ricerca in base alle informazioni ricevute dal server
1:
2:
L'utente compila il form secondo le sue preferenze
3:
Avvio della ricerca
4:
Se non si trovano risultati
Finestra di errore
Se si trovano risultati
Visualizzazione dell'elenco delle scuole che rientrano nei parametri inseriti
5:
Visualizzazione dettaglio della singola scuola
6:
• Contatti
• Dirigente
• Indirizzo fisico
• Documenti allegati
• Elenco indirizzi di studio

Visualizzazione dettaglio del singolo indirizzo
7:
Generalità
Servizi e certificazioni
Attività e strutture
• Descrizione indirizzo
• Foto della scuola
• Logo scolastico
• Materie principali
• Attività di laboratorio
• Raggiungibilità
• POF

Sviluppo dell'App
Prima schermata:
Form
Per la prima schermata di form ho trattato le informazioni ricevute dal JSON di risposta dal server in modo che il form si adatti dinamicamente ai cambiamenti del file, aggiungendo o rimuovendo campi senza intaccare la funzionalità della ricerca. I campi del form possono essere di due tipi:

1. TEXT: quando è un campo di ricerca libera dove l’utente può digitare un valore a piacere;

2. LIST: quando è un elenco di possibilità predefinite tra cui l’utente può scegliere;

L’utente può avviare la ricerca in due modi: premendo il tasto “Fine” presente sulla tastiera alla fine della digitazione in un campo di ricerca libera, oppure toccando il pulsante di ricerca presente in alto a destra della schermata una volta selezionati i valori desiderati nei campi.

Seconda schermata:
Elenco scuole
Terza schermata:
Dettaglio scuola
Selezionando un elemento scuola si accede alla pagina di descrizione generale della scuola. In questa pagina si possono vedere:
• Contatti (telefono, fax, mail, web)
• Indirizzo fisico
• Dirigente
• Documenti
• Lista degli indirizzi di studio
Da qui è possibile contattare via mail la scuola toccando l’indirizzo mail, che appare come collegamento ipertestuale; toccando invece l’indirizzo del sito si apre la pagina web del sito della scuola.
Nel caso fossero presenti documenti allegati è possibile scaricarli toccando il loro nome.
Se la scuola ha inserito i dettagli che riguardano l’indirizzo, il suo nome apparirà in azzurro, a indicare che è possibile passare alla scheda di dettaglio indirizzo.

Quarta schermata:
Dettaglio indirizzo
La scheda indirizzo è divisa in tre sezioni:
Una volta avviata la ricerca viene mostrata una nuova attività in cui si vede la lista delle scuole che rientrano nei parametri scelti dall’utente; Ogni elemento della lista contiene le informazioni base della scuola: nome, tipo, e aree di studio.
In questo modo l’utente può avere sott’occhio tutti gli elementi base necessari per compiere una scelta iniziale.
Se la ricerca non ha prodotto risultati viene mostrata una finestra di dialogo che rimanda al form.
La lista delle scuole viene mostrata paginata in gruppi di dieci e l’utente può navigare tra le pagine toccando il pulsante “Vai alla pagina…” e scegliendo poi la pagina desiderata.

Per implementare la paginazione ho usato un metodo semplice: Quando l’URL coi parametri di ricerca viene creata, il parametro “start” (che indica l’elemento da cui partire) viene aggiunto SEMPRE per ultimo perciò, quando devo cambiare pagina, basta scorrere la stringa URL fino a quando trovo i caratteri che formano la parola “start” e tagliare la stringa in quel punto, per poi concatenare la stringa ottenuta col numero del primo elemento della pagina desiderata.
JSON, acronimo di JavaScript Object Notation, è un formato adatto all'interscambio di dati fra applicazioni client-server.

var JSON = {
proprieta1: 'Valore',
proprieta2: 'Valore',
proprietaN: 'Valore'
}
Prima sezione:
Generalità
Nella sezione generalità sono disponibili dati come foto della scuola, breve descrizione, la priorità dell’offerta formativa, le materie principali, le attività di laboratorio, indirizzo fisico, contatti, documenti allegati e logo della scuola. In questa tab l’utente può farsi un’idea di come sarà l’indirizzo che ha scelto, e valutare se fa a caso suo.
Da qui è possibile scaricare i documenti allegati toccando il loro nome, e allo stesso modo si può accedere al sito web scolastico o alla mail d’istituto.

Terza sezione:
Attività e strutture
Nella sezione attività e strutture è presente una lista delle attività a cui è possibile partecipare (es: giornalino d’istituto, corsi pomeridiani …) e delle strutture di cui la scuola dispone (es: palestra, mensa) con il numero di posti totali della struttura.
Seconda sezione:
Servizi e certificazioni
Nella sezione servizi e certificazioni è presente una lista di tutti i servizi che la scuola offre (es: studio assistito) e le certificazioni che si possono ottenere (es: certificazioni di lingue straniere), seguiti da una breve descrizione.


Per la grafica dell’applicazione ho seguito le linee guida Google per il Material Design, con compatibilità per le versioni precedenti Lollipop.

Design
La ricezione e l’analisi dei dati dei file JSON sono gestiti all’interno di task asincroni in modo da non bloccare il Thread grafico mentre vengono processati i dati, e l’interfaccia viene poi popolata con i dati processati. Nella tab generalità dell’ultimo livello di ricerca c’è anche la distinzione tra task per scaricare le informazioni testuali e task per scaricare le immagini in modo da non dover attendere di aver scaricato l’immagine per leggere i contenuti testuali in caso di connessione lenta.
Migliorie della performance
Durante i test sulla pagina generalità ho notato che le immagini dei loghi sono generalmente montate su uno sfondo bianco candido mentre lo sfondo delle schede dell’applicazione è bianco tendente al grigio, per renderlo meno fastidioso. Allora, per evitare un fastidioso contrasto tra il logo e lo sfondo, ho deciso di modificare le immagini dei loghi, cambiando i pixel bianchi con pixel dello stesso colore dello sfondo, in modo che il logo sia in armonia con il resto della pagina.
Miglioria grafica
Informazioni aggiuntive
Possibili migliorie
Possibili migliorie a questa applicazione potrebbero essere:
• Servizio di ricerca scuole basato sulla posizione GPS delle scuole vicine all’utente;

Migioria della sicurezza dei dati
Il server cripta i dati da mandare all' applicazione in modo da garantire la privacy. L'applicazione si occupa poi di decrittare i dati ricevuti per renderli leggibili
Cosa ho imparato
Durante la creazione di questa applicazione ho approfondito la mia conoscenza del linguaggio Android.
Ho imparato a impostare la grafica di un’applicazione secondo le regole del MaterialDesign
Ho imparato ad usare il widget Spinner (per le scelte multiple nel form)
Ho migliorato la mia capacità di decodifica di un file JSON tramite le librerie Android
Ho approfondito le mie conoscenze sull’uso di task asincroni
Ho imparato a gestire le liste in modo da mostrare sempre tutti gli elementi, lasciando che lo scrolling della pagina si occupi di rendere gli elementi visibili
Se dovessi rifare un’applicazione di questo tipo con le conoscenze di adesso
So già come impostare i layout per questo genere di applicazione e non dovrei perdere tempo a scegliere che tipo di approccio grafico utilizzare
Ho imparato che è meglio generalizzare le risorse (come stringhe e dimensioni) da subito, e non tornare poi a modificare tutto il progetto per generalizzarlo
Sopralamedia è un servizio presente nel sito "www.ClickLavoroVeneto.it". È un servizio che permette all'utente di cercare una scuola secondaria(diurna o serale) in base alle sue preferenze, i suoi obiettivi e la locazione.
In una architettura RESTful la richiesta viene perpetrata al server semplicemente inviandogli un url che corrisponde ad una risorsa, es: (www.esempio.com/scuole/scarpa) e il server manda in risposta la risorsa richiesta
Full transcript