YouTube

Got a YouTube account?

New: enable viewer-created translations and captions on your YouTube channel!

Spanish, Mexican subtitles

← Porqué los Proveedores de Contenido Importan

Get Embed Code
10 Languages

Showing Revision 16 created 09/30/2014 by Fran Ontanaya.

  1. Antes de continuar y construir
    un proveedor de contenido
  2. no estaría mal preguntarnos,
    bueno y ¿por qué?
  3. La respuesta más simple es que permite
    compartir información de manera segura
  4. y eficiente a través de
    los límites de la aplicación
  5. más allá de la fuente de datos subyacente,
    sea ésta SQLite, como esta,
  6. o archivos, o cualquier cosa realmente,
  7. con el fin de que otras aplicaciones
    puedan acceder a ella
  8. sin necesidad de comprender
    cómo se ha almacenado.
  9. De hecho en el calendario, SMS y contactos
    los API's funcionan de ese modo,
  10. usando proveedores
    de contenido compartido.
  11. Vamos a compartir nuestra base
    de datos del clima más tarde,
  12. pero si no se está planeando exponer
    los datos de la aplicación,
  13. probablemente estemos pensando
    que podemos saltarnos esta parte, ¿cierto?
  14. Bueno, casi,
    en muchos casos se puede,
  15. pero realmente no se debería.
  16. Por ejemplo, en Sunshine
    estamos usando SQLite
  17. Pero podríamos estar almacenando datos
    en archivos, dynamic run-time data
  18. o incluso en una biblioteca
    de base de datos distinta.
  19. Al usar proveedores de contenido,
  20. es más fácil cambiar eventualmente
    la fuente de datos
  21. y mucho más fácil para otros
    administrar la capa de código de la IU
  22. sin tener que comprender en profundidad
  23. la implementación
    del almacenamiento de datos.
  24. En la capa de IU, existe un mecanismo
    genérico que devuelve cursores.
  25. Los mismos devueltos por
    las bases de datos SQLite.
  26. Así que, si cambia
    la implementación de capa de datos ,
  27. entonces el proveedor de contenidos
    se ve afectado.
  28. De todos modos, tú estás escribiendo
    el código en este momento
  29. y eso es mucho código boilerplate
  30. para lograr seguir un
    patrón de diseño prolijo.
  31. Debemos tener en mente que en lo
    relativo al framework,
  32. todos los datos son manipulados a través
    de proveedores de contenido.
  33. Así que si se desea interactuar
    con cualquier cosa fuera de la aplicación,
  34. como el envío de datos hacia un widget
  35. o el retorno de resultados de búsqueda
    desde una aplicación más nueva,
  36. también se necesitará
    un proveedor de contenido.
  37. De hecho, así es como funcionan los widgets
    de Google Play Store y Gmail,
  38. así como también la habilidad de obtener
    resultados de búsqueda en Google Play.
  39. De modo similar, existe un gran número
    de API's diseñadas para optimizar
  40. el proceso de sincronización
    y consulta de datos,
  41. y la actualización acorde de la IU.
  42. Y todo eso también requiere
    proveedores de contenido.
  43. Eso incluye sync adapters
    y cursor loaders.
  44. Que permiten la sincronización eficiente
    de la aplicación con el servidor,
  45. la carga de datos desde la capa de IU,
  46. y eso incluye construir
    observadores de contenido
  47. que actualizarán la IU automáticamente
    cuando los datos subyacentes cambien.
  48. Por supuesto, se puede construir
    personalmente, pero se llega a cierto punto
  49. en que la ventaja obtenida al no escribir
    el proveedor de contenido desde el inicio
  50. se pierde en el proceso de recrear
    todos los clusters útiles que lo utilizan.
  51. Veremos la publicación
    del proveedor de contenido
  52. y el uso de Lotus para acceder a él
    eficientemente más tarde en esta lección.
  53. Y exploraremos los sync adapters
    en la lección seis cuando veamos
  54. cómo hacer actualizaciones
    eficientes de background.
  55. Pero antes, Dan les mostrará como se
    construye un proveedor de contenido.