What’s Mobile Got To Do With Elite Sport?

“Test And Measure” – The Mantra For Performance

It’s a given these days that in order to improve performance, you need metrics, otherwise how do you know whether you’re improving? For example:

  • Software development – bugs, their origins, their root causes, closure rates.
  • Project management – original estimates, actual performance, slippage.
  • Business marketing – leads and closure percentage, loss reasons.

So what’s this got to do with elite sport? Well, it’s just the same. A case in point for is elite sailing. This happens to be something I know quite a lot about, as I’ve sailed all my life and my daughter Jess is campaigning in the 470 Women’s Dinghy class for Tokyo 2020.

As is often the case with a journey into a new project, it started with the innocent question “Dad could you do an app which can…?”.

The Requirement – Some Background

Sailing has an immense number of variables – it’s often been quoted as being only one level below F1 racing in terms of complexity. When competing or training, just some of the variables at play for a dinghy like the 470 are:

  • Rig tension
  • Mast bend
  • Sail depth
  • Jib car position
  • Wind speed
  • Wind direction
    • Oscillating?
    • Shifting left or right in gusts?
  • Venue
    • Tidal?
    • Non-tidal?
  • Sea state
    • Short chop?
    • Long swell?
    • Confused/cross seas?

Of course, as well as these inputs, outcomes need to be recorded:

  • If competing, what was the result (the acid test)
  • If competing or training, any or all of the following
    • Boatspeed
    • Pointing (how close to the wind can the boat sail)
    • Boat handling ease
    • Performance at different parts of the course (acceleration off the start for example).

So you can see that there’s a lot to record. Currently the team use a large paper notebook. Surely there’s a better way! Of course there is – can’t we record the inputs and outcomes on a mobile device, and report on them?

The essential requirement is that it’s available and quick and easy to use – if it’s a faff to use, it won’t be used.

The Requirement

A mobile application with the following capabilities.

  • Platform
    • Phone or tablet
    • iOS, Android and Window Phone
  • Capabile of recording
    • Boat settings
    • Venue details
    • Goals for the session/race
    • Outcomes from the session/race
  • Able to upload to a central store for reporting

The Solution – SportLogger

At the risk of simplifying things too much (there’s no such thing as a trivial application), the above requirements are pretty simple if the right tools are used. For us, the obvious solution is to use Xamarin.Forms to produce a consistent application across iOS, Android and Windows Phone – so SportLogger is born. Yes, it’s not a catchy name, and is likely to change – but that’s the working title for now.

Technical Features

At Microsec, SportLogger is being developed as a simple app which can be used to demonstrate best practice for app development. As such, it has the following features.

  • Written using Xamarin.Forms to achieve maximum cross-platform sharing.
  • MVVM architecture (as would be expected with Xamarin.Forms)
  • Localizable
  • TDD-based
  • Azure back-end
  • Azure synchronisation

As we develop SportLogger, I plan to post here on the the technical implementations, to show how the above can be achieved.

So – What’s Mobile Got To Do With Elite Sport?

The ability to record and report on performance data conveniently and intuitively out in the field. Not that different to business, is it?

Advertisements

Cross Platform Mobile – Native vs Non-Native

When Someone Else Says It Better

Sometimes I come across an article which, when I read it, brings to mind the phrase “I couldn’t have put it better myself”. This is one such article – thanks to Yatlantis for a great post, and Wing Chan at DEG for bringing it to my attention.

The article generated some discussion on Linkedin, for example:

  • There’s still space for the ‘quick to deliver’ cross-platform tools which don’t have the performance or depth.
  • Users are iOS or Android or Windows Phone users – they want their app to behave in a manner according to their chosen platform. This is my viewpoint, by the way.
  • Some users use an app across multiple platforms, and want it to behave the same everywhere.
  • The native/non-native discussion can be taken to a Non-Xamarin.Forms/Xamarin.Forms discussion within the Xamarin field. This is interesting, and has some merit. Xamarin.Forms is meant to be quick to deliver, but less full featured than the non-Forms approach.

So, food for thought on a  Thursday, which also happens to be my birthday.

Xamarin Evolve 2014 – What’s New?

Introduction

Having finished Xamarin Evolve 2014, here’s a quick overview of the reveals an announcements at the keynote. I know the keynote was on Wednesday – and it’s now Saturday morning, but one thing which makes Evolve such a good conference is the social   scene as well as the technical, and the social networking got in the way of getting word on paper/screen earlier.

The keynote addressed two broad themes – partnerships and technical innovations.

Partnerships And Enterprise

Strategic Partners

Last year’s Evolve was focussed on giving us the tools to “delight our customers”. Over the last year (or more), there has also been an increasing focus by Xamarin on the enterprise space. Avanade reinforced this by talking about how Xamarin is key to their strategy.

A key partnership between Xamarin andI IBM was announced – with integration between IBM’s Worklight back-end and Xamarin. Worklight is aimed at the medium to large organisations – so while not necessarily relevant to smaller developers and customers, it shows the commitment from an industry leader.

Component Partners

Showing that Xamarin.Forms is gaining adoption and traction, a whole raft of component suppliers are now targeting Xamarin.Forms, supplying Forms-specific or Forms-compatible versions of their components. This should make Xamarin.Forms apps even more powerful.

Tools And Toys

Now for the bit which interests the software engineers – the tools which are aimed to delight us so that we can delight our customers.

Xamarin Profiler

Now we have a profiler integrated into the IDE, allowing memory and performance to be monitored much more easily. This is going to be an essential tool to help catch those memory management gotchas early. What’s nice is that it’s got a native UI on each platform – Xamarin heeding their own advice!

Android Player

We all know that the Android emulator is pretty awful. Well, now we’ve got Xamarin’s own emulator – the Android Player. Features not found on other emulators include:

  • Using your development machine’s cameras in your application
  • Simulating battery state
  • Easy mocking of location

As well as the fact that it uses hardware accelerated virtualisation and OpenGL – meaning it is fast. It boots in 17 seconds. Yes, 17 seconds.

However – a caveat. It’s a preview release at the moment, and colleagues at the conference did find some quirks when using it – so accept that you’re at the bleeding edge of technology if you use it.

Xamarin Sketches

Fed up with the edit/build/deploy/debug cycle – especially when just trying to see exactly how to get an API call right, or what the UI will look like? Now Xamarin Sketches allows real-time compilation and visualisation your code. You can even have Xamarin.Forms code in the editor window, so you can see what your app will look like and tweak padding etc. to watch the effects.

I think this has the potential to be a major saving when tweaking UIs in Xamarin.Forms (only code-behind is supported at the moment. Support for XAML is possible we’re told…) and also for just exploring APIs.

Oh yes, it also does very clever stuff like showing you how many times your loop will execute, allow plotting of variable values, and a heap more.

Xamarin Insights

There are several tools out there for live crash monitoring and reporting (Crashlytics, Crittercism, Raygun among others). The problem is that these are often native and so one needs to create a Xamarin binding to use them (although Raygun has a component in the store).

Now we’ve got a Xamarin Insights – allowing crash reporting, alerting, monitoring and performance monitoring. All optimised to work with Xamarin. I’ve been holding off adding live crash reporting to our apps until now, but this is one of the first things I’ll be implementing on our next releases.

UI Test Automation

If you’re using Xamarin Test Cloud you can now use C# to write your tests – no new languages to learn!

Conclusion

The tools from Xamarin continue to get better, helping us to produce great applications faster, and (with Insights) to monitor them and keep improving them when they’re out in the field.

The Future Of Enterprise Mobility & Device Management – Thoughts From A Mobile Developer

Introduction

Last week I attended this event, organised by PSBE Futures. The aim of the event was to examine BYOD with relevance to:

  • Security – how can organisations minimise risks associated with BYOD?
  • Innovation – what are the latest technological developments that can enable optimum results?
  • Compliance – how robust is your device management/BYOD policy?

There were many interesting presentations; here I outline the main messages I took away – looking at the event from the standpoint of a supplier/developer of Xamarin cross-platform mobile application solutions.

Security

Bring Your Own Device is more like Bring Your Own Disaster

Bring Your Own Device is fraught with problems including:

  • The nightmare of supporting a multitude of devices (although we at Microsec can test against scores of devices using Xamarin Test Cloud, where do we stop?)
  • The legal minefield of remote wipe – country jurisdictions have very different interpretations on whose data it is, and what if you wipe personal data by mistake?

Have A Robust, Thought Through Policy On Security

As a mobile developer, have a policy on security. If supplying to an enterprise, have partnerships established, or a strategy identified, covering Mobile Device Management – this should include the need/availability of personal/coporate data segregration.

It’s essential to have this policy available as part of your sales/technical literature – so that when the customer asks about it, you’ve got an answer. If they don’t ask about it, then it’s a great “And here’s something you may not have thought of” sales point.

Encrypt Application Data

The data store your mobile application uses should be encrypted. If you do this, then even if you don’t have remote wipe, data segregation, or other mechanisms in place, your customer’s data is secure (or at least you can demonstrate that you’ve taken reasonable steps to secure it).

The crux of the matter is that you have so little control of what happens to the device. Will it get lost, broken, sold, stolen?

Mobile Development Strategies

Listening to sessions byu Conor O’Neill and Joe Blake from FeedHenry, and Ed Kay from the Clancy Group, I was pleased to see that at Microsec we’ve had similar experiences and solutions to them.

Set Up Mobile Layer, Take Small Steps

  • Establish a neutral mobile API layer which insulates the mobile application from legacy/line of business systems.
  • Implement small, discreet, controllable business process on the mobile platform. Don’t go for a ‘big app to do everything’ approach. Small is controllable and gets better buy-in from customer stakeholders.

Don’t Do It Just Because The Device/You Can Do It

Just because the device can do something, don’t assume it will do it well enough. We’ve found this with mobile scanning – the device camera just doesn’t cut the mustard, and use a bluetooth scanner which provides all-day enterprise scanning.

Think Of Practicalities

Really simple ones. Can engineers really type productively on an iPhone? Where will an engineer put an iPad or large tablet?

Is Mobile Really The Solution?

A very good point from Joe. I recently took a call from a poential customer saying – effectively – “I need a mobile app, but I’m not sure what it needs to do.” Mobile may be the latest thing, but it needs to have value.

Conclusion

While the strategies and real-life experience sessions were very interesting and helped to validate our approach at Microsec. The key message from the day for me was encrypt your data – even that data which the customer says “Oh, it’s not important, we’re not worried about it”. Until it turns out it was important, and no-one knows where the device has got to.

Augmented Reality, Drones, And Daughters

At Microsec we’re currently developing proof of concept applications for the Vuzix M100 smart glasses – mainly in the hands-free warehouse picking and hygiene/traceability fields, but also with several concepts in the pipleline for augmented reality.

As I get older, I have to accept that my children will out-do me when it comes to discovering new and interesting ideas.

So it should not have been a surprise to be sent a link by my daughter Jess – studying Engineering Design at Bristol University (and specialising in Aeronautical Engineering).

The link is to this BBC News Technology story, showing how EasyJet are trialling the use of drones – carrying sophisticated imaging technology – to survey aircraft for damage. The interesting part of the video for me was the segment where Epson Moviero BT-200 glasses are also used to then allow the pilot or engineer to view the aircraft with augmented reality highlighting damaged areas and repairs, in communication with a remote engineering team.

I’ve been impressed by the M100 – with its ability to run applications completely stand-alone or paired to an Android phone. The BT-200 is a different beast – with a transparent display and a remotely wired control unit.

There are advantages and disadvantages to both approaches – I just now have to get my hands on a BT-200 to see what it can really do, and decide for myself!