1import{r,j as e,S as o,L as t,g as n,B as l}from"./index-CAhu_Re9.js";import{S as d}from"./SiteFooter-0Tla5dxW.js";function x(){return r.useEffect(()=>{const i=new IntersectionObserver(a=>a.forEach(s=>{s.isIntersecting&&s.target.classList.add("on")}),{threshold:.1,rootMargin:"0px 0px -40px 0px"});return document.querySelectorAll(".rv").forEach(a=>i.observe(a)),()=>i.disconnect()},[]),e.jsxs(e.Fragment,{children:[e.jsx(o,{}),e.jsxs("section",{className:"hero hero-plain",style:{paddingBottom:"40px",minHeight:"auto"},children:[e.jsx("div",{className:"blob blob-1"}),e.jsx("div",{className:"blob blob-2"}),e.jsx("div",{className:"hero-inner",style:{gridTemplateColumns:"1fr"},children:e.jsxs("div",{children:[e.jsxs("div",{className:"hero-badge",children:[e.jsx("div",{className:"badge-pulse"}),e.jsx("span",{className:"badge-text",children:"Service · Mobile development"})]}),e.jsxs("h1",{children:["Mobile app ",e.jsx("span",{className:"pill-word mx-0",children:"developers"}),"."]}),e.jsx("p",{className:"hero-sub",style:{marginTop:"18px",maxWidth:"760px"},children:"iOS, Android, and cross-platform engineers embedded in your team. From new builds to scaling apps that already have users."}),e.jsxs("div",{className:"hero-btns",style:{marginTop:"24px"},children:[e.jsx("button",{type:"button",onClick:()=>window.dispatchEvent(new Event("open-book-call")),className:"nav-cta",style:{border:"none",cursor:"pointer",font:"inherit"},children:"Book a call â"}),e.jsx(t,{to:"/projects",className:"nav-ghost",children:"See our work"})]})]})})]}),e.jsxs("section",{style:{padding:"20px 52px 60px",maxWidth:"1324px",margin:"0 auto"},children:[e.jsxs("div",{className:"rv eyebrow",children:[e.jsx("div",{className:"ew-dot"}),"What we build"]}),e.jsx("h2",{style:{fontFamily:"var(--font-display)",fontSize:"clamp(28px, 3vw, 40px)",lineHeight:1.15,fontWeight:800,color:"var(--ink)",marginTop:"10px",marginBottom:"16px"},children:"Native and cross-platform mobile apps"}),e.jsx("p",{style:{color:"var(--muted)",fontSize:"17px",lineHeight:1.7,maxWidth:"72ch"},children:"We place mobile engineers on both new builds and existing apps. Native iOS and Android when the product depends on platform-specific behaviour; Flutter or React Native when the same feature set has to ship on both stores from one codebase. The lifecycle we cover is the same either way â build, ship, iterate."})]}),e.jsx("section",{style:{padding:"60px 52px"},children:e.jsxs("div",{style:{maxWidth:"1220px",margin:"0 auto"},children:[e.jsxs("div",{className:"rv eyebrow",children:[e.jsx("div",{className:"ew-dot"}),"Roles"]}),e.jsx("h2",{className:"rv",style:{fontFamily:"var(--font-display)",fontSize:"clamp(26px, 2.6vw, 34px)",fontWeight:800,color:"var(--ink)",marginTop:"10px",marginBottom:"20px"},children:"Who we place"}),e.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(240px, 1fr))",gap:"16px"},children:[{t:"iOS engineers",d:"Swift and SwiftUI, with real production experience of App Store review, in-app purchases, and platform frameworks."},{t:"Android engineers",d:"Kotlin and Jetpack Compose, comfortable with the fragmentation and background-work quirks that make Android its own animal."},{t:"Cross-platform engineers",d:"Flutter and React Native specialists who write one codebase and still respect the differences between the two platforms."},{t:"Mobile tech leads",d:"Senior engineers who set architecture, own release process, and keep the app maintainable as the team grows."}].map(i=>e.jsxs("div",{className:"rv",style:{background:"var(--surface)",border:"1px solid var(--border)",borderRadius:"var(--r-lg)",padding:"22px 22px"},children:[e.jsx("h3",{style:{fontFamily:"var(--font-display)",fontSize:"17px",fontWeight:800,color:"var(--ink)",marginBottom:"6px"},children:i.t}),e.jsx("p",{style:{color:"var(--muted)",fontSize:"14px",lineHeight:1.6},children:i.d})]},i.t))})]})}),e.jsxs("section",{style:{padding:"60px 52px",maxWidth:"1324px",margin:"0 auto"},children:[e.jsxs("div",{className:"rv eyebrow",children:[e.jsx("div",{className:"ew-dot"}),"Lifecycle"]}),e.jsx("h2",{className:"rv",style:{fontFamily:"var(--font-display)",fontSize:"clamp(26px, 2.6vw, 34px)",fontWeight:800,color:"var(--ink)",marginTop:"10px",marginBottom:"20px"},children:"Build, ship, iterate"}),e.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(240px, 1fr))",gap:"16px"},children:[{t:"Architecture & build",d:"Set up the codebase or work inside an existing one â patterns, modules, and the plumbing that makes future features cheap."},{t:"Release",d:"Own the pipeline into App Store and Play Store, including review responses, staged rollouts, and versioning."},{t:"Post-launch iteration",d:"Feature work, reliability fixes, and platform updates against a live app that has users depen
1ding on it."},{t:"Instrumentation",d:"Crash reporting, analytics, and performance monitoring wired in from day one instead of after the first outage."}].map(i=>e.jsxs("div",{className:"rv",style:{background:"var(--surface)",border:"1px solid var(--border)",borderRadius:"var(--r-lg)",padding:"22px 22px"},children:[e.jsx("h3",{style:{fontFamily:"var(--font-display)",fontSize:"17px",fontWeight:800,color:"var(--ink)",marginBottom:"6px"},children:i.t}),e.jsx("p",{style:{color:"var(--muted)",fontSize:"14px",lineHeight:1.6},children:i.d})]},i.t))})]}),e.jsxs("section",{style:{padding:"20px 52px 60px",maxWidth:"1324px",margin:"0 auto"},children:[e.jsxs("div",{className:"rv eyebrow",children:[e.jsx("div",{className:"ew-dot"}),"Process"]}),e.jsx("h2",{className:"rv",style:{fontFamily:"var(--font-display)",fontSize:"clamp(26px, 2.6vw, 34px)",fontWeight:800,color:"var(--ink)",marginTop:"10px",marginBottom:"20px"},children:"Ten days from brief to embedded"}),e.jsxs("p",{style:{color:"var(--muted)",fontSize:"17px",lineHeight:1.7,maxWidth:"72ch"},children:["Same process as the rest of our engagements â a 30-minute brief, a shortlist within days, your interview process, and the engineer live in your standups by day 10. See our full"," ",e.jsx(t,{to:"/services/staff-augmentation",className:"link-inline",children:"staff augmentation process â"})]})]}),e.jsx("section",{style:{padding:"60px 52px"},children:e.jsxs("div",{style:{maxWidth:"1220px",margin:"0 auto"},children:[e.jsxs("div",{className:"rv eyebrow",children:[e.jsx("div",{className:"ew-dot"}),"FAQ"]}),e.jsx("h2",{className:"rv",style:{fontFamily:"var(--font-display)",fontSize:"clamp(26px, 2.6vw, 34px)",fontWeight:800,color:"var(--ink)",marginTop:"10px",marginBottom:"24px"},children:"Common questions"}),e.jsx("div",{style:{display:"grid",gap:"12px"},children:n.map(i=>e.jsxs("details",{className:"rv",style:{background:"var(--surface)",border:"1px solid var(--border)",borderRadius:"var(--r-lg)",padding:"18px 22px"},children:[e.jsx("summary",{style:{fontFamily:"var(--font-display)",fontSize:"16px",fontWeight:800,color:"var(--ink)",cursor:"pointer"},children:i.q}),e.jsx("p",{style:{color:"var(--muted)",fontSize:"15px",lineHeight:1.6,marginTop:"10px"},children:i.a})]},i.q))})]})}),e.jsxs("section",{style:{padding:"60px 52px",maxWidth:"1324px",margin:"0 auto"},children:[e.jsxs("div",{className:"rv eyebrow",children:[e.jsx("div",{className:"ew-dot"}),"Recent work"]}),e.jsx("h2",{className:"rv",style:{fontFamily:"var(--font-display)",fontSize:"clamp(26px, 2.6vw, 34px)",fontWeight:800,color:"var(--ink)",marginTop:"10px",marginBottom:"20px"},children:"Global Money Transfer"}),e.jsx("p",{style:{color:"var(--muted)",fontSize:"16px",lineHeight:1.7,maxWidth:"72ch",marginBottom:"12px"},children:"A mobile-led remittance product used by families around the world. Our engineers built and shipped the cross-border payments app, delivering a 30% monthly cost reduction and a 20% increase in delivery speed."}),e.jsx(t,{to:"/projects",className:"btn-link",children:"View all case studies â"})]}),e.jsx("section",{style:{padding:"20px 52px 100px"},children:e.jsxs("div",{className:"rv",style:{maxWidth:"1220px",margin:"0 auto",overflow:"hidden",borderRadius:"var(--r-xl)",padding:"60px 40px",background:"#e0004d",color:"#fff",textAlign:"center"},children:[e.jsx("h3",{style:{fontFamily:"var(--font-display)",fontSize:"clamp(26px, 3vw, 36px)",fontWeight:800,marginBottom:"12px"},children:"Add mobile engineers to your team."}),e.jsx("p",{style:{fontSize:"16px",opacity:.95,marginBottom:"20px",maxWidth:"560px",marginLeft:"auto",marginRight:"auto"},children:"Tell us the platform and the shape of the role â we'll shortlist candidates within days."}),e.jsx("button",{type:"button",onClick:()=>window.dispatchEvent(new Event("open-book-call")),style:{padding:"14px 28px",borderRadius:"9999px",border:"none",background:"var(--ink)",color:"#fff",fontFamily:"var(--font-body)",fontWeight:800,fontSize:"15px",cursor:"pointer"},children:"Book a free 30-min call"})]})}),e.jsx(d,{}),e.jsx(l,{})]})}export{x as component}; 2//# sourceMappingURL=services.mobile-development-BVdh1AAO.js.map
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.