It's been 0 days since I created a new Xcode project π«
@vincefried
π¨πΌβπ» Experienced developer on ο£Ώ platforms with a big π«Ά for indie apps ποΈ CocoaHeads Hamburg Co-Organizer π CannotWait - Days Counter β Ask Adalbert - Decision Helper β³ More to come My posts reflect my own, personal view. swift.vincentfriedrich.com
It's been 0 days since I created a new Xcode project π«
A selfie of Daniel Jilg and me
Look who I met today π @breakth-esystem.bsky.social
My "Cute 1 Minute Workout App" iOS Development Diary
Step 20: RELEASE π
The day has come, and I am pretty nervous, to be honest. Planki is ready after 2 months: plankiapp.com
Read my full experience on Reddit: redd.it/1qmnr5f
#BuildInPublic #IndieDev #iOS
Really enjoyed it! And your app looks so nice π
My "Cute 1 Minute Workout App" iOS Development Diary
Step 15: Great knowledge exchange with @vincefried.bsky.social
We already had our 3. session together, where Vincent taught me some of his valuable #iOS experience. I learned amazing "guard let" shortcuts.
#BuildInPublic #IndieDev
A photo of my cat Bailey sitting under the christmas tree.
Christmas cat for you!
A snapshot of the xmas event exported from the CannotWait app saying βChristmas Eveβ is βπ Todayβ
A screenshot of telemetrydeck saying β785 usersβ for the year 2025
Happy holidays to everyone π₯³
It's been a crazy year for me, and it looks like the next year's gonna be even more eventful π¬ I'm looking very much forward to it and I'm thankful for everything π
Also thank you so much for downloading CannotWait. Lets get to 1000 users next year!
Seriously SF Symbols is one of the nicest things Apple has added through the recent years. And I love how powerful it has become with animations, creating custom symbols, etc. π It's always a lot of fun playing around with it.
A screenshot of my home screen showing a couple of iOS widgets decorated with lights and streamers for events on Christmas and New Yearβs Eve.
Since the most recent update 2.2.3, my day counter app CannotWait does decorate events around Christmas and New Year's Eve festively π
Just discovered by accident that you can tap and hold on SOME of the tab bar accessory items in the notes app π€― But it's completely unrecognizable which ones can be long pressed. Cool animation though!
I have never had issues with my storage for many years, constantly had about 100GB free. Now recently m iPhone storage went nearly full multiple times, but if I add up all big apps sizes and the system and iOS size, I again end up with about 100GB that should be free. I have no idea what's going on
One could also argue that maybe I was just using it wrong, messed with its identity. I'm 99% sure it's not because I spent a lot of time debugging and profiling, but even if that's the case, I don't care π If it's so easy to f*ck things up, then the maybe problem lies in the system.
I still wouldn't want to miss it, but what I learned is that it's also just another tool in the belt and there should not be a dogmatic rule in a project to always stick to SwiftUI just because it's the new standard. (Apple: "The best way to build an app is with Swift and SwiftUI")
After having worked on 100% SwiftUI apps for one and a half years now, I know this feeling very well. And it felt pretty refreshing going back to UIKit. It's more robust and freeing having actual control about the implementation details.
I am enjoying SwiftUI in many situations, especially for animations. But often it feels lightweight and easy until it does not work properly and then you are just guessing and fighting and becoming more and more frustrated.
In the end I just went "f*ck this" and refactored the main view to UIKit using a UITabBarController, setting the bottomAccessory property. Worked like a charm, took me half an hour.
In such situations I'm wondering how much value SwiftUI actually brings.
Yesterday I fought for hours trying to make iOS 26s new bottom accessory work without glitching when switching between tabs. I just didn't manage to do it. It seems its identity changes everytime a tab is switched and since this is coming from the framework, there seems to be no fix. π§΅
This year's Spotify wrapped was exceptional fun!
My "Cute 1 Minute Workout App" iOS Development Diary
Step 8: Switch to Swift 6
Thanks to @vincefried.bsky.social I got the tip to switch to Swift 6 asap to avoid concurrency pitfalls.
Just alone the annoying crash in VisionKit took me 2h π΅βπ«
#BuildInPublic #IndieDev #iOS
Played around with Liquid Glass for a skeleton animation today. Looks quite nice imo! Love the glassEffect modifier π¬
I just noticed that a new project I created in Xcode 26 still has Swift 5 and strict concurrency checking set to minimal. Shouldn't it be about time to become complete or even Swift 6 as default? It's such a big pitfall. I forgot the change it and accidentally introduced issues right away π€¦ββοΈ
So after all these realizations, I'm pretty close to just sticking with ObservableObject again. Because it just works for me. No need for using workarounds or third party tools as solutions for the most basic problems. But that can't be it, right? I'm pretty tiredβ¦
But what they are proposing 1. moves the init to a parent view which is what I'd like to avoid, 2. makes the object in the parent view optional just for the sake of deferring the initialization which I personally find super ugly - it defeats Swift's static nature imo.
Apple mentions a solution to the StateObject init problem in the documentation of @State using the task modifier: developer.apple.com/documenta...
The behavior of the @State vs. @StateObject init kann different and it's not mentioned in the migration guide, but it introduces severe bugs and performance issues when migrating from an architecture that always initialized its own StateObjects internally.
The possibilities for observation are very limited in iOS 17, and we are only getting true power for observation in iOS 26 which is unrealistic for most projects atm. This also an issue for testability.
The fact that it's based on macros is annoying since I won't directly see which properties update my view. Also, macro expansion 90% of the time doesn't work for me in Xcode and makes it impossible to see even if I wanted to.
I'm a bit behind in the Observable migration game and just catching up. I thought I'd finally migrate one of my projects since it's iOS 17 minimum.
But I just don't like it π
It feels like everything is getting worse when migrating from ObservableObject.π§΅