PageSourceSearch

https://trains.fyi/_next/static/chunks/pages/apps-06b83f81eaabcac2.js

js trains.fyi collected 2026-09-24 09:54:41 UTC 6,549 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3880],{5628:(e,a,t)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/apps",function(){return t(37947)}])},37947:(e,a,t)=>{"use strict";t.r(a),t.d(a,{default:()=>h});var s=t(37876),r=t(14232),l=t(49915),n=t(85392),i=t(74),c=t(93408),o=t(73865);let d=({className:e="w-8 h-8 flex-shrink-0"})=>(0,s.jsx)("svg",{className:e,viewBox:"0 0 384 512","aria-hidden":"true",children:(0,s.jsx)("path",{fill:"currentColor",d:"M318.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C63.3 141.2 4 184.8 4 273.5q0 39.3 14.4 81.2c12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z"})}),p=({className:e="w-8 h-8 flex-shrink-0"})=>(0,s.jsxs)("svg",{className:e,viewBox:"30 336.7 120.9 129.2","aria-hidden":"true",children:[(0,s.jsx)("path",{fill:"#FFD400",d:"M119.2,421.2c15.3-8.4,27-14.8,28-15.3c3.2-1.7,6.5-6.2,0-9.7c-2.1-1.1-13.4-7.3-28-15.3l-20.1,20.2L119.2,421.2z"}),(0,s.jsx)("path",{fill:"#FF3333",d:"M99.1,401.1l-64.2,64.7c1.5,0.2,3.2-0.2,5.2-1.3c4.2-2.3,48.8-26.7,79.1-43.3L99.1,401.1L99.1,401.1z"}),(0,s.jsx)("path",{fill:"#48FF48",d:"M99.1,401.1l20.1-20.2c0,0-74.6-40.7-79.1-43.1c-1.7-1-3.6-1.3-5.3-1L99.1,401.1z"}),(0,s.jsx)("path",{fill:"#3BCCFF",d:"M99.1,401.1l-64.3-64.3c-2.6,0.6-4.8,2.9-4.8,7.6c0,7.5,0,107.5,0,113.8c0,4.3,1.7,7.4,4.9,7.7L99.1,401.1z"})]});function h(){let{t:e}=(0,o.B)();(0,r.useEffect)(()=>{window.gtag&&window.gtag("event","page_view",{page_title:"Apps | trains.fyi",page_location:window.location.href,page_path:"/apps/"})},[]);let a=[{name:e("appIPhoneIPadName"),description:e("appIPhoneIPadDesc"),href:"/ios/",buttonLabel:e("downloadOnThe"),buttonTarget:e("appStore"),Icon:d,buttonClass:"bg-black text-white hover:bg-gray-800"},{name:e("appAppleTVName"),description:e("appAppleTVDesc"),href:"/appletv/",buttonLabel:e("appAppleTVButtonLabel"),buttonTarget:e("appAppleTVName"),Icon:d,buttonClass:"bg-black text-white hover:bg-gray-800"},{name:e("appAndroidName"),description:e("appAndroidDesc"),href:"/android/",buttonLabel:e("getItOn").toUpperCase(),buttonTarget:e("googlePlay"),Icon:p,buttonClass:"bg-white text-black border-2 border-black hover:bg-gray-50"}],t=[{name:e("appsTitle"),href:"/apps",current:!0}];return(0,s.jsxs)("div",{className:"bg-white",children:[(0,s.jsx)(c.A,{title:"Apps | trains.fyi",description:"Download trains.fyi for iPhone, iPad, and Apple TV. Android coming soon.",canonical:"/apps/",image:"/social.png",type:"website",keywords:"trains.fyi app, iOS train app, Apple TV train app, Android train tracker"}),(0,s.jsx)(i.A,{}),(0,s.jsxs)("main",{className:"mx-auto max-w-7xl px-4 sm:px-6 lg:px-8",children:[(0,s.jsx)("div",{className:"py-4",children:(0,s.jsx)(l.A,{pages:t})}),(0,s.jsxs)("div",{className:"my-8",children:[(0,s.jsx)("h1",{className:"text-5xl font-bold mb-4 text-gray-900",children:e("appsTitle")}),(0,s.jsx)("div",{className:"text-xl text-gray-500",children:e("appsSubtitle")})]}),(0,s.jsx)("div",{className:"py-4",children:(0,s.jsx)("div",{className:"grid gap-8 sm:grid-cols-2 lg:grid-cols-3 mb-16",children:a.map(e=>{let a=e.Icon;return(0,s.jsxs)("div",{className:"flex flex-col rounded-2xl border border-gray-200 bg-white p-8 shadow-sm hover:shadow-md transition-shadow",children:[(0,s.jsx)("div",{className:"flex items-center justify-center h-20 w-20 rounded-2xl bg-gray-100 mb-6",children:(0,s.jsx)(a,{className:"h-10 w-10 text-gray-900"})}),(0,s.jsx)("h2",{className:"text-2xl font-bold text-gray-900 mb-2",children:e.name}),(0,s.jsx)("p",{className:"text-gray-500 mb-6 flex-grow",children:e.description}),(0,s.jsxs)("a",{href:e.href,target:"_blank",rel:"noopener noreferrer",className:`flex items-center justify-center gap-3 py-3 px-5 rounded-xl font-semibold transition-colors ${e.buttonClass}`,children:[(0,s.jsx)(a,{className:"w-7 h-7 flex-shrink-0"}),(0,s.jsxs)("div",{className:"text-left whitespace-nowrap",children:[(0,s.jsx)("div",{className:"text-[10px] leading-tight font-normal",children:e.buttonLabel}),(0,s.jsx)("div",{className:"text-sm font-bold leading-tight",children:e.buttonTarget})]})]})]},e.name)})})})]}),(0,s.jsx)(n.A,{})]})}},49915:(e,a,t)=>{"use strict";t.d(a,{A:()=>i});var s=t(37876),r=t(60570),l=t(48230),n=t.n(l);function i({pages:e}){return(0,s.jsx)("nav",{"aria-label":"Breadcrumb",className:"flex",children:(0,s.jsxs)("ol",{role:"list",className:"flex items-center space-x-4 pt-6",children:[(0,s.jsx)("li",{children:(0,s.jsx)("div",{children:(0,s.jsxs)(n(),{href:"/",className:"text-gray-400 hover:text-gray-500",children:[(0,s.jsx)(r.A,{"aria-hidden":"true",className:"h-5 w-5 flex-shrink-0"}),(0,s.jsx)("span",{className:"sr-only",children:"Home"})]})})}),e.map(e=>(0,s.jsx)("li",{children:(0,s.jsxs)("div",{className:"flex items-center",children:[(0,s.jsx)("svg",{fill:"currentColor",viewBox:"0 0 20 20","aria-hidden":"true",className:"h-5 w-5 flex-shrink-0 text-gray-300",children:(0,s.jsx)("path",{d:"M5.555 17.776l8-16 .894.448-8 16-.894-.448z"})}),(0,s.jsx)(n(),{href:e.href,"aria-current":e.current?"page":void 0,className:"ml-4 text-sm font-medium text-gray-500 hover:text-gray-700",children:e.name})]})},e.name))]})})}},60570:(e,a,t)=>{"use strict";t.d(a,{A:()=>r});var s=t(14232);let r=s.forwardRef(function({title:e,titleId:a,...t},r){return s.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":a},t),e?s.createElement("title",{id:a},e):null,s.createElement("path",{fillRule:"evenodd",d:"M9.293 2.293a1 1 0 0 1 1.414 0l7 7A1 1 0 0 1 17 11h-1v6a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1v-3a1 1 0 0 0-1-1H9a1 1 0 0 0-1 1v3a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-6H3a1 1 0 0 1-.707-1.707l7-7Z",clipRule:"evenodd"}))})},77808:(e,a,t)=>{"use strict";t.d(a,{A:()=>r});var s=t(14232);let r=s.forwardRef(function({title:e,titleId:a,...t},r){return s.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":a},t),e?s.createElement("title",{id:a},e):null,s.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4.5 10.5 12 3m0 0 7.5 7.5M12 3v18"}))})}},e=>{e.O(0,[6701,3927,2325,3990,8447,5392,636,6593,8792],()=>e(e.s=5628)),_N_E=e.O()}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.