{"id":27061,"date":"2019-10-25T16:30:16","date_gmt":"2019-10-25T20:30:16","guid":{"rendered":"https:\/\/mjtsai.com\/blog\/?p=27061"},"modified":"2019-11-03T08:08:44","modified_gmt":"2019-11-03T13:08:44","slug":"direct-to-swiftui","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2019\/10\/25\/direct-to-swiftui\/","title":{"rendered":"Direct to SwiftUI"},"content":{"rendered":"<p><a href=\"http:\/\/www.alwaysrightinstitute.com\/\/directtoswiftui\/\">Helge He&szlig;<\/a>:<\/p>\n<blockquote cite=\"http:\/\/www.alwaysrightinstitute.com\/\/directtoswiftui\/\">\n<p><a href=\"https:\/\/github.com\/DirectToSwift\/DirectToSwiftUI\">Direct to SwiftUI<\/a>\nis an adaption of an old \n<a href=\"https:\/\/en.wikipedia.org\/wiki\/WebObjects\">WebObjects<\/a> \ntechnology called \n<a href=\"https:\/\/developer.apple.com\/library\/archive\/documentation\/WebObjects\/Developing_With_D2W\/WalkThrough\/WalkThrough.html#\/\/apple_ref\/doc\/uid\/TP30001015-DontLinkChapterID_5-TPXREF101\">Direct to Web<\/a>.\nThis time for Apple&rsquo;s new framework:\n<a href=\"https:\/\/developer.apple.com\/xcode\/swiftui\/\">SwiftUI<\/a>.\nInstant \n<a href=\"https:\/\/en.wikipedia.org\/wiki\/Create,_read,_update_and_delete\">CRUD<\/a>\napps, configurable using \n<a href=\"http:\/\/www.alwaysrightinstitute.com\/swiftuirules\">a declarative rule system<\/a>,\nyet fully integrated with SwiftUI.<\/p>\n<p>[&#8230;]<\/p>\n<p>Without applying any rules, you&rsquo;ll essentially get a simple database browser and editor, for all SwiftUI targets. When using Direct to SwiftUI, this is what you start with, a complete CRUD frontend. You then use rules to tweak the frontend, and potentially replace whole generic D2S Views. Or mix &amp; match.<\/p>\n<p>[&#8230;]<\/p>\n<p>D2S uses a rule engine called \n<a href=\"https:\/\/github.com\/DirectToSwift\/SwiftUIRules\">SwiftUI Rules<\/a>\nwhich we introduced in another\n<a href=\"http:\/\/www.alwaysrightinstitute.com\/swiftuirules\">blog entry<\/a>. You might want to read that now, or later.<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/twitter.com\/mpweiher\/status\/1183696194549231616\">Marcel Weiher<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/mpweiher\/status\/1183696194549231616\">\n<p>Definitely cool. Should remember, however, that Direct2Web applications were not just quick\/instantaneous to build, but also utterly incomprehensible and impossible to maintain.<\/p>\n<\/blockquote>\n\n<p>Previously:<\/p>\n<ul>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2019\/07\/01\/swiftwebui\/\">SwiftWebUI<\/a><\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>Helge He&szlig;: Direct to SwiftUI is an adaption of an old WebObjects technology called Direct to Web. This time for Apple&rsquo;s new framework: SwiftUI. Instant CRUD apps, configurable using a declarative rule system, yet fully integrated with SwiftUI. [&#8230;] Without applying any rules, you&rsquo;ll essentially get a simple database browser and editor, for all SwiftUI [&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-25T20:30:20Z","apple_news_api_id":"da5a23d6-178d-49ee-aef8-6c057707c4ca","apple_news_api_modified_at":"2019-11-03T13:08:49Z","apple_news_api_revision":"AAAAAAAAAAAAAAAAAAAAAA==","apple_news_api_share_url":"https:\/\/apple.news\/A2loj1heNSe6u-GwFdwfEyg","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":[143,325,71,425,901,1812,96],"class_list":["post-27061","post","type-post","status-publish","format-standard","hentry","category-programming-category","tag-database","tag-postgresql","tag-programming","tag-sqlite","tag-swift-programming-language","tag-swiftui","tag-web"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/27061","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=27061"}],"version-history":[{"count":2,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/27061\/revisions"}],"predecessor-version":[{"id":27167,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/27061\/revisions\/27167"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=27061"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=27061"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=27061"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}