I Built a Flutter App for Delhi Metro Riders

An app that instantly shows the best Delhi Metro route. Unlike others, it remembers your last stations and displays the route immediately on reopen.

What is the problem I faced in existing apps

I built an app that instantly shows the best route in the Delhi Metro between two stations. In existing apps, every time I open them, they ask me to select the start and end stations again, which feels unnecessary. So I built my app to show the previously selected route instantly when the user reopens it, without needing to re-enter the stations. That’s why I made this app. You can check it out here: https://dillimetro.com/

Screenshots of version 3.1.5

How I made

I built it using Flutter, with the Hono framework on the backend and an SQL database. I also created a Next.js website for SEO. I use Firebase Analytics and AdMob for ads, and Cloudflare as the CDN. The app is published on both Android and iOS.

What are some features of this Metro Navigator

  1. As mentioned, it preserves the last searched route and shows it immediately when the app opens, so users don’t have to type it again.
  2. Another issue I faced in other apps is that you have to press an extra button after selecting both the start and end stations to search for the route, but this app searches immediately when you select a single station.
  3. Imagine you’re travelling and someone asks for help finding a route. Helping them could make you lose your current route—but this app lets you search multiple routes at the same time without affecting your own.
  4. This app shows nearby places along the route beside each station. The data is fetched from an API and cached for a while (I forgot the exact duration). This endpoint is also cached at the edge to save bandwidth when serving multiple devices.
  5. When you click on a station along the route, the app shows nearby places in card format with short excerpts. When you tap a card, it opens detailed information. We cache the card data at the edge and cache the detailed data and images on the device (forever).