Jim Bennett
Cloud Developer Advocate

Senior Cloud Developer Advocate at Microsoft, Xamarin Certified Developer, author of Xamarin In Action, blogger, speaker, father and lover of beer, whisky and Thai food. Opinions are my own.

  Reading, UK
Xamarin In Action
  Xamarin In Action
  Twitter
  GitHub
  LinkedIn
  YouTube
  Email
  CV

Face identification with Azure FaceAPI

Recently I've been playing with a lot AI and seeing how it can be used in mobile apps to enhance the experience offered to the user. Currently I am playing with facial recognition using the Azure Cognitive Services FaceAPI. This is a stupidly powerful API that can do a LOT of different things: Detect faces in images Analyze those faces to detect ch…

Read More

Identifying my daughters toys using AI - Part 5, Plugin for on-device models

In the first part of this series I used the Azure Custom Vision service to create an image classifier to allow me to easily identify my daughters cuddly toys. Once created I tested it by uploading an image and seeing what tags the classifier found for the image. In the second part I accessed this model from a Xamarin app, so that I could use the ca…

Read More

Identifying my daughters toys using AI - Part 3, using the models offline in iOS

In the first part of this series I used the Azure Custom Vision service to create an image classifier to allow me to easily identify my daughters cuddly toys. Once created I tested it by uploading an image and seeing what tags the classifier found for the image. In the second part I accessed this model from a Xamarin app, so that I could use the ca…

Read More

Identifying my daughters toys using AI - Part 2, using the model

In the first part of this post I used the Azure Custom Vision service to create an image classifier to allow me to easily identify my daughters cuddly toys. Once created I tested it by uploading an image and seeing what tags the classifier found for the image. Although this works, it's a long winded way of using the model. Ideally I'd want it in a…

Read More

Hiding API keys from Git

I've been working on a Xamarin app using Azure Cognitive Services to do image recognition, and one of the stumbling blocks I've faced is what to do with my API keys. I want to make the app open source as an example of how to use these services, but don't want to check my API keys into Git to be available to all - after all, bad things can happen. I…

Read More

Getting a users Facebook profile after Authenticating your Xamarin app with Azure

I've recently been looking at the authentication offered by Azure for use in a mobile app, specifically using social auth providers like Facebook to allow a user to sign up for my app. The auth setup is incredibly easy, with Azure taking care of a lot of the hard stuff. There are also loads of great docs on how to get it set up - including the Micr…

Read More

Creating Visual Studio project and solution templates - Part 3, VS for Mac extension

In the first part of this set of posts I looked at creating a dotnet new project template, and in the second part I showed how you could easily add this to a Visual Studio for Windows extension. Lets now look at adding it to a Visual Studio for Mac extension, so that our template is available everywhere. It's really easy to create extensions for VS…

Read More

Creating Visual Studio project and solution templates - Part 2, VS for Windows extension

In the first part of this set of posts I looked at creating a dotnet new project template. These are great if you like the cli, but if, like me, you'd rather be able to do File->New then dotnet new is not much use. Instead you need a Visual Studio extension that provides a new project or solution type to the IDE. The good news is that you can easil…

Read More

Hitting refresh on my career

Inspired by Satya Nadella's Hit Refresh, a book well worth reading, I thought I'd write about my Hit Refresh moment. Hit Refresh is inspired by refreshing your browser - it doesn't reload everything, instead it just reloads part of the page. This is reflected in how we can change our lives, not by a complete change, but by refreshing a part. In my…

Read More

Device.StartTimer and iOS backgrounding

I recently completed a lecture on backgrounding in iOS and Android as part of the Xamarin University. During this lecture, one topic of discussion came up with no real answer - how Device.StartTimer() in Xamarin.Forms affects backgrounding. With iOS, if you enable backgrounding using BeginBackgroundTask(), you have 3 minutes to stop all backgroun…

Read More

JimLib.Xamarin is now updated to the Unified API

Finally, after fighting with Xamarin and having my Surface die and need to be reinstalled twice, I've managed to get JimLib.Xamarin updated to use the new Xamarin Unified API so it should be suitable for submitting new apps to the iPhone app store. I'll be updating my first app Second Screen for Plex soon and sending it to the app store for approv…

Read More

Xamarin Unified API

Recently Apple announced some changes to their requirements for apps submitted to the iOS app store. From the 1st February all new apps must support 64-bit (for updates to existing apps, it's 1st June). Xamarin, not wanting to do anything the easy way have decided that as well as supporting this, they will overhaul their API and unify their Mac an…

Read More

Blind technology

Busy, busy, busy. In the last month I've relocated form Thailand to the UK with my family, got my UK company up and running (more coming on this in a later post), lined up one client, fought with the Apple app store to get my developer account set up right so I can sell apps (still not done), found a new place to live and been fighting with overbe…

Read More
 

Face identification with Azure FaceAPI

Recently I've been playing with a lot AI and seeing how it can be used in mobile apps to enhance the experience offered to the user. Currently I am playing with facial recognition using the Azure Cognitive Services FaceAPI. This is a stupidly powerful API that can do a LOT of different things: Detect faces in images Analyze those faces to detect ch…

Read More

Identifying my daughters toys using AI - Part 5, Plugin for on-device models

In the first part of this series I used the Azure Custom Vision service to create an image classifier to allow me to easily identify my daughters cuddly toys. Once created I tested it by uploading an image and seeing what tags the classifier found for the image. In the second part I accessed this model from a Xamarin app, so that I could use the ca…

Read More

Identifying my daughters toys using AI - Part 3, using the models offline in iOS

In the first part of this series I used the Azure Custom Vision service to create an image classifier to allow me to easily identify my daughters cuddly toys. Once created I tested it by uploading an image and seeing what tags the classifier found for the image. In the second part I accessed this model from a Xamarin app, so that I could use the ca…

Read More

Identifying my daughters toys using AI - Part 2, using the model

In the first part of this post I used the Azure Custom Vision service to create an image classifier to allow me to easily identify my daughters cuddly toys. Once created I tested it by uploading an image and seeing what tags the classifier found for the image. Although this works, it's a long winded way of using the model. Ideally I'd want it in a…

Read More

Hiding API keys from Git

I've been working on a Xamarin app using Azure Cognitive Services to do image recognition, and one of the stumbling blocks I've faced is what to do with my API keys. I want to make the app open source as an example of how to use these services, but don't want to check my API keys into Git to be available to all - after all, bad things can happen. I…

Read More

Getting a users Facebook profile after Authenticating your Xamarin app with Azure

I've recently been looking at the authentication offered by Azure for use in a mobile app, specifically using social auth providers like Facebook to allow a user to sign up for my app. The auth setup is incredibly easy, with Azure taking care of a lot of the hard stuff. There are also loads of great docs on how to get it set up - including the Micr…

Read More

Creating Visual Studio project and solution templates - Part 3, VS for Mac extension

In the first part of this set of posts I looked at creating a dotnet new project template, and in the second part I showed how you could easily add this to a Visual Studio for Windows extension. Lets now look at adding it to a Visual Studio for Mac extension, so that our template is available everywhere. It's really easy to create extensions for VS…

Read More

Creating Visual Studio project and solution templates - Part 2, VS for Windows extension

In the first part of this set of posts I looked at creating a dotnet new project template. These are great if you like the cli, but if, like me, you'd rather be able to do File->New then dotnet new is not much use. Instead you need a Visual Studio extension that provides a new project or solution type to the IDE. The good news is that you can easil…

Read More

Hitting refresh on my career

Inspired by Satya Nadella's Hit Refresh, a book well worth reading, I thought I'd write about my Hit Refresh moment. Hit Refresh is inspired by refreshing your browser - it doesn't reload everything, instead it just reloads part of the page. This is reflected in how we can change our lives, not by a complete change, but by refreshing a part. In my…

Read More

Device.StartTimer and iOS backgrounding

I recently completed a lecture on backgrounding in iOS and Android as part of the Xamarin University. During this lecture, one topic of discussion came up with no real answer - how Device.StartTimer() in Xamarin.Forms affects backgrounding. With iOS, if you enable backgrounding using BeginBackgroundTask(), you have 3 minutes to stop all backgroun…

Read More

JimLib.Xamarin is now updated to the Unified API

Finally, after fighting with Xamarin and having my Surface die and need to be reinstalled twice, I've managed to get JimLib.Xamarin updated to use the new Xamarin Unified API so it should be suitable for submitting new apps to the iPhone app store. I'll be updating my first app Second Screen for Plex soon and sending it to the app store for approv…

Read More

Xamarin Unified API

Recently Apple announced some changes to their requirements for apps submitted to the iOS app store. From the 1st February all new apps must support 64-bit (for updates to existing apps, it's 1st June). Xamarin, not wanting to do anything the easy way have decided that as well as supporting this, they will overhaul their API and unify their Mac an…

Read More

Blind technology

Busy, busy, busy. In the last month I've relocated form Thailand to the UK with my family, got my UK company up and running (more coming on this in a later post), lined up one client, fought with the Apple app store to get my developer account set up right so I can sell apps (still not done), found a new place to live and been fighting with overbe…

Read More