{
    "componentChunkName": "component---src-templates-tag-js",
    "path": "/tags/design-patterns/",
    "result": {"data":{"articles":{"nodes":[{"frontmatter":{"title":"Understanding composition in SwiftUI","subtitle":"Understand how SwiftUI builds and represents view hierarchies.","date":"08 Jun 2026","tags":["design patterns","architecture","swiftui"],"readingTime":7},"slug":"swiftui-understanding-composition","id":"10718b0d-6417-5443-a20c-fb816aee5914"},{"frontmatter":{"title":"My new book on architecture & design patterns for iOS","subtitle":"I finally finished my new book on building scalable and maintainable apps with Swift and SwiftUI.","date":"19 Aug 2025","tags":["book","architecture","design patterns","swift","swiftui","ios"],"readingTime":2},"slug":"book-ios-architecture-design-patterns","id":"93455f7a-5b02-58bb-82ad-74969a6fbe8c"},{"frontmatter":{"title":"Bridging interfaces with the Adapter pattern in Swift","subtitle":"Learn how to use the Adapter pattern to integrate third-party APIs or legacy code.","date":"28 Apr 2025","tags":["design patterns","architecture","swift"],"readingTime":3},"slug":"swift-design-patterns-adapter","id":"7bbc7262-508a-5b2d-a56b-0cb6e67d8beb"},{"frontmatter":{"title":"How to use NavigationPath for routing in SwiftUI","subtitle":"Learn how to manage navigation in SwiftUI programmatically.","date":"09 Jun 2024","tags":["navigation","design patterns","architecture","swiftui"],"readingTime":5},"slug":"swiftui-navigationpath","id":"6729f566-0f77-5334-b5c1-9ee307a334cb"}]},"tags":{"group":[{"fieldValue":"accessibility","totalCount":6},{"fieldValue":"activitykit","totalCount":1},{"fieldValue":"ai","totalCount":1},{"fieldValue":"animations","totalCount":2},{"fieldValue":"app distribution","totalCount":1},{"fieldValue":"architecture","totalCount":10},{"fieldValue":"associated domains","totalCount":5},{"fieldValue":"async/await","totalCount":18},{"fieldValue":"authentication","totalCount":2},{"fieldValue":"automation","totalCount":3},{"fieldValue":"basics","totalCount":6},{"fieldValue":"beyond ios","totalCount":4},{"fieldValue":"book","totalCount":2},{"fieldValue":"combine","totalCount":9},{"fieldValue":"command line","totalCount":1},{"fieldValue":"concurrency","totalCount":16},{"fieldValue":"continuous integration","totalCount":6},{"fieldValue":"core data","totalCount":8},{"fieldValue":"cryptokit","totalCount":3},{"fieldValue":"dependency management","totalCount":2},{"fieldValue":"design patterns","totalCount":4},{"fieldValue":"file system","totalCount":1},{"fieldValue":"generics and protocols","totalCount":3},{"fieldValue":"graphql","totalCount":2},{"fieldValue":"ios","totalCount":157},{"fieldValue":"json","totalCount":3},{"fieldValue":"lldb","totalCount":2},{"fieldValue":"localization","totalCount":5},{"fieldValue":"machine learning","totalCount":7},{"fieldValue":"navigation","totalCount":6},{"fieldValue":"networking","totalCount":11},{"fieldValue":"notifications","totalCount":7},{"fieldValue":"objective-c","totalCount":2},{"fieldValue":"observation","totalCount":2},{"fieldValue":"performance","totalCount":1},{"fieldValue":"persistence","totalCount":12},{"fieldValue":"productivity","totalCount":2},{"fieldValue":"property wrappers","totalCount":12},{"fieldValue":"quick tip","totalCount":3},{"fieldValue":"reactive programming","totalCount":7},{"fieldValue":"scripting","totalCount":1},{"fieldValue":"security","totalCount":10},{"fieldValue":"spritekit","totalCount":1},{"fieldValue":"storekit","totalCount":5},{"fieldValue":"swift","totalCount":143},{"fieldValue":"swift package manager","totalCount":5},{"fieldValue":"swiftdata","totalCount":7},{"fieldValue":"swiftui","totalCount":72},{"fieldValue":"technical interview","totalCount":1},{"fieldValue":"testing","totalCount":10},{"fieldValue":"tools","totalCount":4},{"fieldValue":"uikit","totalCount":5},{"fieldValue":"universal links","totalCount":1},{"fieldValue":"ux","totalCount":3},{"fieldValue":"webkit","totalCount":2},{"fieldValue":"widgetkit","totalCount":3},{"fieldValue":"wwdc","totalCount":2},{"fieldValue":"xcode","totalCount":20}]}},"pageContext":{"tag":"design patterns"}},
    "staticQueryHashes": ["1248279061","1495782094","3016322440","3770566618","3897982121"]}