attività
Il seguente comando, funziona mentre lavori con iCloud con app (come Smultron 4 e TextEdit) che supportano i documenti mobili -
sudo opensnoop -n ubd
- mostra i file locali aperti dal demone ubiquity. I file includono database, un database per peer. Una directory per peer nel seguente percorso:
~/Library/Application Support/Ubiquity
Tipi di dati
Se desideri misurare i progressi, decidi quali tipi misurare:
- Dati principali
- documenti
- valore-chiave.
Salva, progredisce e misura
Dati principali
… The change log files, not the store file, are uploaded to iCloud and
downloaded to each of a user’s other devices. When a change log
arrives from another device attached to the same iCloud account, Core
Data updates your app’s local copy of the SQLite database, based on
the received change log. iCloud and Core Data ensure that each local
database is updated with the same set of changes. …
Considera: senza interpretare il contenuto di un registro delle modifiche, varrebbe la pena misurare l'avanzamento del caricamento del file di registro?
Documenti
Nella libreria per sviluppatori Mac:
… Document-based apps can adopt autosaving in place, and its documents
are automatically saved at appropriate times …
Inoltre:
Automatic Data-Saving Strategies Relieve the User
… appropriate points in your code where any user-related changes
should be saved and write those changes to disk automatically. …
Some appropriate times when you can save user data automatically
include the following:
- When the user closes the app window or quits the app (applicationWillTerminate:)
- When the app is deactivated (applicationWillResignActive:)
- When the user hides your app (applicationWillHide:)
- Whenever the user makes a valid change to data in your app
The last item means that you have the freedom to save the user’s data
at any time it makes sense to do so. For example, if the user is
editing fields of a data record, you can save each field value as it
is changed or you can wait and save all fields when the user displays
a new record. Making these types of incremental changes ensures that
the data is always up-to-date but also requires more fine-grained
management of your data model. …
Considera: quelli salvati possono essere così frequenti, e le somme così piccole, che la misurazione non sarà utile.
item-info.db
Mi sono divertito con Browser del database SQLite per cercare il database item-info.db
per il peer che sembra essere il mio Mac locale. Come sospettavo, l'app poteva navigare solo mentre il sistema non utilizzava il database - entro due secondi dall'uso di Preview per modificare un Untitled.png
in iCloud, non potevo più navigare nel database ... e così via.
Riferimenti
iCloud Design Guida
Guida alla programmazione di app per Mac : la progettazione dell'app di base: