<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>App Design, iOS, Android &amp; Bluetooth Insights | SKR</title>
  <link>https://shailendraram.com/blog</link>
  <description>Practical ideas for better mobile apps. Design decisions, iOS and Android engineering, and lessons from connected products.</description>
  <language>en</language>
  <lastBuildDate>Sun, 13 Sep 2026 00:00:00 GMT</lastBuildDate>
  <atom:link href="https://shailendraram.com/feed.xml" rel="self" type="application/rss+xml" />
  <item>
    <title>iPhone Duo App Design: What to Change in Your iOS App</title>
    <link>https://shailendraram.com/blog/iphone-duo-app-design</link>
    <guid isPermaLink="true">https://shailendraram.com/blog/iphone-duo-app-design</guid>
    <pubDate>Sun, 13 Sep 2026 00:00:00 GMT</pubDate>
    <description>Updating an iOS app or starting a new one? Explore iPhone Duo layouts, common UI issues, side controls and a practical app review checklist.</description>
    <category>iOS</category>
  </item>
  <item>
    <title>The world's best-selling Bluetooth health device is a disposable</title>
    <link>https://shailendraram.com/blog/worlds-best-selling-bluetooth-health-device</link>
    <guid isPermaLink="true">https://shailendraram.com/blog/worlds-best-selling-bluetooth-health-device</guid>
    <pubDate>Wed, 09 Sep 2026 00:00:00 GMT</pubDate>
    <description>Nobody tracks BLE health device shipments. On radios shipped per year the answer is Abbott's FreeStyle Libre: about 200 million. The radio is disposable.</description>
    <category>Bluetooth</category>
  </item>
  <item>
    <title>How Bluetooth Low Energy took over Bluetooth</title>
    <link>https://shailendraram.com/blog/how-bluetooth-low-energy-took-over-bluetooth</link>
    <guid isPermaLink="true">https://shailendraram.com/blog/how-bluetooth-low-energy-took-over-bluetooth</guid>
    <pubDate>Mon, 07 Sep 2026 00:00:00 GMT</pubDate>
    <description>A Viking king, a trademark search that ran out of time, and the 22.5 milliseconds that made BLE inevitable. The history of the radio that took the name.</description>
    <category>Bluetooth</category>
  </item>
  <item>
    <title>Your Android BLE connection fails with GATT error 133</title>
    <link>https://shailendraram.com/blog/android-ble-gatt-error-133</link>
    <guid isPermaLink="true">https://shailendraram.com/blog/android-ble-gatt-error-133</guid>
    <pubDate>Sun, 06 Sep 2026 00:00:00 GMT</pubDate>
    <description>GATT error 133 is not an error code so much as the absence of one. What status 133 means inside Android's stack, and the failures that produce it.</description>
    <category>Android</category>
  </item>
  <item>
    <title>The readings your Bluetooth health device app never collected</title>
    <link>https://shailendraram.com/blog/bluetooth-health-device-stored-readings</link>
    <guid isPermaLink="true">https://shailendraram.com/blog/bluetooth-health-device-stored-readings</guid>
    <pubDate>Sat, 05 Sep 2026 00:00:00 GMT</pubDate>
    <description>Health devices record measurements while the phone is away and hand them over through the Record Access Control Point. Notifications alone will lose them.</description>
    <category>Bluetooth</category>
  </item>
  <item>
    <title>What it actually takes to launch your own health band</title>
    <link>https://shailendraram.com/blog/launch-your-own-health-band</link>
    <guid isPermaLink="true">https://shailendraram.com/blog/launch-your-own-health-band</guid>
    <pubDate>Sat, 05 Sep 2026 00:00:00 GMT</pubDate>
    <description>Sourcing, certification, the claims you cannot make, and the app the factory will not build. A realistic bill for putting a wearable on the market.</description>
    <category>Engineering</category>
  </item>
  <item>
    <title>Your BLE scan throws a SecurityException on Android 12 and not on 11</title>
    <link>https://shailendraram.com/blog/android-12-bluetooth-scan-permission</link>
    <guid isPermaLink="true">https://shailendraram.com/blog/android-12-bluetooth-scan-permission</guid>
    <pubDate>Fri, 04 Sep 2026 00:00:00 GMT</pubDate>
    <description>Android 12 split the Bluetooth permissions and most crash reports come from one missed runtime request. What changed, and what neverForLocation costs you.</description>
    <category>Android</category>
  </item>
  <item>
    <title>You called setNotifyValue and no notifications arrive</title>
    <link>https://shailendraram.com/blog/ble-notifications-not-arriving-ios</link>
    <guid isPermaLink="true">https://shailendraram.com/blog/ble-notifications-not-arriving-ios</guid>
    <pubDate>Fri, 04 Sep 2026 00:00:00 GMT</pubDate>
    <description>Subscribing to a characteristic succeeds and nothing comes back. Six causes on iOS, ordered by how often they turn out to be the one.</description>
    <category>iOS</category>
  </item>
  <item>
    <title>Why your BLE writes silently fail on iOS</title>
    <link>https://shailendraram.com/blog/ble-writes-silently-failing-ios</link>
    <guid isPermaLink="true">https://shailendraram.com/blog/ble-writes-silently-failing-ios</guid>
    <pubDate>Wed, 02 Sep 2026 00:00:00 GMT</pubDate>
    <description>Writes that return no error and never reach the device. Five causes, and why write-without-response drops data the moment you stop checking.</description>
    <category>Bluetooth</category>
  </item>
  <item>
    <title>Why the iOS Bluetooth pairing dialog never appears</title>
    <link>https://shailendraram.com/blog/ios-ble-pairing-dialog-never-appears</link>
    <guid isPermaLink="true">https://shailendraram.com/blog/ios-ble-pairing-dialog-never-appears</guid>
    <pubDate>Wed, 02 Sep 2026 00:00:00 GMT</pubDate>
    <description>Your peripheral requires bonding but iOS never prompts. Why the dialog is triggered by a characteristic rather than by connecting, and how to force it.</description>
    <category>iOS</category>
  </item>
  <item>
    <title>What a CoreBluetooth developer costs in the US, UK and Australia</title>
    <link>https://shailendraram.com/blog/corebluetooth-developer-hourly-rate-us-uk-australia</link>
    <guid isPermaLink="true">https://shailendraram.com/blog/corebluetooth-developer-hourly-rate-us-uk-australia</guid>
    <pubDate>Thu, 27 Aug 2026 00:00:00 GMT</pubDate>
    <description>Rate bands for BLE specialists in three markets, why the UK quotes days instead of hours, and the number that matters more than either.</description>
    <category>Engineering</category>
  </item>
  <item>
    <title>How long BLE app development takes, and why certification sets the date</title>
    <link>https://shailendraram.com/blog/ble-app-development-timeline-certification</link>
    <guid isPermaLink="true">https://shailendraram.com/blog/ble-app-development-timeline-certification</guid>
    <pubDate>Thu, 27 Aug 2026 00:00:00 GMT</pubDate>
    <description>Agency pages say four to twelve weeks. That is the app. In the US, UK and Australia the launch date is usually set by radio approval instead.</description>
    <category>Bluetooth</category>
  </item>
  <item>
    <title>CoreBluetooth state restoration, and why your peripheral drops when the app suspends</title>
    <link>https://shailendraram.com/blog/corebluetooth-state-restoration-background-disconnects</link>
    <guid isPermaLink="true">https://shailendraram.com/blog/corebluetooth-state-restoration-background-disconnects</guid>
    <pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate>
    <description>Apple's guidance on state restoration is archived and dated 2013. Here is what actually keeps a connection alive across suspension and termination.</description>
    <category>iOS</category>
  </item>
  <item>
    <title>ESP32 BLE shows up on Android but not on iOS</title>
    <link>https://shailendraram.com/blog/esp32-ble-not-showing-up-on-ios</link>
    <guid isPermaLink="true">https://shailendraram.com/blog/esp32-ble-not-showing-up-on-ios</guid>
    <pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate>
    <description>Android scans permissively and iOS does not. Four differences account for nearly every ESP32 device that is invisible to an iPhone.</description>
    <category>Bluetooth</category>
  </item>
  <item>
    <title>Hiring a freelance CoreBluetooth developer in India</title>
    <link>https://shailendraram.com/blog/freelance-corebluetooth-developer-india</link>
    <guid isPermaLink="true">https://shailendraram.com/blog/freelance-corebluetooth-developer-india</guid>
    <pubDate>Tue, 25 Aug 2026 00:00:00 GMT</pubDate>
    <description>What makes a cross-border BLE engagement work: who already owns the test hardware, how blocking firmware questions get answered, and what the specialist premium buys.</description>
    <category>Bluetooth</category>
  </item>
  <item>
    <title>Before you hire for an iOS BLE integration, check these five things</title>
    <link>https://shailendraram.com/blog/ios-ble-hardware-integration-checklist</link>
    <guid isPermaLink="true">https://shailendraram.com/blog/ios-ble-hardware-integration-checklist</guid>
    <pubDate>Tue, 25 Aug 2026 00:00:00 GMT</pubDate>
    <description>Most BLE integrations that go badly were not built badly. They started before the project was ready, and the app developer absorbed the delay.</description>
    <category>iOS</category>
  </item>
  <item>
    <title>Freelance iOS and Android MVP pricing in Europe</title>
    <link>https://shailendraram.com/blog/freelance-ios-android-mvp-pricing-europe</link>
    <guid isPermaLink="true">https://shailendraram.com/blog/freelance-ios-android-mvp-pricing-europe</guid>
    <pubDate>Mon, 24 Aug 2026 00:00:00 GMT</pubDate>
    <description>What the rates actually are across Europe, how they compare against India and the US, and how to read a quote instead of just comparing numbers.</description>
    <category>Engineering</category>
  </item>
  <item>
    <title>Bluetooth app development cost: how to estimate yours</title>
    <link>https://shailendraram.com/blog/bluetooth-app-development-cost</link>
    <guid isPermaLink="true">https://shailendraram.com/blog/bluetooth-app-development-cost</guid>
    <pubDate>Sun, 23 Aug 2026 00:00:00 GMT</pubDate>
    <description>Published ranges run from $10k to $150k, which helps nobody. Why BLE breaks normal estimation, and a worksheet that produces a number you can defend.</description>
    <category>Bluetooth</category>
  </item>
  <item>
    <title>Hiring a firmware and Bluetooth app developer</title>
    <link>https://shailendraram.com/blog/hire-firmware-and-bluetooth-app-developer</link>
    <guid isPermaLink="true">https://shailendraram.com/blog/hire-firmware-and-bluetooth-app-developer</guid>
    <pubDate>Sun, 23 Aug 2026 00:00:00 GMT</pubDate>
    <description>One role or two, what a generic iOS developer will miss, and the screening questions that separate people who have shipped BLE hardware from people who have read about it.</description>
    <category>Engineering</category>
  </item>
  <item>
    <title>You vibe-coded an app. Here's what breaks when you try to ship it.</title>
    <link>https://shailendraram.com/blog/rescuing-a-vibe-coded-app</link>
    <guid isPermaLink="true">https://shailendraram.com/blog/rescuing-a-vibe-coded-app</guid>
    <pubDate>Tue, 18 Aug 2026 00:00:00 GMT</pubDate>
    <description>What goes wrong when an AI-built prototype meets the App Store, how to triage it in a day, and how to tell a fixable codebase from a rewrite.</description>
    <category>Engineering</category>
  </item>
  <item>
    <title>iOS in 2026: what is mandatory, what is optional, and what each one costs</title>
    <link>https://shailendraram.com/blog/ios-2026-what-to-budget-for</link>
    <guid isPermaLink="true">https://shailendraram.com/blog/ios-2026-what-to-budget-for</guid>
    <pubDate>Mon, 17 Aug 2026 00:00:00 GMT</pubDate>
    <description>The April SDK deadline already changed how your app looks. What iOS 26 and 27 actually require, and what is worth paying for.</description>
    <category>iOS</category>
  </item>
  <item>
    <title>Why your CoreBluetooth scan finds nothing on a real device</title>
    <link>https://shailendraram.com/blog/corebluetooth-scan-finds-nothing</link>
    <guid isPermaLink="true">https://shailendraram.com/blog/corebluetooth-scan-finds-nothing</guid>
    <pubDate>Wed, 12 Aug 2026 00:00:00 GMT</pubDate>
    <description>Four reasons a BLE scan that works in the simulator returns an empty list on real hardware, and how to tell them apart.</description>
    <category>Bluetooth</category>
  </item>
  <item>
    <title>Designing BLE OTA updates that survive a dropped connection</title>
    <link>https://shailendraram.com/blog/ble-ota-updates-that-survive-a-dropped-connection</link>
    <guid isPermaLink="true">https://shailendraram.com/blog/ble-ota-updates-that-survive-a-dropped-connection</guid>
    <pubDate>Tue, 28 Jul 2026 00:00:00 GMT</pubDate>
    <description>A firmware update over Bluetooth will be interrupted. The design question is what happens on the next connection, not how to prevent it.</description>
    <category>Bluetooth</category>
  </item>
  <item>
    <title>What shipping hardware companion apps teaches you about scope</title>
    <link>https://shailendraram.com/blog/shipping-hardware-companion-apps</link>
    <guid isPermaLink="true">https://shailendraram.com/blog/shipping-hardware-companion-apps</guid>
    <pubDate>Thu, 09 Jul 2026 00:00:00 GMT</pubDate>
    <description>Notes from building iOS apps that talk to physical products: where the schedule goes, and what to fix early.</description>
    <category>Engineering</category>
  </item>
</channel>
</rss>
