Mobile capture SDKs for Tugboat. This repository is a mobile monorepo: a portable C++ image core, native capture runtimes, and framework adapters.
The GitHub remote is still
blendto/tugboat-flutter until an
administrator renames it to tugboat-mobile. See
repository migration.
The Tugboat CLI is maintained separately.
| Path | Product |
|---|---|
core/image-processing |
Portable C++ CPU core (C ABI) |
platforms/android |
com.gettugboat.sdk:capture-runtime AAR |
platforms/apple |
Apple runtime (TugboatCaptureRuntime 0.1.0, CocoaPods / SwiftPM) |
sdks/flutter/packages/tugboat |
Flutter adapter / plugin (pub.dev) |
sdks/flutter/packages/tugboat_dio |
Dio network evidence (pub.dev) |
sdks/flutter/packages/tugboat/example |
Demo app (not published) |
sdks/react-native |
Future adapter placeholder |
docs/ |
Architecture, integration, privacy, performance, releases |
tool/ci |
Host test, generate, and release-control scripts |
Do not copy the C++ core into the published pub package. The Flutter Android
plugin depends on Maven Central com.gettugboat.sdk:capture-runtime. The iOS
plugin depends on CocoaPods TugboatCaptureRuntime and requires iOS 15.
package:tugboat still defaults to Flutter RepaintBoundary screenshots.
Android native CPU capture is an experimental opt-in
(TugboatScreenshotCaptureBackend.nativeCpuExperimental). iOS uses the
same opt-in flag for a live Flutter-layer CPU path. Both stay experimental
until privacy device rows and
native capture contracts plus
the experimental native CPU
gates pass. Raw pixels never enter Dart. See
experimental native CPU capture.
- Flutter 3.35.0 or newer
- Dart 3.9.2 or newer
- Android NDK
28.2.13676358and CMake3.22.1to build the AAR - Git
The repository uses a native Dart pub workspace for local package resolution and Melos 7 for shared development commands.
From the repository root:
dart pub get
dart run melos list
bash tool/ci/run-image-core-tests.sh
bash tool/ci/build-android-runtime.sh
bash tool/ci/run-flutter-tests.shNative Android apps consume the AAR from Maven Central
(com.gettugboat.sdk:capture-runtime:0.1.0), or from untracked .local-maven/
after bash tool/ci/build-android-runtime.sh. The Flutter plugin uses the
Maven Central coordinate and does not compile platforms/android from source.
dart run melos run format
dart run melos run analyze
dart run melos run testPackage-specific tests:
dart run melos run test:sdkPublic SDK imports use package:tugboat/tugboat.dart. Keep package versions
and changelogs independent. Run dependency commands from the repository root;
the workspace has one shared pubspec.lock.
See docs/ for public architecture, integration, privacy, and release process. Working notes are not product docs; see docs/publishing.md.