App UI / UX – Part 1

May 23rd, 2014

In the previous series on Bluetooth LE we got a simple app working which read temperature and humidity values from a Texas Instruments SensorTag, and displayed them. Functionally the app worked quite well but, because the series was focused on BLE topics, we neglected the UI somewhat. In this series we’ll take a look at various techniques that we can employ to make our app feel much nicer, and provide a richer and, hopefully, more engaging experience for the user.
Read the rest of this entry »

Bluetooth LE – Part 6

May 15th, 2014

Previously in this series we’ve looked at the various steps that we need to take before we can begin to get temperature and humidity notifications from a TI SensorTag. In the final article in this series we’ll complete things by registering to receive notifications, and receiving them
Read the rest of this entry »

Bluetooth LE – Part 5

May 9th, 2014

Previously in this series we have discovered a BLE sensor and connected to it. All that remains is to actually get some data from it but that isn’t quite as straightforward as it may seem, at first. In this article we’ll look at GATT characteristics and how they facilitate data exchange between the host and the sensor.
Read the rest of this entry »

Bluetooth LE – Part 4

May 2nd, 2014

Previously in this series we got basic BLE device discovery working for our app to display ambient temperature and humidity with values obtained from a TI SensorTag over BLE. In this article we’ll look at connecting to the SensorTag now that we can find it.
Read the rest of this entry »

Bluetooth LE – Part 3

April 25th, 2014

Previously in this series we’ve looked at some of the background of Bluetooth LE and set up a simple Activity / Service framework. In this article we’ll get in to the nitty gritty of Bluetooth LE and look at device discovery.
Read the rest of this entry »

Bluetooth LE – Part 2

April 17th, 2014

In the previous article we covered a bit of the background of Bluetooth LE and what we’re going to develop in this series, but there was no actual code. We’ll rectify that in this article and define the Service / Activity architecture that were going to use to ensure that we’re going to keep our Bluetooth operations decoupled from the UI.
Read the rest of this entry »

Bluetooth LE – Part 1

April 11th, 2014

At the time of writing, Google have just announced Android Wear, and Motorola announced the Moto 360 smart watch. The Wear APIs are still fairly basic, are quite well documented, and there are more to come, so I’m not going to write a tutorial on them (not yet, at least!). One interesting thing about the Moto 360 is that is supported on Android 4.3 and later. The most obvious reason for this is that Bluetooth LE is only supported in Android 4.3 and later, which would imply that the Moto 360 will support Bluetooth LE. Bluetooth LE is a technology that is going to be central to not only wearable technology, but to many IoT devices. In this series we’ll take a look at using Bluetooth LE on Android.
Read the rest of this entry »

App Polish

April 1st, 2014

Often we complete the functional aspect of an Android project, and when it comes to adding some sparkle to the UI to really make it appealing to the user inspiration can be a little lacking. In this article we’ll start of with a really functional but boring app, and turn it in to something much more exciting.
Read the rest of this entry »

Blurring Images – Part 7

March 28th, 2014

In the previous article we performed some simple optimisations which enormously improved the frame rate of our animations. However, we mentioned that increasing the size of the area that we wish to blur will slow the frame rate because the complexity of the blur operation will increase exponentially. In this article we’ll look at an alternative approach which should permit us to animate larger areas.
Read the rest of this entry »

Blurring Images – Part 6

March 21st, 2014

In the previous article we looked at frame rates, and explored how we can measure them by adding some simple benchmarking logging. In this article we’ll look at implementing our dynamic blurring so that we can animate things, and optimising things to improve our framerate.
Read the rest of this entry »