On building my first Swift app

11/15/2023

NOTE: Flexo can be downloaded for free on the App Store.


Coding is challenging. Developing software is a complex task. Creating a mobile application is a demanding process.

Well, maybe not. Especially if you choose to use Swift (which, aside from iOS, can also be utilized in MacOS and iPadOS!). My first experience with the language has been remarkably positive, and Apple has streamlined the learning curve for newcomers, making it an accessible and user-friendly language.

Swift

But let's start from the beginning. Why should a web developer like me use Swift to build an app? There's React Native, which I'm already familiar with, and even Flutter. Both of these can be adapted to Android and other platforms without the need to rewrite the same code in another language. However, there's a singular reason: I have a strong appreciation for well-designed UIs. I'm genuinely impressed when I encounter a product with engaging UX. That's why, after initially developing the app in React Native, I decided to mark it as outdated and start anew with Swift.

Swift may seem different when coming from simpler languages such as JavaScript, TypeScript, Ruby, or Python. But once you get used to it, it's remarkably nice. It's a statically-typed language that encompasses many features from other languages: Generics, Structs (everything is Structs!), Classes, Extensions, Enums, a syntax for closures, and many other things! It just checks all the boxes I could ask for, and it feels amazingly satisfying to write.

And hey, there's more. SwiftUI is the icing on the cake that makes everything remarkably easy. Apple has created a set of reusable Views that allow us to create a decent app in less than the blink of an eye.

Why a pomodoro app?

I have been a fan of the Pomodoro technique for a long time, and I have used many apps to keep track of my work sessions. However, the reality is that there's no simple, good-looking, free application that satisfies my needs. So, I decided to embark on a journey to build the perfect, free Pomodoro app: Flexo.

Flexo is simple, easy to use, and it allows you to keep track of your tasks. It's good-looking, not necessarily an Apple look-alike app, while preserving some of its main interface elements.

Building Flexo with Swift and SwiftUI was a deliberate choice. The robustness of Swift allowed for efficient code structuring, minimizing the chances of errors. SwiftUI's declarative syntax streamlined the UI development process, resulting in a visually appealing and responsive app.

The goal was to create a Pomodoro app that not only serves its functional purpose but also delights users with its design. Flexo borrows some interface elements from the Apple design philosophy but maintains its unique identity, ensuring a fresh and enjoyable user experience.

What's Next?

Flexo is an ongoing project, and I am committed to continually enhancing its features based on user feedback and evolving productivity needs. The journey of developing Flexo has been exciting, and I invite you to join me on this adventure towards mastering the art of productivity with style.

Download Flexo today and take control of your time in a way that's simple, efficient, and visually pleasing. Happy Pomodoro-ing!

Flexo screenshot

Flexo screenshot

Flexo screenshot

marctorrelles
software developer