Why This Library?

There are many reasons to be excited about SwiftCurrent:

  • Build flexibility into your applications so that you can easily make changes when you need to.
  • Compose new Workflows to quickly create a new journey through your app.
  • Stop components in your app from knowing more than they should; no more complicated routers or views that have to know what comes next.
  • Create flows that give your users a better experience. Web frameworks can easily sign somebody in, or sign them up, then continue into a flow. Why not be able to easily do the same in Swift?
  • Power deep linking experiences that can get your users right where you want them with minimal overhead.

Read on to learn about our philosophy of development. We believe these ideals take us from “just another library” to a tool you can’t do without.

Developer Experience Over Problem Solving

There have been many attempts by others to create libraries that decouple the concept of a flow that can move forward and backward, but they all took very different approaches. What separates us, and makes this library worth using, is our developer-centric experience. We sat down with a group of developers and asked the question, “If something existed today that did what you wanted, what would that thing look like?” then we spent a lot of effort making that happen.

Additionally, this is a concerted effort from WWT. We do a lot of software development for large companies and this problem space is something we’ve regularly encountered. The concept of a workflow has been toyed with by several projects. This library has been used to power some really great experiences already, and we intend to continue using it to do even bigger and better things in the future.

Flexibility Over Assumptions

Not everyone develops software the same way, and it would be a sad day for the industry if we thought we had all the answers. We believe strongly in a culture of innovation, and we want consumers of our library to be able to make choices they feel are correct. Workflows are not an architectural pattern; they’re an abstraction you can choose to use. Much like the standard libraries that come with programming languages, the idea here is to give you tools that can be useful and let you choose the best way to use them.

Explicit Choices Over Fast Releases

It’s not always visible, but we spend far more time talking about the right approach than we do writing code. The core team developing this library has many deliberate, considered choices to make. We would rather deliver a high-quality, well-tested, thought-through library than deliver many features quickly. We believe that this library can one day become a staple for iOS projects and are approaching it with care and dedication right from the start. If you’ve got an idea for how to make SwiftCurrent better, make sure to tell us!, we love feedback and value community ideas.