Cómo descargar grandes datos a través de servicios y almacenarlos sin conexión y mostrarlos en una aplicación híbrida. ¿Qué debo usar y cuál es el camino a seguir?

Depende de qué tipo de datos desea descargar. Si bien no hay límite en lo que se puede hacer, la naturaleza de la tarea definitivamente afectará el rendimiento de su aplicación, dado que las aplicaciones híbridas ya tienen un rendimiento lento.

Te voy a dar un ejemplo. En mi aplicación, actualizo la pantalla de inicio de vez en cuando (y sí, es una aplicación híbrida). Lo hago de la siguiente manera:

  1. Envío la información sobre mi pantalla de inicio actual a través de una API. La respuesta le dice a la aplicación si hay una actualización para la imagen de la pantalla de presentación. Esta API también devuelve el tamaño, el número de fragmentos descargables, los bytes por fragmento, etc. en respuesta.
  2. Una vez confirmado, configuro un intervalo de período en el que la aplicación alcanza una API que devuelve el contenido del archivo (en este caso, una imagen) en formato codificado en base64. Esta API envía el índice del fragmento cuyos bytes deben descargarse. Sigo almacenando estos fragmentos en localStorage bajo una clave.
  3. Una vez que se descargan todos los fragmentos, los fusiono en uno en la secuencia correcta y generan un archivo a partir de este dataURI utilizando el complemento FileSystem de cordova.
  4. Eso es. Ahora puedo usar esta imagen en todo lo que desee.

Necesitará el complemento FileSystem, usar jQuery le facilitará las cosas (aunque no se sugiere usar jQuery en aplicaciones híbridas), también se requeriría localStorage.