Aleksander Stojanowski's Avatar

Aleksander Stojanowski

@stojanowski.dev

#IndieHacker working on @letspark.it

169
Followers
370
Following
1,100
Posts
16.11.2024
Joined
Posts Following

Latest posts by Aleksander Stojanowski @stojanowski.dev

I even set a deadline for myself, but I’m not ready to share it with you yet. πŸ˜… Either way, the long weekend in Poland we start today might give me a bit of a head start, or at least I hope so. 🀞

07.11.2025 13:07 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

I plan to leave basically only the data model, as I want users to be able to upgrade to the new version seamlessly, but everything else I plan to get rid of and start from scratch.

07.11.2025 13:07 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

I’ve learned so much during all this time, and the more I want to change, the more I see I have issues in the foundation of the app, so either way I need to change a lot even for some basic functionality. 🫀

07.11.2025 13:07 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

However… Struggling with App Intents, I made a tough decision regarding Spark’s future. Instead of slowly progressing as I did over the last half a year or so, I’ll make a hard cutoff and start developing version 2.0. 😳

07.11.2025 13:07 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Much later than I wanted to, but a new version of Spark is available to download! πŸ₯³ It’s also a much smaller update than I thought it’d be, but at least now Spark has a new #LiquidGlass icon. 🀩
#BuildInPublic #iOSDev #IndieDev #IndieHacker

07.11.2025 13:07 πŸ‘ 6 πŸ” 1 πŸ’¬ 2 πŸ“Œ 0

That’s nice, but can we get contact photos on iPad back maybe? πŸ€”

30.10.2025 20:06 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

It’s not much, but it’s honest work. 😊
#BuildInPublic #IndieHacker #iOSDev #IndieDev

25.10.2025 18:53 πŸ‘ 5 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0

As for the progress in general, I had yet another exhausting week and I haven’t made much progress. I even took a 2-day break from working on Spark completely! 😱 However, I managed to create intents to work with habit groups and extended entities, so I can use them with my view.

25.10.2025 18:53 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

I avoided watching Apple’s materials on AppIntents for now and mostly read documentation and example projects, but maybe it’s high time to make use of them. 😁

25.10.2025 18:53 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Running them directly from code by instantiating them and calling perform makes them run in an environment where all their dependencies aren’t initialized. At least that’s what I understand from chatting with AI. However, I admit I haven’t double-checked yet. πŸ˜…

25.10.2025 18:53 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

This time I asked AI what’s going on, and its explanation seems reasonable. In a nutshell, intents for their dependency injection to work properly need to be run in a proper environment. Be it via Button with intent as a param, or from the Shortcuts app.

25.10.2025 18:53 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

So… I’ve just learned that most of my adoration for #AppIntents was premature. πŸ˜† I discovered why they didn’t work from actionable notifications, by having the same issue when I tried to use them in .onMove. 😬
#BuildInPublic #IndieHacker #iOSDev #IndieDev

25.10.2025 18:53 πŸ‘ 5 πŸ” 1 πŸ’¬ 1 πŸ“Œ 0

Well, this time I mostly changes the internals, user doesn’t see any changes, or rather shouldn’t. πŸ˜… That’s what I want to test the most, that all my App Intents that now drive the app logic make it work as before.

20.10.2025 05:27 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

As usual, if you’d like to help me with testing Spark, just DM me and I’ll send you an invite. 😊
#BuildInPublic #IndieHacker #iOSDev #IndieDev

18.10.2025 20:11 πŸ‘ 7 πŸ” 1 πŸ’¬ 1 πŸ“Œ 0

During the week, I also attempted to change a bit some animations in the app, but I failed, so for now there is nothing new the user can actually see by using the app. At least I hope so, there won’t be a bunch of crashes from running intents. πŸ˜†

18.10.2025 20:11 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

The only problem I have is using App Intent from an actionable notification. For some reason, dependency injection doesn’t work when the intent is performing in a delegate handler. I work around it for now, by passing them manually to the intent instance, but it feels wrong. πŸ˜‘

18.10.2025 20:11 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

It looks like two weeks in a row I’m coming back to you with an update. πŸ˜… Again, #TestFlight one, but I’m now much closer to a full update! Today I finished introducing #AppIntents to @letspark.it They aren’t available from Shortcuts or Siri, but they helped me clean up code.

18.10.2025 20:11 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

As usual, if youβ€˜d like to help make @letspark.it better, or just use the best #HabitTracker there is (😝) for free, just send me a DM and I’ll send you an #TestFlight invite. πŸ˜‰

11.10.2025 19:07 πŸ‘ 0 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0

As usual, if youβ€˜d like to help make @letspark.it better, or just use the best #HabitTracker there is (😝) for free, just send me a DM and I’ll send you an #TestFlight invite. πŸ˜‰

11.10.2025 19:07 πŸ‘ 0 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0

Frankly, the next few weeks are going to be even tougher for me, and I think most of that will need to wait until sometime in November. 😩 I’m just happy I found time and strength to work for just a bit today. 😊

11.10.2025 19:03 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Not only will they make the code much simpler, but they will enable me to share them via shortcuts and Siri with users easily in the future. πŸ˜‰

11.10.2025 19:03 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

However, before full migration, I plan to move all data operations to #AppIntents. I played with them for a while, and only now I see that I should have started with them from the beginning. πŸ™ˆ

11.10.2025 19:03 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

It’s strongly coupled with my data model, and it makes the changes in the data schema so hard for me. Luckily, I have an idea of how to separate these two matters, and it should remove the main blocker of migrating to a new schema! Hopefully. 🀞

11.10.2025 19:03 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Frankly, it’s quite a small update. I streamlined background tasks at last and created a simple solution for synchronous scheduling of background work, without strange workarounds as before. The next task I want to tackle is… Notification scheduler. 😫

11.10.2025 19:03 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

I’m back! πŸ₯³ I had some tough times, caught a cold… Generally not the best period. πŸ˜… I’m still not 100% healthy and strong, but back nonetheless. I even brought the Spark update with me! 😱 New #TestFlight version, but the update is an update, it still counts! 😜
#BuildInPublic #iOSDev #IndieDev

11.10.2025 19:03 πŸ‘ 9 πŸ” 1 πŸ’¬ 1 πŸ“Œ 1

I believe I must be missing something, but I just have too little experience with #SwiftConcurrency, I guess. πŸ˜”
#BuildInPublic #IndieHacker #iOSDev #IndieDev

05.10.2025 12:54 πŸ‘ 4 πŸ” 1 πŸ’¬ 1 πŸ“Œ 0

Even the description sounds horrible. 😬 Moreover, I believe there are cases when something might go wrong, but I just haven’t encountered them yet. I thought the actors could save me here, but reentrancy means every await call makes my actor method calls interleave. 😩

05.10.2025 12:54 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

That forced me to create yet another horrible solution when waiting for execution to finish means I close the async stream, wait for the background task to end, and recreate the stream with its background handler.

05.10.2025 12:54 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

I created my handler in a way that enqueues the operations to an async stream and executes them on a background thread in the proper order, but it looks and feels like a very dirty workaround. Especially since I need to be sure that it finishes in a few places.

05.10.2025 12:54 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Don’t get me wrong, most of the APIs that are asynchronous are fine. The problem in my case is that I need to be able to call methods from different places and for them to be executed synchronously.

05.10.2025 12:54 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0