holy_beacon_sdk 0.2.0
holy_beacon_sdk: ^0.2.0 copied to clipboard
A lightweight Flutter SDK for scanning and detecting iBeacon devices. Simple, fast, and compatible with any Flutter project. Perfect for developers who need reliable beacon detection.
Changelog #
0.2.0 - 2024-12-19 #
🚀 MAJOR REFACTOR - Universal Compatibility #
- BREAKING CHANGE: Simplified API for better compatibility
- FIXED: Removed hardcoded Flutter version dependency that caused build failures
- FIXED: Android Gradle compatibility issues with flutter_embedding_release
- REMOVED: Eddystone support (now focuses only on iBeacon for better performance)
- REMOVED: Complex dependencies that caused version conflicts
✨ New Simplified API #
- NEW:
HolyBeaconScanner.scanForBeacons()- Simple stream-based scanning - NEW:
BeaconDetectionmodel with essential beacon information - NEW: Universal compatibility with Flutter 3.0+ to 4.0
- NEW: Automatic permission handling
- NEW: Built-in distance calculation
🎯 Developer Experience #
- IMPROVED: Much simpler API - just 3 lines of code to start scanning
- IMPROVED: Better error handling and debugging
- IMPROVED: Lightweight - removed unnecessary dependencies
- IMPROVED: Compatible with any Flutter version 3.x
📱 Platform Support #
- MAINTAINED: Android API 21+ support
- MAINTAINED: iOS 12+ support
- REMOVED: Web, Windows, macOS, Linux (mobile-only focus)
🔧 Example Usage #
final scanner = HolyBeaconScanner();
scanner.scanForBeacons(
targetUUIDs: ['FDA50693A4E24FB1AFCFC6EB07647825']
).listen((beacon) {
print('Found: ${beacon.uuid} at ${beacon.distance}m');
});
⚠️ Migration Guide #
- Replace
HolyBeaconScanner().devices.listen()withscanForBeacons().listen() - Update imports - many utility classes have been removed
- Update target UUIDs format (no hyphens needed)
0.1.3 - 2024-12-19 #
🔧 Documentation #
- Fixed GitHub repository links: Corrected all broken URLs in pub.flutter-io.cn
- Updated homepage: Now points to correct GitHub repository structure
- Fixed documentation links: No more 404 errors when accessing from pub.flutter-io.cn
- Added comprehensive repository documentation: CONTRIBUTING.md, enhanced README.md
📚 Repository Structure #
- Repository: https://github.com/SanJinwoong/iBeacon-Official
- Homepage: https://github.com/SanJinwoong/iBeacon-Official/tree/feature/modulo-externo/holy_beacon_sdk
- Documentation: https://github.com/SanJinwoong/iBeacon-Official/blob/feature/modulo-externo/holy_beacon_sdk/README.md
- Issues: https://github.com/SanJinwoong/iBeacon-Official/issues
✅ No Functional Changes #
- All beacon detection functionality remains identical
- BeaconProfileManager API unchanged
- HolyBeaconScanner behavior preserved
- Full backward compatibility maintained
0.1.2 - 2024-12-19 #
🔧 Bug Fixes & Polish #
- FIXED: Corrected method calls in
configurable_example.dartgetRegisteredProfiles()→listVerifiedBeacons()onBeaconDetected.listen()→beaconDetected.listen()profile.name→profile.displayNameisVerifiedByProfile→_profileManager.isVerifiedBeacon(uuid)
- UPDATED: Deprecated
withOpacity()calls towithValues() - VERIFIED: All tests passing (7/8 - BLE test requires hardware)
- CONFIRMED: Full backward compatibility with original detection logic
✅ Validation Complete #
- Same BLE detection logic as original project
- Full iBeacon and Eddystone parsing maintained
- All beacon properties returned (UUID, RSSI, major, minor, etc.)
- Cross-platform Android/iOS support intact
- Original performance characteristics preserved
0.1.1 - 2025-10-02 #
🎛️ MAJOR: Sistema Completamente Configurable #
- NEW:
BeaconProfileManager- Registro dinámico de cualquier UUID de beacon - NEW: Callbacks individuales
onBeaconDetectedpara detecciones específicas - NEW: Almacenamiento persistente con
SharedPreferences - NEW: APIs de gestión:
registerVerifiedBeacon(),unregisterVerifiedBeacon(),clearVerifiedBeacons() - BREAKING: Eliminados UUIDs hardcodeados del parser
- ENHANCEMENT: El SDK ahora es universal - no limitado a dispositivos Holy
✨ Nuevas APIs #
// Registrar tus propios beacons
await profileManager.registerVerifiedBeacon('TU-UUID', 'Tu Beacon');
// Callbacks individuales
scanner.onBeaconDetected.listen((beacon) {
if (beacon.isVerifiedByProfile) {
print('¡Tu beacon detectado!');
}
});
🔧 Cambios Técnicos #
- Added dependency:
shared_preferences: ^2.3.3 - Refactored
beacon_parsers.dartto use dynamic profiles - Enhanced
HolyBeaconScannerwith profile management - Added comprehensive test suite for configurable system
- Updated documentation and examples
📁 Nuevos Archivos #
lib/src/models/beacon_profile_manager.dartexample/lib/configurable_example.darttest/beacon_configuration_test.dart
🎯 Impacto #
- Antes: Solo detectaba UUIDs Holy hardcodeados
- Después: Cualquier desarrollador puede registrar sus UUIDs
- Backward Compatible: Código existente sigue funcionando
0.1.0 #
✨ Initial Release - Core UUID Processor #
Features:
- 🔧 Core UUID Processor: Single and batch UUID processing with validation
- 🎯 Holy Device Detection: Intelligent categorization (Shun, Jin, Kronos)
- 📊 Trust Level System: Confidence scoring for device authenticity
- 🔄 Format Conversion: Bytes to UUID, normalization, validation
- 🛡️ Error Handling: Comprehensive error types and messages
- 🧪 100+ Tests: Complete test coverage for reliability
- 🔍 BLE Scanning: Real-time iBeacon and Eddystone detection
- 🏆 Holy Devices Prioritization: Automatic filtering and ranking
- 📱 Cross-platform: Android & iOS support
- 🔐 Permission Management: Automatic BLE/location permissions
Core Components:
UuidProcessor: Heart of the system - processes UUIDs with intelligenceHolyBeaconScanner: BLE scanning service with Holy device priorityBeaconDevicemodels: Comprehensive beacon data structures- Error handling with specific types and recovery suggestions
Integration Ready:
- Designed for larger systems as independent module
- Consistent API across all components
- Performance optimized for batch processing
- Memory efficient with minimal footprint
1.0.0 #
✨ Previous Release #
Features:
- 🔍 Complete BLE beacon scanning for iBeacon and Eddystone protocols
- 🏆 Holy devices prioritization system
- 🎯 Advanced filtering with configurable whitelists
- 📱 Cross-platform support (Android & iOS)
- 🔐 Automatic permission management
- 🛠️ Easy integration with simple API
- 🔄 Real-time reactive streams for UI updates
- 📊 Detailed scanning statistics and metrics
Platforms:
- ✅ Android 5.0+ (API 21+)
- ✅ iOS 12.0+
Holy Device Support:
- Holy-Shun (FDA50693-A4E2-4FB1-AFCF-C6EB07647825)
- Holy-IOT Jin (E2C56DB5-DFFB-48D2-B060-D0F5A7100000)
- Kronos Blaze BLE (F7826DA6-4FA2-4E98-8024-BC5B71E0893E)
API Highlights:
HolyBeaconScanner- Main scanner serviceBeaconDevice- Comprehensive device modelBeaconScanConfig- Flexible scanning configurationBeaconWhitelist- Advanced filtering systemPermissionManager- Cross-platform permission handlingBeaconUtils- Utility functions for beacon operations
Example Integration:
final scanner = HolyBeaconScanner();
await scanner.initialize(config: BeaconScanConfig.holyOptimized());
scanner.devices.listen((devices) => updateUI(devices));
await scanner.startScanning();
Dependencies:
- flutter_reactive_ble: ^5.4.0
- permission_handler: ^11.4.0
Documentation:
- Complete API documentation
- Integration examples for Android & iOS
- Best practices guide
- Troubleshooting section