Ziga Dolar

Ziga Dolar

@zigadolar.com

iOS/macOS developer working on small Swift apps. Building @keepdates.app (iOS Contacts → calendar/reminders), @getdashlet.app (dynamic iOS widgets) and @bluestodon.app (macOS/iOS app for posting threads)

136 followers368 following209 posts

Pinned

I was tired of manually splitting threads and maintaining separate versions of the same post for Bluesky and Mastodon. Now I write once, preview side-by-side, and publish everywhere with @bluestodon.app Available on macOS and iOS: bluestodon.app #bluesky #mastodon #iOS #macOS #swiftUI #dev

bluestodon.appBluestodon — Post to Bluesky and MastodonCompose and cross-post threads to Bluesky and Mastodon at the same time. Smart splitting, live preview, drafts, images, and more.

Also finally submitted the iPhone Duo update of @getdashlet.app for review. All the screenshots are updated, and also added all the page/search headers. Hopefully this one also gets reviewed quickly. #buildInPublic #dev #swift #swiftUI #iOS

I've been doing staring at the iPhone Duo simulator so much lately, that I'm almost tempted to get one... almost 🙈 Maybe next generation, when my phone will be due for an upgrade 😅

I've been sitting on this build for a while, as I couldn't be bothered/find the time to make new iPhone Duo screenshots and decide on what I want the new product page header to look like. But, once submitted, it sailed through review in 3 minutes 😅 #buildInPublic #dev #swift #swiftUI #iOS

🎉 KeepDates 26.15 is out! Two columns on iPhone Duo, pinned contacts your way in widgets, all of Premium in Settings, and clearer watch countdowns. https://keepdates.app/changelog.html#26.15 #iOS #indiedev #appstore #swift #swiftUI

Speaking of feedback - I much prefer the kind of support request that ends up leading to a great new feature, like the one in the latest update of @getdashlet.app A user asked if there was quick link support for configuring a data source or widget. #buildInPublic #dev #swift #iOS

✨ Dashlet 1.8 is here! Set up a widget from a link: send someone a data source, or a whole widget, and it opens filled in. Your tokens never travel with it. --- https://getdashlet.app/changelog.html#1.8 #iOS #indiedev #appstore #swift #swiftUI

On launch day of my app I got a feedback email. The feedback was a complaint about the lack of russian language support (could be valid, it was the initial version and it was English only) and also that it doesn't support iPad in landscape (which it did even then). #buildInPublic #iosDev #feedback

A bit suspicious - even more so, since I got the exact same feedback for another of my apps a week prior. Both apps had full iPad support, so this was clearly some troll that I was going to ignore.

Today I got another feedback email from the same person, clearly upset of being ignored and threatening 1-star reviews from multiple app store accounts as my punishment. And, I must say, I just find it amusing that somebody gets so upset because of some tiny app by a solo dev 😂

My current approach is spliting the whole root navigation based on the horizontal size class and orientation. When a device is a regular (iPad) size class in landscape, I switch the whole thing out for a NavigationSplitView - while in compact or portrait it defaults to a normal navigation stack.

Much to my surprise, it also seems to behave quite well in split screen mode as two different instances of the app 😅 I honestly don't know how I expected it to behave, but this seems fine for now.

With @keepdates.app it was a bit trickier. It wasn't (yet) built to run on iPad, so I had to do a bit more work (and even invent an extra screen/view - showing some stats) to fill up the sidebar half of the split view, when opened in landscape. #buildInPublic #dev #swift #swiftUI #iOS #iphoneduo

Also needs a bunch of tweaking to fully work (and look good) - but at least it's functional? 🤔 And, partial way to iPad support - the other part is figuring out how not to overwrite already synced dates in the same iCloud calendar (if Contacts don't have the same identifiers or something)

Configuring a widget in @getdashlet.app becomes quite annoying, if you can't really see what your changes are doing (and have to scroll back up to the top all the time). Upcoming version will have this change keeping the widget preview visible at all times. #buildInPublic #dev #swift #swiftUI #iOS

Also adding iPad layout improvements, with benefits of improving the look on iPhone Duo - not hating it, but needs further tweaks. Will continue to keep slowly iterating - it's good enough for the Duo launch. #iphoneduo #swiftUI #buildinpublic #appdev

Ziga Dolar reposted

Auto-hiding controls is a thoughtful dashboard detail because the data gets the space until you need to change it.

🚀 Dashlet 1.5 just shipped! Now in six more languages with an in-app picker, plus a cleaner always-on dashboard (auto-hiding controls) and always-fresh, never-cached data. https://getdashlet.app/changelog.html#1.5 #iOS #indiedev #appstore #swift swiftUI

Finally got around to creating a press-kit for @getdashlet.app, but am worried I might've gone overboard. I guess an 80MB ZIP file is too much? Maybe I don't need two different orientations of iPad screenshots, and all screenshots in light and dark mode? 😅 #buildInPublic #dev #swift #iOS #presskit

Not as clean as a single ZIP file download, but I think a barebones press page is even better, allowing for downloads as needed, while also communicating the basic information.

Finally took the time to write an introduction post for my self-refreshing remote widgets iOS app @getdashlet.app, which I launched over a month ago. It explains the motivation behind it, what it does, and how it's become very useful to me. #buildInPublic #dev #swift #swiftUI #iOS

Ziga Dolar@zigadolar.com

🔗 New post: Dashlet A delayed introduction of my new iOS app for creating self-refreshing widgets from online data. https://zigadolar.dev/posts/2026/08/24/dashlet/ #ios #widgets

The update brings some quality of life improvements and some bug fixes. It took less than 12 hours to get through app review - which is ~15x faster than the last update. No purchases or subscriptions as part of the review sure makes a difference. (1/2) #buildInPublic #dev #swift #swiftUI #iOS

📦 Dashlet 1.3 has landed! Richer chart values (formatting, units, and a running total), list-item counts in labels, POST endpoints, and per-header sensitivity. https://getdashlet.app/changelog.html#1.3 #iOS #indiedev #appstore #swift swiftUI

This update also ends the launch one-time unlock discount. I think it's a good balance with a good free tier, a $0.99 monthly option to try premium, and a one-time unlock IAP option. (2/2)

I shelved some stuff I was working on, to quickly get this version out based on some user feedback. The app's core idea was that iOS puts birthdays in the calendar and it's only the other dates that are missing; so why touch birthdays. (1/2) #buildInPublic #dev #feedback #iOS

✨ KeepDates 26.10 is here! Birthdays can now sync to the KeepDates calendar if you want them there. Off by default, with a per-birthday switch once on. https://keepdates.app/changelog.html#26.10 #iOS #indiedev #appstore #swift swiftUI

But what if you wanted all the contact's dates to sync to a separate calendar? Adding it wasn't a lot of work, as the data is already processed by the app - but I completely missed the usecase. 🤯 (2/2)

After waiting weeks for review and two rejections (one not my fault and one very much my fault) I managed to get @getdashlet.app 1.2 released today. It contains a whole bunch of fixes and improvements (even some meant for version 1.3) (1/2) #buildInPublic #dev #swift #swiftUI #iOS

⚡️ Dashlet 1.2 is live! Image alignment, bar & gradient two-way gauges, per-widget fonts, a tidier editor, config backup/restore, plus lighter, steadier widgets. https://getdashlet.app/changelog.html#1.2 #iOS #indiedev #appstore #swift swiftUI

In addition to that, my subscriptions also got approved - so now there's a lower entry option to try out premium. That also means that the one-time unlock's non-sub launch discount will be ending soon. (2/2)

Never considered such a case - what to do when a premium unlock is refunded? 🤔 Currently my code will keep the unlock granted - but should it take it away? This is why I want @getdashlet.app to get subs approved - to allow testing premium for a month for cheaper #buildInPublic #appDev #swift #iOS