Tourguide
A cross-platform Flutter app that helps tourists navigate and learn about places along digitally guided tours. Available for Android and as a web app.

Type
Flutter App
Year
2024
Skills Applied
- Android
- UX / UI
Team
- Personal Project
Overview
While on vacation in Rome, I noticed a lack of services for self-guided tours that combine navigation and information about places. There are websites with suggested daily itineraries, wikipedia to learn about the history and more, and Google Maps supports adding a small number of places into a route, but there was no cohesive platform combining everything.
I had been wanting to try out the Flutter framework, and this seemed like the perfect opportunity to build a cross-platform app with it.
Tourguide is in beta on Google Play and as a web app.
Explore
Browse popular tours near you, around the world, or search for a place. Bookmark or download tours to run offline.
Tour
Run a tour and follow its route with directions and place descriptions which can be read out loud with text-to-speech.
Guide
Ask the AI guide about things to do and nearby tours. When running a tour, ask about more information on each stop and how to get there. Powered by Gemini through Firebase AI.
Settings
Manage app and profile settings, create tours, and other settings.
Development History
Offline tours - September 30, 2026
Tours on Android can now be saved for offline use. The cover and directions stay on the device, a tour can pick up after a restart, and if directions are missing it just draws a straight line. The web app stays online.
Guide - September 28, 2026
The chat became Guide: separate threads, questions from a preview or a running tour, and replies that can point at real tours. Gemini runs through Firebase AI, with Maps or Search grounding when it helps.
Explore, guests, and friends - September 2, 2026
Explore picked up search, and location is only requested when something actually needs it. Friends can join a live session and see each other on the map.
Web and TTS - October 2, 2024
Getting the web build to match Android meant routing directions through Cloud Functions and adapting layouts to more screen sizes. Tap-to-read text-to-speech came in at the same time. The missing web progress event went upstream to flutter_tts, and google_maps_custom_marker went up on pub.dev.
Web app - August 27, 2024
The web app went live. Flutter covered most of the port. Images, CORS, and wide screens were the parts that needed extra attention.
Material 3 - August 19, 2024
With open testing underway, the focus shifted to how the app looked. Styles now go through a theme provider, so the UI follows Material 3 and supports dark mode. That was worked out in Figma with the Material Theme Builder, along with a pass on the map while a tour is running.
Play beta and CI/CD - July 29, 2024
Open testing on Google Play was more than uploading a build. Reporting, account deletion, and legal pages had to be in place, with email and reports handled through Firebase extensions and Cloud Functions. After that, Fastlane and GitHub Actions took over deploys from main.
First build - July 10, 2024
The first version was Android: create a tour, browse them, chat with Gemini, and a profile, on Firebase plus Places, Maps, and Vertex AI. A web version was the plan after that. iOS only if people asked for it.
Questions or feedback: contact@tourguide.rmichels.com. Legal information: Privacy Policy and Terms of Service.






What I've learned so far
Flutter has been a delight to work with. I was previously working at Clirio, where I was creating complex UIs with C# in Unity, a setup that's not really ideal for creating complex UIs, even less so with Clirio's apps supporting VR, MR, touchscreens on iOS and Android, as well as Desktop, and catering UI for each of those platforms. In comparison to the challenges this posed, Flutter makes it a breeze to implement complex UIs across many devices, while also working with an intuitive architecture of Stateless- and StatefulWidgets, Providers, and a large amount of packages to help speed up common tasks.