Itās clear that while I may not have long stretches of hours to work and focus on a single coding milestone, small progress spread over multiple days adds up and is as beneficial as single long sessions. The last week of travel has presented a challenge to this experiment Iām running to finish my app on time. And today was the first day that I was able to squeeze in my experiment through multiple small sessions of real progress. One way I was able to accomplish this progress was by splitting the research and implementation into separate efforts.
A good chunk of my productivity time is dedicated to research. Researching new coding techniques, frameworks, or watching WWDC videos are usually my go-to when Iām sitting down in front of my computer. While I have been busy with travel and personal events, Iām taking a serious effort to use the small amount of time I have when Iām not in front of my computer to conduct this research. This, of course, is made possible by swapping out the time I spend endlessly scrolling on Instagram with dedicated time to watching a WWDC video or reading about a new coding technique that could help me. It takes a bit more effort than mindlessly scrolling social, and sometimes I still do set aside small chunks of time around 5-10 minutes to scroll without worry, but the rest of the time Iām focusing on fitting in the lengthy research part of my day.
Fitting in implementation time behind my computer, in Xcode, writing code is a bit trickier. It is something Iām still working on, but as of right now, my go-to is to just sit down whenever possible and write even a single function. Something small is usually enough to trigger my brain to get into a coding mindset, even if it is for 5 or 10 minutes. If time permits, that 5 or 10 minutes will grow to 30 or an hour in the best case. But even if it just is long enough to write a function or fix a small bug, it is progress no matter what.
These two small changes have helped me stay on track and finally start to see the end of this journey. For the first time in a long time, Iām finally close enough to start to see the orange glow of Mount Doom.
As I get back into a rhythm of working on my next app, Iām starting to realize just how little work I have left on the core functionality of the first version. I still have a good amount of testing, including a fair amount of testing for the in-app purchase flow. However, at this point, all I really have left is two big milestones that will take a while to implement and not be the easiest thing.
This hurdle, of course, makes me feel less excited about finishing the app since it is going to be a slightly less enjoyable challenge than the other parts of the app. My hope is to stay consistent and slowly start to break up the last two milestones to finally finish the app. Fingers crossed that I can get it done in the next few days so I can work on finalizing the in-app purchase and graphics of the app.
Day 8 didnāt see any work on my next app, but this morning I started to check off some of the outstanding todos I have for the app. It was an easy amount of progress thanks to me splitting up the work between implementing the feature in the data layer long before implementing it on UI layer.
With my travel mostly wrapped up Iām hoping to get back into a nice rhythm and still try and achieve my end of August goal of releasing the app.
Iām quickly learning that the moment I throw any amount of travel into my schedule, the chances of me being able to work on projects drop to near zero. Overall, this isnāt a bad thing since a nice break from time to time is super helpful and can lead to new paths to take.
Thankfully, even though I didnāt make any progress yesterday due to a full day of travel, today I was able to add a small feature to the app. It wasnāt a lot, and honestly doesnāt move the needle any huge amount, but it is something. And most of what is outstanding on the app is pretty small things that will help make the app more usable for more people.
One interesting thing I did discover by skipping yesterday and jumping back in today was how much I miss this space Iāve carved out to work. Between the Xcode project and these blog posts, it has become this peaceful and almost secluded space to do work. It makes me want to return to the work more and more as time goes on since it is such a joy to sit down, code, write about it, and post it online.
Next to no one is reading these posts, but I think that is why Iām enjoying this process so much. Iām not doing any of this for likes, views, or comments. Iām doing all of this for myself and enjoying the entire journey.
I made just a little amount of progress today towards improving the condensed mode of the app. However, I ran into the same issue Iāve been having, not with the app but with where Iām storing the source code.
For the last year or so, I have a pretty simple code storage stack of: iCloud Drive ā GitHub. I donāt just use Git alone since I have two MacBooks that I alternate using depending on where I am or if Iām traveling. And Iāve been traveling before, having forgotten to push my latest changes to GitHub, meaning I couldnāt work on my projects. To solve this, I just keep the source code in my iCloud Drive so that the uncommitted changes can be synced across all my devices without having to worry about Git.
For the last year of using the flow, I havenāt had a single problem. In the last week, however, I have had this nagging issue where at some point, Xcode crashes out, and it seems to cause iCloud to go into a weird state where it keeps saying it is no longer connected. The other odd thing iCloud does is hide, or possibly remove, all my other iCloud Drive folders from the Finder. So all my folders for iCloud apps, such as Pages or Keynote, are completely gone. However, they start to pop back if I launch one of the applications that uses iCloud Drive.
This issue is becoming more and more of a headache, but more importantly, a source of fear. One time this happened, I did manage to lose some code changes since even though I was saving the file in Xcode, the actual file couldnāt be saved to iCloud Drive. While Iām still not 100% sure what my next solution to this would be, since Iām not the biggest fan of Dropbox, Iām hoping that this is some weird bug in either macOS or Xcode that will maybe get fixed in the future.
Getting behind Xcode was pretty hard today, but I selected what I thought was a pretty straightforward task to accomplish. About an hour later, I was able to get it completed and implemented a new layer of customization for the app. However, this was made possible by a great Swift Package called MCEmojiPicker.
This package allows you to easily show a fairly simple emoji picker without much overhead. It fully supports UIKit and, most importantly, SwiftUI. The package really shines with SwiftUI thanks to its use of bindings, which makes handling the selection a breeze. Packages like this are really great in helping you not reinvent the wheel for every little feature of your app.
Even though the past two days havenāt been the most productive with checking things off of my list of tasks before launch, Iām still glad Iām making forward progress. Hopefully, keeping up this pace will help me get across the finish line. Which makes me start to wonder when exactly that finish line should be set, as I donāt really have a natural deadline for the app. My initial thought is to aim for an end of August to launch, but shoot for much sooner to help get the app out the door and collecting feedback beyond my small selection of beta testers.
Today is a travel day for me, so I didnāt expect to get a whole lot done on the app. To my surprise, though, I was able to quickly hammer out the appās settings view. I really want this app to fit into each customerās workflow so that using the app doesnāt have a ton of friction. The whole point is to allow you to get in and out of the app as fast as possible, with most of the value of the app coming from customized notifications.
Iām enabling a lot of default customization so that the large majority of the app can be tweaked. I use and have tried so many apps, especially productivity apps, where I just want to make a small change to the creation of, say, a note, but the app has almost no settings options. And thankfully, with the help of SwiftUI and the AppStorage property wrapper, adding settings is incredibly easy.
While I didnāt move the needle a ton on the app today, Iām glad I was able to get some portion of it worked on and can keep up my streak of working on it daily.
The first official day of work on the app went super well. I was able to make two big steps forward: adding an icon and integrating RevenueCat for In-App Purchase support.
While Iām not worrying too much about iOS 26 for this app right now, mainly because a lot of my default controls and such are all SwiftUI. However, I did tinker with using Appleās new Icon Composer to help make a simple app icon. It really shocked me that with just basic PNGs of different shapes, the default settings of Icon Composer really can create a unique-looking icon without a ton of graphic design work. Sure, it wonāt win any design awards, but in a pinch and for indie developers, I think it is going to make designing iOS/Mac OS 26 icons much easier and help keep everything pretty consistent.
Iāve made a lot of apps over the years, and when it came to doing all the rigamarole required to implement In-App purchases properly, I always felt just overwhelmed. Hearing both John and Casey from ATP talk about the tough times they had fully integrating StoreKit into their apps really just made me feel like it was easier to either offer my apps for free or a one-time fee, even though the latter has fallen out of favor for most iOS customers.
Instead, I finally used the long-time sponsor of Core Intuition, RevenueCat, to help add In-App purchase support. This entire process went much smoother than I had expected, and I feel like it has helped me create a better paywall experience for my potential customers. Some people might feel that RevenueCatās monthly fee of 1% for any revenue over $2,500 is too much for ājustā being a wrapper around StoreKit. Now having integrated with their service, I have to say it is well worth the fees. Not only is so much of the store process abstracted away, their online editor to build the paywall is super solid and a great feature!
Important Note! This post is not sponsored by RevenueCat in any way!
After two months of wandering, Iām finally ready to get out of the woods. Iāve been working on my first iOS app in a while, and my whole motivation for the app comes from me wanting to finally do all the things I never could when I had a full-time job. And while Iām still looking for a full-time job, applying is just as awful as you hear about, I want to be sure I utilize the small amount of freedom I now have by completing the things Iāve always wanted to accomplish. One of the biggest things I wanted to accomplish after I left my previous job was to publish a new iOS app to help people stay focused on their hobbies.
To do that successfully, I want to start posting daily about my progress towards accomplishing that goal. Some days it is going to be very short since I maybe didnāt do a whole lot of work on my app. However, my hope is that by posting daily I will stay on top of the project and keep it moving towards the finish line.
A big inspiration for me to do daily logs is David Smithās amazing Design Diary series he is writing as he works through redesigning his apps for iOS 26. The second inspiration was Brent Simmonās Vesper Sync Diary from 2013/2014 which I had followed at the time religiously and loved every little update. I think it is important to share progress on large scale-projects publicly to not only record them for others to possibly learn from, but to keep a trail of the hard work you have put into your own projects.
The final big reason I want to do this is to get back to posting regularly to my Micro.blog site. Mantonās book and podcast Core Intuition were a huge inspiration for me to finally start to use Micro.blog and join in the community of bloggers trying to reclaim a small portion of the internet that the big social media companies have stolen. As Iāve started to post more on TikTok and other social media platforms, I just get the constant feeling that Iām missing out on contributing that same sort of content on more open and freely available avenues.
Today is day 1 of hopefully many more days!
A quick note: Iām hoping to give each day some sort of unique title, possibly Lord of the Rings inspiredā¦but letās see how long I manage to keep to this!
Was expecting to see more Tron Ares content at the theaters since it is coming out in October. It was cool to see this 3D glasses bin though last night!
While researching some Led Zeppelin Bootlegs, I came across an official page still available with the most 2000s era website design still intact! This design style is still so unique and fun! www.ledzeppelin.com/show/seat…
Tweaked the app Iām working on to use some sheets for basic interactions. Really surprised how nice SwiftUI handles sheets with various positions options!
Interesting article from Ars Technica explaining just how bad the hiring process has become. The insane number in the very first sentence, “Employers are drowning in AI-generated job applications, with LinkedIn now processing 11,000 submissions per minuteāa 45 percent surge from last year, according to new data reported by The New York Times.”