GPN24 Schedule

my first iOS App

An unofficial iPhone and Apple Watch app for the Gulaschprogrammiernacht 24 schedule. Born out of a bit of frustration — and as an excuse to try a few things.

Why build a custom app?

Due to the large number of talks and the stylesheets used, the agenda was simply too wide. On smartphones you had to scroll back and forth too much.

So I tackled this as a personal project: not because it was strictly necessary — other schedule apps exist — but because I wanted to try a few things that had been on my list for a while: an Apple Watch companion app, Live Activities on the lock screen and the Dynamic Island.

The result is now even available on the App Store. Yeah! My first app!

What I had underestimated: Apple takes several days to review new apps — sometimes longer. Since the conference has a fixed date, it was simply a race against time. Getting through the review process in time turned out to be almost as much work as the development itself.

What can the app do?

The images show the app as it’s now available:

Day overview
Timetable
Detail view
  • Interactive timetable with horizontal room layout and vertical time axis
  • Day overview with all conference days and number of programme items
  • Detail view with abstract, description, speakers and external link
  • Favourites with local persistence and automatic reminders
  • Full-text search across title, speakers, room and track
  • Venue map (placeholder image — a good photo wasn’t available)
  • Live Activity on the lock screen and in the Dynamic Island

Apple Watch

The app has a full watchOS companion app — not just a mirror of the iPhone, but a standalone view optimised for the small display.

Apple Watch App
  • Chronological talk list optimised for the Watch display
  • Favourites sync from iPhone via WatchConnectivity
  • Of course also displays favourites selected on the iPhone
  • Live countdown and progress bar for currently running talks

Technical Details

  • Platform: iOS 17+, watchOS 10+
  • Framework: SwiftUI, Observation, ActivityKit, WidgetKit, WatchConnectivity
  • Data source: Official Pretalx export of GPN 24 (cfp.gulas.ch)
  • Data storage: Local JSON cache, UserDefaults for favourites — no own server infrastructure needed
  • Architecture: @Observable ViewModel, @MainActor-isolated services

The schedule data and all programme content belong to Entropia e.V.. This app is a private hobby project with no commercial intent.

Claude helped with writing and especially troubleshooting. Wouldn’t want to miss it as an assistant.

The App Store Story

Naturally I wanted to make the app available to as many attendees as possible. Since it was my first app submitted to the Store, I didn’t realise how long it could take. Apple has an approval process that can take up to 48 hours. (WTF? The conference would be over by then!)

You can also submit an “expedited request”, which gets your submission prioritised. And so by Friday it was ready and I could get the app into the Store. Anyone who wanted to could also try the latest versions via TestFlight, where new versions are made available much faster. That’s what made it possible for more people to test the app.

Outlook

The app is built so that the Pretalx format of the scheduling tool can be read generically. This makes adapting it for future events very straightforward. Next time I’ll start the App Store publishing process much earlier… :-)