Closed Circuit Consultants · Las Vegas, NV · remote US

Native iOS and Android in .NET MAUI, when a web app cannot do the job.

Xamarin support ended May 1, 2024. We move Xamarin.Forms apps to .NET MAUI, and we build native apps in C# for what a PWA cannot do: GPS with the screen off, native video, native sign-in, and offline-first data. Signed builds from CI to TestFlight.

Building from scratch?

Free 30-minute call. Written findings in 48 hours that you keep. Then a scoped SOW.

How it starts

Call → 48h findings → scoped SOW

  1. 1. Free 30-minute call. The app or PWA you have, what it cannot do, and who owns the store accounts.
  2. 2. 48-hour findings you keep. Which features need native code, what moves from Xamarin as-is, and what the release pipeline needs.
  3. 3. Scoped SOW. Fixed price for the migration or build, or from $2,500/month if you want us on releases after.

What we build

Xamarin.Forms to .NET MAUI

Projects, renderers, and dependencies moved to MAUI handlers on current .NET. Tested on real devices before release.

Background location

Android foreground services and iOS background location modes, throttled so the battery survives a shift.

Native video

HLS playback through ExoPlayer on Android and AVPlayer on iOS, instead of a web view that stutters.

Native sign-in and offline data

Native Google sign-in through Android Credential Manager, a local SQLite cache, and sync when the network comes back.

Release engineering

Tag-driven macOS CI that loads Apple signing material into a throwaway keychain, builds a signed .ipa, and uploads it to App Store Connect for TestFlight. Signed Android release builds alongside.

Tests and crash reporting

Unit tests, Maestro end-to-end flows, and crash reporting wired in before the first store release.

Proof (client names withheld)

Two native apps we built

Social video app

23 screens on MVVM in .NET MAUI, targeting .NET 10. Feed video plays through a custom native control (AVPlayerLayer on iOS, Media3 ExoPlayer on Android). Native Google sign-in, offline-first SQLite cache, Sentry crash reporting, and a C# port of the platform's TypeScript SDK with coordinated token refresh. Shipping through tag-driven macOS CI to TestFlight, with unit and Maestro suites.

Delivery driver app

The PWA stopped reporting GPS when a driver pocketed the phone mid-delivery, because mobile browsers suspend background pages. The MAUI app uses a native foreground service on Android and background location modes on iOS to hold a 30-minute screen-off session with throttled position reports, validated on physical phones.

Questions

Is Xamarin still supported?

No. Microsoft ended support for Xamarin on May 1, 2024. Xamarin.Forms apps keep running until a store or OS change breaks them, and new SDK requirements will not be met. .NET MAUI is the supported path.

Can a PWA do background GPS?

Not reliably. Mobile browsers suspend background pages, so a web app stops reporting location when the phone goes in a pocket. That is the problem our driver app was built to solve.

Should we use .NET MAUI or Flutter?

MAUI fits when your team or your backend is C# and .NET, because models, validation, and API clients can be shared. We also build in Flutter. The findings say which one costs you less to own.

Do we keep the App Store and Play accounts and signing keys?

Yes. The developer accounts and signing material stay yours. CI uses them from secrets you control, and we document how to rotate them.

What does it cost?

A fixed-price SOW after the 48-hour findings, or a retainer from $2,500/month if you want us to own releases.

Ship the app the browser could not.

Book the free call. Bring the store listing or the repo.

Closed Circuit Consultants · SOC LLC d/b/a · Las Vegas, NV · remote across the US