Completato

Note

Errore

Session expiration Your session is going to expireClick here to extend

Budget:

3.000 - 6.000

Pubblicato il

28/02/12 13.37

Cliente

Con***

Questo progetto è scaduto

Pubblica un progetto simile e ricevi velocemente offerte non vincolanti.

Pubblica ora il tuo progetto simile

Descrizione

Dobbiamo sviluppare la versione iOS della nostra applicazione Android.

Si tratta di pagine gialle personalizzate, l'applicazione legge i tuoi contatti, li cerca nelle pagine gialle, e crea un elenco personalizzato, per città e categoria, dei tuoi locali preferiti, e ti mostra quelli dei tuoi amici.

 

In allegato trovate alcuni screenshot dell'applicazione Android. 

 

Segue una descrizione tecnica dettagliata.

 

Premessa

In generale GMA utilizza :

·         un DB locale al dispositivo per memorizzare dati da visualizzare quando si è offline

·         REST API sviluppate ad-hoc che interagiscono col DB centrale.

o   Le API restituiscono sempre risultati incapsulati in un pacchetto JSON predefinito che include varie info sulla risposta oltre alla risposta stessa.

 

GMA cerca sempre di essere ultra-sincronizzata con il SERVER API.

Quando GMA è offline le azioni dell’utente vengono memorizzate nel DB locale e non appena online caricate sul Server

La sincronizzazione è gestita

·         in download tramite timestamp (Agendina scarica tutti i dati di un certo tipo a partire dall’ultimo timestamp di sincronizzazione)

·         in upload tramite campo specifico nel DB locale che indica se un elemento è stato caricato.

o   Il server intuisce quando Agendina sta cercando di caricare un duplicato e semplicemente ignora la richiesta inviando in risposta un esito positivo identico a quello restituito dal primo upload.

 

Visto che l’utente può interagire con il SERVER API da altre interfacce, GMA cerca sempre di utilizzare le API specie per i dati non relativi all’utente loggato. Quando manca internet, utilizza il DB locale e le funzionalità legate a internet vengono disabilitate (l’utente riceve un messaggio apposito quando cerca di utilizzarle)

 

Visto che la sincronizzazione può risultare pesante, viene effettuata ad ogni Login dell’utente o manualmente selezionandola da un menù.

La sincronizzazione mostra all’utente progressbar sullo status.

 

Qualsiasi operazione lunga o che utilizza le API (e che quindi può bloccare la GUI) viene eseguita in asincrono con opportuno Dialog di attesa o messaggio di caricamento

 

 

Lista generica features di Agendina:

 

 

·         Registrazione e login (il login FB è fatto ottenendo dalle API FB l’user-token ed eseguendo poi il login sulle api di Giarty.it)

o   FB effettua il login secondo le sue modalità richiamando l’app FB installata sul dispositivo o mostrando una Web-dialog in cui l’utente si logga a facebook e/o autorizza l’app AGENDINA ad accedere al suo profilo.

·         Gestione profilo in apposita schermata e possibilità di integrare il profilo con dati di login alternativi

o   L’utente può registrarsi semplicemente facendo il login con FB

§  In questo caso nella schermata profilo POTRA’ aggiungere tel/password per loggarsi così.

o   L’utente può registrarsi compilando i campi di registrazione

§  In questo caso nella schermata profilo POTRA’ effettuare il login FB per associare il profilo FB ed utilizzare il Login DB al prossimo accesso.

·         Una volta loggato, l’app memorizza i dati di login fino ad un Logout manuale. Appena l’app si apre proverà ad effettuare un login automatico con i dati posseduti.

·         Un Logout manuale (dal menù) azzera il DB locale (dati di login , preferiti ecc)

·         Un login di un utente diverso da quello loggato precedentemente COMPORTA UN LOGOUT a prescindere che il nuovo login riesca.

·         Sincronizzazione degli elementi del DB locale con il server online ad ogni accesso

o   Caricamento dati non caricati precedentemente (ad ogni Login o manualmente dal menù)

o   Scaricamento dati non presenti nel DB tramite timestamp (es. scarica tutti i nuovi record dal 2012-12-11-21-20-59)

§  Inclusi commenti/likes

§  Inclusi aziende preferite

§  Incluse città collegate alle aziende preferite

§  Incluse categorie collegate alle aziende preferite

·         Scansione rubrica locale e lista ultime chiamate fatte/ricevute e upload tramite Web API di numeri ed indirizzi email. (scansione obbligatoria alla prima installazione, facoltativa con reminder ogni 7gg – anche manualmente dal menù)

o   Il server cerca tutti gli amici e mette un commento automatico a nome dell’utente a tutte le aziende che conosce tra questi numeri (l’utente può modificarlo successivamente – vedi dopo).

·         Ricerca su mappa per (zona= span di coordinate + coordinate centro)

o   Zona e Macrocategoria (macrocategorie=10 voci prefissate)

o   Zona e Categoria (a sceltra da un elenco a completamento automatico tramite apposita api web)

o   Zona e Testo immesso dall’utente con regola specifica (es. almeno 3 caratteri per parola)

·         La mappa visualizza i risultati con pin di vari colori a seconda del tipo di risultato (4 tipi per ora)

o   Ogni pin è cliccabile e mostra un baloon con i dati principali dell’azienda

o   Il baloon è cliccabile è porta alla scheda azienda

·         SCHEDA AZIENDA:

o   Visualizza i dati aziendali

o   Pulsante di chiamata rapida

o   Pulsante per LIKE e Pulsante per COMMENTI

§  Un LIKE è un commento VUOTO e l’utente può piazzarlo una sola volta. Quindi un’azienda che ha già un commento dell’utente avrà il pulsante LIKE disabilitato perché il primo commento fa automaticamente anche da LIKE.

§  I commenti invece non hanno limiti di numero.

§  Ogni commento può essere pubblico o privato. (invece il like è sempre pubblico)

§  Ogni commento scritto dall’utente può essere modificato successivamente solo per il campo ‘PUBBLICO/PRIVATO’

§  Appena l’utente scrive un commento l’app cerca di caricarlo immediatamente sul server. Se non ci riesce (es. non c’è rete) lo caricherà alla prossima sincronizzazione (vedi sopra)

o   Visualizzazione di 4 TABS (gli ultimi 3 tabs visualizzano un numerino su quanti item contengono e gli elementi vengono scaricati tramite API web solo quando l’utente sceglie quel tab)

§  Commenti propri (caricati dal DB locale so Offline o tramite API se Online)

·         Ogni item mostra data e ora, e permette di modificare il campo Privacy del commento tenendo premuto sull’item stesso.

§  Commenti degli amici (caricati sempre tramite API – se offline la scheda mostra un messaggio di errore)

·         Mostra Nome e foto dell’amico

·         il testo del commento

·         Un’icona che indica se l’item è un commento o un Like (in questo caso il testo del commento è vuoto)

§  Commenti di tutti gli altri

·         COME commenti degli amici

§  FotoGallery

·         Mostra una griglia di miniature foto caricate per l’azienda e un bottone per caricare una propria foto

o   La foto è presa dalla calleria, o scattata al momento

o   La foto è croppabile e deve essere ridotta a un determinato formato prima del caricamento.

·          

·         Ricerca delle aziende nel DB locale per Macrocategoria e città

·         Visualizzazione lista di amici (ogni amico è contattabile ovunque esso appaia nell’APP  a seconda di come li si conosce  )

o   Es. un amico FB -> solo tramite FB

o   Un’amico preso dalla rubrica telefono -> solo via SMS/chiamata

o   Un’amico di cui si ha il numero ed è amico anche su FB ->in tutte le maniere

·         Visualizza lista preferiti di un’amico selezionandolo dalla lista e ricerca con filtri Macrocategoria/città

o   Ogni item porta alla scheda azienda relativa (vedi sopra)

·         Schermata di help automatica alla prima apertura dell’app e apribile da menù

·         Crash gestiti con report automatico (ACRA su Bugsense)

·         Attualmente l’app è localizzata in Inglese e Italiano