Actividad
El siguiente comando, ejecutado mientras se trabaja con iCloud con aplicaciones (como Smultron 4 y TextEdit) que soportan Documentos Móviles -
sudo opensnoop -n ubd
- muestra los archivos locales abiertos por el demonio de la ubicuidad. Los archivos incluyen bases de datos, una base de datos por cada par. Un directorio por par en la siguiente ruta:
~/Library/Application Support/Ubiquity
Tipos de datos
Si desea medir el progreso, decida qué tipos medir:
- Datos básicos
- documentos
- llave-valor.
Ahorro, progreso y medición
Datos básicos
Los archivos de registro de cambios, no el archivo de la tienda, se suben a iCloud y descargado a cada uno de los otros dispositivos de un usuario. Cuando un registro de cambios llega desde otro dispositivo conectado a la misma cuenta de iCloud, el Core Data actualiza la copia local de la base de datos de SQLite de su aplicación, basada en el registro de cambios recibidos. iCloud y Core Data aseguran que cada local La base de datos se actualiza con el mismo conjunto de cambios. …
Considere: sin interpretar la contenido de un registro de cambios, ¿merecerá la pena medir el progreso de la carga del archivo de registro?
Documentos
En la biblioteca de desarrollo de Mac:
Las aplicaciones basadas en documentos pueden adoptar el auto-guardado en su lugar, y sus documentos se guardan automáticamente en los momentos apropiados
También:
Las estrategias de almacenamiento automático de datos alivian al usuario
puntos apropiados en su código donde cualquier cambio relacionado con el usuario debe ser guardado y escribir esos cambios en el disco automáticamente. …
Algunos momentos apropiados en los que se pueden guardar los datos del usuario automáticamente incluyen lo siguiente:
- Cuando el usuario cierra la ventana de la aplicación o sale de la aplicación (applicationWillTerminate:)
- Cuando la aplicación se desactiva (applicationWillResignActive:)
- Cuando el usuario oculta su aplicación (applicationWillHide:)
- Cada vez que el usuario hace un cambio válido en los datos de su aplicación
El último elemento significa que tienes la libertad de guardar los datos del usuario en cualquier momento que tenga sentido hacerlo. Por ejemplo, si el usuario es al editar los campos de un registro de datos, puede guardar cada valor de campo como o puede esperar y guardar todos los campos cuando el usuario muestre un nuevo récord. Hacer este tipo de cambios incrementales asegura que los datos están siempre actualizados pero también requieren una mayor precisión la gestión de su modelo de datos. …
Considere: esos ahorros pueden ser tan frecuentes, y las cantidades tan pequeñas, que la medición no valdrá la pena.
item-info.db
Jugué con Navegador de la base de datos SQLite para navegar por el item-info.db
base de datos para el compañero que parece ser mi Mac local. Como sospechaba, la aplicación sólo podía navegar mientras el sistema no usaba la base de datos - a los dos segundos de usar la vista previa para editar un Untitled.png
en iCloud, ya no podía navegar por la base de datos y así sucesivamente.
Referencias
Guía de diseño de iCloud
Guía de programación de la Mac App : El diseño del núcleo de la aplicación: