Almacenamiento de datos grandes local o en línea para la aplicación de Android?

Primera vez que publica y la primera vez que trabaja en Android, así que vaya fácil si estoy rompiendo cualquier regla 🙂

De todos modos, acabo de hacer una aplicación para Android y estoy tratando de crear un juego de trivia simple. Planeo tener muchas preguntas (esperanzadamente sobre 5000+ preguntas) hechas. Ninguna manipulación de datos hecha, simplemente recto leyendo las preguntas y presentándolo al usuario. Ahora me encuentro con el dilema de cómo almacenar las preguntas.

Tengo dos opciones:

1.) Agrupe las preguntas con la aplicación: Posiblemente almacene la información en SQLite. Originalmente, para fines de demostración, hice las preguntas en un archivo XML, pero rápidamente me di cuenta de lo ineficiente que será una vez que las preguntas empiecen a subir. En primer lugar, me preocupa si la apertura de un archivo XML tan grande chupar la memoria de Android. En segundo lugar, me preocupa lo grande que sería la aplicación si contiene más de 5000 preguntas. He leído aquí sobre los pros de XML vs SQLite. En ese ejemplo, el usuario tiene 70.000 entradas así que quizás mis 5.000 preguntas sería suficiente?

O

2.) Anfitrión de las preguntas en un servidor: Creo que la parte superior es la aplicación no tendría que ser incluido con una gran cantidad de preguntas y no tendría que preocuparse por la lógica de la apertura y montaje de las preguntas. Simplemente golpearía una página PHP y dependiendo de los parámetros enviados, la página PHP devolvería las preguntas en formato XML. La desventaja es que el usuario tendría que estar en línea (para recuperar las preguntas) con el fin de jugar el juego y mi servidor tendría que estar en funcionamiento 24/7.

¿Alguien ha encontrado este problema de diseño de cómo y dónde almacenar gran cantidad de datos en una aplicación de Android?

¡Gracias, cualquier ayuda sería muy apreciada!

Desde una perspectiva de marketing, creo que el enfoque correcto es # 1. Sólo mirando la lista de aplicaciones superior, está lleno de aplicaciones que funcionan sin conexión. No sé por qué la mayoría de la gente no menciona este criterio importante cuando hablan de aplicaciones de marketing … especialmente en Android, donde mucha gente no tiene un plan de datos. Además, una aplicación de trivia suena como algo que alguien probablemente usaría durante un viaje en un tren en lugar de algo como Facebook Chat que usarían cuando estuvieran en línea.

Desde una perspectiva técnica, almacenar más de 5000 preguntas realmente no tomará una gran cantidad de espacio. Hay esta aplicación llamada "MyFitnessPal". Almacena quizás más de 30.000 alimentos en una base de datos SQlite, con información nutricional. Así que no sobrestimar cuánto espacio tomará.

La ventaja de ir con # 2 es si las preguntas o las respuestas cambian a menudo, usted puede ser que quiera ir con ese acercamiento.

Creo que la mejor opción para usted es almacenar las preguntas en SQLite . De esta manera los usuarios pueden tener acceso a su juego, incluso si están fuera de línea, que es una de las cosas importantes como Hisoka mencionado. Así que creo que deberías intentar usar SQLite.

  • Múltiples anotaciones encontradas en esta línea:
  • ¿Posible inflar una disposición de XML en un servicio? (Androide)
  • Cambiando el color de fondo del menú desplegable de la acción
  • Cómo configurar la aplicación RecyclerView: layoutManager = "" de XML?
  • Parsing XML Android - Análisis de la descripción <description>
  • Teclado suave de Android con botones superpuestos (Captura de pantalla)
  • Cambiar el color de fondo de la barra de acción mediante AppCompat
  • ¿Cuál es la diferencia exacta entre gravedad y layout_gravity
  • Animación de agitación de botón de Android
  • ¿Cómo alinear vistas en la parte inferior de la pantalla?
  • Haga referencia al id de una vista dentro de un diseño "include" en xml
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.