instantdb_flutter 0.1.1
instantdb_flutter: ^0.1.1 copied to clipboard
A real-time, offline-first database client for Flutter with reactive bindings.
0.1.1 #
๐ง Fixes #
- Fixed incorrect GitHub repository links in pubspec.yaml and CONTRIBUTING.md
- Repository links now correctly point to https://github.com/pillowsoft/instantdb_flutter
0.2.0 (Unreleased) #
๐ Major Features - React/JS SDK Feature Parity #
New Transaction System (tx namespace)
- โ
Added fluent
tx
namespace API for cleaner transactions (db.tx['entity'][id].update({})
) - โ
Implemented
transactChunk()
method for transaction chunks - โ
Added
merge()
operation for deep nested object updates - โ
Added
link()
andunlink()
operations for entity relationships - โ
Implemented
lookup()
references to reference entities by attributes instead of IDs
Advanced Query Operators
- โ
Added comparison operators:
$gt
,$gte
,$lt
,$lte
,$ne
- โ
Added string pattern matching:
$like
,$ilike
with wildcard support - โ
Added array operations:
$contains
,$size
,$in
,$nin
- โ
Added existence operators:
$exists
,$isNull
- โ
Enhanced logical operators: improved
$and
,$or
,$not
support
Room-based Presence System
- โ
Added
joinRoom()
API returning scopedInstantRoom
instances - โ Implemented room-specific presence operations (scoped to individual rooms)
- โ
Added topic-based pub/sub messaging with
publishTopic()
andsubscribeTopic()
- โ Complete room isolation - presence data separated between rooms
- โ Backward compatible with existing direct room ID APIs
API Improvements
- โ
Added
subscribeQuery()
alias for reactive queries (matches React SDK) - โ
Implemented
queryOnce()
for one-time query execution - โ
Added
getAuth()
andsubscribeAuth()
convenience methods - โ Improved error handling and validation
๐งช Testing & Quality #
- โ 150 total tests passing (up from 118 tests)
- โ Added comprehensive test suite for all new features
- โ Performance testing for large datasets and query caching
- โ Room-based presence system testing with isolation validation
๐ Bug Fixes & Performance Improvements #
- โ Fixed transaction conversion for real-time sync - transactions now properly convert to tx-steps with actual data instead of sending 0 steps
- โ Fixed duplicate entity issue during sync - implemented deduplication logic to prevent locally-created entities from being re-applied during refresh-ok
- โ
Fixed entity type resolution during sync - entities from server now properly stored with correct type (e.g.,
todos:id
instead ofunknown:id
) - โ Fixed delete synchronization between instances - implemented differential sync to detect and apply deletions when entities are missing from server responses, including handling empty entity lists
- โ Fixed presence reactions not appearing in peer instances - implemented proper refresh-presence message handling to convert reaction data to visible UI reactions
- โ Fixed cursors, typing indicators, and avatars not working in peer instances - implemented complete presence data detection and routing in refresh-presence messages to handle all presence types
- โ Fixed avatars page showing only 1 user instead of both users - preserved local user's presence when processing refresh-presence messages to match React SDK behavior
- โ Fixed avatar presence data extraction and room ID consistency - corrected nested data structure extraction from refresh-presence messages and unified room key format usage
- โ Fixed typing indicators showing 'Someone' instead of actual user names - updated typing page to set initial presence with userName and display actual user names in typing indicators
- โ
Added comprehensive hierarchical logging system - using
logging
package for better debugging and monitoring of sync operations - โ Enhanced sync engine with proper attribute UUID mapping - transactions now use correct InstantDB attribute UUIDs instead of attribute names
๐ Documentation #
- โ Updated README with all new APIs and examples
- โ
Created
ADVANCED_FEATURES.md
comprehensive feature guide - โ
Added
MIGRATION_GUIDE.md
for upgrading existing code - โ Updated example applications showcasing new room-based presence APIs
๐ฑ Example Applications Updated #
- โ Cursors demo updated to use room-based presence API
- โ Reactions demo updated with room-scoped reactions
- โ Typing indicators demo updated with room-scoped typing
- โ Avatars demo updated with room-scoped presence
- โ
Todos demo updated to showcase new
tx
namespace API
๐ง Breaking Changes #
None! This release is fully backward compatible. All existing APIs continue to work.
๐ฏ Migration Path #
- Immediate: New projects can use new APIs from day one
- Gradual: Existing projects can migrate incrementally at their own pace
- Optional: Migration provides better performance and developer experience but is not required
0.1.0 #
๐ Initial Release #
Core Features
- โ Real-time synchronization with InstantDB backend
- โ Offline-first local storage with SQLite triple store
- โ Reactive UI updates using Signals
- โ InstaQL query language support
- โ Transaction system with optimistic updates
- โ Authentication system integration
- โ Schema validation and type safety
Flutter Integration
- โ
InstantProvider
for dependency injection - โ
InstantBuilder
andInstantBuilderTyped
reactive widgets - โ
AuthBuilder
for authentication state management - โ
Watch
widget for reactive UI updates - โ
ConnectionStatusBuilder
for network status
Presence System
- โ Real-time cursor tracking
- โ Typing indicators
- โ Emoji reactions
- โ User presence status
- โ Room-based collaboration features
Developer Experience
- โ Comprehensive example application
- โ Full test coverage
- โ TypeScript-style API design
- โ Hot reload support
- โ Debug tooling integration
0.0.1 #
- Initial development release with basic InstantDB integration