Contact →

Open source · Audio · 2024

FLACidal Mobile

FLAC on Android & iOS

Mobile version of FLACidal. Download FLAC from Tidal & Qobuz directly to your smartphone. Same Go core shared via FFI, native Flutter interface.

Context

Once desktop FLACidal was working, the question was: how to share the same Go backend without rewriting everything? The answer: compile the core into a shared library and call it via FFI from Flutter.

My contribution

  • FLAC download from Tidal and Qobuz
  • Native Flutter interface for Android & iOS
  • Shared Go core via FFI — zero logic duplication
  • Go ↔ Flutter communication via JSON-RPC
  • Same download engine as the desktop version

// technical challenge

The FFI layer between Go and Flutter is the trickiest part: JSON-RPC serialisation, thread management, and cross-platform compilation of a Go lib to .so (Android) and .a (iOS).