This year I built and released four apps, with one of them making a significant impact.
#1 - Dad Jokes and Puns - July
This is a mobile app where I share all my favorite dad jokes from the internet. The app has a simple yet beautiful user interface. It shows a list of jokes and when you tap on each joke you will be navigated to a detail screen. You can also upvote and bookmark your favorite joke.
Tech stack I used for this app:
SwiftUI for building the UI
Supabase Database and Edge Functions for storing jokes and upvotes
TemeletryDeck for anonymous analytics
Google AdMob for showing ads
Fastlane for automated deployment
The app also supports widgets and deep linking from the widget to the joke detail screen. If you're curious about deep linking and how it enhances user experience, feel free to comment below. I'm more than happy to write an in-depth post about it if there's enough interest.
#2 - Eyes Buddy - October
I created this app following my wife's myopia surgery. It’s a simple macOS app designed to remind you to take regular breaks and relax your eyes after a set period of time.
In this app, I learned:
How to present a full-screen window above all running applications
How to get notified when the screen is locked or unlocked
How to make a menu bar app
How to hide the dock icon when all windows are closed and still keep the app running
How to use macOS-like settings UI
How to detect user inactivity
If you are interested in any of the points above, feel free to leave a comment. I will write a post about how I did it.
Tech stack I used for Eyes Buddy:
SwiftUI for building the UI
TemeletryDeck for anonymous analytics
Sparkle for software updates
LaunchAtLogin to handle launch at login
#3 - IconX - November
I love personalizing my dock, which led me to develop this app for macOS. It’s very simple: just select the app whose icon you wish to modify, choose your desired icon, and voilà – customization made easy!
Things I learned when building this app:
How to change the icon of an app manually, and programmatically
How to open a file in the Finder window programmatically
Tech stack I used for IconX:
SwiftUI for building the UI
TemeletryDeck for anonymous analytics
Sparkle for software updates
#4 - CompressX - December
In my role, we have a practice of including a screen record demo with each pull/merge request, which helps code reviewers quickly understand the changes being made. This is a very good practice to improve code quality in our team. However, due to GitLab limitations, the video file must be under 10 MB for upload. While my team typically uses FFmpeg to compress videos, which is quite effective, I find the workflow – adjusting commands for each video or running scripts – a bit cumbersome, as I'm not particularly inclined towards terminal-based tasks. To streamline this process, I developed a macOS app that simplifies video compression.
Things I learned when building this app:
How to run a terminal command from a macOS app
How to handle dropping a file into the app
How to calculate file size
How to check if the video has an audio track
How to check if the video is transparent and preserve the transparency of the video
How to handle WebM video
How to open the Notifications setting in the System Settings app programmatically
How to prevent a user from closing the app window
How to make a Raycast extension
How to handle Open With when the user right-clicks a file from Finder
Tech stack I used for CompressX:
SwiftUI for building the UI
TemeletryDeck for anonymous analytics
Sparkle for software updates
Other than building the app itself, I also learned how to build a landing page for it. The page is relatively straightforward but I do love it.
Among these 4 apps, CompressX is the one that receives a lot of attention. One day after sharing on 𝕏, the post receives 308K impressions. I got 2,4K downloads and $104 in my pocket (the app is free to download with the “Pay what you want” option at that moment). People love it and they are amazed by how much the file size has reduced. I received a lot of feedback and made a bunch of improvements.
CompressX is scheduled to launch on Product Hunt on January 4th, 2024. I would like to invite you to join me on the launch date. If you love it, please leave an upvote and review. That would mean a lot to me!
Besides all apps I shared above, I also built Apps Everyday but never launched it. The app is a collection of best-in-class apps that I love. The app requires many manual operations but I didn’t have enough time to automate them, so I dropped.
In May, I decided to open source one of my apps: Deeplink Buddy. I use this app every day for my job.
I made a demo of the Apple Mail app concept, and it went viral
I also made this cool animation, and people loved it
Some of my favorite tips this year:
If you use Xcode, you can make it pop 🎉 whenever Xcode builds successfully
If your app submission is rejected by Apple, RevenueCat will be there to support you
Overall, this year has been quite fulfilling for me. I explored new cities and a new country, made new friends, learned new sports, acquired new skills, launched new apps, and earned $300 from my side hustle.
That’s everything for now!
Thank you for reading my first issue.
I wish you and your family a Happy New Year!
See you in 2024 👋
— Hieu