{"id":22292,"date":"2018-07-27T15:00:24","date_gmt":"2018-07-27T19:00:24","guid":{"rendered":"https:\/\/mjtsai.com\/blog\/?p=22292"},"modified":"2018-07-27T15:00:24","modified_gmt":"2018-07-27T19:00:24","slug":"pdfkit-the-lost-samples","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2018\/07\/27\/pdfkit-the-lost-samples\/","title":{"rendered":"PDFKit, the Lost Samples"},"content":{"rendered":"<p><a href=\"https:\/\/frameworker.wordpress.com\/2018\/07\/27\/pdfkit-the-lost-samples\/\">joely<\/a>:<\/p>\n<blockquote cite=\"https:\/\/frameworker.wordpress.com\/2018\/07\/27\/pdfkit-the-lost-samples\/\"><p>When I began using PDFKit, in the the days of Tiger and Leopard, there were a number of sample apps which helped me learn the framework: PDFKitViewer \/ PDFKitLinker2 \/ Link Snoop \/ PDF Calendar \/ PDFViewSubclasser \/ PDFAnnotationEditor<\/p>\n<p>But through the accumulation of deprecated APIs over nine builds and, especially, the pervasive breakage in the macOS 10.13 High Sierra rewrite, they broke and faded into obscurity.<\/p>\n<p>These samples showed interesting aspects of PDFKit. Beyond PDFKit, they highlighted significant aspects of Cocoa. And they&rsquo;re incredibly well-written &#x2013; readable and well factored! I just felt it would&rsquo;ve been a shame to let them fade away!<\/p>\n<p>However the port to iOS &#x2013; &ldquo;PDFKit reloaded&rdquo; (sorry Keneau) &#x2013; has brought PDFKit into its own! And macOS will be a direct beneficiary of that! This gives me confidence that the framework, which had been allowed to stagnate, will now receive true support! So I thought it would be propitious to make those &ldquo;lost PDFKit samples&rdquo; usable once again. And as an exercise, I&rsquo;ve updated their projects from Tiger and Leopard to build and run in High Sierra.<\/p><\/blockquote>","protected":false},"excerpt":{"rendered":"<p>joely: When I began using PDFKit, in the the days of Tiger and Leopard, there were a number of sample apps which helped me learn the framework: PDFKitViewer \/ PDFKitLinker2 \/ Link Snoop \/ PDF Calendar \/ PDFViewSubclasser \/ PDFAnnotationEditor But through the accumulation of deprecated APIs over nine builds and, especially, the pervasive breakage [&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":"2018-07-27T19:00:27Z","apple_news_api_id":"4fca6e53-f1a8-4bd4-b03a-3b5f77d11e56","apple_news_api_modified_at":"2018-07-27T19:00:27Z","apple_news_api_revision":"AAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/w==","apple_news_api_share_url":"https:\/\/apple.news\/AT8puU_GoS9SwOjtfd9EeVg","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":[30,1529,74,71,1424],"class_list":["post-22292","post","type-post","status-publish","format-standard","hentry","category-programming-category","tag-mac","tag-macos-10-13","tag-opensource","tag-programming","tag-pspdfkit"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/22292","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=22292"}],"version-history":[{"count":1,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/22292\/revisions"}],"predecessor-version":[{"id":22293,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/22292\/revisions\/22293"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=22292"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=22292"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=22292"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}