Manejando en botón Atrás en Windows Phone 8.1

Como sabemos, Windows Phone dispone de botones hardware (ahora también en pantalla con la versión 8.1) para ir a Inicio, buscar o navegar hacia atrás en las aplicaciones. Una práctica común entre los desarrolladores es capturar el evento de navegación atrás para realizar acciones específicas que requiera la aplicación.

Sigue leyendo

Introducción al desarrollo con Nokia Music API para Windows Phone

Nokia Music API es una colección de servicios web y APIs en C# que Nokia pone a nuestra disposición para enriquecer nuestras aplicaciones y conectarlas con sus servicios. En este artículo veremos los sencillos pasos que hay que seguir para comenzar desarrollando con este potente y rico servicio musical, realizaremos un pequeño proyecto de prueba y explicaremos los distintos tipos de API que Nokia Music pone en manos del desarrollador.

Sigue leyendo

Tiles y notificaciones en la pantalla de bloqueo en Windows Phone 8

Si hay algo que diferencie a Windows Phone del resto de sistemas operativos móviles, es su pantalla de inicio y sus live tiles (o baldosas activas). En Windows Phone 8 las tiles han sido mejoradas, añadiendo nuevos tamaños, una mayor personalización y mejores notificaciones. Algunas de estas mejoras se extienden a la pantalla de bloqueo, en la que ahora podemos mostrar notificaciones y personalizar con fondos. En este artículo veremos qué suponen estas mejoras para los desarrolladores y cómo sacar partido de ellas.

Sigue leyendo

¿Es lento Windows Phone reanudando aplicaciones?

Windows Phone Resuming screen

Todos hemos visto este mensaje alguna vez, ¿verdad? Este mensaje aparece cuando Windows Phone reanuda una aplicación que se encuentra en segundo plano. La idea de que Windows Phone es lento reanudando aplicaciones cuaja rápidamente al ver este mensaje más a menudo de lo que nos gustaría. A raíz de esto, muchas voces se han alzado pidiendo una mejora notable en la multitarea de Windows Phone. Pero, ¿Es realmente lento Windows Phone reanudando aplicaciones?

En este artículo daremos respuesta a esta cuestión y, para entender el razonamiento, explicaremos teoría y conceptos como los distintos estados de una aplicación Windows Phone, las principales causas de una reanudación lenta, el concepto de Velocidad Percibida y recomendaremos unas buenas prácticas a seguir para minimizar este problema.

Sigue leyendo

Notificaciones Push en Windows Phone 8

Las notificaciones Push son un método de comunicación iniciada en el servidor. Este modelo contrasta con el modelo Pull, donde la petición es originada en el cliente. En este artículo veremos qué supone el modelo Push para los desarrolladores, los tipos de notificaciones Push que soporta Windows Phone y los encabezados personalizados de respuesta.

Sigue leyendo

Background Agents en Windows Phone 8

El bien más preciado de todo dispositivo móvil es la batería. Es por esto que Windows Phone 8 nos permite ejecutar únicamente una aplicación en primer plano mientras las demás que tengamos abiertas pasan a un estado de suspensión. Sin embargo, hay situaciones en las que necesitamos que nuestra aplicación siga trabajando, aún en segundo plano y para hacer pequeñas tareas concretas.

En este artículo veremos cómo gestiona las tareas Windows Phone 8, la multitarea con los Background Agents, cómo crearlos en Visual Studio, cómo enviar notificaciones aún cuando nuestra aplicación no esté en primer plano y cómo depurarlos en Visual Studio.

Sigue leyendo

Los ingredientes básicos de toda aplicación Windows Phone 8

En este artículo veremos los ingredientes básicos de toda aplicación de Windows Phone 8, y los cuales debemos dominar para desarrollar aplicaciones de calidad en esta plataforma: la navegación entre páginas, la barra de aplicación, los cambios de orientación, la localización y las transiciones de página (entre otros extras) que nos ofrece el Toolkit de Windows Phone .

Sigue leyendo

Archivos y Almacenamiento en Windows Phone 8

Toda aplicación, por básica que sea, necesitará en algún momento guardar y recuperar datos. En este artículo veremos qué nos ofrece a este respecto Windows Phone 8: el almacenamiento persistente y su uso, las carpetas especiales y cómo explorar el contenido local de nuestra aplicación para ayudarnos en el desarrollo.

Sigue leyendo

Introducción al desarrollo de aplicaciones en Windows Phone 8

Windows Phone es la apuesta de Microsoft en teléfonos inteligentes. Es un sistema atractivo, innovador y fácil de usar que se ha hecho un hueco como tercer candidato en la guerra de los sistemas operativos móviles. Con más de 130.000 aplicaciones publicadas, el desarrollo para esta plataforma supone una gran oportunidad para los desarrolladores, que ven cada vez más difícil innovar e impactar con sus aplicaciones en mercados tan saturados como los de la competencia.

En este artículo vamos a ver todo lo necesario para empezar a desarrollar para Windows Phone 8: una introducción a la plataforma, las APIs disponibles, los modelos de desarrollo y enlaces a las herramientas necesarias.

Sigue leyendo

[Windows Phone] Music Player text animation

In this quick post I will show you how to mimic the flip text animation in the Zune (now Xbox Music) player when changing songs.

8540_WP7_1-11_778C2698

As you may already know, animations in Windows Phone are mainly achieved with the use of Storyboards in XAML. In this particular animation we will play with the opacity of the TextBlock and will scale it to simulate the flip animation. The TextBlock will look something like this:

<TextBlock x:Name="ArtistName" 
                       Opacity="0.0"
                       Grid.Row="0" 
                       HorizontalAlignment="Center" 
                       Text="{Binding Artist}"  
                       Margin="0,20,0,0"
                       TextWrapping="Wrap"
                       TextAlignment="Center"
                       FontSize="{StaticResource PhoneFontSizeExtraLarge}" 
                       Style="{StaticResource PhoneTextSubtleStyle}"
                       RenderTransformOrigin="0.5,0.5">
                <TextBlock.RenderTransform>
                    <CompositeTransform/>
                </TextBlock.RenderTransform>
            </TextBlock>

The RenderTransformOrigin property sets the origin point of any transform applied to the control. Here we are basically setting it to be transformed from the center. The CompositeTransform lets us apply different transforms to an object.

Time for the storyboards. We will have two of them: one for the artist name and another for the song title. As I said earlier, we will animate the text’s opacity:

<Storyboard x:Name="ArtistNameStoryboard">
            <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="ArtistName">
                <SplineDoubleKeyFrame KeyTime="0:0:0.1" Value="0"/>
                <SplineDoubleKeyFrame KeyTime="0:0:0.2" Value="0"/>
                <SplineDoubleKeyFrame KeyTime="0:0:0.3" Value="0"/>
                <SplineDoubleKeyFrame KeyTime="0:0:0.4" Value="0"/>
                <SplineDoubleKeyFrame KeyTime="0:0:0.5" Value="0.5"/>
                <SplineDoubleKeyFrame KeyTime="0:0:0.6" Value="1"/>
            </DoubleAnimationUsingKeyFrames>

All types of animations allowed inside storyboards have two main properties: TargetProperty and TargetName. The former refers to the target property to be animated. The latter refers to the name of the target control to animate. In this case, we animate the TextBlock from invisible to visible in six milliseconds. Note that at the beginning, Opacity stays at value 0 several milliseconds. This delay is on purpose to animate the artist name and the song title at different times, making the flip animation flow from one text to the other.

In order to get a flip effect, we need to scale and animate the text. Here is where the RenderTransform comes to play. The text will flip vertically, so we will use the ScaleY property of the transform:

<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.ScaleY)" Storyboard.TargetName="ArtistName">
                <SplineDoubleKeyFrame KeyTime="0:0:0.1" Value="1"/>
                <SplineDoubleKeyFrame KeyTime="0:0:0.2" Value="1"/>
                <SplineDoubleKeyFrame KeyTime="0:0:0.3" Value="1"/>
                <SplineDoubleKeyFrame KeyTime="0:0:0.4" Value="0"/>
                <SplineDoubleKeyFrame KeyTime="0:0:0.5" Value="0.5"/>
                <SplineDoubleKeyFrame KeyTime="0:0:0.6" Value="1"/>
            </DoubleAnimationUsingKeyFrames>
</Storyboard>

Again, the delay trick is used here. For the song title we will just do the same, only difference being extending the delay.

Once you want to trigger the animation, just call the Begin() method of the Storyboard like this:

ArtistNameStoryboard.Begin();

and all set. You can find below a quick sample solution with complete code which demonstrates all the explained:

MusicPlayerTextEffect.zip

I hope you find this useful.

Cheers.