Uh oh! Looks like JavaScript is disabled.

Bitman requires JavaScript to fuel his thirst to end bad UX and lazy design, which is necessary to give you the best viewing experience possible. Please enable it to continue to our website.

Brief

Building a Cross-Platform Audio SDK in 60 Days

Three platforms. One deadline. Zero compromises.

Music plays everywhere - in shops, restaurants, on radios, in live concerts. But when the lights go down and a band takes the stage, knowing exactly what was performed and making sure the right people get paid for it remains an unsolved problem.

Royalty collection in live music still runs on manually submitted setlists and cue sheets. It is slow, inconsistent, and leaves real money on the table.

Redacted set out to fix that. They are building a music intelligence platform that automates how live concert performances are captured, verified, and reported across the royalty ecosystem.

To make that real, they needed a cross-platform SDK that their partners could integrate into their respective apps one that could record concert audio continuously for 5 or more hours in the background, even with the screen locked, and push it to Redacted's backend for real-time analysis.

That meant building an SDK. And they needed it in 12 weeks.

Challenges

A bold timeline that demanded a different kind of build

This wasn't a simple "record and upload" problem. Redacted had five hard requirements that made this SDK technically demanding from day one:

Reliable audio capture

The SDK had to record audio consistently across device models and OS versions without degradation or gaps.

Background operation

Recording couldn't stop the moment a user switched apps. It had to survive backgrounding on both iOS and Android.

Chunked uploads

Audio had to be streamed to the backend in real-time chunks - not as a full file at the end - enabling immediate processing.

Offline resilience

If connectivity dropped, the SDK had to hold audio locally and resume uploads seamlessly once back online.

Auth robustness

Token expiry and rotation had to be handled gracefully, with retries and re-auth baked into the SDK's core flow.

Why Tarka Labs

Redacted strategically partnered with Tarka Labs to accelerate their mobile SDK and backend development to validate and upload the chunks on the cloud.

The SDK was architected with clean abstractions and a flexible contract-first design, ensuring seamless integration regardless of evolving API specifications.

That intentional decoupling became a strategic advantage: it future-proofed the SDK, simplified testing, and enabled Redacted to iterate on backend logic without blocking mobile delivery.

Tarka Labs was brought in to own the SDK and backend infrastructure entirely - architecture, implementation, and delivery, across android, iOS and backend.

Research & Solutions

The approach: Native first, AI-assisted

We made one early call: this had to be built natively.

Swift for iOS. Kotlin for Android. A Dart wrapper for Flutter.

This gave us full control over audio pipelines, background execution, and network handling, things that abstraction layers often compromise.

To meet the timeline, we leaned into an AI-first development workflow using Claude Code, Gemini, and Cursor.

Not as shortcuts, but as accelerators. Faster iteration, tighter feedback loops, and more time spent on edge cases that matter.

What we built

Instead of treating this as a single pipeline, we broke it into independent, resilient systems.

  1. Audio capture that holds up in the real world

We built on AVAudioEngine (iOS) and AudioRecord (Android) to ensure stable, low-latency recording across foreground and background states.

  1. Streaming instead of waiting

Audio was chunked into small segments and uploaded continuously. Processing no longer had to wait for recordings to finish.

  1. Background execution that doesn't break

We engineered around platform constraints — using Background Audio + BGTaskScheduler on iOS and foreground services on Android — and tested against real device limitations.

  1. Offline-first by design

Audio chunks were stored locally when connectivity dropped and synced automatically when the network recovered. No loss, no duplication.

  1. Auth that never gets in the way

Token expiry and refresh were handled silently, with retries and backoff built into the system.

  1. One interface for Flutter apps

We wrapped everything in a clean Dart layer, so integration stayed simple for cross-platform partners.

Outcomes

The results: built fast, but built to last

  • Delivered iOS SDK to partner for UAT within the 2-month deadline
  • Android SDK development was completed, ready for UAT
  • Flutter wrapper fully functional and documented
  • All core requirements were met without trade-offs
  • Zero critical bugs reported during initial UAT cycles
  • Architecture was modular, allowing fast iteration on feedback
  • Accurate, real-time music usage tracking
  • Transparent royalty attribution
  • Scalable integrations across partner apps
  • Team velocity accelerated through AI-first development

What's next

With the foundational SDKs delivered, Redacted began incorporating UAT feedback, refining edge-case handling, and preparing for production launch across their partner network.

The modular architecture ensured that new features like enhanced metadata capture or additional DSP integrations could be added without disrupting existing functionality.

Redacted's vision of transparent, accurate music usage tracking moved closer to reality, powered by an SDK built for reliability, scale, and the unpredictable nature of real-world mobile usage.

Interested in building a high-performance SDK and scalable backend architecture under tight deadlines? Let's talk about how Tarka Labs can help you ship with confidence.

_tech
used

SWIFT / KOTLIN / DART / AWS
Let’s build digital solutions together.
Get in touch
->
Lenny Face