Thorsten Stark
Thorsten Stark
@thostark.bsky.social
iOS Developer since 2009 – doing Swift, SwiftUI, Objc, macOS, UI/UX, CI/CD, git, automation and a bit more. Developer of @batteriesapp.bsky.social
142 followers160 following107 posts
KidsPlaner shares a child's timetable with a second iCloud user, read only or with editing. Everyone with access sees changes as they happen. Sharing is Pro, accepting an invitation is not. apps.apple.com/app/apple-st... #iosapps #backtoschool
The small Batteries At Home widget shows four devices as rings: remaining lifetime as the arc, overdue or due soon as the color, the device icon in the middle. A tap opens that device. apps.apple.com/app/apple-st... #iosapps
In KidsPlaner you build the school day yourself: a name, a start, an end, and a switch for lesson or break. Each child gets their own set of times, so two schools fit on one phone. apps.apple.com/app/apple-st... #iosapps #backtoschool
Most days, opening Batteries At Home should tell you nothing. No device overdue, nothing due within a week, so the screen says exactly that instead of listing your devices. apps.apple.com/app/apple-st... #iosapps
The devices worth tracking are the ones where an empty battery costs you at a bad moment: the smoke detector at night, the thermostat in January. Batteries At Home starts you off with those, battery type and usual interval included. apps.apple.com/app/apple-st... #iosapps
A first grader can read a timetable before they can read the words on it. In KidsPlaner every subject gets a colour and an icon, so the week grid shows the day as shapes your child already recognises. apps.apple.com/app/apple-st... #iosapps #backtoschool
When a battery is finally due, the device is back on the wall and you no longer remember what is inside it. In Batteries At Home every device can carry photos of its compartment and its label, in your own iCloud. apps.apple.com/app/apple-st... #iosapps
Zwei Kinder haben zwei Stundenpläne, und die fangen selten zur gleichen Zeit an. In KidsPlaner bekommt jedes Kind eigene Stunden, eigene Pausen und eigene Fächer. Auf dem Home-Screen liegt ein Widget pro Kind. apps.apple.com/app/apple-st... #iosapps #backtoschool
You enter the school year once, and you should not have to enter it again on the iPad. KidsPlaner keeps it in your own iCloud, so every device and every widget shows the same day. apps.apple.com/app/apple-st... #iosapps #backtoschool
The person who has to read a school timetable is a child, and a week grid is easier to read than a list. KidsPlaner shows the whole week as a grid, each subject with its own color and icon. apps.apple.com/app/apple-st... #iosapps #backtoschool
In the shop you do not know which batteries you actually need at home. Batteries At Home builds that list: devices due in the next two weeks, minus what is in your drawer, plus what is missing from your stock. By type and count. apps.apple.com/app/apple-st... #iosapps
Der Stundenplan sagt dir nicht, wann keine Schule ist. In KidsPlaner trägst du Ferien und einzelne freie Tage pro Kind ein. An diesen Tagen zeigt der Heute-Screen schulfrei statt einer Stunde, die ausfällt. apps.apple.com/app/apple-st... #iosapps
You should not have to open an app to find out when the school day ends. KidsPlaner puts it on the home screen: the period that is running, how much is left of it, the whole day in the large widget. One widget per child. apps.apple.com/app/apple-st... #iosapps
Part 3 of my SwiftData and iCloud sync series is up: your empty state is now a loading state, your widget never hears about remote changes, and the CloudKit schema only ever grows. www.thorsten-stark.de/posts/2026-0... #swiftdata #cloudkit
A new school year means a new timetable, and it is different for every child: other periods, other subjects, other days off. You enter it once in KidsPlaner, per child. After that it is on the home screen. apps.apple.com/app/apple-st... #iosapps
Smoke detectors have an unspoken rule: they start reminding you of low-battery at night, and they're designed to be hard to locate. That's what the app is for. Moving that moment from the middle of the night to a Sunday afternoon with daylight and a screwdriver. apps.apple.com/app/apple-st...
If your app seeds initial data and syncs it over iCloud, be aware of duplicates. Use fixed identifiers for seeded objects, not fresh UUIDs. www.thorsten-stark.de/posts/2026-0... #swiftdata #cloudkit #iosdev
Worth remembering: turning on iCloud sync for your SwiftData models means giving up uniqueness constraints, non-optional properties, and relationships without an inverse. Wrote a post about it: www.thorsten-stark.de/posts/2026-0... #iosdev #swiftdata #ios #icloud
A new version of KidsPlaner is out. It fixes a little bug that prevented you from editing the timetable when there was a holiday. apps.apple.com/us/app/kidsp...
Today I tried to connect to a nearby Mac from my cmux terminal via ssh. It failed. I checked all network settings on my Mac and the remote Mac. Everything was fine. After 2h of searching and testing it turned out that the cmux app wasn’t granted the system permission to access local network 🤦♂️#macOS
Thorsten Stark reposted
Apple updated its Human Interface Guidelines for Sheets on March 24, 2026 to add guidance for button placement in the toolbar. "In iOS & iPadOS, the Cancel button belongs on the leading edge of the top toolbar." Time to update my apps 🙂 Documentation: developer.apple.com/design/human...
Thorsten Stark reposted