#WINDOWS10 – UWP Community Toolkit 1.5. New BlueTooth LE features, new controls and more …

Hi!

I’ve put on hold my Hololens projects today, and it was time to refresh my UWP and Cognitive Services knowledge to close a couple of Apps. So, this seems to be a good time to check what’s new with the UWP Community Toolkit. Since my last review it has some new controls and features, and some of them are a good fit for my Apps.

OrbitView, a very nice UI control with a very specific orbit presentation of information

BlueTooth LE Helper, this one presents the very complicated BLE model in a more developer friendly coding interface. We can use this to discover, enumerate, connect and interact with BlueTooth Low Energy devices

Controls-OrbitView

And, let’s not forget of some classic features like the AppSetting helper, the network information helper and more.

There are several ways to start and to use the UWP Community Toolkit

  • Go to the GitHub repository, clone the repo and take a nice and deep look at the source code
  • Search and Add the NuGet package into a UWP app and use the features we need
  • Download the sample App from the Microsoft Store to have a live view of the Toolkit features.

Happy Coding!

Saludos @ Burlington

El Bruno

References

#WINDOWS10 – UWP Community Toolkit 1.5. Es tiempo de BlueToothLE, nuevos controles y más …

Hola!

Durante estos días he puesto On Hold mis Hololens y me ha tocado refrescar mis conocimientos en UWP y Cognitive Services para cerrar un par de Apps más que interesantes. En este caso no puedo utilizar SyncFusion, por una cuestión de distribución y licencias, y si bien no estaba buscando controles, recordé que UWP Community Toolkit había publicado una nueva version. Como siempre, darle un vistazo vale la pena.
Pues bien, desde la última version que utilice en la version actual hay un par de elementos interesantes que utilizare para mi próxima App.

OrbitView, interesante control con una presentación grafica ideal para algunos escenarios

BlueTooth LE Helper, que parece que empaqueta de forma coherente y más amigable las interfaces necesarias para enumerar, conectar y trabajar con dispositivos BlueTooth Low Energy

Controls-OrbitView

Además de clásicos helpers para guardar settings en una App, verificar el estado de la red, ver información del sistema y más.

Como siempre, hay varias opciones para conocer y utilizar este producto

  • Ir al repo de GitHub del producto y descargar el código para ver cómo funciona
  • Agregar el package NuGet directamente en nuestra App y utilizar las funcionalidades y controles
  • Descargar la app de ejemplo de la Microsoft Store y ver ejemplos sobre cómo funciona el Toolkit.

Happy Coding!

Saludos @ Burlington

El Bruno

References

#Windows10 – UWP Community Toolkit 1.2. With connection pooling support for HttpRequests !

Hello!

A few months ago I wrote about the UWP Community Toolkit, as an excellent set of assets that can help us if we are developing UWP Apps. A couple of days ago, a new version was released and it has quite a few new features. You can read the full post in the Windows Developer Blog.I really like this one:

A new helper to perform HTTP Requests, HttpHelper. It greatly simplifies us the code when we make requests of this type. For example

 

using (var request = new HttpHelperRequest(new Uri(twitterUrl), HttpMethod.Post))
 {
   using (var response = await HttpHelper.Instance.SendRequestAsync(request))
   {
     return await response.GetTextResultAsync();
   }
 }

The most interesting thing about this helper is that internally implements a pooling of connections for our calls HTTP. Some time ago I read an article where, in a nutshell, cut you your fingers if you were using an HttpClient as if it were a DataBase connection.

The problem is that it is very tempting to use HttpClient follows, although by the nature of HttpClient, each instance that is within the using() will open a new connection, and in a system that requires many connections, we can find errors quickly. The friend, Simon Timms, explains it very well here (link).

using(var client = new HttpClient())
{
  //do something with http client
}

Since well, the HTTP helper of UWP Community Toolkit 1.2, brings implemented factory pool of connections, with something as simple as a Singleton for the connection Http only with this, already worth try this toolkit.

Happy coding 😀

Saludos @ Toronto

El Bruno

References

#Windows10 – UWP Community Toolkit 1.2. Lo mejor, connection pooling en HttpRequests !

Hola !

Hace unos meses escribí sobre UWP Community Toolkit, como un excelente set de assets que nos pueden ayudar si estamos desarrollando UWP Apps. Pues bien, hace un par de días, se liberó una nueva versión que tiene bastantes novedades, el post completo en Windows Developer las comenta a todas. En particular yo destaco

Un nuevo helper para realizar peticiones HTTP, HttpHelper. Nos simplifica mucho el código cuando realizamos peticiones de este tipo. Por ejemplo

using (var request = new HttpHelperRequest(new Uri(twitterUrl), HttpMethod.Post))
 {
   using (var response = await HttpHelper.Instance.SendRequestAsync(request))
   {
     return await response.GetTextResultAsync();
   }
 }

Lo más interesante de este helper, es que internamente implementa un pooling de conexiones para nuestras llamadas http. Hace un tiempo leí un artículo donde, en pocas palabras, te cortaban los dedos si utilizabas una HttpClient como si fuese una DataBase connection.

El problema es que es muy tentador utilizar HttpClient de la siguiente forma, aunque por la naturaleza de HttpClient, cada instancia que esté dentro del using() abrirá una nueva conexión y en un sistema que requiera muchas conexiones, podemos encontrarnos con errores rápidamente. El amigo, Simon Timms, lo explica muy bien aquí (link).

using(var client = new HttpClient())
{
  //do something with http client
}

 

Pues bien, el helper HTTP de UWP Community Toolkit 1.2, trae implementado de fábrica el pool de conexiones, con algo tan simple como un Singleton para la conexión Http. Solo con esto, ya vale la pena probar este toolkit.

Happy coding 😀

Saludos @ Toronto

El Bruno

References

#Hololens – Some APIs will work, other no, and there is no easy way to find it :S

Hello!

It is time to begin to share some experiences developing for Hololens. This post is related to UWP Apps, general base for all devices in Windows 10 family.

While have a base common of features in all the devices, for some features is a good practice to validate if the functionalities are implemented or not in each type of device.

As well, according to the article [Dynamically detecting features with API contracts (10 by 10)], the right way to do this is using the ApiInformation class. The example shared bu the Windows Dev Center team is very easy to read and understand:

using Windows.Foundation.Metadata;

if (ApiInformation.IsTypePresent(“Windows.Media.Playlists.Playlist”))
{
await myAwesomePlaylist.SaveAsAsync( … );
}

The code is self explanatory, if we can use the APIs of Playlist, we have everything ready to go on. In the Hololens scenario, this works very well. Some features like Print or Share, that are not directly available on the platform.
However, we must be careful here. In example: What happens if we want to access the camera from the Hololens and use the CameraCaptureUI class? This class we have an option to see in time real the feed of the camera and take a photo on this.

Note: I know is an inconsistency to use this in the Hololens. Camera will always show what they are seeing. However as an example for the post it comes great!

So, if we use CameraCaptureUI we’ll have the following steps in Hololens:

  • The API CameraCaptureUI will be returned as available in Hololens
  • When we use it, Windows 10 will suggests us to download an app from the Store for this
  • What?

Here is a live sample:

2016 08 23 Hololens CameraCaptureUi

Using this sample code:

Clipboard02

So, for this scenario, validate the availability of an API is not working. Here comes the time of go for an ungly solution

Use AnalyticsInfo.VersionInfo.DeviceFamily to see the type of device where the app is running. In the case of the Hololens this property returns “Windows.Holographic”.

This solution works. And I know, I add a BIG NOTE: As soon as UWP has a better way to validate this type of scenarios, this feature and evidence must be eliminated!

Clipboard06

A kitten and 2 unicorns less thanks to 5 lines of code! Sorry about that 😦

Greetings @ Toronto

El Bruno

References

#Hololens – Validando APIs que funcionan pero que no funcionan :S

Hola !

Es momento de comenzar a compartir algunas experiencias desarrollando para Hololens. Este caso es relacionado con UWP Apps, la base general de apps para todos los devices Windows 10.

Si bien tenemos una base común de features en todos los devices, para algunas cosas es recomendable validar si las funcionalidades están implementadas o no en un tipo especial de dispositivo.

Pues bien, según el artículo [Dynamically detecting features with API contracts (10 by 10)], la forma correcta de hacer esto es utilizando la clase ApiInformation. El ejemplo que nos comparte el equipo de Windows Dev Center es el siguiente:

using Windows.Foundation.Metadata;

if (ApiInformation.IsTypePresent(“Windows.Media.Playlists.Playlist”))
{
await myAwesomePlaylist.SaveAsAsync( … );
}

El código es bastante auto explicativo, si podemos utilizar las APIs de Playlist, pues … tenemos todo listo para seguir. En el caso de las Hololens, esto funciona muy bien, con opciones como Print o Share, que directamente no están disponibles en la plataforma.

Sin embargo, no es oro todo lo que reluce. ¿Qué sucede si queremos acceder a la cámara de las Hololens y utilizar la clase CameraCaptureUI? Esta clase nos brinda una opción para poder ver en tiempo real el feed de la cámara y sacar una foto sobre el mismo.

Aclaración: Es una incoherencia usar esto en las Hololens, lo sé. La cámara mostrará siempre lo que estemos viendo. Sin embargo como ejemplo para el post me viene genial!

Pues bien, cuando utilizamos CameraCaptureUI tenemos el siguiente funcionamiento en las Hololens:

  • La API CameraCaptureUI está disponible en Hololens
  • Al momento de utilizarla, Windows 10 nos sugiere la opción de descargar una app de la Store para esto
  • What ???

Aquí en funcionamiento:

2016 08 23 Hololens CameraCaptureUi

Sobre este código:

Clipboard02

O sea que, en este caso, validar la disponibilidad de una API no sirve. Llega el momento de utilizar una mala práctica

Utilizar AnalyticsInfo.VersionInfo.DeviceFamily para ver el tipo de dispositivo en el que se está corriendo la App. En el caso de las Hololens esta propiedad retorna “Windows.Holographic“.

Esta solución es una de las posibles, y por ahora la que funciona. Eso sí, apuntando que en cuanto UWP posea una mejor forma de validar este tipo de escenarios, esta función y  sus pruebas deben ser eliminadas!

Clipboard06

Un gatito y 2 unicornios menos gracias a 5 líneas de código !

Saludos @ Toronto

El Bruno

References

#Myo – #Windows 10, #UWP Apps, #Myo and Visual Studio 2015

Hi !

Myo series

  1. Getting started, #Windows10 configuration
  2. Starting as a developer with some C++ basic code
  3. MyoSharp a C# SDK implementation for the Myo armband
  4. Working with the Orientation and Gyroscope in C# and a 3D Cube
  5. Working with the #Emg data in C# (electromyography sensors)

Today I’ll write on how to interact with the Myo armband with a Universal Windows Platform App. Based on the previous posts contents, on this one I will create an example and I’ll show you the basic options of connection, capturing poses, and more in a UWP App.

The first thing to do is to create a UWP with .net Framework 4.6.1

 

image

So, at this point, we have to find a SDK for Myo which support UWP. MyoSharp, the one I used before in my posts, is not is designed for Universal Apps. Lucky for us, our MVP MVP Sebastiano Galazzo (@galazzoseba), has created and published on NuGet a package for Myo which we can use in UWP.

image

Once we have added the package, we need to initialize the device. In this case, I do this in the constructor of a view and also subscribe me to the fist pose detection event. When it detects the pose of a fist, a vibration notification is sent to the cuff and displays a message in the Visual Studio Output pane.

image

If for example, we want to work with EMG information, we will see that in the event of EMG data capture, available 8 electrical sensors the device values.

image

Finally, if we want to work with the values of the accelerometer, gyroscope and orientation, the DataAvailable() event provides us this information.

image

So we have the opportunity to create Universal Windows Apps that can also interact with the Myo armband!

Greetings @ Toronto

El Bruno

References

#VS2015 – Family Notes: excelente app y source con lo ultimo de Windows 10 y Cognitive Services

¡ Hola!

El equipo de Windows App Team Blog ha publicado en este último tiempo, una Windows Universal App que sirve como ejemplo utilizando algunas de las últimas tecnologías de Microsoft para Windows 10. El objetivo principal de la app es la creación de notas, en formato Sticky Notes y para ello utiliza reconocimiento de rostros de Windows integrados con Cognitive Services para identificar a los usuarios frente al ordenador, también utiliza Cortana Voice Commands para iniciar la aplicación, crear nuevas notas y mucho más.

image

También hay un buen conjunto de entradas de blogs donde se explica el proceso de desarrollo de la App (ver referencias) ejemplos basado en C# y XAML. También, hay algunos videos en Channel 9, y bastante material más.

Todo el código fuente está disponible en GitHub, así que fácilmente se puede descargar el código, compilar y empezar a conocer sobre :

* Todos estos temas se describen en la Página principal de GitHub

Saludos @ Toronto

El Bruno

References

#VS2015 – Looking for a nice demo using the latest Microsoft technologies? Family Notes is your starting point

Hi !

The Windows App Team Blog team has released a month ago a nice sample of a Universal Windows App which uses most of the latest Microsoft technologies for Windows 10. This app allows the creation of notes, in sticky notes format, and to do this uses Windows Face Recognition with Cognitive Services to identify users, it also uses Cortana voice commands to start the app or create new notes, and much more.

image

There is also a nice set of blogs posts explaining the development process (see references) with all the explaining samples using C# and XAML. Also, there are some videos in Channel 9 related to the Family Notes development background (Using Ink, Voice, and Face Recognition in a UWP App)

All the source code is available in GitHub, so you can easily download the code and start to learn:

*All this topics are described in the main GitHub page

Greetings @ Toronto

El Bruno

References

#Podcast – All in: #Windows10, #RaspberryPi, #VisualStudio y #Karts!

Clipboard01

Hola !

Desde Toronto, sigo probando y buscando la manera de colaborar con las comunidades de España y Latino américa en remoto. Ahora que ya tento mi propio canal en Channel9, es tiempo de probar algo en lo que soy completamente novato: Podcasts.

En el episodio de hoy (no se si episodio es e término correcto) estaré hablando con Francisco Javier Fernández Piatek y Marcelo Villacorta Moreno sobre un proyecto más que interesante en el que han participado ambos. Solo decir que involucra Visual Studio 2015, Windows 10 IoT Core y Raspberry Pi es genial, aunque si además el contexto son carreras de Karts, solo puede ir a mejor!

El audio está disponible en iVoox en este link.

 

Saludos @ Toronto

-El Bruno

References