Comments (7)
Fixed Design Issue 1: 27a2a44
from flutter_blue_plus.
@Sajonji I am still waiting on access to pub.dev. I don't plan to update it right away. I want to integrate & test the changes in my app fully. Feel free to pull master and let me know if you have issues. I have none so far.
@Nolence I totally agree. flutter_reactive_ble has way too many classes & unnecessary abstraction. The Swift code is incomprehensible. flutter_btleplug looks interesting. But needing a rust toolchain is way too much complexity IMO. Debugging and maintenance of a rust codebase would be pretty annoying. But hopefully it "just works".
I like the simplicity of flutter_blue, which is why I just plan to make improvements as needed.
Our team has experienced challenges with both flutter_blue(_plus) and flutter_reactive_ble.
Anything specific?
from flutter_blue_plus.
I've updated this recommendation on the readme.
"Flutter Blue is simple way to add BLE to any app, however flutter_reactive_ble is generally best for apps that need the highest reliability. See https://github.com/boskokg/flutter_blue_plus/issues/264"
Hopefully I'm not stepping on peoples feed with this recommendation. Just trying to help people write the best apps they can!
Edit: I fixed the timing issue and removed the warning / recommendation #266
from flutter_blue_plus.
So I am running into issues with flutter_reactive_ble
as well 😩
PhilipsHue/flutter_reactive_ble#728
PhilipsHue/flutter_reactive_ble#385
So...I am going to start tackling these design issues in flutter_blue_plus
.
I've thought of a simple way to fix Design Issue 1: Timing: just wrap read
& write
in a mutex so that simultaneous calls to read & write to the same characteristic are serialized. This is not ideal for perf - queueing reads & writes on the iOS/Android side would be faster, as opposed to on the dart side, but I imagine it will still be fast enough to hit maximum BLE bandwidth. And more importantly, it doesn't require a big rewrite.
Design Issue 2: Error Handling & Design Issue 3: Inconsistency, I'll just tackle as-needed.
from flutter_blue_plus.
Great to see progress on this library again !
@chipweinberger: do you have any idea if and, in case of yes, when you can update the pub dev packages with your changes ?
from flutter_blue_plus.
Our team has experienced challenges with both flutter_blue(_plus) and flutter_reactive_ble. While flutter_blue_plus offers a more understandable codebase, its capabilities are limited and it has been poorly kept up with in the past. On the other hand, flutter_reactive_ble is reliable for developing real-time and robust applications. I really like their API and the stream-based implementations were easy to use. However, some long-standing issues have remained unaddressed, which is understandable considering it's an open-source project.
Recently, I've been exploring flutter_btleplug as a potential final Bluetooth solution for our projects. Although still heavily under development, the necessary tooling is already in place, and the parent project btleplug has a large user base and a good maintainer.
Just some random thoughts I had lol sorry
from flutter_blue_plus.
Yeah, our issues have mostly come from connecting and disconnecting reliably (repeatedly) with flutter_blue(_plus). Another issue we ran into was auto fragmentation of packets. In flutter_blue that's mostly taken care of I think. In flutter_reactive_ble I don't think that happens based on some tests I ran on an older iphone and android device. Flutter_reactive_ble also doesn't have support for manually messing with a characteristic's descriptors which we would like for some odd pieces of hardware we have.
The Swift code is incomprehensible.
I think their code is a little funky too but tbh I think I prefer it compared to the Obj-C in flutter_blue which is really tough to read for me personally haha - just my personal preference
from flutter_blue_plus.
Related Issues (20)
- [Bug]: iOS Unhandled Exception: type 'int' is not a subtype of type 'bool' HOT 7
- [Bug]: After setting the Notify value to true and reading characteristics, onValueReceived does not work HOT 11
- [Bug]: Unhandled exception when connecting to a peripheral HOT 1
- [Help]: onValueReceived not called for writes HOT 2
- [Help]: onValueReceived not called for writes HOT 10
- [Bug]: onValueReceived not getting any values HOT 11
- [Help]: only on iOS can get onValueReceived return value HOT 4
- [Help]: Disconnect code 133 ANDROID_SPECIFIC_ERROR HOT 17
- [Bug]: turn off and turn on again, the device connection times out on Android. HOT 3
- [Help]: onValueReceived.listen() not triggering for some reason. HOT 2
- [Help]: iOS supervision timeout set to 72 vs 500 on Android HOT 5
- [Bug]: Getting current MTU size hangs HOT 6
- [Help]: Requesting and Checking Permissions HOT 2
- [Help]: Can Flutter Blue Plus run in the killed state HOT 4
- [Help]: onValueReceived not working on Android 10 HOT 4
- [Help]: Why can I still scan the device after it is powered off? HOT 3
- [Help]: Problem with decoding uuid of Microchip BM70 HOT 6
- [Help]: flutter_blue_plus doesn't support spp mode? HOT 1
- [Help]: Bluetooth device showing in scan after turning off HOT 1
- [Feature]: need api to stop connection attempt early HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from flutter_blue_plus.