{"id":27022,"date":"2019-10-22T16:55:18","date_gmt":"2019-10-22T20:55:18","guid":{"rendered":"https:\/\/mjtsai.com\/blog\/?p=27022"},"modified":"2019-10-23T16:47:38","modified_gmt":"2019-10-23T20:47:38","slug":"swiftui-is-still-the-future","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2019\/10\/22\/swiftui-is-still-the-future\/","title":{"rendered":"SwiftUI Is Still the Future"},"content":{"rendered":"<p><a href=\"https:\/\/inessential.com\/2019\/10\/21\/swiftui_is_still_the_future\">Brent Simmons<\/a>:<\/p>\n<blockquote cite=\"https:\/\/inessential.com\/2019\/10\/21\/swiftui_is_still_the_future\">\n<p>We very much want to use SwiftUI, and we believe it&rsquo;s the future of Mac and iOS development &mdash;&nbsp;but emphasis should be on <em>future<\/em>, because it&rsquo;s not quite ready in the present.<\/p>\n<p>Which should surprise nobody, given that it&rsquo;s so new. But I thought it might be interesting to know exactly what issues we ran into when using it.<\/p>\n<\/blockquote>\n<p>It&rsquo;s no secret that the available controls and features are much more complete for watchOS than for iOS or macOS. But this post is an example of some limitations and bugs around areas that you would expect to work.<\/p>\n<p>Overall, SwiftUI seems less suited than Swift itself to incremental adoption because, although you can make a hybrid UI that includes regular Cocoa views, it looks like you can run into a dead end where you have to back out and redo the container\/controller as well.<\/p>\n\n<p id=\"swiftui-is-still-the-future-update-2019-10-23\">Update (2019-10-23): <a href=\"https:\/\/twitter.com\/lapcatsoftware\/status\/1186732931471069184\">Jeff Johnson<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/lapcatsoftware\/status\/1186732931471069184\"><p>&ldquo;SwiftUI will be great next year&rdquo; is the new &ldquo;Catalyst will be great next year&rdquo;.<\/p><\/blockquote>\n\n<p><a href=\"https:\/\/twitter.com\/colincornaby\/status\/1186809810265632768\">Colin Cornaby<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/colincornaby\/status\/1186809810265632768\">\n<p>Important distinction: SwiftUI isn&rsquo;t <em>wrong<\/em>, it&rsquo;s just <em>small<\/em>. There isn&rsquo;t really a downside to release a small, base API early.<\/p>\n<p>Catalyst is kind of the opposite to this. Release everything, and then try and pick up the pieces afterwards. You get the advantage of having all your API, but the downside of it not working right. That&rsquo;s harder to pivot from without breaking things.<\/p>\n<\/blockquote>\n\n<p><a href=\"http:\/\/nearthespeedoflight.com\/article\/2019_10_23_the_baffling_omission_of_rich_text_in_swiftui\">Jason Brennan<\/a>:<\/p>\n<blockquote cite=\"http:\/\/nearthespeedoflight.com\/article\/2019_10_23_the_baffling_omission_of_rich_text_in_swiftui\">\n<p>I was quite surprised to find it doesn&rsquo;t offer any rich text display or editing. You can style text with fonts and colours and the like, but the style applies to the whole run of text. There&rsquo;s no equivalent components for creating a rich text editor in SwiftUI yet.<\/p>\n<\/blockquote>","protected":false},"excerpt":{"rendered":"<p>Brent Simmons: We very much want to use SwiftUI, and we believe it&rsquo;s the future of Mac and iOS development &mdash;&nbsp;but emphasis should be on future, because it&rsquo;s not quite ready in the present. Which should surprise nobody, given that it&rsquo;s so new. But I thought it might be interesting to know exactly what issues [&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-10-22T20:55:22Z","apple_news_api_id":"85de1b3f-df94-4402-8b42-f851218dc161","apple_news_api_modified_at":"2019-10-23T20:47:44Z","apple_news_api_revision":"AAAAAAAAAAAAAAAAAAAAAA==","apple_news_api_share_url":"https:\/\/apple.news\/Ahd4bP9-URAKLQvhRIY3BYQ","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":[199,31,1667,30,1666,392,71,1812,1212],"class_list":["post-27022","post","type-post","status-publish","format-standard","hentry","category-programming-category","tag-bindings","tag-ios","tag-ios-13","tag-mac","tag-macos-10-15","tag-netnewswire","tag-programming","tag-swiftui","tag-watchos"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/27022","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=27022"}],"version-history":[{"count":2,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/27022\/revisions"}],"predecessor-version":[{"id":27030,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/27022\/revisions\/27030"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=27022"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=27022"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=27022"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}