<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
  xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
  xmlns:media="http://search.yahoo.com/mrss/"
  >
  <channel>
    <title>InTransit Blog</title>
    <link>https://intransit.app/</link>
    <description><![CDATA[
      Smarter Metro Mobility for India
    ]]></description>
    <pubDate>Tue, 10 Nov 2026 15:30:00 GMT</pubDate>
    <language>en</language>
    <image>
      <url>https://intransit.app/assets/images/appicon/appicon@2x.png</url>
      <title>InTransit Blog</title>
      <link>https://intransit.app/</link>
      <width>128</width>
      <height>128</height>
    </image>
    <link rel="self" href="https://intransit.app/feed.xml" xmlns="http://www.w3.org/2005/Atom"/>
    <link rel="hub" href="https://websubhub.com/hub" xmlns="http://www.w3.org/2005/Atom"/>
    <item>
      <title>The Nucleon Update ‒ v2026.11</title>
      <link>https://intransit.app/posts/2026-11-10/nucleon-release/</link>
      <guid isPermaLink="true">https://intransit.app/posts/2026-11-10/nucleon-release/</guid>
      <description><![CDATA[
      <p>In March when I first released InTransit to the public, people were thrilled to see a modern metro transit app made specifically for India. Nobody had ever attempted this before, and of course I was foolish as ever to think I can do this. Well, I did, and it worked, and as a proof-of-concept that this is something people would use, it made sense to invest some more time in the app and improve how it works.</p>
<p>So once I had completed all my iOS 27 and iPhone Duo updates for <a href="https://elytra.app/">Elytra</a> and <a href="https://pockity.app/">Pockity</a>, I spent three works re-designing every single screen in InTransit, removing a lot of cruft from the app and polish up all the rough edges (there were so many!)</p>
<p>For this redesign, I decided to try the <a href="https://atomicdesign.bradfrost.com/chapter-2/">Atomic Design</a> method popularized by Brad Frost. I built several small components (atoms), gradually composing them into larger components (molecules). I then skipped the &quot;organisms&quot; step, directly jumping to templates and pages as Brad describes in his document.</p>
<picture>
  <source media="(max-width: 600px) and (prefers-color-scheme: dark)" srcset="https://intransit.app/assets/images/posts/20261110/atoms-dark-400w.webp 1x, https://intransit.app/assets/images/posts/20261110/atoms-dark-800w.webp 2x, https://intransit.app/assets/images/posts/20261110/atoms-dark-1200w.webp 3x" width="402" height="1938" type="image/webp" />
  <source media="(min-width: 601px) and (max-width: 800px) and (prefers-color-scheme: dark)" srcset="https://intransit.app/assets/images/posts/20261110/atoms-dark-800w.webp 1x, https://intransit.app/assets/images/posts/20261110/atoms-dark-1600w.webp 2x, https://intransit.app/assets/images/posts/20261110/atoms-dark@3x.webp 3x" width="402" height="1938" type="image/webp" />
  <source media="(prefers-color-scheme: dark)" type="image/webp" srcset="https://intransit.app/assets/images/posts/20261110/atoms-dark.webp 1x, https://intransit.app/assets/images/posts/20261110/atoms-dark@2x.webp 2x, https://intransit.app/assets/images/posts/20261110/atoms-dark@3x.webp 3x" width="402" height="1938" />
  <source media="(max-width: 600px)" srcset="https://intransit.app/assets/images/posts/20261110/atoms-400w.webp 1x, https://intransit.app/assets/images/posts/20261110/atoms-800w.webp 2x, https://intransit.app/assets/images/posts/20261110/atoms-1200w.webp 3x" type="image/webp" />
  <source media="(min-width: 601px) and (max-width: 800px)" srcset="https://intransit.app/assets/images/posts/20261110/atoms-800w.webp 1x, https://intransit.app/assets/images/posts/20261110/atoms-1600w.webp 2x, https://intransit.app/assets/images/posts/20261110/atoms@3x.webp 3x" type="image/webp" />
  <source type="image/webp" srcset="https://intransit.app/assets/images/posts/20261110/atoms.webp 1x, https://intransit.app/assets/images/posts/20261110/atoms@2x.webp 2x, https://intransit.app/assets/images/posts/20261110/atoms@3x.webp 3x" />
  <img src="https://intransit.app/assets/images/posts/20261110/atoms.webp" srcset="https://intransit.app/assets/images/posts/20261110/atoms@2x.webp 2x, https://intransit.app/assets/images/posts/20261110/atoms@3x.webp 3x" alt="The atoms of the InTransit redesign: the small components that the larger components are built from" loading="lazy" width="402" height="1918" style="border-radius: 8px; max-width: 100%; height: auto;" />
</picture>
<p>Something else I focused early on were the micro and macro interactions for these molecules. However, unnecessary motion sometimes introduces additional cognitive load for some people. While most people who go through this have &quot;Reduced Motion&quot; enabled on their iPhones, some don't. So to be careful as to not overdo any of the interaction animations, I kept them intentionally subtle.</p>
<blockquote>
<p>You'll miss it if you blink… and that's okay</p>
</blockquote>
<p>None of these interaction animations convey state, they only animate a molecule from one state to another.</p>
<picture>
  <source media="(max-width: 600px) and (prefers-color-scheme: dark)" srcset="https://intransit.app/assets/images/posts/20261110/molecules-dark-400w.webp 1x, https://intransit.app/assets/images/posts/20261110/molecules-dark-800w.webp 2x, https://intransit.app/assets/images/posts/20261110/molecules-dark-1200w.webp 3x" width="402" height="1518" type="image/webp" />
  <source media="(min-width: 601px) and (max-width: 800px) and (prefers-color-scheme: dark)" srcset="https://intransit.app/assets/images/posts/20261110/molecules-dark-800w.webp 1x, https://intransit.app/assets/images/posts/20261110/molecules-dark-1600w.webp 2x, https://intransit.app/assets/images/posts/20261110/molecules-dark@3x.webp 3x" width="402" height="1518" type="image/webp" />
  <source media="(prefers-color-scheme: dark)" type="image/webp" srcset="https://intransit.app/assets/images/posts/20261110/molecules-dark.webp 1x, https://intransit.app/assets/images/posts/20261110/molecules-dark@2x.webp 2x, https://intransit.app/assets/images/posts/20261110/molecules-dark@3x.webp 3x" width="402" height="1518" />
  <source media="(max-width: 600px)" srcset="https://intransit.app/assets/images/posts/20261110/molecules-400w.webp 1x, https://intransit.app/assets/images/posts/20261110/molecules-800w.webp 2x, https://intransit.app/assets/images/posts/20261110/molecules-1200w.webp 3x" type="image/webp" />
  <source media="(min-width: 601px) and (max-width: 800px)" srcset="https://intransit.app/assets/images/posts/20261110/molecules-800w.webp 1x, https://intransit.app/assets/images/posts/20261110/molecules-1600w.webp 2x, https://intransit.app/assets/images/posts/20261110/molecules@3x.webp 3x" type="image/webp" />
  <source type="image/webp" srcset="https://intransit.app/assets/images/posts/20261110/molecules.webp 1x, https://intransit.app/assets/images/posts/20261110/molecules@2x.webp 2x, https://intransit.app/assets/images/posts/20261110/molecules@3x.webp 3x" />
  <img src="https://intransit.app/assets/images/posts/20261110/molecules.webp" srcset="https://intransit.app/assets/images/posts/20261110/molecules@2x.webp 2x, https://intransit.app/assets/images/posts/20261110/molecules@3x.webp 3x" alt="The molecules of the InTransit redesign: larger components composed from the atoms" loading="lazy" width="402" height="1532" style="border-radius: 8px; max-width: 100%; height: auto;" />
</picture>
<p>Once these were composed, I wanted to then do a few critical things that always kept me from using InTransit properly, and so naturally other users definitely found it annoying too:</p>
<ul>
<li><strong>Search for stations</strong>: This was needlessly separated into Stations and Places. The user would need to be mindful of which section they are searching in. Never a good idea. The new design unifies both, matches the name directly, and if nothing matches, it immediately begins to searching for places.</li>
<li><strong>Configuring a ride</strong>: My second pain point: Selecting the departure and arrival stations quickly enough, that I can figure out my next <em>steps</em> in the real world based on the timing information. This is only possible if most of this information is presented to me upfront: i.e. no swiping, no taps, nothing. The app must recognize intent, not just taps.</li>
<li><strong>The Journey</strong>: A lot of stations in India which are above ground are thick metal cages, leading to loss of GPS accuracy. This makes it hard for the app to determine if the user is actually at the station platform, outside of it, or somewhere else entirely. Determining this becomes harder still for underground stations. v2026.9 of InTransit employed motion detection to understand if you're walking or running towards the platform, or if you're in the metro carriages and moving towards your destination. v2026.11 now also uses the same technique to auto-start the journey for you.</li>
<li><strong>Better Timings</strong>: Metro corporations across regions will have different timings, and special timings during civic holidays and festivities. A new timings system coordinates with these dynamic timings and I'll be putting more effort towards improving this information and data.</li>
</ul>
<div>
<video width="382" height="140" poster="https://intransit.app/assets/images/posts/20261110/stations-switch-poster.webp" muted="" loop="" playsinline="" controls="" preload="metadata" aria-label="Switching the departure and arrival stations in InTransit" data-motion-video="" style="display: block; border-radius: 8px; max-width: 100%; height: auto;">
  <source src="https://intransit.app/assets/images/posts/20261110/stations-switch-hevc.mp4" type="video/mp4; codecs=&quot;hvc1.2.4.L90.B0&quot;" />
  <source src="https://intransit.app/assets/images/posts/20261110/stations-switch-av1.mp4" type="video/mp4; codecs=&quot;av01.0.04M.10&quot;" />
</video>
<script>
  (() => {
    // Each video of this partial has a copy of this script. The first copy that runs takes each
    // video that is on the page; the copies after it find nothing new.
    if (window.matchMedia("(prefers-reduced-motion: reduce)").matches) {
      return;
    }
    for (const video of document.querySelectorAll("video[data-motion-video]:not([data-motion-ready])")) {
      video.dataset.motionReady = "";
      video.controls = false;
      video.autoplay = true;
      video.play().catch(() => {
        // The browser did not let it play by itself. The controls let the reader play it.
        video.controls = true;
      });
    }
  })();
</script>
</div>
<div>
<video width="402" height="874" poster="https://intransit.app/assets/images/posts/20261110/trip-map-poster.webp" muted="" loop="" playsinline="" controls="" preload="metadata" aria-label="The map following a trip from Kalyani Nagar in InTransit, above the trip details" data-motion-video="" style="display: block; border-radius: 8px; max-width: 100%; height: auto;">
  <source src="https://intransit.app/assets/images/posts/20261110/trip-map-hevc.mp4" type="video/mp4; codecs=&quot;hvc1.2.4.L123.B0&quot;" />
  <source src="https://intransit.app/assets/images/posts/20261110/trip-map-av1.mp4" type="video/mp4; codecs=&quot;av01.0.09M.10&quot;" />
</video>
<script>
  (() => {
    // Each video of this partial has a copy of this script. The first copy that runs takes each
    // video that is on the page; the copies after it find nothing new.
    if (window.matchMedia("(prefers-reduced-motion: reduce)").matches) {
      return;
    }
    for (const video of document.querySelectorAll("video[data-motion-video]:not([data-motion-ready])")) {
      video.dataset.motionReady = "";
      video.controls = false;
      video.autoplay = true;
      video.play().catch(() => {
        // The browser did not let it play by itself. The controls let the reader play it.
        video.controls = true;
      });
    }
  })();
</script>
</div>
<div>
<video width="402" height="544" poster="https://intransit.app/assets/images/posts/20261110/end-trip-poster.webp" muted="" loop="" playsinline="" controls="" preload="metadata" aria-label="Ending a trip in InTransit, then opening the trip details" data-motion-video="" style="display: block; border-radius: 8px; max-width: 100%; height: auto;">
  <source src="https://intransit.app/assets/images/posts/20261110/end-trip-hevc.mp4" type="video/mp4; codecs=&quot;hvc1.2.4.L120.B0&quot;" />
  <source src="https://intransit.app/assets/images/posts/20261110/end-trip-av1.mp4" type="video/mp4; codecs=&quot;av01.0.08M.10&quot;" />
</video>
<script>
  (() => {
    // Each video of this partial has a copy of this script. The first copy that runs takes each
    // video that is on the page; the copies after it find nothing new.
    if (window.matchMedia("(prefers-reduced-motion: reduce)").matches) {
      return;
    }
    for (const video of document.querySelectorAll("video[data-motion-video]:not([data-motion-ready])")) {
      video.dataset.motionReady = "";
      video.controls = false;
      video.autoplay = true;
      video.play().catch(() => {
        // The browser did not let it play by itself. The controls let the reader play it.
        video.controls = true;
      });
    }
  })();
</script>
</div>
<p>InTransit's new design was built on top of these foundational molecules and organisms. The new design speaks for itself, feels fresh and causes less cognitive load while interacting with it. It is also now more robust than ever at handling complex inter-line transits.</p>
<aside>You may have also noted some common elements from <a href="https://pockity.app/ios" target="_blank" title="Pockity for iOS, iPadOS, and watchOS">Pockity</a> used in InTransit. Helps to have a shared UI library of components.</aside>
<p>Thank you for reading this far, if you haven't already do check out the update on the <a href="https://apps.apple.com/us/app/intransit/id6756531079">AppStore</a>, and at the time of writing, it's the only app showing the newly active Pink Line from Pune 😉</p>
<hr />
<p>For those curious about how the two designs and layouts compare, here's a full chart for your exploration:</p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Old</th>
<th>New</th>
</tr>
</thead>
<tbody>
<tr>
<td>Map</td>
<td><img src="https://intransit.app/assets/images/posts/20261110/compare/map-old-200w.webp" srcset="https://intransit.app/assets/images/posts/20261110/compare/map-old-200w.webp 200w, https://intransit.app/assets/images/posts/20261110/compare/map-old-400w.webp 400w" sizes="200px" width="200" height="435" alt="The map in the old design of InTransit" loading="lazy" decoding="async" style="border-radius: 8px; max-width: 100%; height: auto;" /></td>
<td><img src="https://intransit.app/assets/images/posts/20261110/compare/map-new-200w.webp" srcset="https://intransit.app/assets/images/posts/20261110/compare/map-new-200w.webp 200w, https://intransit.app/assets/images/posts/20261110/compare/map-new-400w.webp 400w" sizes="200px" width="200" height="435" alt="The map in the new design of InTransit" loading="lazy" decoding="async" style="border-radius: 8px; max-width: 100%; height: auto;" /></td>
</tr>
<tr>
<td>Search</td>
<td><img src="https://intransit.app/assets/images/posts/20261110/compare/search-old-200w.webp" srcset="https://intransit.app/assets/images/posts/20261110/compare/search-old-200w.webp 200w, https://intransit.app/assets/images/posts/20261110/compare/search-old-400w.webp 400w" sizes="200px" width="200" height="435" alt="Search in the old design of InTransit" loading="lazy" decoding="async" style="border-radius: 8px; max-width: 100%; height: auto;" /></td>
<td><img src="https://intransit.app/assets/images/posts/20261110/compare/search-new-200w.webp" srcset="https://intransit.app/assets/images/posts/20261110/compare/search-new-200w.webp 200w, https://intransit.app/assets/images/posts/20261110/compare/search-new-400w.webp 400w" sizes="200px" width="200" height="435" alt="Search in the new design of InTransit" loading="lazy" decoding="async" style="border-radius: 8px; max-width: 100%; height: auto;" /></td>
</tr>
<tr>
<td>Station Details</td>
<td><img src="https://intransit.app/assets/images/posts/20261110/compare/station-details-old-200w.webp" srcset="https://intransit.app/assets/images/posts/20261110/compare/station-details-old-200w.webp 200w, https://intransit.app/assets/images/posts/20261110/compare/station-details-old-400w.webp 400w" sizes="200px" width="200" height="435" alt="Station details for Kalyani Nagar in the old design of InTransit" loading="lazy" decoding="async" style="border-radius: 8px; max-width: 100%; height: auto;" /></td>
<td><img src="https://intransit.app/assets/images/posts/20261110/compare/station-details-new-200w.webp" srcset="https://intransit.app/assets/images/posts/20261110/compare/station-details-new-200w.webp 200w, https://intransit.app/assets/images/posts/20261110/compare/station-details-new-400w.webp 400w" sizes="200px" width="200" height="435" alt="Station details for Kalyani Nagar in the new design of InTransit" loading="lazy" decoding="async" style="border-radius: 8px; max-width: 100%; height: auto;" /></td>
</tr>
<tr>
<td>Configuring a Ride</td>
<td><img src="https://intransit.app/assets/images/posts/20261110/compare/ride-setup-old-200w.webp" srcset="https://intransit.app/assets/images/posts/20261110/compare/ride-setup-old-200w.webp 200w, https://intransit.app/assets/images/posts/20261110/compare/ride-setup-old-400w.webp 400w" sizes="200px" width="200" height="435" alt="Choosing the departure and arrival stations in the old design of InTransit" loading="lazy" decoding="async" style="border-radius: 8px; max-width: 100%; height: auto;" /></td>
<td><img src="https://intransit.app/assets/images/posts/20261110/compare/ride-setup-new-200w.webp" srcset="https://intransit.app/assets/images/posts/20261110/compare/ride-setup-new-200w.webp 200w, https://intransit.app/assets/images/posts/20261110/compare/ride-setup-new-400w.webp 400w" sizes="200px" width="200" height="435" alt="Choosing the departure and arrival stations in the new design of InTransit" loading="lazy" decoding="async" style="border-radius: 8px; max-width: 100%; height: auto;" /></td>
</tr>
<tr>
<td>Route Info</td>
<td><img src="https://intransit.app/assets/images/posts/20261110/compare/route-info-old-200w.webp" srcset="https://intransit.app/assets/images/posts/20261110/compare/route-info-old-200w.webp 200w, https://intransit.app/assets/images/posts/20261110/compare/route-info-old-400w.webp 400w" sizes="200px" width="200" height="435" alt="Route information in the old design of InTransit" loading="lazy" decoding="async" style="border-radius: 8px; max-width: 100%; height: auto;" /></td>
<td><img src="https://intransit.app/assets/images/posts/20261110/compare/route-info-new-200w.webp" srcset="https://intransit.app/assets/images/posts/20261110/compare/route-info-new-200w.webp 200w, https://intransit.app/assets/images/posts/20261110/compare/route-info-new-400w.webp 400w" sizes="200px" width="200" height="435" alt="Route information in the new design of InTransit" loading="lazy" decoding="async" style="border-radius: 8px; max-width: 100%; height: auto;" /></td>
</tr>
<tr>
<td>Trip Details</td>
<td><img src="https://intransit.app/assets/images/posts/20261110/compare/trip-details-old-200w.webp" srcset="https://intransit.app/assets/images/posts/20261110/compare/trip-details-old-200w.webp 200w, https://intransit.app/assets/images/posts/20261110/compare/trip-details-old-400w.webp 400w" sizes="200px" width="200" height="435" alt="Trip details during a ride in the old design of InTransit" loading="lazy" decoding="async" style="border-radius: 8px; max-width: 100%; height: auto;" /></td>
<td><img src="https://intransit.app/assets/images/posts/20261110/compare/trip-details-new-200w.webp" srcset="https://intransit.app/assets/images/posts/20261110/compare/trip-details-new-200w.webp 200w, https://intransit.app/assets/images/posts/20261110/compare/trip-details-new-400w.webp 400w" sizes="200px" width="200" height="435" alt="Trip details during a ride in the new design of InTransit" loading="lazy" decoding="async" style="border-radius: 8px; max-width: 100%; height: auto;" /></td>
</tr>
<tr>
<td>Live Activity</td>
<td><img src="https://intransit.app/assets/images/posts/20261110/compare/live-activity-old-200w.webp" srcset="https://intransit.app/assets/images/posts/20261110/compare/live-activity-old-200w.webp 200w, https://intransit.app/assets/images/posts/20261110/compare/live-activity-old-400w.webp 400w" sizes="200px" width="200" height="435" alt="The Live Activity on the Lock Screen in the old design of InTransit" loading="lazy" decoding="async" style="border-radius: 8px; max-width: 100%; height: auto;" /></td>
<td><img src="https://intransit.app/assets/images/posts/20261110/compare/live-activity-new-200w.webp" srcset="https://intransit.app/assets/images/posts/20261110/compare/live-activity-new-200w.webp 200w, https://intransit.app/assets/images/posts/20261110/compare/live-activity-new-400w.webp 400w" sizes="200px" width="200" height="435" alt="The Live Activity on the Lock Screen in the new design of InTransit" loading="lazy" decoding="async" style="border-radius: 8px; max-width: 100%; height: auto;" /></td>
</tr>
<tr>
<td>End Trip</td>
<td><img src="https://intransit.app/assets/images/posts/20261110/compare/end-trip-old-200w.webp" srcset="https://intransit.app/assets/images/posts/20261110/compare/end-trip-old-200w.webp 200w, https://intransit.app/assets/images/posts/20261110/compare/end-trip-old-400w.webp 400w" sizes="200px" width="200" height="435" alt="The end of a trip in the old design of InTransit" loading="lazy" decoding="async" style="border-radius: 8px; max-width: 100%; height: auto;" /></td>
<td><img src="https://intransit.app/assets/images/posts/20261110/compare/end-trip-new-200w.webp" srcset="https://intransit.app/assets/images/posts/20261110/compare/end-trip-new-200w.webp 200w, https://intransit.app/assets/images/posts/20261110/compare/end-trip-new-400w.webp 400w" sizes="200px" width="200" height="435" alt="The end of a trip in the new design of InTransit" loading="lazy" decoding="async" style="border-radius: 8px; max-width: 100%; height: auto;" /></td>
</tr>
<tr>
<td>Travelogue</td>
<td><img src="https://intransit.app/assets/images/posts/20261110/compare/travelogue-old-200w.webp" srcset="https://intransit.app/assets/images/posts/20261110/compare/travelogue-old-200w.webp 200w, https://intransit.app/assets/images/posts/20261110/compare/travelogue-old-400w.webp 400w" sizes="200px" width="200" height="435" alt="The Travelogue in the old design of InTransit" loading="lazy" decoding="async" style="border-radius: 8px; max-width: 100%; height: auto;" /></td>
<td><img src="https://intransit.app/assets/images/posts/20261110/compare/travelogue-new-200w.webp" srcset="https://intransit.app/assets/images/posts/20261110/compare/travelogue-new-200w.webp 200w, https://intransit.app/assets/images/posts/20261110/compare/travelogue-new-400w.webp 400w" sizes="200px" width="200" height="435" alt="The Travelogue in the new design of InTransit" loading="lazy" decoding="async" style="border-radius: 8px; max-width: 100%; height: auto;" /></td>
</tr>
</tbody>
</table>

      ]]></description>
      <pubDate>Tue, 10 Nov 2026 15:30:00 GMT</pubDate>
      <author>support@intransit.app (Nikhil)</author><media:content url="https://intransit.app/assets/images/posts/20261110/banner-1600w.webp" type="image/webp" medium="image" lang="en"/></item>
    <item>
      <title>The Luna Update ‒ v2026.9 Release</title>
      <link>https://intransit.app/posts/2026-09-14/release/</link>
      <guid isPermaLink="true">https://intransit.app/posts/2026-09-14/release/</guid>
      <description><![CDATA[
      <p>The 2026 monsoon has been interesting for me in many ways, and one of them was finding myself preferring metro transit over everything else, because of how bad the roads are right now .</p>
<p>That made me, and several of y’all, use InTransit 4× as much than the summer! And with that in mind, since WWDC 26, I’ve been thinking about and reimagining how InTransit is used by users and how it can be improved for the iOS 27 release!</p>
<p>Today, a new update for InTransit launches on the <a href="https://apps.apple.com/in/app/intransit/id6756531079">AppStore</a>, and it brings a lot of improvements to the UI, as well as, improvements to the how the app functions.</p>
<h2>Live Activity</h2>
<picture>
  <source media="(max-width: 600px)" srcset="https://intransit.app/assets/images/posts/20260914/live-activity-400w.webp 1x, https://intransit.app/assets/images/posts/20260914/live-activity-800w.webp 2x, https://intransit.app/assets/images/posts/20260914/live-activity-1200w.webp 3x" type="image/webp" />
  <source media="(min-width: 601px) and (max-width: 800px)" srcset="https://intransit.app/assets/images/posts/20260914/live-activity-800w.webp 1x, https://intransit.app/assets/images/posts/20260914/live-activity-1600w.webp 2x, https://intransit.app/assets/images/posts/20260914/live-activity@3x.webp 3x" type="image/webp" />
  <source type="image/webp" srcset="https://intransit.app/assets/images/posts/20260914/live-activity.webp 1x, https://intransit.app/assets/images/posts/20260914/live-activity@2x.webp 2x, https://intransit.app/assets/images/posts/20260914/live-activity@3x.webp 3x" />
  <img src="https://intransit.app/assets/images/posts/20260914/live-activity.webp" srcset="https://intransit.app/assets/images/posts/20260914/live-activity@2x.webp 2x, https://intransit.app/assets/images/posts/20260914/live-activity@3x.webp 3x" alt="Live Activity for a journey in InTransit" loading="lazy" width="1025" height="996" style="border-radius: 8px; max-width: 100%; height: auto;" />
</picture>
<p>One of the better improvements is coming to the Live Activity, which now adopts the glass look, but retains its full character by blending colours between the departure and arrival stations.</p>
<p>This isn’t just a random gradient slapped on the glass with a left-to-right, from-to, logic. It’s a lot more nuanced, especially for blending colours between non-contigous hues. Apple already provides tools for doing this correctly, and InTransit leans into that to provide you the best experience.</p>
<h2>Journey Details</h2>
<picture>
  <source media="(max-width: 600px)" srcset="https://intransit.app/assets/images/posts/20260914/journey-details-400w.webp 1x, https://intransit.app/assets/images/posts/20260914/journey-details-800w.webp 2x, https://intransit.app/assets/images/posts/20260914/journey-details-1200w.webp 3x" type="image/webp" />
  <source media="(min-width: 601px) and (max-width: 800px)" srcset="https://intransit.app/assets/images/posts/20260914/journey-details-800w.webp 1x, https://intransit.app/assets/images/posts/20260914/journey-details-1600w.webp 2x, https://intransit.app/assets/images/posts/20260914/journey-details@3x.webp 3x" type="image/webp" />
  <source type="image/webp" srcset="https://intransit.app/assets/images/posts/20260914/journey-details.webp 1x, https://intransit.app/assets/images/posts/20260914/journey-details@2x.webp 2x, https://intransit.app/assets/images/posts/20260914/journey-details@3x.webp 3x" />
  <img src="https://intransit.app/assets/images/posts/20260914/journey-details.webp" srcset="https://intransit.app/assets/images/posts/20260914/journey-details@2x.webp 2x, https://intransit.app/assets/images/posts/20260914/journey-details@3x.webp 3x" alt="Journey details cards in InTransit" loading="lazy" width="1025" height="996" style="border-radius: 8px; max-width: 100%; height: auto;" />
</picture>
<p>The journey is most the important part of metro transit, obviously. The Luna update brings improved visual cues to these cards.</p>
<p>Once you’re on boarded and on your way to the destination station, the Live Activity now pings you when next station approaches, so you need to check less, and continue to enjoy the music, the book, or just the chatter around you.</p>
<hr />
<p>Full changelog below:</p>
<h3>New</h3>
<ul>
<li>Significantly improved live tracking underground and in other low-signal areas: your progress, next station, and arrival are now tracked correctly through much longer stretches of poor GPS, falling back to your phone's motion sensors to keep boarding detection and your position on the map working when GPS alone isn't enough.</li>
<li>Added an estimated position marker on the map (shown with a dashed ring so it's clearly marked as an estimate) for when GPS signal drops out entirely.</li>
<li>Station search now groups results by metro line (sorted by distance) and adds a line filter bar, plus quick picks for your Home and Work stations.</li>
<li>Continued the visual refresh across the pre-boarding screen, in-navigation bar, bottom sheet, and station details, with improved color contrast, larger-text support, and VoiceOver labels throughout.</li>
<li>Added a way to back out of the From/To station confirmation screen.</li>
<li>Polished the onboarding experience with clearer messaging, full support for larger text sizes, and smoother animations for those who prefer reduced motion.</li>
</ul>
<h3>Improvements</h3>
<ul>
<li>The app now lets you know if background tracking can't stay active because &quot;Always Allow&quot; location access hasn't been granted, so you can fix it before your next trip.</li>
<li>Redesigned Travelogue into one unified screen — your trips, distance, time, lines ridden, badges, and environmental impact stats together in one place — with a new &quot;See All Trips&quot; screen and a route thumbnail on each trip.</li>
<li>Polished the Live Activity's colors and visual style, and fixed a display issue on Apple Watch.</li>
<li>Improved the reliability of live location tracking while navigating a route in the background, so your position on the map stays accurate for longer.</li>
<li>The app now asks for location access more thoughtfully — only requesting &quot;Always Allow&quot; permission when you actually start navigating a route.</li>
</ul>
<h3>Fixes</h3>
<ul>
<li>Fixed eco stats (CO2, energy, and trees saved) showing wildly inflated numbers, and a bug where the app could miss your final arrival on routes that include a walk to or from the station.</li>
<li>Fixed the &quot;Start&quot; journey button getting stuck disabled when boarding from a station with poor GPS reception.</li>
<li>Fixed a couple of crashes — one opening the search filter bar, another tied to loading your saved app data — plus a bug where filter buttons could trigger on their own without being tapped.</li>
</ul>

      ]]></description>
      <pubDate>Mon, 14 Sep 2026 04:00:00 GMT</pubDate>
      <author>support@intransit.app (Nikhil)</author><media:content url="https://intransit.app/assets/images/posts/20260914/banner-1600w.webp" type="image/webp" medium="image" lang="en"/></item>
    <item>
      <title>Hello, नमस्कार, ನಮಸ್ಕಾರ, வணக்கம்</title>
      <link>https://intransit.app/posts/2026-03-18/release/</link>
      <guid isPermaLink="true">https://intransit.app/posts/2026-03-18/release/</guid>
      <description><![CDATA[
      <p>Hello India! I'm so glad to be releasing InTransit to the wider public today on the App Store.</p>
<p>You can <a href="https://apps.apple.com/in/app/intransit/id6756531079">download it here</a>, right now, on your iPhone.</p>
<p>Based on some critiques and user feedback, I'm already working on an update, which should arrive by next week. Until then, enjoy your smarter, and now simpler metro travel.</p>
<p>Cheers 🎉</p>

      ]]></description>
      <pubDate>Wed, 18 Mar 2026 01:35:00 GMT</pubDate>
      <author>support@intransit.app (Nikhil)</author><media:content url="https://intransit.app/assets/images/posts/20260318/banner-1600w.webp" type="image/webp" medium="image" lang="en"/></item>
  </channel>
</rss>
