2011-09-21 9 views
6

La prima volta che pubblichi e la prima volta che lavoro su Android, andate piano se sto violando le regole :)Memorizza grandi dati localmente o online per l'app per Android?

In ogni caso, ho appena iniziato a creare un'applicazione per Android e sto cercando di creare un semplice gioco a quiz. Ho in programma di fare molte domande (speriamo circa 5000+ domande). Nessuna manipolazione di dati effettuata, semplicemente leggendo le domande e presentandole all'utente. Ora sono di fronte al dilemma su come conservare le domande.

ho due scelte:

1.) Bundle alle domande con l'applicazione: Forse memorizzare le informazioni in SQLite. Inizialmente, per scopi dimostrativi, ho inserito le domande in un file XML, ma ho subito capito quanto sarà inefficiente una volta che le domande inizieranno ad accumularsi. Innanzitutto, sono preoccupato che l'apertura di un file XML così grande possa risucchiare la memoria di Android. In secondo luogo, sono preoccupato di quanto sarebbe grande l'app se contiene oltre 5000 domande. I read here sui vantaggi di XML vs SQLite. In questo esempio, l'utente ha 70.000 voci quindi forse le mie 5.000 domande sarebbero sufficienti?

O

2.) Host le domande su un server: Credo che il lato positivo è l'applicazione non avrebbe bisogno di essere in bundle con una grande quantità di domande e non avrebbe bisogno di preoccuparsi per la logica di aprire e assemblare le domande. Avrebbe appena colpito una pagina PHP e, in base ai parametri inviati, la pagina PHP avrebbe restituito le domande in formato XML. Il rovescio della medaglia è che l'utente dovrebbe essere online (per recuperare le domande) per poter giocare e il mio server dovrebbe essere attivo 24 ore su 24, 7 giorni su 7.

Qualcuno ha riscontrato questo problema di progettazione di come e dove archiviare una grande quantità di dati in un'app Android?

Grazie, qualsiasi aiuto sarebbe molto apprezzato!

+4

Penso che dovrebbe essere menzionato anche il contrario: NON infrangere le regole (specialmente sulla tua prima domanda). +1 per una domanda chiara, ben scritta e formattata che mostri lo sforzo e il pensiero della ricerca. Benvenuto in StackOverflow. :) –

risposta

7

Dal punto di vista del marketing, penso che l'approccio giusto sia il n. 1. Solo guardando l'elenco delle app migliori, è pieno di app che funzionano offline. Non so perché molte persone non menzionino questo importante criterio quando parlano di app di marketing ... specialmente in Android, dove molte persone non hanno un piano dati. Inoltre, un'app per curiosità suona come qualcosa che qualcuno probabilmente userebbe durante un tragitto in treno in confronto a qualcosa come la chat di Facebook che userebbero quando sono online.

Dal punto di vista tecnico, la memorizzazione di oltre 5000 domande non richiede molto spazio. C'è questa app chiamata "MyFitnessPal". Memorizza forse oltre 30.000 alimenti in un database SQlite, con informazioni nutrizionali. Quindi non sopravvalutare quanto spazio ci vorrà.

Il vantaggio di andare con # 2 è se le domande o le risposte cambiano spesso, si potrebbe voler seguire questo approccio.

+0

Sì, questo è ESATTAMENTE quello a cui stavo pensando: l'utente non è in grado di giocare online. Quindi stavo controllando la dimensione dell'XML con mille domande e avevi ragione, è piuttosto piccola. In realtà sto pensando di abbandonare l'intero approccio al database poiché Android sembra fare un buon lavoro nell'aprire il file XML (almeno con mille voci) e analizzare le informazioni senza lamentarsi - cosa di cui avevo paura prima. – RaKku

2

Penso che l'opzione migliore per voi sia quella di memorizzare le domande in SQLite. In questo modo gli utenti possono avere accesso al gioco anche se sono offline, che è una delle cose importanti menzionate da Hisoka. Quindi penso che dovresti provare a usare SQLite.

Problemi correlati