Files
SpotiFLAC-Mobile/pubspec.yaml
T
zarzet aa99726439 feat(backend): migrate production backend to Rust
Replace the Go backend with the Rust workspace and route Android/iOS through
UniFFI bindings. Include the migrated extension runtime, network, providers,
media metadata, downloads and library operations, with version 5.0.0+147.

Remove Go sources, adapters, native build selection and CI dependencies.
Build Rust unconditionally and lock the iOS Rust pod using a relative path.
Retain legacy source and migration evidence in a local ignored archive.

Validation: Android Kotlin compile and 53 native tests; Swift Rust-branch
equivalence and syntax; CocoaPods install; workflow, shell, Ruby, plist and
diff checks. Reuse the preceding 100 Rust tests, fmt/Clippy and five-ABI
build checkpoint; no new APK or iOS application build for this cleanup.

Known follow-up: URL/URLSearchParams globals are missing from the Rust JS
runtime. A controlled extension replay confirms a URL-resolution regression;
this commit does not fix that runtime gap.
2026-09-14 22:58:27 +07:00

115 lines
2.2 KiB
YAML

name: spotiflac_android
description: Extension-driven music metadata and downloads for mobile devices
publish_to: "none"
version: 5.0.0+147
environment:
sdk: ^3.10.0
dependencies:
flutter:
sdk: flutter
# Localization
flutter_localizations:
sdk: flutter
intl: ^0.20.3
# State Management
flutter_riverpod: ^3.4.2
# Navigation
go_router: ^18.0.0
# Storage & Persistence
shared_preferences: ^2.5.5
flutter_secure_storage: ^11.0.0
path_provider: ^2.1.6
path: ^1.9.1
sqflite: ^2.4.3
# HTTP & Network
http: ^1.6.0
connectivity_plus: ^7.3.1
crypto: ^3.0.7
# Streaming backup archives
archive: ^4.2.0
# UI Components
cached_network_image: ^4.0.0
flutter_cache_manager: ^3.4.2
# Material Expressive 3 / Dynamic Color
dynamic_color: ^2.1.0
material_ui: ^1.1.0
# Permissions
permission_handler: ^13.0.1
# File Picker
file_picker: ^12.1.1
# JSON Serialization
json_annotation: ^4.12.0
# Utils
url_launcher: ^6.3.2
device_info_plus: ^13.2.0
share_plus: ^13.3.0
receive_sharing_intent: ^1.9.0
logger: ^2.7.0
# FFmpeg for audio conversion
ffmpeg_kit_flutter_new_full: ^2.5.2
open_filex: ^4.7.0
video_player: ^2.14.0
xml: ^7.0.1
# Notifications
flutter_local_notifications: ^22.3.0
audioplayers: ^6.8.1
audio_service: ^0.18.19
audio_session: ^0.2.4
dev_dependencies:
flutter_test:
sdk: flutter
analyzer: ^13.3.0
flutter_lints: ^6.0.0
build_runner: ^2.16.0
riverpod_lint: ^3.1.8
json_serializable: ^6.14.1
flutter_launcher_icons: ^0.14.4
dependency_overrides:
# 2.12.1 generates a duplicate Kotlin codec declaration on Android.
video_player_android: 2.12.0
flutter_launcher_icons:
android: true
ios: true
image_path: "icon.png"
image_path_android: "icon_android.png"
adaptive_icon_background: "#000000"
adaptive_icon_foreground: "icon_foreground_android.png"
adaptive_icon_foreground_inset: 16
adaptive_icon_monochrome: "icon_foreground_android.png"
ios_content_mode: scaleAspectFill
remove_alpha_ios: true
background_color_ios: "#000000"
flutter:
uses-material-design: true
generate: true
assets:
- assets/images/
fonts:
- family: Google Sans Flex
fonts:
- asset: assets/fonts/GoogleSansFlex.ttf