← Back to projects

GuMobile

The Neuchâtel administration in a phone

Project overview

GuMobile is the mobile app for the Guichet Unique platform, on iOS and Android. It was launched by the Neuchâtel public IT service (SIEN) and its partners in December 2022, under the slogan "Your administration in your pocket".

It brings the canton's services into a phone — taxes, vehicle registration, school reports, fishing and hunting permits, the official gazette. Around 35,000 downloads to date, two thirds of them on iOS.

A native shell around web services

GuMobile is not a native rewrite of the platform's two hundred-odd services: it is a .NET MAUI shell hosting the existing web ones. That choice has a direct and deliberate consequence — a service updated on the web is updated in the app at the same moment, without a trip through the stores.

One codebase, two stores

.NET MAUI produces the iOS and Android binaries from a single project, which avoids maintaining two apps in parallel for a product whose value lies elsewhere: in the services it makes reachable.

Sign-in leaves the WebView

Authentication is handled natively rather than inside the web view. That is what lets the app lean on the platform's own mechanisms, and what lets a session survive the move from one service to the next.

What stays on the desktop

A few of the more involved services still go through the desktop version. The app does not pretend to cover them: sending someone explicitly to a computer beats offering a mobile path that fails halfway through.

My contribution

I maintain and extend the app. The most visible piece of work has been adding SwissID and AGOV sign-in — Switzerland's two recognised electronic identities — alongside the original Guichet Unique account.

SwissID and AGOV

Sign-in goes through an OpenID Connect identity federation server operated by the canton. The app therefore never talks to SwissID or AGOV directly: it addresses the federation server, which carries the relationship with each identity provider. Adding a provider becomes a matter of server-side configuration rather than a new release of the app.

Leaving the web view to authenticate

A sign-in flow trapped in a WebView is both less safe and less pleasant. Sending it out to the system browser means handling the return into the app and the resumption of the session properly — the least spectacular part of the work, and the one most noticed when it is done badly.

Shipping to two stores

Every release goes out to the App Store and the Play Console, each with its own review cycle and requirements. Automating those releases with Fastlane takes the most tedious and most error-prone part out of the equation.

Find out more