{"id":25244,"date":"2019-05-13T15:32:05","date_gmt":"2019-05-13T19:32:05","guid":{"rendered":"https:\/\/mjtsai.com\/blog\/?p=25244"},"modified":"2019-05-13T16:36:27","modified_gmt":"2019-05-13T20:36:27","slug":"what-to-expect-from-marzipan","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2019\/05\/13\/what-to-expect-from-marzipan\/","title":{"rendered":"What to Expect from Marzipan"},"content":{"rendered":"<p><a href=\"https:\/\/blog.iconfactory.com\/2019\/05\/what-to-expect-from-marzipan\/\">Craig Hockenberry<\/a> (<a href=\"https:\/\/twitter.com\/chockenberry\/status\/1126180479470690307\">tweet<\/a>, <a href=\"https:\/\/news.ycombinator.com\/item?id=19874835\">Hacker News<\/a>):<\/p>\n<blockquote cite=\"https:\/\/blog.iconfactory.com\/2019\/05\/what-to-expect-from-marzipan\/\">\n<p>It will be exciting for a lot of developers, including yours truly, to press that button. But it&rsquo;s also important to temper this enthusiasm with reality: that build setting is just the first step on a long and complicated road. Good interaction doesn&rsquo;t come for free.<\/p>\n<p>As you saw above, the Mac has seen a lot of tool and framework transitions. But this is the first transition which involves a large group of developers who don&rsquo;t have any experience on the platform they&rsquo;re targeting. A Mac developer moving from CodeWarrior and C++ to Project Builder and Objective-C didn&rsquo;t have to learn anything new about conventions: they were still on a Mac. That can&rsquo;t be said about iOS developers who are starting to use Marzipan.<\/p>\n<p>[&#8230;]<\/p>\n<p>Many of the thoughts in this essay got their start while developing a tvOS app: I found that having a common user interface toolkit wasn&rsquo;t much help. It&rsquo;s nice to have familiar UIKit items like <code>UIImage<\/code>, <code>UIColor<\/code>, and <code>UIButton<\/code>, but in the end I found that <em>little<\/em> code was shared between platforms. Some views could be ported directly between platforms, but anything involving a controller was out of the question.<\/p>\n<p>[&#8230;]<\/p>\n<p>Keeping two wildly different groups of customers happy with a single app won&rsquo;t be an easy task, but it&rsquo;s one that you&rsquo;re going to be taking on with Marzipan.<\/p>\n<p>[&#8230;]<\/p>\n<p>It&rsquo;s my opinion that Universal apps were the worst thing to ever happen for the iPad ecosystem. There&rsquo;s no way for a developer to recoup the costs for new interactions and the extra work needed for more sophisticated apps. Apple makes it easier for a customer up front by offering a single download, but at the same time they make things worse because a Universal version of the user&rsquo;s favorite app isn&rsquo;t financially viable.<\/p>\n<\/blockquote>\n\n<p><a href=\"http:\/\/inessential.com\/2019\/05\/08\/craig_hockenberrys_what_to_expect_from_m\">Brent Simmons<\/a>:<\/p>\n<blockquote cite=\"http:\/\/inessential.com\/2019\/05\/08\/craig_hockenberrys_what_to_expect_from_m\">\n<p>As a Mac developer, you should do what other Mac developers do: understand and respect the platform <em>and<\/em> get help from Mac users, power users, and fellow Mac developers.<\/p>\n<p>I&rsquo;ve always found that Mac users are rooting for our success. They want us to make great apps &mdash;&nbsp;and they reward us for it. It&rsquo;s a smaller, more intimate community, and warmer than iOS world. But you can also blow it by not trying, by not respecting the Mac and Mac users.<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/twitter.com\/chockenberry\/status\/1126526517595344896\">Craig Hockenberry<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/chockenberry\/status\/1126526517595344896\">\n<p>Here&rsquo;s a thread of some thoughts that didn&rsquo;t make it into the post (it was already too long!)<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/pilky.me\/appreciating-appkit-part-1\/\">Martin Pilkington<\/a>:<\/p>\n<blockquote cite=\"https:\/\/pilky.me\/appreciating-appkit-part-1\/\">\n<p>I often feel that AppKit is under-appreciated by those who don&rsquo;t have a lot of experience with it, and especially with switching back and forth between Mac and iOS development. To help try and fix that, I am going to go through some of the features in AppKit that don&rsquo;t exist in UIKit. In this post I&rsquo;ll cover the many controls of AppKit, and in a future post I&rsquo;ll go into some of the less user-facing features.<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/twitter.com\/dimitribouniol\/status\/1126293543377440768\">Dimitri Bouniol<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/dimitribouniol\/status\/1126293543377440768\">\n<p>I feel like neither AppKit nor UIKit, nor a &ldquo;declarative framework&rdquo; that sits on top of either, depending on the platform, is really the right answer.<\/p>\n<p>AppKit is amazing in that it allows an app&rsquo;s UI to easily match system conventions, but needs easy customizability badly.<\/p>\n<p>Similarly, UIKit offers a huge amount of flexibility to customize system components, and make new controls, but lacks the depth that AppKit has in terms of great defaults for a newly developed app.<\/p>\n<p>I feel like the ideal on both platforms would really be to have a cleaned up version of AppKit that offers the visual customizability of UIKit, but starts with an excellent set of defaults that any app should expect to have.<\/p>\n<\/blockquote>\n\n<p>Previously:<\/p>\n<ul>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2019\/05\/01\/plans-for-third-party-marzipan-apps\/\">Plans for Third-Party Marzipan Apps<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2019\/04\/29\/the-under-appreciated-awesomeness-of-apple-events-the-technology\/\">The Under-Appreciated Awesomeness of Apple Events (the Technology)<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2019\/04\/23\/collision-course\/\">Collision Course<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2019\/04\/10\/macos-10-15-to-break-up-itunes\/\">macOS 10.15 to Break Up iTunes<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2019\/03\/04\/bringing-ios-apps-to-macos-using-marzipanify\/\">Bringing iOS Apps to macOS Using Marzipanify<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2019\/02\/20\/apple-to-target-combining-iphone-ipad-and-mac-apps-by-2021\/\">Apple to Target Combining iPhone, iPad, and Mac Apps by 2021<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2018\/05\/01\/scuttlebutt-regarding-apples-cross-platform-ui-project\/\">Scuttlebutt Regarding Apple&rsquo;s Cross-Platform UI Project<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2015\/07\/15\/maikit-framework-for-sharing-code-between-ios-and-os-x\/\">MAIKit: Framework for Sharing Code Between iOS and OS X<\/a><\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>Craig Hockenberry (tweet, Hacker News): It will be exciting for a lot of developers, including yours truly, to press that button. But it&rsquo;s also important to temper this enthusiasm with reality: that build setting is just the first step on a long and complicated road. Good interaction doesn&rsquo;t come for free. As you saw above, [&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":"2019-05-13T19:32:09Z","apple_news_api_id":"c2de4c4a-e7c2-482e-8ade-066387772c6d","apple_news_api_modified_at":"2019-05-13T20:36:34Z","apple_news_api_revision":"AAAAAAAAAAAAAAAAAAAAAA==","apple_news_api_share_url":"https:\/\/apple.news\/Awt5MSufCSC6K3gZjh3csbQ","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":[1621,69,545,31,145,30,1666,71],"class_list":["post-25244","post","type-post","status-publish","format-standard","hentry","category-technology","tag-marzipan","tag-cocoa","tag-icons","tag-ios","tag-ipad","tag-mac","tag-macos-10-15","tag-programming"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/25244","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=25244"}],"version-history":[{"count":2,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/25244\/revisions"}],"predecessor-version":[{"id":25249,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/25244\/revisions\/25249"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=25244"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=25244"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=25244"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}