Attività
Il seguente comando, funziona mentre lavori con iCloud con app (come Smultron 4 e TextEdit) che supportano Documenti Mobile -
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
... I file di registro delle modifiche, non i file di archivio, vengono caricati su iCloud e
scaricato su ciascuno degli altri dispositivi di un utente. Quando un registro delle modifiche
arriva da un altro dispositivo collegato allo stesso account iCloud, Core
Data aggiorna la copia locale dell'app del database SQLite, in base a
il registro delle modifiche ricevute. iCloud e Core Data assicurano che ogni locale
il database viene aggiornato con lo stesso insieme di modifiche. ...
Considera: senza interpretare il soddisfare di un registro delle modifiche, varrebbe la pena misurare l'avanzamento del caricamento del file di registro?
Documenti
Nella libreria per sviluppatori Mac:
... Le app basate su documenti possono adottare l'autosalvataggio in atto e i relativi documenti
vengono automaticamente salvati al momento opportuno ...
Anche:
Strategie automatiche di salvataggio dei dati Alleviare l'utente
... punti appropriati nel tuo codice in cui qualsiasi modifica relativa all'utente
dovrebbe essere salvato e scrivere automaticamente tali modifiche sul disco. ...
Alcuni momenti appropriati in cui è possibile salvare automaticamente i dati dell'utente
include il seguente:
- Quando l'utente chiude la finestra dell'app o chiude l'app (applicationWillTerminate :)
- Quando l'app è disattivata (applicationWillResignActive :)
- Quando l'utente nasconde la tua app (applicationWillHide :)
- Ogni volta che l'utente apporta una modifica valida ai dati nella tua app
L'ultimo elemento significa che hai la libertà di salvare i dati dell'utente
in qualsiasi momento ha senso farlo. Ad esempio, se l'utente è
modifica dei campi di un record di dati, è possibile salvare ogni valore di campo come esso
è cambiato o puoi aspettare e salvare tutti i campi quando l'utente visualizza
un nuovo record. Rendere questo tipo di modifiche incrementali lo garantisce
i dati sono sempre aggiornati ma richiedono anche maggiore precisione
gestione del tuo modello di dati. ...
Considera: quei salvataggi possono essere così frequenti, e le somme così piccole, che la misurazione non valga la pena.
item-info.db
Ho giocato con SQLite Database Browser per sfogliare il item-info.db
database 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 Anteprima per modificare un Untitled.png
in iCloud, non potevo più navigare nel database ... e così via.
Riferimenti
iCloud Design Guide
Guida alla programmazione di app per Mac : The Core App Design: