Software Dev

The Elm Architecture

I’ve been trying to understand the Elm Architecture for a new iOS project. I kept reading over this article and thinking, “Wait a minute…. What’s the catch here? This seems too simple.” 🧐

👉 The Elm Architecture: Simple, yet powerful – An overview by example

I like that this architecture can be explained in a very short post with examples.

The beauty of The Elm Architecture lies in its simplicity.

That article is simple but assumes a web UI and explicit mentions HTML 🙄. Here is a funnier and more useful article about Elm for iOS. 😂

👉 Elm architecture in iOS: Why you don’t need shit like RxSwift or MVVM

Elm architecture can be described as follows

msg -> Model -> View -> msg

I even made my own diagram just to make sure I “got” it. The devil is in the details, but I think this is right. 🤷🏻‍♂️ It definitely seems simpler than VIPER.

Software Dev


I love that ReactiveX supports the same reactive paradigm across so many languages, especially Swift (also Java, Scala, C#, C++, Clojure, JavaScript, Python, Groovy, JRuby, ..).

👉 ReactiveX – An API for asynchronous programming with observable streams

ReactiveX is a combination of the best ideas from the Observer pattern, the Iterator pattern, and functional programming

And don’t forget RXMarbles for some experimenting with Rx.