# Ziggurat iOS App Architecture

DevFeed: [Ziggurat iOS App Architecture](<https://devfeed.tech/articles/ziggurat-ios-app-architecture-15968.md>)

Original publisher: [Read original article](<https://developer.squareup.com/blog/ziggurat-ios-app-architecture>)

Author: Square Engineering

Published: 2015-12-18T17:10:00Z

Content type: article

Language: en

Sources: [Square Corner Blog RSS Feed](<https://devfeed.tech/sources/square-corner-blog-rss-feed.md>)

Topics: [iOS](<https://devfeed.tech/topics/ios.md>), [Swift](<https://devfeed.tech/topics/swift.md>), [mvc](<https://devfeed.tech/topics/mvc.md>), [flux](<https://devfeed.tech/topics/flux.md>), [React Native](<https://devfeed.tech/topics/react-native.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [architecture-pattern](<https://devfeed.tech/tags/architecture-pattern.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [flux](<https://devfeed.tech/tags/flux.md>), [ios](<https://devfeed.tech/tags/ios.md>), [mvc](<https://devfeed.tech/tags/mvc.md>), [react-native](<https://devfeed.tech/tags/react-native.md>), [swift](<https://devfeed.tech/tags/swift.md>)

## AI overview

The article introduces Ziggurat, a layered and testable iOS architecture pattern for Swift that uses immutable view models and one-way data flow. It explains how the pattern aims to reduce data complexity and cognitive load, produce smaller classes, and address testing, debugging, and shared-state problems associated with Model-View-Controller.

## Source excerpt

Several steps beyond model view controller