{"id":205,"date":"2017-09-03T20:13:20","date_gmt":"2017-09-03T19:13:20","guid":{"rendered":"http:\/\/stinkykitten.com\/?p=205"},"modified":"2024-10-24T14:28:05","modified_gmt":"2024-10-24T13:28:05","slug":"sknziparchiver","status":"publish","type":"post","link":"https:\/\/stinkykitten.com\/index.php\/2017\/09\/03\/sknziparchiver\/","title":{"rendered":"Coming Soon&#8230; The SKNZipArchiver"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"alignright wp-image-206 size-thumbnail\" src=\"http:\/\/stinkykitten.com\/wp-content\/uploads\/2017\/09\/Zipper-Mouth_Face_Emoji-150x150.png\" alt=\"Mum's the Word! - SKNZipArchiver\" width=\"150\" height=\"150\" srcset=\"https:\/\/stinkykitten.com\/wp-content\/uploads\/2017\/09\/Zipper-Mouth_Face_Emoji-150x150.png 150w, https:\/\/stinkykitten.com\/wp-content\/uploads\/2017\/09\/Zipper-Mouth_Face_Emoji-300x300.png 300w, https:\/\/stinkykitten.com\/wp-content\/uploads\/2017\/09\/Zipper-Mouth_Face_Emoji-270x270.png 270w, https:\/\/stinkykitten.com\/wp-content\/uploads\/2017\/09\/Zipper-Mouth_Face_Emoji-230x230.png 230w, https:\/\/stinkykitten.com\/wp-content\/uploads\/2017\/09\/Zipper-Mouth_Face_Emoji.png 640w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>Mum&#8217;s the word! We are nearing a release date for our SKNZipArchiver, this will be a Zip file archiver framework for macOS and iOS. The good news is that we will be making the object code free for you to download, link and distribute in your applications!<\/p>\n<p>You may wonder why I felt the need to create <b>another<\/b> means of handling Zip files on Apple&#8217;s platforms. Well, you just can&#8217;t have enough code in the world for extracting and creating Zip files. And no, it wasn&#8217;t just a technical exercise to fill my time; it was born out of the need to handle zips in another project that is also nearing completion.<\/p>\n<h4>What&#8217;s Wrong with Existing Zip Code?<\/h4>\n<p>Much of what is available as free to use and distribute is based on C code with perhaps an Obj-C wrapper, which is not exactly <i>modern<\/i>. Neither could I find anything that would work asynchronously and provide an NSProgress or adopts <a href=\"http:\/\/stinkykitten.com\/index.php\/2017\/08\/13\/nsprogress\/\" target=\"_blank\" rel=\"noopener\">NSProgressReporting<\/a>. Zip files downloaded from a network also lack efficiency with storage, i.e. you have to download the whole zip file before starting to extract files.<\/p>\n<h4>Goals for the SKNZipArchiver Framework<\/h4>\n<ul>\n<li>Utilise the OS wherever possible and not to have any dependency on third party code.<\/li>\n<li>Be small and lightweight.<\/li>\n<li>Implement asynchronous file handling.<\/li>\n<li>Make use of multiple cores.<\/li>\n<li>Utilise GCD QoS classes for trading performance against energy and user responsiveness.<\/li>\n<li>Comprehensive error handling.<\/li>\n<li>Simple and elegant API.<\/li>\n<li>Minimise memory and temporary storage requirements whilst retaining good performance.<\/li>\n<\/ul>\n<h4>Compromises<\/h4>\n<p>To achieve this there are a few compromises\u2026 The Zip file specification has many features and compression methods; not all of them will be supported. There was also the time constraints to get something working as quickly as possible and with limited resources. Despite this, the framework handles any archive created on macOS and we continue to test with Zips from other sources.<\/p>\n<h4>Releases<\/h4>\n<p>The SKNZipArchiver will be released as a static library but wrapped in a conventional framework. Its binary is sufficiently <i>fat<\/i>\u00a0which allows it to be used for testing in the simulator and linked for macOS and iOS platforms. The framework has been written purely in Obj-C with no dependencies on the Swift runtime. It has not yet been tested with Swift and we welcome any feedback.<\/p>\n<p>We will also be releasing a basic open source macOS application that leverages the framework. The application demonstrates the use of the framework; combined with KVO it&#8217;s possible to create a surprisingly comprehensive application with very little code.<\/p>\n<p>I look forward to receiving any feedback on its design and implementation.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mum&#8217;s the word! We are nearing a release date for our SKNZipArchiver, this will be a Zip file archiver framework for macOS and iOS. The good news is that we will be making the object code free for you to<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[6,7,4,5],"tags":[],"class_list":["post-205","post","type-post","status-publish","format-standard","hentry","category-apple","category-developers","category-ios","category-macos"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Coming Soon... The SKNZipArchiver &#8211; Stinky Kitten<\/title>\n<meta name=\"description\" content=\"The SKNZipArchiver is a Zip file archiver framework for macOS and iOS. The object code is free for you to link and distribute in your applications!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/stinkykitten.com\/index.php\/2017\/09\/03\/sknziparchiver\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Coming Soon... The SKNZipArchiver &#8211; Stinky Kitten\" \/>\n<meta property=\"og:description\" content=\"The SKNZipArchiver is a Zip file archiver framework for macOS and iOS. The object code is free for you to link and distribute in your applications!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/stinkykitten.com\/index.php\/2017\/09\/03\/sknziparchiver\/\" \/>\n<meta property=\"og:site_name\" content=\"Stinky Kitten\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/facebook.com\/stinkykitten\" \/>\n<meta property=\"article:published_time\" content=\"2017-09-03T19:13:20+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-10-24T13:28:05+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/stinkykitten.com\/wp-content\/uploads\/2017\/09\/Zipper-Mouth_Face_Emoji-150x150.png\" \/>\n<meta name=\"author\" content=\"gary\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"gary\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/stinkykitten.com\\\/index.php\\\/2017\\\/09\\\/03\\\/sknziparchiver\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/stinkykitten.com\\\/index.php\\\/2017\\\/09\\\/03\\\/sknziparchiver\\\/\"},\"author\":{\"name\":\"gary\",\"@id\":\"https:\\\/\\\/stinkykitten.com\\\/#\\\/schema\\\/person\\\/f4b9bc950c6e647382607334fcfa9d8f\"},\"headline\":\"Coming Soon&#8230; The SKNZipArchiver\",\"datePublished\":\"2017-09-03T19:13:20+00:00\",\"dateModified\":\"2024-10-24T13:28:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/stinkykitten.com\\\/index.php\\\/2017\\\/09\\\/03\\\/sknziparchiver\\\/\"},\"wordCount\":433,\"publisher\":{\"@id\":\"https:\\\/\\\/stinkykitten.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/stinkykitten.com\\\/index.php\\\/2017\\\/09\\\/03\\\/sknziparchiver\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/stinkykitten.com\\\/wp-content\\\/uploads\\\/2017\\\/09\\\/Zipper-Mouth_Face_Emoji-150x150.png\",\"articleSection\":[\"Apple\",\"Developers\",\"iOS\",\"macOS\"],\"inLanguage\":\"en-GB\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/stinkykitten.com\\\/index.php\\\/2017\\\/09\\\/03\\\/sknziparchiver\\\/\",\"url\":\"https:\\\/\\\/stinkykitten.com\\\/index.php\\\/2017\\\/09\\\/03\\\/sknziparchiver\\\/\",\"name\":\"Coming Soon... The SKNZipArchiver &#8211; Stinky Kitten\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/stinkykitten.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/stinkykitten.com\\\/index.php\\\/2017\\\/09\\\/03\\\/sknziparchiver\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/stinkykitten.com\\\/index.php\\\/2017\\\/09\\\/03\\\/sknziparchiver\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/stinkykitten.com\\\/wp-content\\\/uploads\\\/2017\\\/09\\\/Zipper-Mouth_Face_Emoji-150x150.png\",\"datePublished\":\"2017-09-03T19:13:20+00:00\",\"dateModified\":\"2024-10-24T13:28:05+00:00\",\"description\":\"The SKNZipArchiver is a Zip file archiver framework for macOS and iOS. The object code is free for you to link and distribute in your applications!\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/stinkykitten.com\\\/index.php\\\/2017\\\/09\\\/03\\\/sknziparchiver\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/stinkykitten.com\\\/index.php\\\/2017\\\/09\\\/03\\\/sknziparchiver\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/stinkykitten.com\\\/index.php\\\/2017\\\/09\\\/03\\\/sknziparchiver\\\/#primaryimage\",\"url\":\"http:\\\/\\\/stinkykitten.com\\\/wp-content\\\/uploads\\\/2017\\\/09\\\/Zipper-Mouth_Face_Emoji-150x150.png\",\"contentUrl\":\"http:\\\/\\\/stinkykitten.com\\\/wp-content\\\/uploads\\\/2017\\\/09\\\/Zipper-Mouth_Face_Emoji-150x150.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/stinkykitten.com\\\/index.php\\\/2017\\\/09\\\/03\\\/sknziparchiver\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/stinkykitten.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Coming Soon&#8230; The SKNZipArchiver\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/stinkykitten.com\\\/#website\",\"url\":\"https:\\\/\\\/stinkykitten.com\\\/\",\"name\":\"Stinky Kitten\",\"description\":\"Digital Publishing &amp; Software Development\",\"publisher\":{\"@id\":\"https:\\\/\\\/stinkykitten.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/stinkykitten.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/stinkykitten.com\\\/#organization\",\"name\":\"Stinky Kitten\",\"url\":\"https:\\\/\\\/stinkykitten.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/stinkykitten.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/stinkykitten.com\\\/wp-content\\\/uploads\\\/2017\\\/05\\\/about_us.png\",\"contentUrl\":\"https:\\\/\\\/stinkykitten.com\\\/wp-content\\\/uploads\\\/2017\\\/05\\\/about_us.png\",\"width\":200,\"height\":200,\"caption\":\"Stinky Kitten\"},\"image\":{\"@id\":\"https:\\\/\\\/stinkykitten.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/facebook.com\\\/stinkykitten\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/stinkykitten.com\\\/#\\\/schema\\\/person\\\/f4b9bc950c6e647382607334fcfa9d8f\",\"name\":\"gary\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a9b67e1df53d319b7f50d60891c0d9ed68ae6038f5a725db565374a255660c04?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a9b67e1df53d319b7f50d60891c0d9ed68ae6038f5a725db565374a255660c04?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a9b67e1df53d319b7f50d60891c0d9ed68ae6038f5a725db565374a255660c04?s=96&d=mm&r=g\",\"caption\":\"gary\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Coming Soon... The SKNZipArchiver &#8211; Stinky Kitten","description":"The SKNZipArchiver is a Zip file archiver framework for macOS and iOS. The object code is free for you to link and distribute in your applications!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/stinkykitten.com\/index.php\/2017\/09\/03\/sknziparchiver\/","og_locale":"en_GB","og_type":"article","og_title":"Coming Soon... The SKNZipArchiver &#8211; Stinky Kitten","og_description":"The SKNZipArchiver is a Zip file archiver framework for macOS and iOS. The object code is free for you to link and distribute in your applications!","og_url":"https:\/\/stinkykitten.com\/index.php\/2017\/09\/03\/sknziparchiver\/","og_site_name":"Stinky Kitten","article_publisher":"https:\/\/facebook.com\/stinkykitten","article_published_time":"2017-09-03T19:13:20+00:00","article_modified_time":"2024-10-24T13:28:05+00:00","og_image":[{"url":"http:\/\/stinkykitten.com\/wp-content\/uploads\/2017\/09\/Zipper-Mouth_Face_Emoji-150x150.png","type":"","width":"","height":""}],"author":"gary","twitter_card":"summary_large_image","twitter_misc":{"Written by":"gary","Estimated reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/stinkykitten.com\/index.php\/2017\/09\/03\/sknziparchiver\/#article","isPartOf":{"@id":"https:\/\/stinkykitten.com\/index.php\/2017\/09\/03\/sknziparchiver\/"},"author":{"name":"gary","@id":"https:\/\/stinkykitten.com\/#\/schema\/person\/f4b9bc950c6e647382607334fcfa9d8f"},"headline":"Coming Soon&#8230; The SKNZipArchiver","datePublished":"2017-09-03T19:13:20+00:00","dateModified":"2024-10-24T13:28:05+00:00","mainEntityOfPage":{"@id":"https:\/\/stinkykitten.com\/index.php\/2017\/09\/03\/sknziparchiver\/"},"wordCount":433,"publisher":{"@id":"https:\/\/stinkykitten.com\/#organization"},"image":{"@id":"https:\/\/stinkykitten.com\/index.php\/2017\/09\/03\/sknziparchiver\/#primaryimage"},"thumbnailUrl":"http:\/\/stinkykitten.com\/wp-content\/uploads\/2017\/09\/Zipper-Mouth_Face_Emoji-150x150.png","articleSection":["Apple","Developers","iOS","macOS"],"inLanguage":"en-GB"},{"@type":"WebPage","@id":"https:\/\/stinkykitten.com\/index.php\/2017\/09\/03\/sknziparchiver\/","url":"https:\/\/stinkykitten.com\/index.php\/2017\/09\/03\/sknziparchiver\/","name":"Coming Soon... The SKNZipArchiver &#8211; Stinky Kitten","isPartOf":{"@id":"https:\/\/stinkykitten.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/stinkykitten.com\/index.php\/2017\/09\/03\/sknziparchiver\/#primaryimage"},"image":{"@id":"https:\/\/stinkykitten.com\/index.php\/2017\/09\/03\/sknziparchiver\/#primaryimage"},"thumbnailUrl":"http:\/\/stinkykitten.com\/wp-content\/uploads\/2017\/09\/Zipper-Mouth_Face_Emoji-150x150.png","datePublished":"2017-09-03T19:13:20+00:00","dateModified":"2024-10-24T13:28:05+00:00","description":"The SKNZipArchiver is a Zip file archiver framework for macOS and iOS. The object code is free for you to link and distribute in your applications!","breadcrumb":{"@id":"https:\/\/stinkykitten.com\/index.php\/2017\/09\/03\/sknziparchiver\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/stinkykitten.com\/index.php\/2017\/09\/03\/sknziparchiver\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/stinkykitten.com\/index.php\/2017\/09\/03\/sknziparchiver\/#primaryimage","url":"http:\/\/stinkykitten.com\/wp-content\/uploads\/2017\/09\/Zipper-Mouth_Face_Emoji-150x150.png","contentUrl":"http:\/\/stinkykitten.com\/wp-content\/uploads\/2017\/09\/Zipper-Mouth_Face_Emoji-150x150.png"},{"@type":"BreadcrumbList","@id":"https:\/\/stinkykitten.com\/index.php\/2017\/09\/03\/sknziparchiver\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/stinkykitten.com\/"},{"@type":"ListItem","position":2,"name":"Coming Soon&#8230; The SKNZipArchiver"}]},{"@type":"WebSite","@id":"https:\/\/stinkykitten.com\/#website","url":"https:\/\/stinkykitten.com\/","name":"Stinky Kitten","description":"Digital Publishing &amp; Software Development","publisher":{"@id":"https:\/\/stinkykitten.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/stinkykitten.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/stinkykitten.com\/#organization","name":"Stinky Kitten","url":"https:\/\/stinkykitten.com\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/stinkykitten.com\/#\/schema\/logo\/image\/","url":"https:\/\/stinkykitten.com\/wp-content\/uploads\/2017\/05\/about_us.png","contentUrl":"https:\/\/stinkykitten.com\/wp-content\/uploads\/2017\/05\/about_us.png","width":200,"height":200,"caption":"Stinky Kitten"},"image":{"@id":"https:\/\/stinkykitten.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/facebook.com\/stinkykitten"]},{"@type":"Person","@id":"https:\/\/stinkykitten.com\/#\/schema\/person\/f4b9bc950c6e647382607334fcfa9d8f","name":"gary","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/secure.gravatar.com\/avatar\/a9b67e1df53d319b7f50d60891c0d9ed68ae6038f5a725db565374a255660c04?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/a9b67e1df53d319b7f50d60891c0d9ed68ae6038f5a725db565374a255660c04?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a9b67e1df53d319b7f50d60891c0d9ed68ae6038f5a725db565374a255660c04?s=96&d=mm&r=g","caption":"gary"}}]}},"_links":{"self":[{"href":"https:\/\/stinkykitten.com\/index.php\/wp-json\/wp\/v2\/posts\/205","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/stinkykitten.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/stinkykitten.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/stinkykitten.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/stinkykitten.com\/index.php\/wp-json\/wp\/v2\/comments?post=205"}],"version-history":[{"count":15,"href":"https:\/\/stinkykitten.com\/index.php\/wp-json\/wp\/v2\/posts\/205\/revisions"}],"predecessor-version":[{"id":228,"href":"https:\/\/stinkykitten.com\/index.php\/wp-json\/wp\/v2\/posts\/205\/revisions\/228"}],"wp:attachment":[{"href":"https:\/\/stinkykitten.com\/index.php\/wp-json\/wp\/v2\/media?parent=205"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/stinkykitten.com\/index.php\/wp-json\/wp\/v2\/categories?post=205"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/stinkykitten.com\/index.php\/wp-json\/wp\/v2\/tags?post=205"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}