Indie App Development — Big decisions, big regrets?

Rob Maltese
oneleif
Published in
3 min readSep 12, 2022

With big decisions, comes big rewards… or is it regret? In this article I discuss the development process of HeatBuddy, my first and main iOS application.

Photo by Taras Shypka on Unsplash

HeatBuddy — Make finding home heating oil prices easy!

As a homeowner living in New England, the wintertime always brings its own hurdles. When heating your home, you have two main options — home heating oil or propane. I can only speak on home heating oil, as that is all I have had my entire life.

There are roughly 5 million home heating oil users in the United States, and they are predominately located in New England. Finding the best price can be tough. You have to typically go to a bunch of the company websites or call them and get the price. While shopping around, I got frustrated with the time and effort it took to find the best price.

Which then sparked the idea for HeatBuddy. The idea was to have a method to search a location and get either a list or display of businesses in the area and their prices. This was launched in March of 2022 and was my first ever mobile app.

Firestore is a NoSQL document database built for automatic scaling, high performance, and ease of application development.

From the start, the decision was made to use Firestore from Firebase (Google) as the backend database. The benefit to Firestore is that it made it easy to spin up, kept the cost of the overhead down to a minimum and there was no requirement for me to know any type of database or backend management. The downfall was that I was relying on a third party, the build times were very noticeable and there are always data security concerns when relying on a third party. Additionally, Firestore is a non-relational database style which makes some of the features I wanted to implement a bit more difficult and cumbersome.

The hope was that during the summer which is typically the slow period for heating oil users so I would transition over to Vapor which is server-sided Swift. This would allow me to not only learn more about Swift but make me a more well-rounded developer with the knowledge gained from backend development, Postgres table management, and the understanding of how to deal with server launching.

However, big risks can yield either big rewards… or in my case regret. At the end of July, I decided to start the process of a refactor. I redesigned the views and then began learning Vapor. As the process began, I quickly learned that I bit off more than I could chew. Being that I have never dealt with any type of real backends such as Ruby on Rails, or something similar, I was left with a steep learning curve.

Vapor is a web framework for Swift.

I chose to migrate over to Vapor, for one reason only. I didn’t have to learn a whole new language just to build my backend. I could rely on my knowledge of Swift and learn as I go. Vapor has a great Discord community which has a host of knowledge, additionally what is nice is to see the core team actively interacting with the community members and even taking time to answer dumb questions from me.

So, here we are almost in the middle of September and I still haven’t been able to complete the upgrade. This means, that all of my features and changes are on hold until I’ve completed writing and testing out the backend.

The biggest take away….

As a new indie developer, the biggest thing I learned was that an actual roadmap and upgrade/update plan are key. Understanding the timing of releases is important especially when you’re developing a seasonal-based application, much like I am. Do I regret migrating to Vapor? No. I regret making the decision to migrate so late in the season rather than making small incremental changes.

Let's Connect!
If you have any questions, or want to chat - reach out to me on Twitter @halluxdev!

--

--