Mateusz Stawecki

Thoughts on Mobile, Reactive & Serverless

Archive for ‘June, 2015’

When watching the WWDC2015 Keynote, I’ve noticed that the Newsstand icon wasn’t on any of the screenshots. Hmm… interesting. Shortly after that Apple announced “News”, it was pretty clear Newsstand was getting a “replacement”. iOS9 is still in beta, so I guess anything can happen, but I think it’s time to declare the new world order…

#1 Newsstand is still a Category on the AppStore

Not much changed here, even the covers are still around.

Newsstand - AppStore

#2 Newsstand “shelves UI” and the icon are gone – replaced with a generic app group

Just like any other group, it contains apps and icons. Covers are gone. I guess magazine covers still make sense on the AppStore, if the app uses them internally.

Newsstand - app group

#3 Newsstand apps are finally free to leave the group and exist anywhere on your home screen

Newsstand - freedom

What’s up with News?

News is interesting, because it promotes a completely new format for displaying news content. Interestingly, by taking away the focus from apps, which is a quite unusual move. I’ve got used to Apple being all about Apps. The introduction of “seamless linking” might help our case – following article links inside news would allow you to navigate straight to your app.

So far, it seams that News is much closer to what Flipboard is rather than what Newsstand used to be. I don’t see how News would be a better choice for “magazines” (just to clarify – I mean the “magazine” format – regular bundle of content behind a cover), but maybe the “magazine” format is not right for mobile? Do we all have ADHD and can only handle flicking through streams nowadays?

Personally, I still believe in “magazines”, I still think people should try to run magazines on the AppStore. News might turn out to be a great solution for news portals, but I find it very hard to call “News” a replacement for “Newsstand”, because it’s such a huge shift – maybe an “alternate approach”? Apple hasn’t killed magazines just yet.

I’m eager to see how this plays out.

Leave a comment
During the 2013 WWDC alongside iOS7 Apple announced an exciting addition to its CoreLocation framework – a technology that could finally solve the problem of indoor location detection – iBeacons, by leveraging the under-utilised (at the time) Bluetooth Low Energy. The framework was hard to test at first due to lack of hardware providers for the actual beacons, but several startups and companies soon jumped at the opportunity and we could finally give it a proper shot. However, particularly in early releases of iOS7 the iBeacon tech seemed to disappoint with its poor accuracy and reliability. While the concept got a lot of developers excited, the amazement quickly turned into frustration. So, how well do iBeacons actually work nowadays?

Previous Experiments

Less than a year after release, I took part in making some experimental apps.
One which was a guided tour of an office building – related information was displayed when a new room was entered. The beacon accuracy wasn’t particularly important since the space was large. The demo worked fine, especially when the application was running in foreground.
The other one was done at Úll Conf 2014 and relied on the conference app waking up in background. For the first time we could test the setup across >100 devices. We’ve announced a scavenger hunt: once a device came in range with a beacon installed at one of our secret locations, an achievement badge was unlocked in the app. The experiment results were mixed, some things worked, some didn’t (I’ve summarised them last year). iBeacons seemed a little too young to be more than a curiosity. When iOS7 was updated with further fixes and later iOS8, we finally saw improvement. Apple was clearly updating iBeacons and other features which suffered from similar issues (e.g. multi-peer connectivity which was practically a dummy API in the initial release of iOS7). It’s understandable that these things take time to perfect and need to be tested in live conditions, which for a secretive company like Apple was impossible to do before the announcement. So, how far have we come?

“Well, this is going to be a problem.”

Fast forward to April 2015, I’ve attended Úll Conf again and this time we decided to try out a more ambitious setup. We’ve had a perfect opportunity to put together an audio tour to the Museum feature, which was a small exhibition of Apple devices and memorabilias. We had 12 kontakt.io beacons which we installed on some exhibition items.
In the end it worked out quite well:
 
 —
However, things didn’t start off very well at all. After we’ve setup the beacons, I’ve quickly realised that the app, which was tested against a much simpler setup didn’t behave the way we wanted. This was due to a several problems I’ve observed:

Ranging is far from perfect

On iOS8 I’ve noticed a lot of improvement in the ranging results, but occasional issues still arise:
  • beacons may randomly drop off: don’t be surprised when a ranged beacon disappears only to re-appear on next range
  • When looking at RSSI, be aware that it is equal to 0 when the beacon is in unknown proximity:
    CLBeacon (uuid:…, major:0, minor:1, proximity:0 +/- -1.00m, rssi:0)
  • approximate distances are inaccurate and signal strength reading may fluctuate
When using multiple beacons in a dense setup these inaccuracies will prove particularly difficult.
Solutions:
  • make sure your ranging code compensates for some of these issues: if you’re displaying content for the nearest beacons, don’t trust the result immediately, put a threshold on when a beacon is considered as “the nearest beacon”.

Screenshot 2015-06-11 01.52.13

  • compensate with the user flow. We’ve been very ambitious: the app would display content as soon as a new beacon was considered the closest. On top of that we’ve set the audio to play automatically. This meant that when things went wrong, the current audio track for the item was interrupted with the false-positive result. Why not advertise that a location is available, but allow the user to confirm interaction in a non-intrusive way.
  • compensate with how you structure your information. E.g. you could cluster several  items around a single beacon, instead of having a really dense setup.
The way you compensate will have its trade offs, so you want to pick the right trade off for your use case.

Different devices will give different results

Besides issues with ranging itself, remember that different iPhone/iPad models will have different chipsets and construction. That will lead to inconsistent results.
Here’s a sample i recorded at the Museum, when standing ~50cm from beacon no 1. (iBeacon was behind glass). Each device was in exactly the same spot.
museum

Spot the iBeacons! 😉

iBeacon Ranging Comparison
As you can see, even the loose definition of the three proximity states …Isn’t loose enough!
  • Immediate: Within a few centimeters
  • Near: Within a couple of meters
  • Far: Greater than 10 meters away

Yeah, right!

To avoid fluctuations between beacons, one of the things I’ve tried was to accept only beacons ranged as “immediate” but it was surprisingly rare to observe that state on the old iPad Retina.

Background location monitoring doesn’t work immediately after boot

This is a really important thing to remember when testing background ranging capabilities. Give it at least 10mins for iOS to start looking for your location in background. If you expect for your app to wake up soon after a restart, it won’t work. iOS is taking its time to wake up all of its background services. This is a rare case when the common “have you tried turning it on and off?” approach, actually makes things worse.
Testing iBeacons will require a bit of patience and may require some ingenuity, just ask Ben Dodson and his — clever way to “simulate” entering and leaving regions:

iBeacon testing means lots of tin foil to check what happens when entering and leaving the region!

A post shared by Ben Dodson (@bendodson) on

Conclusion

iBeacons aren’t perfect, but they’ve certainly improved. Simple use cases will work pretty well. More complex use cases just require a bit of extra care. The technology enables a lot of new possibilities, from simple ideas like reminding your conference attendees what the WiFi password is when they arrive at your venue, to an immersive shopping or museum experience.
What worries me a little is that we haven’t seen a lot of real case studies in the wild. Imagination’s the limit, but clearly iBeacons haven’t been fully embraced yet. It certainly may be due to their rough start, but as with any technology, if it’s used for its own sake and doesn’t provide actual value to end users, it’s usage is doomed to fail. Can iBeacons actually add real value to the mobile experience? Are they reliable enough to do so? I think so, but during development, make sure you understand their quirks and limitations.

If you want to play with iBeacons, you can do it easily by building something with Glide – our app creation platform. Check it out here.
2 Comments

I’ve recently wrote a piece for The Loop Magazine about a subject close to my heart that is kind of a taboo at conferences – anxiety, clash of egos, impostor syndrome. The piece is in form of a collective interview with some interesting individuals: Amy Worrall, Barry (Baz) Scott, Carola Nitz, Casey Liss, Stuff MC and Mark Reynolds.

Check it out here: Behind the Mask – The Loop Magazine

Ull Conf 2015

Leave a comment