Skip to content

Shared Libraries

To maintain code quality and reusability across multiple DataFortress.cloud projects, several core functionalities of GOATLY are extracted into a shared library repository: df_flutter_shared.

Core Shared Packages

The following packages from the shared repository are utilized in this project:

Package Purpose in GOATLY
df_ui_widgets Provides reusable UI components like the AudioLevelBar, RecordingTimer, and KeywordChipList.
df_audio_capture A unified, cross-platform interface for microphone and system/loopback audio recording.
df_firebase_rest A custom REST-based implementation of Firebase Auth to support Windows and Linux platforms.
df_device_id Generates and securely stores a persistent unique identifier for the device.
df_ai_consent Manages GDPR-compliant consent for AI-driven data processing.

Why Shared Libraries?

  • Platform Parity: Many features (like REST-based Auth or Desktop audio loopback) require complex platform-specific implementations. Sharing these ensures consistent behavior across all our applications.
  • Maintainability: Bug fixes and performance improvements in audio capture or UI widgets automatically benefit all apps using the shared library.
  • Development Speed: New projects can bootstrap features like authentication and recording by simply importing the shared packages.

Local Development

If you are contributing to GOATLY and need to modify these shared libraries, we recommend cloning the shared repository into a sibling directory and using Flutter's dependency_overrides in your pubspec.yaml:

dependency_overrides:
  df_audio_capture:
    path: ../df_flutter_shared/df_audio_capture
  # ... other packages

For more details on setting up a local development environment, see the Contributing Guide.