a-mabe / a-mabe/background_hiit_timer
[Feature/Improvement] Migrate to audio_service from flutter_background_service
- Vorherrschende Sprache
- Dart
- Sterne
- 5
- Forks
- 3
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
# Overview
This issue describes the plan to replace `flutter_background_service` with `audio_service` as the background execution mechanism.
The current implementation uses [flutter_background_service](https://pub.dev/packages/flutter_background_service). It uses [SQFlite](https://pub.dev/packages/sqflite) for passing interval data, [SharedPreferences](https://pub.dev/packages/shared_preferences) for the pause flag, and service events (`service.invoke("stop");`). Migrating to audio_service will replace these with a single Dart stream.
## audio_service
[Tutorial](https://github.com/ryanheise/audio_service/wiki/Tutorial).
`audio_service` is built for long-running audio. It registers the app with the OS as a media player, which grants it a foreground service slot and lock-screen controls without any extra configuration. The BaseAudioHandler subclass runs in the same Dart isolate as the UI, so the interval list can be passed by reference in memory.
## Design
`HiitAudioHandler` - Extends the `BaseAudioHandler` class. Defines pause/play/skip, playSound, broadcasts state. This will replace flutter_background_service.
`Countdown` - Stateful widget, contains the streambuilder.
`CountdownController` - Public-facing controller that translates user calls into handler methods.
`IntervalType` - Unchanged.
`TimerState` - Unchanged.
Beitragsleitfaden
Rechercherichtung
The issue describes replacing flutter_background_service with audio_service. Start by reading the linked audio_service tutorial. Examine the current service implementation and the proposed HiitAudioHandler class. The work involves understanding how to pass interval data via a Dart stream instead of SQFlite and SharedPreferences. Test the migration by running the app's background timer functionality.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- dart, flutter
- Bereich
- audio-video-rtc, mobile
- Issue-Typ
- Refactoring
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 40/100