Software development is not an art. It leaves a very little place for our creativity, imagination and intelligence beyond simple structures and sequences of computational logic. One might argue, that all this change dramatically when observed through the teams and organisations doing it and I would certainly agree with it, but that’s step into the process I won’t make in this simple assessment of mine.

Down to the core of typing the code into my IDE, I see software development as a constant struggle to deliver a digital solution to the ever-changing world of users, both men and machines.

My industry is big and strong. It provides me with a range of tools, computer languages and devices, but perhaps the most important, it provides me with millions of members of the same software development community, who keep sharing their ideas and thoughts about how to use and apply tools, computer languages and devices to deliver against users’ expectation.

As long as I personally remember, our struggle has been the same: wrestle same old problems and challenges to deliver, or better said, keep delivering promised and expected.

Throughout the years of experience, we’ve learned a lot of best practices and concepts as an answer to the ever existing challenges. That’s in a way, how I see Software Architecture.

Here is the series of blogs, which talks about a useful approach in creating client solutions. It’s not a breakthrough concept. It’s an assembly of learned practices, built over a period of time, throughout the development stack. Although it’s presented and implemented in the demo project as a recipe, it is not prescribed as a medicine. Everyone can find his/her own variations, ideas, make changes. Some of the parts might seem to be a bit challenging, but with some time spent with the demo project, you should be able to get to the bottom of every single step and understand it in full. After all, there’s not much code anyway…

Here are the links to the parts of the incrementally developed story/idea, therefore I would suggest it is read in the same order.

Although it’s a very general concept and can span from mobile, desktop and to the WEB, I’ve created the demo project in Swift, since it has been my primary language for some time. I haven’t put very much thought into the refinement of the code and used all the best semantic approaches, I will leave this to each and everyone in particular, regardless of the language you would want to use. I was interested in the concept and this story of blogs focuses on the concept(s), rather than on the finest and latests Swift semantics.