[Windows Phone] WebCast para DesarrolloWeb.com ‘Como desarrollar una app para Windows Phone 7.5’

Buenos días seguidores,

Anoche participé de la mano de @eiximenis (Eduard Tomás) y @midesweb (www.desarrolloweb.com) en un webcast que se enmarca dentro de la serie de #netIO. El tema a tratar fue Windows Phone 7.5. Hicimos una introducción y recorrido rápido a la plataforma. Tratamos puntos como herramientas necesarias para poder desarrollar, el estilo característico de Windows Phone que es Metro Style, unas pinceladas de código y por último vimos el marketplace.

 

 

Para los que os iniciéis os dejo unas recomendaciones para que tengáis mas formación:

Libro de Josue Yerai sobre desarrollo para Windows Phone

Blog Arturo Toledo

Tambien os dejo la ppt que vimos ayer por si os interesa, junto con las plantillas para prototipar en windows phone que podáis imprimir

Presentación power point

PlantillaWP7PlantillaWP7Panorama

Para finalizar esta entrada quiero agradecer a todos los que habéis asistido al evento online, estáis viendo este post o veréis el video en youtube. Así como a los organizadores por contar conmigo. Gracias!

Saludos a quien me lea.

Melerin

Imagen1734

¿Aún no tienes ‘My Tasks’ en tu Windows Phone? Aquí tienes el link para descargarla. Espero que te guste.

97e39fb1-1c91-442e-8a6e-ba32b953a01a

No te la juegues al volante si has bebido. Descarga la app ‘AlcoholTest’ para tu Windows Phone. Aquí tienes el link. Y conduce seguro!

Anuncios

[Marketplace] New application AlcoholTest to monitor your alcohol test

Good morging,

This time I’m very happy to introduce you my new app for Windows Phone.

This app has been created to monitor your alcohol test evolution. With this app you can:

  • edit the test if you keep drinking
  • manage different tests for you and your friends
  • choose the country from an large list
  • create / edit / delete drinks
  • a chart monitor of the test evolution
  • view in the panorama of the last active test
  • quick access to the last 5 tests
  • ask for help if you have previously selected a contact
  • share your test in social networks
  • create security margin, which is shown in your chart
  • quick view of your test with a traffic light
    Take a look at this video with the main characteristics of AlcoholTest.

 

 

I hope you like this app.

I want to say THANK YOU!! for their colaboration in this app to: Anna Lovato, Ricard Pérez-Dolz and Marvin Vogel for the traslations. And special thanks to Mirela Sion for the idea and the motivation.

Regards to all

Melerin

Imagen1734 Haven’t you downloaded ‘My tasks’ yet? Here you have the link. I hope you like it.

Segunda posición en Megathon Windows 8 en Barcelona

Buenas tardes,

Este pasado fin de semana he participado en el evento Megathon de Windows 8 en el equipo “Los domingueros” compuesto por Álex Martínez (@maniepetito), Iban Benzal (@ibenzal), Jaime Mosteirín (@jmosteirin), Juan Bacardit (@juanbacardit) y un servidor de ustedes (@melerin). Ha sido todo un lujo formar parte de este equipo con tanto talento. Gran trabajo chicos!

Antes de comentar un poco la aplicación, quiero dar las gracias a la organización de Barcelona (@techdencias) por la ayuda que prestan en todos los sentidos y la enhorabuena por el evento a todos los organizadores (@MegathonW8). Todo un éxito!!!

Hemos disfrutado y aprendido de grandes ponentes:

 

Continuo soporte por parte de la organización:

Y sobretodo muy buen rollito entre los equipos y mucho trabajo!

 

A continuación os dejo un video con las principales características implementadas de Windows 8 en la aplicación Quincke.

 

Quincke es una aplicación destinada a ayudar a las personas con alergias y se basa en la idea original de http://www.appto-startup.com. En base a una completa base de datos de alimentos, alergias y fabricantes, ayuda a elegir los productos que podemos consumir tranquilamente. Es una gran ayuda a la hora de hacer la compra y necesitamos conocer si un determinado producto nos produce alergias ya sea por alguna traza o producto que contenga.

Y todos nos hemos llevado un par de regalitos de parte de Microsoft!!

Para cuando el próximo Mega..Hackathon para Windows Phone 8?

Saludos a quien me lea.

Melerin

Imagen1734 ¿Aún no has descargado ‘my tasks’? Desde aquí puedes hacerlo link. Espero que te guste y te sea de utilidad.

[Windows Phone] Tilt effect in MultiselectList

Good morning followers,

Today I’m going to show you how to implement tilt effect in MultiselectList, and other kinds of lists. I remembered it when I was reading Javier Suarez Ruiz’s post that talks about how to implement tilt effect step by step.

In my case, I need to implement tilt effect in other kind of item list like MultiselectList. Solving this problem is easy.

If you take a look at the implementation of Tilt that we have in PhoneToolkit. We’ll see this constructor…

static TiltEffect()
{
// The tiltable items list.
TiltableItems = new List<Type>()
{
typeof(ButtonBase),
typeof(ListBoxItem),
typeof(MenuItem),
};
}

and TiltableItems is a public List<Type> like this…

public static List<Type> TiltableItems { get; private set; }

So, we are able to add other kinds of items to this list.

We can implement the solution for all our project/solution. In the constructor of App.xaml.cs for example. Once MultiselectItem will be included in TiltableItems, it will be enabled for all the MultiselectList.

Obviously we only have to add the MultiselectItem to the TiltableItems.

// Enable tilt effect for multiselect items
TiltEffect.TiltableItems.Add(typeof(MultiselectItem));

We must to enable Tilt effect in our xaml too.

toolkit:TiltEffect.IsTiltEnabled="True"

A greeting to whom read me.

Melerin

Imagen1734

You don’t have ‘my tasks’ for Windows Phone 7 yet? You can download it from this link. I hope you enjoy and find it useful.

[Windows Phone] Test Driven Development en Windows Phone 7.5

Buenos días seguidores,

En esta ocasión os voy ha comentar una manera para hacer Test Driven Development en una aplicación Windows Phone 7.5.

Para quien no conozca TDD, y tratando de resumirlo muy muchísimo es la idea de desarrollar partiendo de los test. Diseñas el test primero y piensas en los resultados que deberían darte y a partir de ese punto desarrollas y refactorizas para que los test funcionen y consigo la app. Bueno casi mejor aquí esta el link a la wikipedia Lengua fuera

Esta manera en concreto de realizar test para Windows Phone 7, me parece parece muy buena por un sencillo motivo. En mi app, se dio el caso que quería hacer test sobre mi base de datos. No quería usar mocks para ver si las llamadas y/o determinadas funcionalidades estaban correctas. En mi primera app de Windows Phone quería asegurarme que leía, actualizaba e insertaba correctamente en mi base de datos. Es por esto que este ejemplo tampoco hace uso de dll para mock. Y este tipo de solución me permitía, al ser en el fondo una app, realizar la creación de base de datos y luego los test necesarios.

En fin, esta es una de las maneras que existen.

1 – Descargar herramientas de testing para la versión Windows Phone 7.5 ‘Mango’

Para comenzar hay que acudir descargar las dll necesarias. Descarga del blog de Jeff Wilcox. Estas dll son necesarias ya que aquí es donde realmente reside la gracia de todo el invento. Se trata que desde nuestro emulador o terminal podamos ver los test y sus resultados.

El link de la descarga es el actualizado con la versión para Mango.

2 – Crear proyecto de test y añadir dll

Inicialmente en nuestra App partiremos de una solución con un proyecto únicamente, que es sobre el que queremos realizar nuestros UnitTest. Debemos pues crear un segundo proyecto en la solución, que será donde posteriormente realizaremos los test.

A este proyecto se le deben agregar las referencias de las Dll descartadas anteriormente junto con el proyecto inicial sobre el que haremos test.

image

3 – Cargar pantalla de test al arrancar la app

Llegados a este punto se debe cambiar la carga de la pantalla principal del proyecto de test por la pantalla de Test del toolkit.

Lo primero es hacer referencia a la dll de testing.

using Microsoft.Silverlight.Testing;

Una vez esto hemos de subscribirnos al evento Load, ya que es cuando hemos de realizar el cambio de nuestra pantalla por la de test.

public MainPage()
{
InitializeComponent();

Loaded += MainPageLoaded;
}

private void MainPageLoaded(object sender, RoutedEventArgs e)
{
var testPage = UnitTestSystem.CreateTestPage() as IMobileTestPage;
if (testPage == null) return;
BackKeyPress += (o, args) => args.Cancel = testPage.NavigateBack();
var phoneApplicationFrame = Application.Current.RootVisual as PhoneApplicationFrame;
if (phoneApplicationFrame != null)
phoneApplicationFrame.Content = testPage;
}

Así lo que hacemos es crear una pagina de test del tipo IMobileTestPage, que sustituimos por el contenido actual del frame, es decir, el MainPage que no tiene nada.

También se debe anular la navegación al volver y salir de la app.

4 – Crear un test

Bueno! ¿Como va? Fácil de momento, ¿verdad? Ahora ya solo falta crear algún test y lanzar la app.

Para crear un test, solo falta una clasecita mas donde indicaremos que es del tipo TestClass y crearemos los test necesarios. Ni que decir tiene que estos dos son a modo de ejemplo y que cada cual hará los necesarios para su app.

Vamos a crear 2 tipos de test:

– Un primer test lo crearemos para que nos lance una excepción si los parámetros que enviamos no cumplen con los requisitos. Esto se hace indicando como en todos los test que es un TestMethod y además le indicamos que esperamos una excepción y de que tipo será.

[TestMethod]
[ExpectedException(typeof(ArgumentException))]
public void TestArgumentExection()
{
IMainPageModel model = new MainPageModel();
var letra = model.CalcularLetraNIF("1234567");
}

Como veis no estoy haciendo uso de ninguna librería de mock ni nada, eso de momento lo dejo para un próximo post.

El método es un simple cálculo de la letra del NIF, y espera que contenga 8 dígitos. En este caso realizamos un test para verificar eso y si no es de 8 exactos lanzará una excepción del tipo ‘ArgumentException’ como se esta indicando en la cabecera.

– Un segundo test lo vamos a realizar con una llamada ya mas normal y esperando un resultado en concreto.

[TestMethod]
public void TestCalculoLetra()
{
IMainPageModel model = new MainPageModel();
var letra = model.CalcularLetraNIF("52592924");

Assert.IsTrue(letra == 'C' || letra == 'c', "La letra para 52592924 debería ser 'C'");
}

Hacemos uso de Assert para verificar una condición dada y si no es así se informa de un mensaje.

NOTA: si se da el caso que escribimos los test en blanco inicialmente, o alguno de ellos, es conveniente indicar con un ‘Assert.Inconclusive("mensaje")’. Así veremos cuando pasemos los test los que estás vacíos y no nos olvidaremos de ellos.

5 – Ejecutar el test

Una vez llegado a este punto tenemos una app que tiene un proyecto de Test. Al lanzarlo veremos una página de resultados de test. Y tenemos 2 test para ser ejecutados. Bueno… pues vamos a ello, ¿no?

Tened en cuenta que al haber puesto un test de tipo Excepción, si lo ejecutamos en modo debug, se nos parará en dicho test al existir una excepción. Para evitar esto se ejecuta sin debug (Ctrl + F5) o menú ‘Debug > Start Without Debuggin’.

Así pues ponemos el proyecto de test como proyecto de inicio y ejecutamos sin debug.

El resultado que obtendremos será el siguiente.

FooProject.Testing.UnitTestFooProject.Testing.UnitTest.Tests

FooProject.Testing.UnitTest.Test.ExceptionFooProject.Testing.UnitTest.Test.Standar

Vemos en las capturas los 2 test y la información en cada uno de ellos. En la parte superior el color verde indica que están Passed y en la parte inferior vemos un total de los tests que hemos ejecutado.

Si algún test no pasa veríamos algo así. Con la parte superior en rojo y el indicador inferior del numero de test erróneos.

TestFail

Y ya para acabar 2 cosas más sobre esta herramienta para hacer TDD. Inicialmente, antes de ejecutar los test, aparece durante 5 segundos una pantalla para poder filtrar los test que queremos ejecutar. Si no indicamos ningún filtro se lanzan todos en orden alfabético.

Y si queremos indicar un filtro previamente hemos de decir a que Tag pertenece cada test. Para ello en la cabecera le hemos de indicar un Tag.

[Tag("Tag1")]

Por ejemplo cada test tiene un tag (“Tag1” y “Tag2”) si al ejecutar indicamos que queremos solo el “tag1” veríamos lo siguiente.

Filter.Tag1Filter.Tag1.result

Bueno, pues esto ha sido todo por hoy. Espero que os sea de mucha utilidad.

Aquí os dejo el link para la descarga de este ejemplo.

Saludos a quien me lea.

Melerin

Imagen1734

¿Aún no has descargado ‘my tasks’? Desde aquí puedes hacerlo link. Espero que te guste y te sea de utilidad.

[Windows Phone] Analizar el uso de nuestra app con Google Analytics y Microsoft Silverlight Analytics Framework (MSAF)

Buenos días seguidores!

Hace días que tenía ganas de probar esto para poder hacer un seguimiento del uso de mi app. Y mirando un poco he visto que existe ‘Microsoft Silverlight Analytics Framework’ (MASF). Se trata de un framework que te permite realizar un análisis/seguimiento del uso de nuestra app usando herramientas convencionales como Google Analytics, Webtrens, At Internet,…. Aquí cada cual con la que conozca y mas le guste. En mi caso tenia cuenta de Google Analytics y es la que he usado, pero por favor si observáis que con otro sistema se obtiene mas información no dudéis comentarlo.

Vamos a ir paso a paso con un ejemplo de Google Analytics y Microsoft Silverlight Analytics Framework:

1- Descarga de MSAF

Lógicamente lo primero que necesitamos es descargar el instalador de MSAF. Desde aquí podréis realizar la descarga. Una vez descargado se instala, quedará junto al resto de SDKs, y ya podremos comenzar a usarlo.

2- Crear cuenta en Google Analytics:

Para quien no haya trabajado con esta herramienta decir que necesita una cuenta de google. y desde la url http://www.google.com/analytics/ se accede con dicha cuenta y ya se puede tener acceso a crear una cuenta. Una cuenta es usada para hacer el seguimiento de una web o en este caso una app de Windows Phone. En la imagen siguiente se muestra un ejemplo de como configurar una cuenta.

image

Una vez creada ya tenemos el panel con la información que se va recopilando.

image

Cada aplicación nos adjudica un código para su seguimiento en el caso del ejemplo nos ha creado ‘UA-31422173-1’. Que usaremos para el ejemplo.

3 – Referencias en nuestra app.

En nuestra app necesitamos añadir las referencias siguientes al proyecto.

– Google.WebAnalytics

– Microsoft.SilverlightMediaFramework.Compatibility.Phone

– Microsoft.WebAnalytics

– Microsoft.WebAnalytics.Behaviors

– System.Windows.Interactivity

image

Con el SDK instalado aparecen en las librerías .NET sin problemas, es decir, no hay que rebuscar ni nada por el estilo. fácil fácil!

4 – Creación de un servicio en nuestra app para interactuar con MSAF

Hemos de crear un servicio que posteriormente referenciaremos que mediante el cual pongamos en marcha el tracking de eventos para que se puedan registrar en Google Analytics.

using System.Windows;
using System.ComponentModel.Composition.Hosting;
using Google.WebAnalytics;

public class MyAnalyticsService : IApplicationService
{
#region IApplicationService Members

public void StartService(ApplicationServiceContext context)
{
CompositionHost.Initialize(
new AssemblyCatalog(Application.Current.GetType().Assembly),
new AssemblyCatalog(typeof(Microsoft.WebAnalytics.AnalyticsEvent).Assembly),
new AssemblyCatalog(typeof(Microsoft.WebAnalytics.Behaviors.TrackAction).Assembly),
new AssemblyCatalog(typeof(GoogleAnalytics).Assembly));
}

public void StopService()
{
}

#endregion
}

5 – Referenciar servicio

Una vez tenemos el servicio solo queda referenciarlo desde nuestro App.xaml.

<local:MyAnalyticsService/>

y también debemos configurar la cuenta sobre la que se va a realizar el seguimiento en Google Analytics

<mwa:WebAnalyticsService>
<mwa:WebAnalyticsService.Services>
<ga:GoogleAnalytics WebPropertyId="UA-31422173-1" Category="WP75" />
</mwa:WebAnalyticsService.Services>
</mwa:WebAnalyticsService>

6 – Resultado

Con todo esto cuando ejecutemos nuestra aplicación y naveguemos un poco ya podremos ver en Google Analytics si funciona o no con el seguimiento en tiempo real.

image

image

7 – Descarga de ejemplo

Si queréis el ejemplo del uso lo tenéis aquí.

Creo que es muy interesante el poder ver que uso tiene nuestra app. Puesto que la grafica del MarketPlace no va mas allá del numero de descargas, pero si se esta usando y como es una información que no tenemos manera de ver. Esto mismo se puede usar para cualquier aplicación de Silverlight.

Espero que sea de vuestro interés y de utilidad. Y como siempre cualquier detalle o

Un saludo a tod@s

Melerin

Imagen173

¿Aún no has descargado ‘my tasks’? Desde aquí puedes hacerlo link. Espero que te guste y te sea de utilidad.

[Windows Phone] Mi primera App!!!

Hola a todos!

Esta semana estoy de enhorabuena! Ha sido aprobada mi primer app en el Marketplace de Microsoft.

Es una primera versión de una app de gestión de tareas. “My tasks” se llama, original eh Guiño. Lo interesante de la misma, es que la encuentro bastante visual. Le faltan cosas que estoy mirando y quiero ir desarrollando poco a poco. Pero de momento ahí lanzo una primera versión y a ver si gusta como va.

image

Link descarga Marketplace

Espero que os guste y me deis un feedback.

Saludos a tod@s

Melerin