awty_engine 0.1.13
awty_engine: ^0.1.13 copied to clipboard
A reliable, decoupled step tracking engine for Flutter applications. Provides pure step counting and goal notification services. Includes test-drive app for easy testing.
Changelog #
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.1.13 - 2025-08-12 #
Fixed #
- Android Service Not Starting: Corrected the
AndroidManifest.xmlby removing the redundant<application>tag. This was preventing the service from being correctly merged into the main app manifest, causing the Android system to silently ignore service start requests. - Silent Failure: This fix should resolve the root cause of the silent service failures.
0.1.12 - 2025-08-12 #
Fixed #
- Compilation Error: Fixed remaining reference to 'goalSteps' in intent creation
- Build Failure: This resolves the Kotlin compilation error that was preventing builds
Technical #
- Intent Parameters: Updated intent creation to use 'deltaSteps' consistently
- Build Compatibility: AWTY should now compile and build successfully
0.1.11 - 2025-08-12 #
Fixed #
- Parameter Name Mismatch: Fixed critical bug where Dart API was sending 'deltaSteps' but native plugin was expecting 'goalSteps'
- Step Count Loss: This resolves the issue where step counts were being lost (showing 0 instead of actual steps)
- UI Error Display: The "ERROR: No step data available" message should now be resolved
Technical #
- Parameter Consistency: Updated Kotlin code to use 'deltaSteps' parameter name consistently
- Data Flow: Step counts should now flow correctly from Agatha to AWTY service
- Backward Compatibility: No breaking changes to the public interface
0.1.10 - 2025-08-12 #
Fixed #
- Method Name Mismatch: Fixed critical bug where Dart API was calling 'startStepTracking'/'stopStepTracking' but native plugin only handled 'startTracking'/'stopTracking'
- MissingPluginException: This resolves the core issue preventing AWTY from working in host applications
- Plugin Recognition: AWTY should now be properly recognized and functional
Technical #
- Channel Method Names: Updated Dart API to call correct method names on MethodChannel
- API Consistency: External API remains unchanged, only internal channel communication fixed
- Backward Compatibility: No breaking changes to the public interface
0.1.9 - 2025-08-11 #
Fixed #
- Compilation Error: Fixed unresolved reference to
notifyMilestoneReachedin service - Service Communication: Replaced static method calls with broadcast intents
- Plugin Callbacks: Added broadcast receiver to handle goal reached events
Technical #
- AwtyStepService: Now sends broadcast intent instead of calling static method
- AwtyPlugin: Added broadcast receiver to listen for goal reached events
- Communication Pattern: Service → Broadcast Intent → Plugin → Flutter callback
- Clean Architecture: Removed unused
notifyMilestoneReachedmethod
0.1.8 - 2025-08-11 #
Fixed #
- Plugin Recognition: Complete refactor from static companion object to instance-based method handling
- Flutter Plugin Discovery: AWTY should now be properly recognized by Flutter's plugin system
- MissingPluginException: This should resolve the core plugin registration issue
Technical #
- AwtyPlatformChannel: Now implements
MethodCallHandlerand is instantiable - AwtyPlugin: Simplified to create instance of
AwtyPlatformChanneland set as handler - Instance-based Architecture: Follows Flutter's expected plugin pattern for proper registration
- Context Management: Each plugin instance has its own context and method handling
Breaking Changes #
- Plugin Architecture: Complete rewrite of method handling from static to instance-based
- Service Callbacks:
notifyMilestoneReached()now requires proper instance management
0.1.7 - 2025-08-11 #
Fixed #
- Plugin Recognition: Restored missing
plugin_platform_interfacedependency - Flutter Plugin Discovery: This dependency is critical for Flutter to recognize AWTY as a plugin
- Plugin Registration: Should now properly register in generated
dart_plugin_registrant.dart
Technical #
- Added back
plugin_platform_interface: ^2.0.2to dependencies - This was accidentally removed in 0.1.6, causing Flutter to not recognize AWTY as a plugin
0.1.6 - 2025-08-11 #
Fixed #
- Null Safety: Fixed null handling in getServiceStatus method
- Type Inference: Resolved Pair<String, String?> type mismatch in mapOf calls
- Kotlin Compilation: Fixed remaining compilation errors preventing builds
Technical #
- Added null coalescing for reachedTime field:
(reachedTime ?: "") - Ensured all mapOf entries have consistent non-null types
- Maintained explicit type parameters for Map<String, Any> returns
0.1.5 - 2025-08-11 #
Fixed #
- Kotlin Compilation: Fixed type mismatch errors in AwtyPlatformChannel
- Build Errors: Resolved compilation failures that prevented package building
- Type Safety: Fixed Map<String, Any> return type issues in service methods
Technical #
- Fixed explicit type parameters in mapOf<String, Any> calls
- Removed unnecessary setPlatformChannel call that caused compilation errors
- Ensured all companion object methods have correct return types
0.1.4 - 2025-08-11 #
Fixed #
- Plugin Architecture: Completely rewrote AWTY to follow Flutter's official plugin template
- Method Call Handling: Plugin now directly implements MethodCallHandler instead of delegation
- Plugin Registration: Fixed critical issue preventing Flutter from discovering and registering the plugin
- MissingPluginException: Resolved persistent plugin registration failures in calling applications
Technical #
- Rewrote
AwtyPlugin.ktto implement bothFlutterPluginandMethodCallHandlerdirectly - Simplified
AwtyPlatformChannel.ktto be a utility class rather than a method handler - Removed complex delegation pattern that was breaking Flutter's plugin discovery
- Plugin now follows the exact structure of Flutter's official plugin template
Breaking Changes #
- Plugin API: Internal plugin architecture changed significantly
- Method Handling: All method calls now go directly through the plugin class
- Platform Channel: Simplified to static utility methods
0.1.3 - 2025-08-11 #
Fixed #
- Plugin Architecture: Fixed AWTY to conform to Flutter's official plugin requirements
- Plugin Discovery: Added
plugin_platform_interfacedependency for proper plugin recognition - Method Call Handling: Updated
AwtyPluginto implementMethodCallHandlerdirectly - Plugin Registration: Fixed plugin registration pattern to match Flutter's official template
Technical #
- Added
plugin_platform_interface: ^2.0.2dependency - Updated
AwtyPluginto implement bothFlutterPluginandMethodCallHandler - Changed method call handling to delegate through the plugin class
- Plugin now follows Flutter's official plugin architecture pattern
0.1.2 - 2025-08-11 #
Fixed #
- Package Structure: Fixed critical plugin registration issues that prevented Flutter from finding the native AWTY implementation
- Plugin Configuration: Added proper
plugin:section in pubspec.yaml for correct Flutter plugin recognition - Build Process: Resolved issues where native Android code wasn't being included in dependent app builds
- MissingPluginException: Fixed the root cause of
MissingPluginExceptionerrors in calling applications
Technical #
- Restored proper Flutter plugin structure with
platforms:configuration - Verified native Android implementation is correctly included in builds
- Confirmed package works with simple test applications
- Cleaned up contaminated package structure and removed duplicate code
0.1.0+1 - 2025-01-15 #
Added #
- Initial release of AWTY Engine
- Basic step tracking functionality
- Goal-based notifications
- Android foreground service support
- Method channel communication
Technical #
- Kotlin-based Android implementation
- Flutter plugin architecture
- Shared preferences for state persistence
- Notification management