{"id":7588,"date":"2013-07-13T15:31:09","date_gmt":"2013-07-13T20:31:09","guid":{"rendered":"http:\/\/mjtsai.com\/blog\/?p=7588"},"modified":"2013-07-13T15:44:32","modified_gmt":"2013-07-13T20:44:32","slug":"dropbox-datastore-vs-core-data-and-icloud","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2013\/07\/13\/dropbox-datastore-vs-core-data-and-icloud\/","title":{"rendered":"Dropbox Datastore vs. Core Data and iCloud"},"content":{"rendered":"<p><a href=\"http:\/\/www.atomicbird.com\/blog\/dropbox-datastore\">Tom Harrington<\/a> on the <a href=\"http:\/\/mjtsai.com\/blog\/2013\/07\/09\/dropbox-chooser-saver-and-datastore\/\">new Dropbox Datastore API<\/a>:<\/p>\n<blockquote cite=\"http:\/\/www.atomicbird.com\/blog\/dropbox-datastore\"><p>The Datastore API may be a good idea if your data model is not highly structured and if your users mostly already have Dropbox accounts. For anything more sophisticated or for non-Dropbox users, probably not. Or at least not without a lot of extra work. The API is by no means a replacement for SQLite or Core Data, but it&rsquo;s probably enough for many apps.<\/p>\n<p>[&#8230;]<\/p>\n<p>Brian explained that DBList uses operational transforms to maintain list ordering in the face of conflicting changes, for example rearranging a list on one device and deleting some items on a different device. So while the class API seems pretty limited, there&rsquo;s more to the class than it seems at first.<\/p>\n<p>[&#8230;]<\/p>\n<p>One of Dropbox&rsquo;s major selling points when compared to iCloud is that files can easily be shared between different users. <strong>There is no sign that this kind of sharing exists for the Datastore API.<\/strong> Data stored this way does not show up like files stored in a Dropbox account. Neither the Dropbox web site nor the API has any sign of sharing options. The API provides a single-user data silo just like iCloud.<\/p>\n<p>[&#8230;]<\/p>\n<p>The API for searching the data store is quite simple, maybe too simple. To find records, pass an <code>NSDictionary<\/code> to the <code>DBTable<\/code> and you&rsquo;ll get any <code>DBRecord<\/code>s with the same key\/value pairs. Easy! Except... the results need to match exactly. No getting records where a numeric field is more or less than a reference value, no partial string matching, etc. Also, since there&rsquo;s no relationship support, your query is limited to values on the target table.<\/p>\n<\/blockquote>\n<p><a href=\"http:\/\/www.macworld.com\/article\/2044178\/developers-on-dropbox-datastore-as-an-icloud-alternative.html\">Lex Friedman<\/a>:<\/p>\n<blockquote cite=\"http:\/\/www.macworld.com\/article\/2044178\/developers-on-dropbox-datastore-as-an-icloud-alternative.html\"><p>\n<a href=\"http:\/\/tapbots.com\">Tapbots&rsquo;s<\/a> Paul Haddad told <em>Macworld<\/em> that he didn&rsquo;t even bother looking at the Datastore API. &ldquo;I don&rsquo;t really care,&rdquo; he said. Because it&rsquo;s not core Apple functionality, Haddad said, &ldquo;it doesn&rsquo;t run in the background,&rdquo; which makes it far less appealing to him. Even with iOS 7&rsquo;s improved background functionality, Haddad said, Dropbox won&rsquo;t be able to match the ubiquitous omnipresent syncing that iCloud affords.\n<\/p>\n<\/blockquote>","protected":false},"excerpt":{"rendered":"<p>Tom Harrington on the new Dropbox Datastore API: The Datastore API may be a good idea if your data model is not highly structured and if your users mostly already have Dropbox accounts. For anything more sophisticated or for non-Dropbox users, probably not. Or at least not without a lot of extra work. The API [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"apple_news_api_created_at":"","apple_news_api_id":"","apple_news_api_modified_at":"","apple_news_api_revision":"","apple_news_api_share_url":"","apple_news_coverimage":0,"apple_news_coverimage_caption":"","apple_news_is_hidden":false,"apple_news_is_paid":false,"apple_news_is_preview":false,"apple_news_is_sponsored":false,"apple_news_maturity_rating":"","apple_news_metadata":"\"\"","apple_news_pullquote":"","apple_news_pullquote_position":"","apple_news_slug":"","apple_news_sections":"\"\"","apple_news_suppress_video_url":false,"apple_news_use_image_component":false,"footnotes":""},"categories":[4],"tags":[35,109,47,16,269,50],"class_list":["post-7588","post","type-post","status-publish","format-standard","hentry","category-programming-category","tag-cloud","tag-coredata","tag-dropbox","tag-icloud","tag-syncing","tag-webapi"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/7588","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/comments?post=7588"}],"version-history":[{"count":1,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/7588\/revisions"}],"predecessor-version":[{"id":7592,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/7588\/revisions\/7592"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=7588"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=7588"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=7588"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}