How I Built an App to Remember Your Name, Because Frankly, I Can't

Chapter One: The Birth of HalfBrain – An Adventure in Forgetfulness

If you've ever introduced yourself to someone at a party only to realize halfway through your handshake that it's your cousin, you might appreciate the tale I'm about to unfold. It's a story of forgetfulness, tech mishaps, and a desperate attempt to remember at least some parts of human interactions.

I’m Mike, the slightly neurodivergent brain behind HalfBrain.ai, and I've got a memory like a sieve. This blog is about how I turned my forgetfulness into a feature, not a bug, with a little help from my AI sidekick, ChatGPT. This series is less of a step-by-step guide and more of a stumble-through narrative on creating HalfBrain.ai.

The Problem: Remembering Names is Hard

I'm the guy who's great at meeting new people but terrible at remembering anything about them afterwards. I mean, I could forget my own birthday if it wasn't on my driver's license. After one too many "Hey... you!” greetings and awkward conversations, I decided enough was enough. So, I dreamt up HalfBrain.ai - an app that takes a quick voice note about someone and transforms it into a treasure trove of info, complete with AI-generated questions for our next meet-up. It's like having a personal assistant who never forgets a thing (and doesn't judge you for forgetting everything).

HalfBrain.ai contact example

The Journey Begins: Learning Swift with a Side of Humble Pie

I’d describe myself as a decent developer - I’ve made fully featured websites like The100.io and I’ve been programming for several years. But honestly my single biggest limitation has been remembering basic syntax. Coding can be tough when you forget basic commands. I've spent more time Googling "how to start my server" than I care to admit. My coding journey has been a series of Googling basic syntax and wondering how I managed to write anything in the first place.

I started with the enthusiasm of a squirrel on espresso, ready to tackle Swift programming. My first valiant attempt? Modifying an example app from Apple's Scrumdinger Tutorial without knowing a single line of Swift. Spoiler alert: It was a disaster.

Back to Basics: Actually Finishing the Tutorial

Confronted with the hard truth that coding requires actual skill, I hunkered down and actually completed the Scrumdinger tutorial. Suddenly, Swift wasn't just a type of bird.

The real game changer, though, was when I discovered custom-trained GPTs. Here’s the official blurb from OpenAi:

“GPTs are a new way for anyone to create a tailored version of ChatGPT to be more helpful in their daily life, at specific tasks, at work, or at home—and then share that creation with others. For example, GPTs can help you learn the rules to any board game, help teach your kids math, or design stickers.”

I packed mine full of the latest Swift, and especially SwiftData, knowledge. It was like having a coding pair who remembers everything I forget. The results have been insane. If you’re on the OpenAI paid plan, you can try SwiftBot yourself here. With my custom GPT and a (very well done!) tutorial, I went from never having written a single line of swift code to a fully functioning app in about 2-3 days of coding. Usually it was as simple as asking:

HalfBrain.ai contact example

And SwiftBot would (usuallly!) respond with the exact code I needed:

HalfBrain.ai contact example

Bringing HalfBrain to Life

Armed with a smattering of Swift and an array of forgotten names, I embarked on creating HalfBrain.ai. This wasn't just an app; it was a lifeline for my sieve-like memory.. The goal? Create an app that takes a quick voice recording about someone you've met, and then magic happens – it organizes this into a contact record using ChatGPT. But wait, there's more: it also generates interesting questions for your next meeting. Say goodbye to “How’s it going?” and “what have you been up to?” That I’ve been using for everyone, forever.

HalfBrain.ai contact example

The Tech Stuff: Making It Work

The journey included getting speech-to-text to work without it transcribing my grumbles, integrating the OpenAI API (my new best friend), and securely and privately storing all this precious data. Speech-to-text was the first big win – like watching my words magically transform into something tangible and, more importantly, rememberable. Lucky for me, the Scrumdinger tutorial I picked had voice to text built in.

Move Swiftly and Copy Paste Things

Confession: I’m still terrible at coding basic http requests. It’s our most basic job as web developers - send data over the internet - but it’s a pain for me every time. Again it's not the concepts, it's getting the dang data in the proper format and getting the syntax right. JSON, form data, headers, auth, how the built in magic of each framework somehow manages to massage the data into a different shape… I’ve still got low grade ptsd from trying to figure the difference between sending a jpg or an HEIC image file across the wires.

SwiftBot didn’t sweat it, though. It listened, it responded, it didn't judge my forgetfulness. All I had to do is give it my working python OpenAI API request, and it (usually!) converted it perfectly into swift. I say usually, because there are some disclaimers here. About half the time, it's code would generate an error, and I'd have to feed that back to it and iterate through things. But it was still a huge time saver. I'd say it saved me about 90% of the time it would have taken me to write the code myself. And it was a lot more fun than Googling for hours.

What's Next?

I've got a bunch of other tasks lined up, like converting from basic storage to using SwiftData, adding iCloud backups, adding paid subscriptions, and most importantly, making the app secure and private.

But for now, that's all for this installment! If you’ve ever found yourself nodding along in a conversation while frantically trying to remember who you’re talking to, HalfBrain.ai might just be your knight in digital armor. Stay tuned for the next post, where I’ll share more tales of development woes and occasional triumphs.