flutter_smkit_ui 1.5.3 copy "flutter_smkit_ui: ^1.5.3" to clipboard
flutter_smkit_ui: ^1.5.3 copied to clipboard

Flutter plugin for Sency's SMKitUI SDK on iOS and Android, including assessments, workouts, guidance, summaries, and runtime configuration.

1.5.3 #

  • iOS: Wired native SMKitUI and SMKit to 2.0.3.
  • Android: Wired native SMKitUI, SMKit, and SMBase native client to 1.7.1.
  • Dart: Added backward-compatible configureLanguage, defaulting to English, for configure-time voice feedback assets.
  • Dart: Added scoring helpers including ScoringParams.targetReps(...); target-progress display is opt-in with showTargetProgress.

1.5.1 #

  • iOS: Fixed setCounterPreferences and setEndExercisePreferences so Flutter values like all and defaultBased map to the native default preferences instead of surfacing generic assessment errors.
  • Dart: Preference setters now await the method channel call, allowing existing PlatformException handling to catch native preference errors.

1.5.0 #

  • iOS: Upgraded native SMKitUI and SMKit to 1.9.7
  • Android: Upgraded native SMKitUI and SMKit to 1.6.6
  • Android: Migrated the plugin and example app Gradle files to Flutter built-in Kotlin with Gradle 8.14, AGP 8.13.2, and Kotlin 2.2.20 compatibility
  • Build: Raised the minimum SDK constraints to Flutter 3.44.0 and Dart 3.12.0 for built-in Kotlin support
  • Fix: Pulls in the native iOS assessment initialization fix for target-based rep scoring validation

1.4.8 #

  • iOS: Upgraded native SMKitUI and SMKit to 1.9.1
  • Android: Upgraded native SMKitUI and SMKit to 1.6.5
  • New: Expanded SMKitConfig with audio calibration, button tutorial, continuation timer, timer-on-first-activity, phone-movement prevention, variation mismatch feedback, heart-rate rest, direct color theme, guidance/debug options, Android config string, and iOS debug bounding box controls
  • New: Added quitWorkout, iOS pauseSdk/resumeSdk, Android clearAdaptiveRomCache, feedback UI/data exclusion, iOS supported movement/type queries, and configure(includesHighlights:)
  • New: Expanded workout/exercise models with continuation, short intro, new UI elements, quick motion, rowing feedback level, phone position, guidance mode, wide-angle camera, rep/audio/adaptive-ROM flags, guidance video segments, stretch-set config, side, and failed-closure audio
  • Changed: Custom workout and assessment payloads now use real JSON encoding while still sending both soundTrack and soundtrack for native compatibility
  • Changed: Summary parsing now includes language, workout details/config, modifications, stretch-set config, side, metric titles, and both feedback/feedbacks
  • Note: Jinni voice controls, wake-word provider injection, orb media, and debug ElevenLabs settings are intentionally not exposed in this release

1.4.7 #

  • iOS: Upgraded native SMKitUI and SMKit to 1.8.3
  • Android: Upgraded native SMKitUI and SMKit to 1.6.4
  • iOS: Aligned internal bridge defaults with the React Native bridge while keeping the Flutter API unchanged

1.4.5 #

  • iOS: Upgraded native SMKitUI and SMKit to 1.6.4
  • Android: Upgraded native SMKitUI and SMKit to 1.6.2

1.4.4 #

  • iOS: Upgraded native SMKitUI to 1.6.3
  • Android: Upgraded native SMKitUI and SMKit to 1.6.1
  • New: configure(..., poseModelChoice: ...) now exposes Android pose model selection (adaptiveChoice, prime, pro, lite, ultraLite, basic) to Flutter users
  • iOS: poseModelChoice is accepted for API parity and currently ignored

1.4.3 #

  • Android: Upgraded native SMKitUI to 1.5.4

1.4.2 #

  • Android: Upgraded native SMKitUI to 1.5.3
  • Bug fix: Fixed configure hanging on second launch on android
  • Bug fix: Fixed pressing Back on calibration screen

1.4.1 #

  • iOS: Upgraded native SMKitUI to 1.5.3
  • Android: Upgraded native SMKitUI to 1.5.1
  • New: startWorkoutProgram() — start a workout from a program with WorkoutConfig (week, bodyZone, difficultyLevel, workoutDuration, language, programID)
  • New: setConfig(SMKitConfig) — unified SDK configuration covering skeleton visualization, instruction video, pause menu, audio mixing, Apple Watch, accurate pose estimation, rowing calibration, and intelligence rest
  • New: SMKitConfig model with SkeletonConfig (preset, connectionStyle, jointShape, colors, opacity, glow, etc.) and InstructionVideoConfig (defaultMode / mediumCycle)
  • New: SMKitPauseType enum to control pause overlay buttons
  • New: forceShowUserDataScreen param on startAssessment and startCustomizedAssessment
  • New: showSummary param on startCustomizedAssessment
  • iOS: Added SMKit pod dependency (required for InstructionVideoConfig / VideoDisplayMode)
  • Bug fix: Removed duplicate SMLanguage import in Android plugin

1.4.0 #

  • Android: Upgraded native SMKitUI to 1.4.9
  • iOS: Upgraded native SMKitUI to 1.5.0
  • New Feature: Pause Menu Configuration: Added pauseTypes to SMKitConfig to control which buttons appear on the pause overlay (resume, startOver, skip, quit on both platforms; rest and switchExercise are Android-only)
  • Android: Replaced internal reflection hack for intelligence rest with the now-public setIntelligenceRestEnabled() API
  • Multiple new exercises available via the movement catalog

1.3.9 #

  • iOS: The native plugin keeps import SMBase because types such as AssessmentTypes are defined in SMBase and not re-exported by SMKitUI. Duplicate-class warnings must be resolved in the SDK.
  • Known issue: With SMKitUI 1.5.0 on iOS you may see duplicate-class warnings for CaptureDelegate, CvAbstractCamera, CvPhotoCamera, CvVideoCamera across SMKitUI/SMKit/SMBase. The fix is in the SDK.

0.1.0 #

created SMKitUI

0.1.1 #

Added Android support

0.1.2 #

Updated smkitUI

0.1.3 #

Bug fix

0.1.4 #

Add multiple Custom Workouts

0.1.5 #

Add Custom Assessment

0.1.6 #

Bug Fix

0.1.7 #

Bug fix

0.1.8 #

Update sdk

0.1.9 #

Bug fix

0.2.0 #

Bug fix

0.2.1 #

Bug fix

0.2.2 #

Bug fix

0.2.3 #

Bug fix

0.2.4 #

Bug fix

0.2.5 #

  • Added support for loading apiPublicKey from .env file using flutter_dotenv.
  • Improved error handling for missing .env file.
  • Updated example app with new assessment and workout features.

0.2.6 #

  • Unified user data handling for assessments: Flutter now sends gender and birthday (milliseconds since epoch) for both iOS and Android.
  • Android plugin converts birthday to age and maps gender string to native enum, supporting both lowercase and capitalized values.
  • Added GenderSerializer for Android to ensure correct serialization of gender values.
  • showSummary argument is now supported and configurable from Flutter for both iOS and Android.
  • Example app updated: assessment type selection via dropdown, showSummary toggle, and improved UI for starting assessments.
  • Improved error handling and code alignment between platforms.

1.2.7 #

  • Upgraded Android native module (SMKitUI 1.3.1 → 1.3.3) to improve video instructions management.
  • Enhanced video playback and instruction handling in Android assessments and workouts.

1.2.8 #

  • BREAKING FIX: Fixed critical hanging issue with preference setter methods (setSessionLanguage, setCounterPreferences, setEndExercisePreferences)
  • Method Channel Fix: Made preference setters fire-and-forget to prevent timeout issues
  • Platform Alignment: Updated Android and iOS implementations to properly handle method channel results
  • Error Handling: Improved error handling and logging in startCustomizedAssessment method
  • iOS Fix: Fixed user data popup issue in custom assessments by providing default UserData
  • Android SDK: Upgraded to SMKitUI 1.3.5 for improved stability
  • Debugging: Enhanced logging and error reporting for better troubleshooting
  • Performance: Removed blocking await calls from preference setters to improve assessment startup time

1.3.0 #

  • Android 15 & 16 Compatibility: Upgraded Android SMKitUI to version 1.3.9 with full support for Android 15 and Android 16 (API 36) including 16KB page size compatibility
  • Modern Build Tools: Updated to Android Gradle Plugin 8.11.1 and Gradle 8.11.1/8.13 for better stability and performance
  • Kotlin 2.0: Upgraded to Kotlin 2.0.21 for improved compilation speed and modern language features
  • SDK Update: Updated compileSdk to 36 (Android 16) for future-proof development
  • Enhanced Compatibility: Better support for the latest Android development tools and SDKs
  • Build System: Improved Gradle configuration for reliable builds on modern Android versions

1.3.1 #

  • 🎯 MAJOR: Standardized Data Structure Across Platforms: Complete alignment of workout/assessment summary data between iOS and Android
  • Native SDK Updates:
    • iOS: Upgraded SMKitUI to 1.4.3 for enhanced data consistency
    • Android: Upgraded SMKitUI to 1.4.0 for improved serialization
  • 🔄 CamelCase Naming Convention: All JSON fields now use consistent camelCase naming across platforms:
    • userData, sessionId, activityType, startTime, endTime, totalTime, totalScore
    • exerciseId, uiElements, instructionVideo, voiceIntro, voiceOutro, prettyName
    • scoringParams with scoreFactor, targetTime, targetReps
  • 📊 Flattened Exercise Data: Removed nested exercise_info structure, all fields now at top level
  • ✅ Field Name Fixes:
    • Fixed voicOutro typo → voiceOutro on Android
    • Unified feedback (iOS) → feedbacks (both platforms)
    • Converted typeactivityType for clarity
  • 🔧 Type Safety Improvements: Fixed Dart type issues (Float?double?) for better JSON parsing
  • 📱 Cross-Platform Consistency: iOS and Android now produce identical JSON structure for easy data handling
  • 🐛 Bug Fixes: Resolved runtime errors related to type mismatches and missing fields
  • 📝 Enhanced Logging: Added comprehensive debug logging in example app for easier testing and validation

1.3.2 #

  • 📱 Native SDK Updates:
    • iOS: Upgraded SMKitUI to 1.4.4 with enhanced stability and performance
    • Android: Upgraded SMKitUI to 1.4.2 for improved functionality
    • iOS: Updated minimum deployment target to iOS 16.0
  • ✨ New Feature: Modifications Parameter: Added support for modifications parameter in all assessment and workout methods, allowing runtime configuration changes:
    • startAssessment() now accepts optional modifications map
    • startCustomizedWorkout() now accepts optional modifications map
    • startCustomizedAssessment() now accepts optional modifications map
  • 🔧 Enhanced Error Handling:
    • iOS: Added proper error handling with FlutterError responses for configuration failures
    • iOS: Improved thread safety for SDK configuration (ensure main thread execution)
    • iOS: Added validation for API key and workout/assessment arguments
    • Android: Better error propagation for customized workouts and assessments
  • 🧵 Thread Safety Improvements:
    • iOS: Fixed potential race conditions with async operations
    • iOS: Added weak self references to prevent memory leaks in closures
    • iOS: Ensured UI operations run on main thread
  • 🔄 Gradle & Build System Updates:
    • Example app: Updated to Flutter Gradle Plugin 1.0.0
    • Example app: Modernized settings.gradle with plugin management
    • Example app: Updated Android Gradle Plugin to 8.11.1
    • Example app: Updated Kotlin to 2.0.21
  • 🐛 Bug Fixes:
    • Fixed iOS workout/assessment startup reliability issues
    • Improved JSON serialization for modifications parameter
    • Fixed potential crashes on deallocated plugin instances
  • 📝 Code Quality:
    • Removed unnecessary comments and TODOs
    • Improved code consistency between platforms
    • Better null safety handling for optional parameters

1.3.3 #

  • 📱 Native SDK Updates:
    • iOS: Upgraded SMKitUI to 1.4.6 with enhanced features and stability
    • Android: Upgraded SMKitUI to 1.4.3 for improved functionality
  • 🎨 New Feature: Color Theme Customization: Added support for UI theme customization via primaryColor in modifications parameter:
    • Supports 8 predefined themes: green, blue, orange, purple, red (maps to orange), silver, gold, and pink
    • Automatically maps hex color codes to SDK theme enums
    • Theme is applied globally via UIColorTheme.current (Android) and SMKitUIModel.colorTheme (iOS)
    • UI-related color keys (primaryColor, accentColor, backgroundColor) are automatically filtered from exercise modifications
  • 📱 New Feature: Phone Calibration Control: Added support for phone calibration settings via phoneCalibration in modifications parameter:
    • Control whether phone calibration screen is shown via enabled boolean
    • Additional settings: autoCalibrate and calibrationSensitivity (for future use)
    • showPhoneCalibration parameter now passed to all assessment and workout methods
    • Default value: true (calibration screen shown by default)

1.3.4 #

  • Update in results for startCustomizedAssessment

1.3.8 #

  • Fixed issue where onHandle callback
2
likes
120
points
641
downloads

Documentation

API reference

Publisher

verified publishersency.ai

Weekly Downloads

Flutter plugin for Sency's SMKitUI SDK on iOS and Android, including assessments, workouts, guidance, summaries, and runtime configuration.

Topics

#flutter #fitness #assessments #workouts #pose

License

unknown (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on flutter_smkit_ui

Packages that implement flutter_smkit_ui