{"id":21539,"date":"2018-05-15T15:52:26","date_gmt":"2018-05-15T19:52:26","guid":{"rendered":"https:\/\/mjtsai.com\/blog\/?p=21539"},"modified":"2020-01-03T14:50:16","modified_gmt":"2020-01-03T19:50:16","slug":"app-architecture-ios-application-design-patterns-in-swift","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2018\/05\/15\/app-architecture-ios-application-design-patterns-in-swift\/","title":{"rendered":"App Architecture: iOS Application Design Patterns in Swift"},"content":{"rendered":"<p><a href=\"https:\/\/www.objc.io\/books\/app-architecture\/\">Chris Eidhof, Matt Gallagher, and Florian Kugler<\/a>:<\/p>\n<blockquote cite=\"https:\/\/www.objc.io\/books\/app-architecture\/\"><p>This book explains a range of <em>application design patterns<\/em> and their <em>implementation techniques<\/em> using a single example app, fully implemented in five design patterns.<\/p><p>Instead of advocating for any particular pattern, we lay out the problems all architectures are trying to address: constructing the app&rsquo;s components, communicating between the view and the model, and handling non-model state. We show high-level solutions to these problems and break them down to the level of implementation for five different design patterns &mdash; two commonly used and three more experimental.<\/p><\/blockquote>","protected":false},"excerpt":{"rendered":"<p>Chris Eidhof, Matt Gallagher, and Florian Kugler: This book explains a range of application design patterns and their implementation techniques using a single example app, fully implemented in five design patterns.Instead of advocating for any particular pattern, we lay out the problems all architectures are trying to address: constructing the app&rsquo;s components, communicating between the [&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-05-15T19:52:28Z","apple_news_api_id":"d1eb9ad0-6bf6-4428-a3cd-84baea5f0c30","apple_news_api_modified_at":"2020-01-03T19:50:20Z","apple_news_api_revision":"AAAAAAAAAAAAAAAAAAAAAA==","apple_news_api_share_url":"https:\/\/apple.news\/A0eua0Gv2RCijzYS66l8MMA","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":[63,69,27,1914,31,374,373,71,901],"class_list":["post-21539","post","type-post","status-publish","format-standard","hentry","category-programming-category","tag-book","tag-cocoa","tag-craft","tag-design-patterns","tag-ios","tag-mvc","tag-mvvm","tag-programming","tag-swift-programming-language"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/21539","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=21539"}],"version-history":[{"count":1,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/21539\/revisions"}],"predecessor-version":[{"id":21540,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/21539\/revisions\/21540"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=21539"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=21539"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=21539"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}