{"id":28624,"date":"2020-04-10T14:16:45","date_gmt":"2020-04-10T18:16:45","guid":{"rendered":"https:\/\/mjtsai.com\/blog\/?p=28624"},"modified":"2020-04-10T14:17:33","modified_gmt":"2020-04-10T18:17:33","slug":"cloudkit-impressions-from-a-netnewswire-developer","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2020\/04\/10\/cloudkit-impressions-from-a-netnewswire-developer\/","title":{"rendered":"CloudKit Impressions From a NetNewsWire Developer"},"content":{"rendered":"<p><a href=\"https:\/\/vincode.io\/2020\/04\/09\/cloudkit-impressions-from.html\">Maurice Parker<\/a> (<a href=\"https:\/\/twitter.com\/vincode_io\/status\/1248367387650461696\">tweet<\/a>):<\/p>\n<blockquote cite=\"https:\/\/vincode.io\/2020\/04\/09\/cloudkit-impressions-from.html\"><p>One area that CloudKit outshines our RESTful service implementations is that it gets notifications when the data changes. This keeps our data more up to date. In the RESTful services, we sync which feeds you are subscribed to every so often via polling. This happens at shortest around every 15 minutes. Realtime updates to your subscription information isn&rsquo;t necessary, but it is fun to add a feed on your phone and watch it appear in realtime on the desktop.<\/p>\n<p>[&#8230;]<\/p>\n<p>One thing I wanted to do was provide a centralized repository that knew which feeds had been updated and when. I planned to have a system that would use the various NetNewsWire clients to update this data and notify the clients. My theory was that checking one site for updated feeds would be faster than testing all the sites to see if their feeds had updated.<\/p>\n<p>I ended up giving up on this task. I think it would have been possible to implement in CloudKit, but would not have been faster than checking all the sites for their feed updates. [&#8230;] There is no such thing as a &ldquo;JOIN&rdquo; between CloudKit records. If I could have connected data from more than one record per query I could have done some data driven logic.<\/p><\/blockquote>\n\n<p>I&rsquo;d like to switch (back) to NetNewsWire when this ships, although I haven&rsquo;t decided what I&rsquo;ll do about the smart folder and Pocket features I use in ReadKit.<\/p>\n\n<p>Previously:<\/p>\n<ul>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2019\/08\/13\/netnewswire-5-public-beta\/\">NetNewsWire 5 Public Beta<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2018\/07\/24\/the-state-of-rss-on-the-mac\/\">The State of RSS on the Mac<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2017\/02\/08\/readkit-2-5\/\">ReadKit 2.5<\/a><\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>Maurice Parker (tweet): One area that CloudKit outshines our RESTful service implementations is that it gets notifications when the data changes. This keeps our data more up to date. In the RESTful services, we sync which feeds you are subscribed to every so often via polling. This happens at shortest around every 15 minutes. Realtime [&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":"2020-04-10T18:16:48Z","apple_news_api_id":"eea4e189-fe0c-482a-8cc7-a84c3e9517b0","apple_news_api_modified_at":"2020-04-10T18:17:36Z","apple_news_api_revision":"AAAAAAAAAAAAAAAAAAAAAA==","apple_news_api_share_url":"https:\/\/apple.news\/A7qThif4MSCqMx6hMPpUXsA","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":[2],"tags":[916,31,1667,26,30,32,1666,392,71,269],"class_list":["post-28624","post","type-post","status-publish","format-standard","hentry","category-technology","tag-cloudkit","tag-ios","tag-ios-13","tag-iosapp","tag-mac","tag-macapp","tag-macos-10-15","tag-netnewswire","tag-programming","tag-syncing"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/28624","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=28624"}],"version-history":[{"count":2,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/28624\/revisions"}],"predecessor-version":[{"id":28626,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/28624\/revisions\/28626"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=28624"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=28624"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=28624"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}