apps
Tovin: Jouw Avontuur
Veeg de mist van de wereldkaart

- Status
- Live
- Klant
- Eigen product
- Rol
- Concept, verhaalwereld, app-design, iOS- en Android-development, backend, meertalige website
- Stack
- Swift 6 · SwiftUI · Kotlin · Compose · Fastify · PostgreSQL · React
- Doorlooptijd
- 12 weken tot de eerste release
- Opgeleverd
- september 2026
Tovin is een speelse ontdekgame voor iPhone en Android die je telefoon verandert in een kompas voor persoonlijke avonturen. De wereldkaart ligt onder een laag tovermist; overal waar jij écht komt veeg je die open, en gemeenten, streken en landen verzamel je als badges.
De uitdaging
Een ontdekgame maken die je écht de deur uit krijgt, zonder je telefoon leeg te trekken of je bewegingen te verzamelen. Een wereldkaart die permanent onthult waar je loopt, betekent continu locatie bijhouden — precies wat een batterij sloopt en wat privacybewuste spelers afschrikt. Daar komt bij dat het speelveld de hele aardbol moest zijn: van Nederlandse gemeenten tot Japanse steden en Amerikaanse county’s.En toen kwam er een tweede platform bij. Swift-code wordt geen Kotlin, dus Android moest een herschrijving worden — met de eis dat de twee niet uit elkaar mogen groeien, tot in de plaatsing van een knop.
De oplossing
De wereld is opgedeeld in een H3-hexrooster van ongeveer 130 meter per cel. Onthulde cellen worden alleen toegevoegd, nooit verwijderd, waardoor samenvoegen simpelweg een vereniging is en synchronisatie nooit kan conflicteren. Het bijhouden loopt via Significant Location Changes van iOS in plaats van continue GPS: onder 1% batterij per dag. Alle locatiedata blijft op het toestel en in de iCloud van de speler zelf. De basiskaart is uit eigen polygonen getekend, zodat de wereld er op elk zoomniveau uitziet als een sprookjeskaart in plaats van een navigatie-app.De mist zelf rendert in twee smaken die tijdens het draaien worden gekozen: een maskertegel-renderer voor elk toestel, en een Metal-shader met levende drift op A15 en nieuwer. Zo blijft de app beschikbaar voor élke iPhone met iOS 18, zonder de mooiste versie op te geven. Wat wél gedeeld wordt is opt-in en grof — een naam, een land en tellers — op een eigen Fastify-server met PostgreSQL. Geen advertenties, geen tracking, geen profielen.
Wat het doet
- Fog of war: de mist wijkt permanent waar jij loopt
- H3-hexrooster van ~130 meter per cel, wereldwijd
- Passief bijhouden via iOS Significant Location Changes — onder 1% batterij per dag
- Verzamel landen, streken en alle 342 Nederlandse gemeenten
- Verborgen schatten die warmer voelen naarmate je nadert
- De maan: elke stap hier is een stap daar, 2.022 benoemde plekken
- Eigen wereld, gedeelde werelden met vrienden, of de Community Wereld
- Opt-in scorebord met echte ranglijsten, globaal en per land
- CarPlay-dashboard, widgets en Live Activities
- Zes talen: Nederlands, Engels, Duits, Frans, Noors en Chinees
- Kaart en GPS-historie blijven op je eigen toestel en in je eigen iCloud
- Zelfgetekende pastelkaart uit eigen polygonen, geen kant-en-klare kaarttegels
Over dit project
Het begon in Hippolytushoef, een dorp op het voormalige eiland Wieringen dat bijna niemand kent. Daar stond volgens het verhaal ooit een schuur met te veel kabels, waar een handjevol nieuwsgierige mensen een machine bouwde om de hele wereld in één keer te kunnen zien. Op een ochtend zetten ze hem aan. Er klonk een zachte poef — en er rolde mist naar buiten die niet meer optrok. Tegen de avond lag hij over heel Nederland, binnen een week over de hele aarde.
Dat is de fictie. Wat eronder zit is echt: de wereld ligt er gewoon nog, en hij komt tevoorschijn zodra jij ergens naartoe gaat. Tovin is een ontdekgame waarin je de mist letterlijk wegveegt door je te verplaatsen. Lopend, fietsend, met de trein of op reis — elke plek waar je komt, gaat open en blijft open.
Onder de motorkap is de wereld verdeeld in een hexrooster op basis van Ubers H3, resolutie 10: cellen van zo'n 130 meter. Onthulde cellen worden alleen toegevoegd en nooit verwijderd, waardoor het samenvoegen van twee apparaten neerkomt op een vereniging van verzamelingen en synchronisatie nooit kan botsen. Het bijhouden gebeurt passief via de Significant Location Changes van iOS in plaats van continue GPS, wat het onder één procent batterijverbruik per dag houdt. Je kaart, je routes en je GPS-historie blijven op je eigen toestel en in je eigen iCloud.
De kaart zelf is niet van Apple geleend maar uit eigen polygonen getekend, met waterlijnen uit Natural Earth en gemeentegrenzen van PDOK en geoBoundaries. Dat levert op elk zoomniveau een pastelkleurige sprookjeskaart op in plaats van een navigatie-app. Je verzamelt landen, streken en in Nederland alle 342 gemeenten, je vindt schatten en badges, en je lost onderweg puzzels op die midden op de kaart verschijnen.
Je gaat niet alleen: Tovin is het kleine wolkje dat meereist. Zijn naam komt uit het Oudnoors — vinr betekent simpelweg "de vriend". Dat is geen willekeurige knipoog: op precies die grond bij Hippolytushoef overwinterden duizend jaar geleden Vikingen, en de zilverschat die ze er begroeven ligt nu echt in het Rijksmuseum van Oudheden.
Er is één plek waar het spel zijn naam echt eer aandoet. Je vindt een raketkaartje, vliegt naar de maan, en daarna loopt je maanwandelaar mee met elke stap die je hier op aarde zet: één meter hier is één meter daar. Omdat de maan 3,67 keer kleiner is, kom je er ruim drie keer zo ver mee. Dat werkt via een starre spiegeling vanaf één ankerpaar — nooit een opgeteld pad, want dat drijft af en is achteraf niet meer na te rekenen. Het anker gaat bovendien nooit naar een server, en juist daardoor kunnen medespelers je op de maan zien staan zonder dat je je aardse plek prijsgeeft. Er liggen 2.022 benoemde plekken uit de IAU-gazetteer op je te wachten.
Naast de iPhone-app groeit er een Android-versie. Geen omgezette code — dat kan niet tussen Swift en Kotlin — maar een herschrijving in Kotlin met Jetpack Compose, die dezelfde server, dezelfde geodata en dezelfde teksten gebruikt. De regel eromheen is streng en bewust: de UI ís de iOS-UI. Waar iOS een tegel zet staat daar een tegel; waar iOS een vel opent, opent daar op dezelfde plek een vel. Een Material-component is geen neutrale keuze maar een afwijking, en elke afwijking die het platform écht afdwingt staat opgeschreven met de reden erbij.
Wat samen gebeurt, loopt over een eigen server: Node met Fastify en PostgreSQL, 89 endpoints met 156 tests eronder. Daar draait het scorebord met een écht rangnummer, maar ook gedeelde werelden met leden en rollen, vriendschappen, momenten en kadootjes, meldingen en moderatie. Wie samen ontdekt ziet elkaar live op de kaart lopen — presence over WebSockets, pushberichten via APNs. Toegang wordt geverifieerd met Apple App Attest, abonnementen met server-naar-server StoreKit-verificatie. Een eigen CMS-laag met publicatiestroom, versiegeschiedenis en terugrol-knop houdt de content van de app bij zonder dat er een app-update aan te pas komt.
Het scorebord is opt-in, en wie meedoet geeft weinig weg: een naam en een land, geen e-mailadres en geen wachtwoord. Wat gepubliceerd wordt zijn aggregaten — hoeveel gebied, hoeveel gemeenten, hoeveel landen, hoeveel schatten — en nooit een locatie. De ranglijsten zijn er globaal én per land, met je eigen rij vastgeplakt in beeld, en het volledige bord staat ook publiek op tovin.nl.
De app en de website spreken zes talen — Nederlands, Engels, Duits, Frans, Noors en Chinees — uit één gedeelde tekstcatalogus van 1.764 teksten, die beide platforms voedt. De app kost eenmalig €2,49, zonder abonnement; de optionele Community Wereld kost €1,49 per maand.
In cijfers
- Landen op de kaart
- 217
- Streken wereldwijd
- 4.581
- Gemeenten & districten
- 13.000+
- Benoemde plekken op de maan
- 2.022
- Regels Swift en Kotlin
- 181.000
- API-endpoints, met 156 tests
- 89
Beeld







Het resultaat
Sinds 1 september 2026 live in de App Store, gebouwd vanaf een lege map in juni. De app draait op elke iPhone met iOS 18 en verder — geen toestel uitgesloten voor de mooiste mist — en app en site spreken zes talen: Nederlands, Engels, Duits, Frans, Noors en Chinees.
Het speelveld beslaat 217 landen, 4.581 streken en ruim 13.000 gemeenten en districten, plus 2.022 benoemde plekken op de maan. Onder de motorkap: ruim 82.000 regels Swift en 98.000 regels Kotlin, met een backend op Fastify en PostgreSQL die 89 endpoints aanbiedt, gedekt door 156 tests. De Android-versie loopt mee richting Google Play.
Techniek
- Swift 6
- SwiftUI
- SwiftData
- MapKit
- Metal
- Core Location
- Core Haptics
- CloudKit
- StoreKit 2
- WidgetKit
- CarPlay
- App Attest
- Kotlin
- Jetpack Compose
- Room
- osmdroid
- Node.js
- Fastify
- PostgreSQL
- WebSockets
- APNs
- React
- Vite
- MapLibre GL
- H3 hex-grid
Meer werk van RULIDO
- MPLS Keuken — Het keukenscherm van de horeca, op een tablet aan de muur
- OkiSign — Documenten digitaal laten ondertekenen, met bewijs dat een audit doorstaat
- Okidrop — Bestanden en wachtwoorden delen via een link die zichzelf opruimt
- Okidoky — Een huishoudboekje dat je samen bijhoudt, op elk apparaat
- VDG Advies — De site waarmee een adviesbureau zijn advies verkoopt, uitvraagt en aflevert
- OKIDO Backup — Vijfhonderd kassa's, één scherm dat zegt waar het misging
- OkiShare: Eenvoudig HTML Delen & Beheren — Efficiënt HTML delen met gebruikersbeheer
- MijnPCwinkel.nl — PC Configurator & Webshop
Wat RULIDO doet
- Webdesign — Moderne, responsive websites die aansluiten op jouw merk en doelen – perfect op mobiel, ta
- Hosting — Snel, veilig en stabiel. Inclusief SSL, automatische back-ups en monitoring voor maximale
- Mailservice — Professionele e-mail op je eigen domein. Veilige opslag, spamfilter en gesynchroniseerd op
- Service & Ondersteuning — Updates, monitoring en snelle hulp. Direct contact zonder wachtrijen, we denken proactief
- Software Development — Heb je een idee in je hoofd? Wij bouwen het. Van workflow-automatisering tot complete weba
- Games & Apps — Games en apps voor iPhone en iPad. Van concept en design tot publicatie in de App Store —
- Maatwerk CMS — Een complete website met beheeromgeving op maat. Zelf content aanpassen zonder technische
- Workflows & Automatisering — Terugkerend handwerk automatiseren. Koppelingen tussen systemen, slimme workflows en dashb
- Softwarelicenties & Onderhoud — Heldere licentie-afspraken en onderhoudscontracten. Zo blijft je software veilig, actueel
- Alle projecten
- Contact opnemen