Open the door, get on the floor. Everybody…

I’ve been using Codex with one of my side projects and while it’s amazing how it can go off to implement changes, I find very little joy in the process. I enjoy reasoning and writing code. This is instead describing the end state and reviewing code. Is this closer to how senior devs work?
Just caught up with a days worth of social media posts (~250 posts). In summary: we are cooked.
Why are we posting Severance spoilers on a Thursday night?
John Gruber writing about Fox’s new scorebug that debuted during Super Bowl LIX:
Imagine the outcry if Fox had broadcast yesterday’s Super Bowl without any scorebug at all — you know, for those who would rather have their screen clear of graphics.
As a Chiefs fan, that would’ve been fine with me.
MURPH!!! THE DUST IS YOUR DADDY!!!
Seeing Interstellar in IMAX at 9:45pm. Wondering if I’ll make it to the end.
There are lies, damned lies, and FedEx estimated delivery times.
The #Chiefs 🏈 WR group wearing custom t-shirts to support Pacheco & Kelce remind me of when our marching band section would take white t-shirts and black sharpie to make shirts to wear during practice to support bandmates.
Put it on a shirt. It’s an effective way to show love.
I released a new app on Tuesday as part of RevenueCat’s Ship-A-Ton. It’s called Smart Choices and you can download it here: apps.apple.com/us/app/sm…
I wrote about the inspiration here: jakeg.micro.blog/2024/08/2…
#shipaton #BuildInPublic
Finished reading: The Return of the King by J. R. R. Tolkien 📚
Started this one off on audiobook then switched to physical near the end. I wish I had just stuck with physical the whole way through. I didn’t retain much of what happened at the beginning 🫤
Smart Choices - rewarding good behavior
Teaching and rewarding kids for good behavior is difficult and many tactics can be used to accomplish this. I want good behavior to be the expectation for my children and I don’t want them always to expect a reward for good behavior. Especially when, in practice, good behavior is not always noticed OR rewarded (but that’s a whole different story).
This past summer, we hit a breaking point with our children. That sounds dramatic, but, in the moment, we were struggling to get our kids to do simple chores and follow directions without it becoming a battle.
The idea
One evening, my wife turned to me and said, “I have an idea for an app…” As iOS developers, how often do we hear this and suffer through the unsolicited pitch?
“I want an app where the kids can push a button and it will randomly reward them, but not all the time.”
The idea was simple enough that it could be built in a day. So, I started asking questions to understand how she wanted the app to… ahem… behave:
- How random? Start by rewarding more frequently then decrease the frequency of rewards.
- What does it look like when the user (kids) is rewarded? Just show if they “won” or not.
Wow, so simple.
At first, I thought, “I could just build a Shortcut that does this.” Then the iOS platform evangelist on my shoulder said, “But you could build an app and add Shortcut and Siri support. Maybe an Apple Watch app.”
Scope creep comes for us all.
MVP
So, one afternoon, I developed the MVP. And really, this was the minimum viable product. So “minimum,” I doubt it would make it through app review in this state.
But, it could be distributed via TestFlight to an internal team of two - 1) The developer (me) and 2) the product owner (my wife /Borat). And distribution via TestFlight allowed me to dip my toes into using Xcode Cloud to build and deploy when merging new changes.
Here’s the first version of Smart Choices:
- A button
- An alert if you “win” or “lose”
- If you shake the device, you get a very basic debug view
Very MVP. But building simple ideas like this is important, it gives you a lot of freedom to try new things - and importantly, learn something new.
Dogfooding
We used this with our kids for a few days and the kids were always excited and looking for ways to get “button pushes.” Did we turn our kids into slot machine addicts? Maybe. But they were motivated to do things when we asked the first time and sometimes without us having to ask at all.
My wife had a feature request - can we keep a list of rewards in the app and display them when our kids are rewarded? Maybe only show three random rewards for them to choose from?
Version 2
With that feedback, I added a static list of rewards and a sheet that popped up when being rewarded. I wanted to spice it up with haptic feedback and a confetti animation.
The sheet, haptics, and confetti made the reward experience feel… well, rewarding. The kids were delighted with the additions and it gave them more agency in choosing their reward.
I included an escape hatch showing the full list of rewards when maybe the random list of three was inappropriate for the circumstances. For example, if it was bedtime and the rewards given were extra TV time, going swimming, or getting to eat something sweet.
I also added an option to force a reward to appear if we felt like one of the kids went above and beyond and wanted to reinforce that behavior.
Our oldest caught on to the concept of “odds of winning” and hit a particularly egregious bad-luck streak. To combat this, I added an internal losing streak counter that would force a reward if the losing streak exceeded the odds of winning.
Yes, we are gamifying good behavior and, I reinvented slot machine and loot box psychology. But, after a few weeks, the excitement of the app died down for the kids, and most of the good behavior stuck.
In the meantime, I added more features to the app…
I briefly touched on a few topics that I hope to write about in the future, but please don’t hold me to it. I’m busy raising my kids.
- Xcode cloud CI/CD and TestFlight
- Adding a WatchOS app
- Adding Siri and Shortcuts support
- More features and monetization
If I get around to writing about a topic, I’ll link to it here.
I don’t think I’ll ever get over the fact that we’ll never get Fez 2.
Went to a minor league soccer game last night. Watching Olympic soccer right now. Going to watch little league soccer this afternoon.
I don’t think one sets out to be a soccer dad. I think it’s just something that happens to you.
⚽️🇺🇸
Jumped in the pool with the phone in my pocket. Let’s see just how waterproof these things are. 😬
Threads is already a year old? Wtf.
Finished reading: The Two Towers by J.R.R. Tolkien 📚
So that’s why it’s called the Two Towers! 😅
This morning I replaced the capacitor in the AC unit that went out yesterday. Now we have cold air from the cold air machine again!
My favorite iOS feature of all time: Live Photos
I love seeing the context around a photo, especially ones of my kids. Seeing their mannerisms and hearing their voices are priceless.
I started working on a new app earlier this week and told myself to only focus on functionality.
I usually get hung up on UI and it becomes a huge distraction. Especially considering that I’m not great at design 😐
But I think it’s already been a successful experiment.