Inspiration

The very first version of what would ultimately become Barc was a watchOS-only app I built for myself in the summer of 2020. During COVID, using loyalty cards that required apps or Apple Wallet were difficult to use while wearing a face mask due to Face ID. Because of that difficulty, I found myself using my Apple Watch more for activities outside the house, because of its quick use without unlocking my iPhone. To help accomplish everything I needed to in a shopping trip, I built an app that hardcoded images of my loyalty cards and let me quickly access them on my wrist at the store.

Since that initial COVID wave, I’ve continued to find uses for quick access to barcodes, so I’ve always wanted to release this as an app that wasn’t hardcoded to my personal data and could be used by others, and the Ship-a-ton gave me the push needed to finally build it.

What it does

Barc’s goal is to make storing and using barcodes from anywhere frictionless. Scanning codes happens all the time: store loyalty programs, library cards, gym memberships, movie tickets, etc. The level of access to these cards is highly variable, too. Some are in emails you have to save until they’re needed. Others are buried multiple pages into a slow-loading app. Still others are just printed on paper or plastic you’re expected to carry with you. Barc can bring all these together and makes it incredibly quick to find exactly the code you need, when and where you need it.

How we built it

The same way you eat an elephant: one bite at a time. One of the first hints I did for Ship-a-ton was put together an ideal timeline of progress, with every tiny feature or requirement given a time to be worked on. Listing all the individual pieces like that made it obvious what could be accomplished in the time available.

After that, I just did my best to stick to the roadmap. Where I could, I reused code from some of my past apps to cut out large swaths of development. This includes a lot of the onboarding and settings screens, build infrastructure, etc. I also took advantage of Apple platform technologies where I could; e.g. using CloudKit meant I didn’t have to build my own backend, and I could use Apple’s Vision framework to abstract away a lot of barcode-scanning code. This allowed me to focus on the parts of the app specific to Barc.

Challenges we ran into

The timeline of the Ship-a-ton meant that the biggest challenge and biggest benefit were one and the same: managing scope. It’s obvious that you can’t build the world in 45 days, so getting out a focused and polished MVP became the goal. I’m bummed about some of the stuff that didn’t make it; I had grand dreams of tight Apple Wallet integration that just would have taken too long.

Ultimately, though, I’m glad those challenges were there. I’ve taken 4 years already to build this app. Without the time constraints, I’d probably have spent another year or more building but never actually releasing the app that I felt it needed to be, when it turns out that an excellent MVP was living inside it all along.

Accomplishments that we're proud of

I’m particularly proud of the app’s onboarding that shows you how to share a screenshot into Barc… by having you take a screenshot of Barc itself. The feature itself is already one of my favorite in the app (using screenshots gets around whatever weird limitations another app puts in place). To then be able to demonstrate the feature directly in onboarding and show users how to add their first barcode right away is something I was really excited about, and it came together perfectly.

I’m also proud of how open the development process was. Nearly all work on Barc was live-streamed and open to a community that could provide instant feedback along the way.

What we learned

I don’t feel the need to be too wordy in this section. My biggest lesson is a simple one: Just ship it!

What's next for Barc

So many of the features that were cut for scope either at initial planning or as the app progressed are things I still want to build. Having the app already out there makes this even easier. I plan on continuing to gather feedback from users of the app, which will show me what I need to prioritize. The version I’m releasing now is just the beginning. Starting with this solid core will allow me to continue to keep the app relevant as I’m able to quickly expand, and every new feature is another chance for people to discover Barc.

Built With

Share this project:

Updates