Files
TimeTracker/mobile/pubspec.yaml
T
Dries Peeters da85aedefb feat(mobile): add data layer, OTLP telemetry, and CI build fixes
Implement the missing Flutter data layer so release builds compile: Dio ApiClient for /api/v1 (timer, time entries, projects, tasks, finance, time-off, users/me), JSON models, Hive LocalStorage, and offline SyncService queue.

Add OpenTelemetry (opentelemetry package) with initMobileOpenTelemetry() reading OTEL_EXPORTER_OTLP_ENDPOINT and OTEL_EXPORTER_OTLP_TOKEN via --dart-define, matching server OTLP base URL and Basic auth behavior. Instrument login token validation, timer start/stop, and sync pending.

Fix SyncUseCase to import storage SyncService, use trusted insecure hosts, and call syncAll().

GitHub Actions (build-mobile.yml, cd-release.yml): run flutter test; pass OTLP secrets into flutter build apk/appbundle/ios; switch iOS CI to release simulator builds and package build/ios/iphonesimulator/Runner.app to avoid requiring an Apple Development Team for generic device builds.

.gitignore: allow tracking mobile/lib/data/ despite the repo-wide data/ ignore rule.
2026-03-28 18:01:10 +01:00

70 lines
1.4 KiB
YAML

name: timetracker_mobile
description: TimeTracker mobile app for Android and iOS
publish_to: 'none'
version: 4.18.0+1
environment:
sdk: '>=3.0.0 <4.0.0'
dependencies:
flutter:
sdk: flutter
# State Management
flutter_riverpod: ^2.4.9
# HTTP Client
dio: ^5.4.0
# Local Database
hive: ^2.2.3
hive_flutter: ^1.1.0
path_provider: ^2.1.1
# Secure Storage
flutter_secure_storage: ^9.0.0
# Background Tasks
workmanager: ^0.9.0+3
# Notifications
flutter_local_notifications: ^17.2.1
permission_handler: ^11.1.0
# UI Components
intl: ^0.18.1
table_calendar: ^3.0.9
# Utilities
shared_preferences: ^2.2.2
connectivity_plus: ^5.0.2
timeago: ^3.6.1
package_info_plus: ^8.0.0
google_fonts: ^8.0.0
# OpenTelemetry OTLP/HTTP traces (same env names as server: OTEL_EXPORTER_OTLP_* via --dart-define)
opentelemetry: ^0.18.11
dev_dependencies:
flutter_test:
sdk: flutter
flutter_lints: ^3.0.0
hive_generator: ^2.0.1
build_runner: ^2.4.7
flutter_launcher_icons: ^0.14.0
flutter:
uses-material-design: true
assets:
- assets/icon/
flutter_launcher_icons:
android: true
# iOS icons are generated in CI / on macOS using `flutter_launcher_icons_ios.yaml`
# because the iOS project files (Runner.xcodeproj) may not exist on Windows.
ios: false
image_path: "assets/icon/app_icon.png"
adaptive_icon_background: "#4A90E2"
adaptive_icon_foreground: "assets/icon/app_icon.png"