iCloud et Core Data en progrès avec Mavericks et iOS 7 ?

Nicolas Furno |

Avec iCloud, Apple a promis aux développeurs une solution de synchronisation clé en main, à la fois élégante et très efficace. Malheureusement, tous ceux qui s’y sont risqués se sont longtemps cassé les dents : à moins de s’en tenir à synchroniser quelques fichiers isolés, le service était souvent trop buggué pour être utilisable (lire : iCloud reste un casse-tête pour les développeurs).

Depuis, le constructeur a travaillé et la situation est apparemment bien plus réjouissante. C’est en tout cas ce qu’explique Realmac sur son blog. L’éditeur, entre autres, du gestionnaire d’images Ember utilise iCloud et Core Data pour synchroniser les éléments entre appareils iOS et OS X. Les images proprement dites restent des fichiers, mais le logiciel crée aussi une base de données composée uniquement des métadonnées associées aux images. C’est cette base de données qui est en fait synchronisée à la fois pour accélérer la recherche et pour éviter de tout charger sur les appareils iOS où l’espace de stockage est plus limité.

La synchronisation avec iCloud a été lancée à l’automne dernier et depuis, les utilisateurs d’Ember n’ont pas eu de problème avec la fonction. L’éditeur indique bien deux ou trois rapports de bugs pour lesquels il ne pouvait rien faire, mais on est loin de la situation au lancement du service, où la fonction ne pouvait vraiment pas être utilisée par les développeurs. A priori, on peut à nouveau compter sur Core Data avec OS X 10.9 et iOS 7, mais pour être sûr de ne rien laisser au hasard, l’éditeur a intégré dans la dernière version de son logiciel un système pour reconstruire la bibliothèque. En cas de problème, on peut réinitialiser la base de données iCloud à partir d’un Mac ou au contraire reconstruire celle du Mac à partir d’iCloud.

En appuyant sur la touche ⌥ du clavier, le menu "Ember" gagne une rubrique iCloud qui permet de régler d’éventuels problèmes.

Malgré ces bons résultats, Realmac reste très prudent. Outre la fonction de réinitialisation de la base de données, Ember intègre un module de sauvegarde des données. Cette solution permet de stocker les images et les informations associées aux images à un autre emplacement du disque dur. De quoi, par la suite, pouvoir restaurer ces données en cas de problème trop important pour être réglé simplement par une réinitialisation du Mac ou d’iCloud.

Si vous développez une application iOS ou OS X et que vous utilisez Core Data et iCloud, n’hésitez pas à témoigner en commentaire, que cela fonctionne ou non. À noter que d’autres développeurs n’ont pas attendu qu’Apple règle les problèmes de synchronisation et ont sorti leurs propres frameworks : on peut citer Ensembles ou encore iCloud Access.

avatar bompi | 

Ils ont l'air professionnels, ces gens-là (du genre à prévoir et anticiper sur les cagades de leur fournisseur de solution). C'est une attitude à souligner, en effet.

avatar nova313 | 

J'ai réussi à faire communiquer différents sévices iOS entre eux, Grace a iCloud, avec un simple échange de photos. Rien d'extraordinaire ni de bien compliqué, mais pour une utilisation plus poussé, iCloud s'embourbe vite.

avatar RedMak | 

Sa me rappel mes aventure avec le duo iCloud/core data dans ios6 c'ete l'enfer ! Ca m'a meme pousser à abandonner une application avec laquelle je synchronisais une app mac et une autre ios qui ete à 70% achevé :(

avatar Albook | 

Depuis Mavericks, Apple impose iCloud pour synchroniser les contacts et le calendrier des iBidules , il est bien certain qu'il y a des progrès !

avatar patrick86 | 

"Depuis Mavericks, Apple impose iCloud pour synchroniser les contacts et le calendrier des iBidules"

Non, Apple impose AUTRE CHOSE que iTunes. Ce autre chose peut-être iCloud ou n'importe quel autre nuage, quelque soit sa forme.

avatar Johnny B. Good | 

@Albook :
Core DATA n'a absolument rien à voir avec les Contacts et Calendriers.

avatar HaFondEcran | 

Mon expérience d'iCloud et core data....
Pour VinoBook, mon gestionnaire de cave à vin, compatible iPhone et iPad, dès iOS6 j'ai voulu donner aux utilisateurs la possibilité de synchroniser leurs iDevices via iCloud ... belle erreur: plantage, perte de données, corruption de base, bref un vrai cauchemar. J'ai rapidement abandonné au profit d'un solution par Dropbox.
Depuis iOS7, je travaille sur la version 5 de VinoBook, avec le retour d'iCloud, je suis en test depuis plusieurs semaines et ça fonctionne plutôt bien, sans plantage mais avec quelques "bizarrerie". Mais je dois dire que je suis un peu frileux à mettre cette nouvelle version en production, je garde en mémoire les déboires de la tentative précédente . Le plus déstabilisant avec iCloud c'est l'opacité du fonctionnement et le peu de contrôle offert aux développeurs.
Enfin je me laisse encore quelques semaines de test et pense proposer VinoBook 5 d'ici fin Février

avatar Lio70 | 

L'erreur des developpeurs est de croire que l'on peut faire une app client/serveur avec iCloud, bref une app ou l'on pourrait repliquer une base de donnees unique modifiee par plusieurs devices clients.

iCloud est juste une sorte de rond-point de synchronisation entre devices qui sont chacun leur propre serveur, et qui a la particularite de modifier les identifiants uniques de chaque enregistrement sur chaque device, d'ou l'impossibilite de preserver une suite de donnees tabulaires coherentes. Faire une app de base de donnees en utilisant iCloud et s'imaginer pouvoir repliquer sans ecrasement ou perte de donnees n'est pas possible.

Pour la meme raison, iCloud fout le bordel dans les Contacts d'OSX en remplacant un identifiant unique par un nouveau quand on synchronise les Contacts avec un nouveau device, on qu'on reinstalle tout simplement son ordinateur. D'ou l'impossibilite, par exemple, pour une app qui permettrait d'importer les Contacts et memoriserait leur UID, de retrouver la fiche originale du contact OSX par la suite.

CoreData n'a rien a voir avec le probleme, ce n'est qu'une technologie de gestion des donnees dans la memoire. Mais on le declare coupable car il est utilise en general systematiquement avec le developpement d'apps de donnees synchronisables par iCloud.

avatar RedMak | 

@lio70:
Non, pour les contacts je les ai déjà importé dans une de mes app et avec 3 devices synchronisé avec le mm compte iCloud, j'ai pu gerer le tout sans grand effort.

avatar Lio70 | 

@RedMAk
Alors iCloud s'est ameliore. As-tu fait quelque chose de particulier? Pour ce qui est de la synchro Contacts, je n'ai pas fait d'app multi-devices, je ne connais que le cas du Mac.

avatar Jean-Jacques Cortes | 

Pour transférer le contenu de son agenda et de son répertoire entre un iPhone et un Mac, pas besoin de passer par iCloud. Il existe deux applications iOS pour cela : ExcelContacts et ExcelCalendar, créées par samapp.net.
Je cherche la même chose pour les notes.

CONNEXION UTILISATEUR