2 minute read

I think the project I’m most proud of is Ares and its current iteration Ares 3. They say the best project you work on is one that you will use, and I definitely will use Ares. In fact, I’ve been using it throughout its development.

Ares is just an RSS reader. It has a database powered by MongoDB’s Realm to store data locally on the device, and uses some libraries to parse XML files. That’s all I needed it to be, and that is all that it is.

The time it took

I began work on Ares 3 last year, following Apple’s announcement of SwiftData. Since 2019, Ares has been my testing ground for new APIs revealed at WWDC. Each year, I’ve revamped the app to explore these APIs, focusing more on functionality than on UI. This approach also lets me start fresh, which is a welcome break from maintaining old code in my daily work.

Usually, this process takes about three to four months, depending on the state of the APIs. However, this time around, it stretched to eight months. I did take a break for a couple of months due to family issues, but even discounting that, it was still a six-month effort.

SwiftData is quite incomplete in terms of features. It seems like Apple might need a couple more WWDCs to flesh it out properly. For instance, using MVVM with SwiftData requires (in my opinion) some rather convoluted workarounds.

The lack of comprehensive documentation only added to the anxiety surrounding this year’s iteration of Ares. But I was determined to have my RSS reader up and running before WWDC, come hell or high water (more on this later).

Technologies

In the toolbox of Ares 3, there’s an assortment of handy libraries that keep things running smoothly. Realm handles our database needs and local storage, making sure data stays safe and sound. SwiftyBeaver takes care of logging, keeping it stored locally but shareable upon user support request. SDWebImage quietly handles image caching, ensuring our visuals load quickly and efficiently. Then there’s AresCore, a versatile façade for a set of libraries that streamline the process of fetching and processing feeds, making them more developer-friendly. Together, these libraries are the backbone of Ares, helping it deliver a seamless RSS reading experience.

New Guinea Pig Wanted

I’m really proud of the work I’ve put into Ares, and I don’t see myself rewriting it anytime soon. As this year’s WWDC approaches, I’ll need to find a new project to dive into for future iterations. Ares holds a special place in my heart, and I cherish the time and effort I’ve invested in it.

Updated: