Build1 distinct publisher3 min readUpdated
A dev.to explainer walks connected medical device apps through the reconnect path. The useful part is the accounting: five gates between connected and ready, and three measurements nobody retries.
The Engineer · Build desk

Compiled by The EngineerSomething wrong?How this is made
The failure worth engineering against is the quiet one: the device reconnects, the interface reads connected, and measurements stop arriving [10]. In the post's framing the transport layer recovered while the data pipeline did not [10], and its remedy is to rediscover services and restore subscriptions after every reconnect rather than assume the previous GATT session survived [11].
Count the gates in its own readiness diagram. After BLE Connected there are five more steps before READY: service discovery, characteristic validation, notification subscription, application handshake, data synchronization [5][1]. The recovery path it draws after a reconnect has five steps as well [12][2]. Every transition is supposed to carry its own failure path [3], and none of those failures un-fires the connection callback. That is the whole case for reporting Transport Connected, Application Ready and Data Synchronized separately [6] rather than as one boolean the UI can lie with.
The data side outlives the link side. In the worked example the device emits M104, M105 and M106 while the connection is down [13], three records [3] that no amount of transport recovery brings back. Getting them requires the peripheral to have retained them and the app to recognise records it already holds, which is why the post asks for sequence numbers, timestamps or acknowledgements and an idempotent sync path [14][15]. That is a decision about record schema and firmware buffering, taken well before anyone writes the reconnect code.
The retry policy is where the advice has a price it does not quote. Attempts at 1, 2, 4 and 8 seconds, with a product-appropriate maximum on top [8], is 15 seconds of waiting across those four tries [4], all of it spent with the app blind and the device holding whatever it can, weighed against the battery drain, race conditions and stray BLE operations an immediate-retry loop produces [7]. Two of the six conditions the post enumerates, invalid credentials and an unpaired device, are not retry problems at all [9][6]. They need a human in a recovery flow, which means somebody has to write what that flow says and when it interrupts a measurement session.
This is one explainer that links onward to an agency's testing guide [16], and it carries no failure rates, no platform versions, and no field data on how often a reconnect completes without notifications resuming [5]. As evidence it is thin. As a checklist it is usable, and the part that can be checked cheaply is the test itself: a reconnection test that asserts on the connection callback is asserting on the component that did not break. The assertion has to be a notification arriving, and a gap backfilled, after the link returns, with the state machine and the BLE lifecycle held outside the screens that come and go [11][17].
Follow any of these and your For You feed starts watching them — no settings page required.
Ranked by verification strength, evidence, and original report placement.
A dev.to post, "How Should Developers Handle BLE Reconnection in Medical Device Apps?", argues that developers of connected medical device companion apps should treat BLE reconnection as a state-recovery problem rather than simply a connect() call.
The post lists drop triggers: a wearable moving out of range, the peripheral rebooting, Android killing a background process, and Bluetooth being toggled off and back on, after which the device reconnects but GATT notifications do not resume.
The post defines explicit states IDLE, SCANNING, CONNECTING, DISCOVERING_SERVICES, SUBSCRIBING, CONNECTED, DISCONNECTED, RECONNECTING and SYNCING, and says each transition should have a clear trigger and failure path.
After a connection callback the post says the app may still need to discover GATT services, validate required characteristics, restore notification subscriptions, verify device identity or state, resume synchronization and update application state, and only after those succeed should the session be considered fully recovered.
The post's readiness sequence runs BLE Connected, Service Discovery, Characteristic Validation, Notification Subscription, Application Handshake, Data Synchronization, READY.
The post says that if service discovery fails or notifications are not restored, showing Connected in the UI can create a misleading state, and that it is useful to separate Transport Connected, Application Ready and Data Synchronized, which are not necessarily the same thing.
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
Single self-contained explainer, no data
One publisher, one article, entirely prescriptive. The claims are internally consistent and legible as a design pattern (state machine, readiness gates, backoff schedule, condition table, layered architecture), and the central mechanism -- a reconnect that restores transport without restoring GATT notifications -- is a recognised BLE behavior the post describes concretely. But there are no failure rates, no OS version specifics, no field measurements, no code, and no second source, so evidence quality stays low even though the article is verifiable as to its own content.
No adoption signal in sources
The supplied source reports no release, deployment, benchmark, usage disclosure, pricing or licensing event. The measurement example (M101-M106) and the telemetry log are illustrative constructions, not observations of a shipped product, and no company, app or device is named as using the pattern. There is nothing to measure adoption from without inventing it.
Mildly overstated: prescription without measurement
The article's language is hedged ('may need', 'can create', 'might be'), and its prescriptions are modest and mechanically plausible, so the gap is small. It tilts positive because normative force -- developers 'need to' treat reconnection as state recovery, specific backoff intervals, a specific nine-state machine -- is asserted with no data on how often the failure occurs or evidence that this particular decomposition outperforms alternatives, and because the piece terminates in a link to a commercial testing guide.
Content-marketing shape, undisclosed commercial link
The post routes readers to a commercial guide on citrusbits.com for 'a deeper set of engineering and QA scenarios', and is published under an SEO-styled dev.to handle (rank_alchemy_...), which together indicate a lead-generation rather than disclosure motive. No sponsorship or affiliation is disclosed in the body. The technical content is nonetheless generic and non-proprietary, which caps the score below the top band.
High on what was said, low on what is true
Confidence is high that the post says what the claims report -- the text is explicit, the diagrams and lists are quoted directly, and derived counts are simple arithmetic over them. Confidence is low that the guidance reflects measured production behavior, because there is a single publisher, no corroboration, no adoption signal and a visible commercial incentive.
build
SMS OTP as a ledger entry: one challenge, one send, and a server that owns expiry1 distinct publisher
build
Geofencing beats GPS polling on power, then loses to the OEM battery optimiser1 distinct publisher
build
"No key, no SDK" is not a guarantee on Android: the manifest merger gets there first1 distinct publisher
product
Instapaper's second rewrite in 18 years is a spend signal, not a Pocket obituary1 distinct publisher
Distinct publishers with included, body-backed reporting in this cluster.
dev.to
1 article · August 24, 2026