mar 16, 2011

Algunos tutoriales de Windows Phone 7 (Parte 2)

Seguimos con la serie de artículos y tutoriales de Windows Phone 7 con los que me voy topando:

1. Como usar la API de Youtube con Windows Phone 7 (MicrosoftFeed, inglés)

2. Aplicación con Mapas Bing en WP7 (Earthware.co.uk, inglés)

3. Creando un TextBox con scroll en WP7 (Alex Yakhnin’s Blog, inglés)

4. Comprobando si hay conexión en WP7 (Jesse Liberty, inglés)

5. Google Maps para Windows Phone usando Bing Maps (Codeproject, inglés)

6. Google Sky en Windows Phone 7 (ScottLogic, inglés)

7. Trucos MVP para Windows Phone 7 (The Microsoft MVP Award Program Blog, inglés)

8. Crear Splash Screen con Progress Bar en WP7 (Alex Yakhnin’s Blog, inglés)

9. Usando ChildWindows en WP7 (Shawn Wildermuth, inglés)

10. Trabajando con el almacenamiento aislado (Windows Phone Blog, castellano)

Espero que os sean de ayuda.

Y siguiendo con la extraña manía que tengo de recomendar canciones en mis posts de programación (no intentéis entenderlo), hoy os dejo este TEMAZO: Live Again de Sevendust.

mar 15, 2011

Detectar si hay conexión de datos en WP7

En esta entrada explicaremos como detectar si existe conexión de datos en nuestra aplicación Windows Phone. Nos puede ser de mucha utilidad si queremos controlar errores en nuestra aplicación si es que esta utiliza acceso a la nube. La función es muy simple, detecta si hay conexión Wifi, 3G, etc. y devuelve el resultado.

Empezaremos añadiendo la referencia a System.Net.NetworkInformation.

using System.Net.NetworkInformation;

Y esta sería nuestra función:

private bool InternetIsAvailable()
        {
            if (!NetworkInterface.GetIsNetworkAvailable())
            {
                MessageBox.Show("No tienes conexión de internet.");
                return false;
            }
            else
            {
                MessageBox.Show("Tienes conexión de internet.");
                return true;
            }
        }

Un ejemplo de como se llama a la función desde el programa principal de la página.

public MainPage()
        {
            InitializeComponent();
 
            if (InternetIsAvailable())
            {
                textBox1.Text = "Conectado a Internet";
            }
            else
            {
                textBox1.Text = "No Conectado a Internet";
            }
 
        }

Aquí os podéis descargar el código:

Archivo: ConnectionTest.zip

Que menos que rematar este post con un tema de los que hacen época… Broken Wings de Alter Bridge. A disfrutar!

 

mar 13, 2011

Uso del control ListBox en WP7

En este tutorial intentaremos explicar de una forma sencilla el a veces complejo uso del control ListBox en Windows Phone. A mi personalmente me ha parecido algo más lioso que en otros lenguajes pero trataré de resumirlo de manera que no lo parezaca.Lo primero que debemos hacer es añadir un control ListBox a nuestra aplicación arrastrándolo sobre la interfaz de nuestra página (PhoneApplicationPage). Tambien podemos escribir su código directamente en nuestro XAML. Nuestro ejemplo mostrará una lista de Empresas.

<ListBox Name="EnterprisesList" Margin="0,0,0,0">
</ListBox>

Seguidamente crearemos una clase Empresa donde diseñaremos su estructura (atributos y funciones). Nuestra clase es muy simple,consta de 3 atributos: Nombre, Dirección y Actividad.

public class Enterprise
{
	public String Name { get; set; }
	public String Address { get; set; }
	public String Activity { get; set }
 
	public Enterprise(String name, String address, String activity)
	{
		this.Name = name;
		this.Address = address;
		this.Activity= activity;
	}
}

Finalmente el diseño XAML de nuestro ListBox quedaría de la siguiente manera. Hemos linkado los atributos de nuestra clase a los controles de cada item de la lista con la instrucción Binding seguida del nombre del atributo. En este código hemos implementado una plantilla para los items de nuestra lista compuesta de una imagen que definirá la actividad de la empresa, su nombre y dirección.

<ListBox Name="EnterprisesList" Margin="0,0,0,0">
   <ListBox.ItemTemplate>
      <DataTemplate>
         <Button Width="460" Height="120">
	    <Button.Content>
	       <StackPanel Orientation="Horizontal" Width="400" Height="80">
	          <Image Source="{Binding Activity}" Width="80" Height="80"/>
		  <StackPanel Orientation="Vertical" Height="80">
		     <StackPanel Orientation="Horizontal" Height="40">
		        <TextBlock Width="100" FontSize="22" Text="Nombre:" Height="40"/>
			<TextBlock Width="200" FontSize="22" Text="{Binding Name}" Height="40"/>
		     </StackPanel>
		     <StackPanel Orientation="Horizontal" Height="40">
			<TextBlock Width="100" FontSize="22" Text="Direccion:" Height="40"/>
			<TextBlock Width="200" FontSize="22" Text="{Binding Address}" Height="40"/>
		     </StackPanel>
                  </StackPanel>
	       </StackPanel>
	    </Button.Content>
	 </Button>
      </DataTemplate>
   </ListBox.ItemTemplate>
</ListBox>

Finalmente escribiremos un código para probar nuestra aplicación. Es muy simple. En el main de la página cargaremos una serie de items de clase Empresa en una lista y después lo linkaremos a nuestro ListBox.

public MainPage()
        {
            InitializeComponent();
            Loaded += new RoutedEventHandler(MainPage_Loaded);
        }
 
        void MainPage_Loaded(object sender, RoutedEventArgs e)
        {
            List<Enterprise> listaEmpresas = new List<Enterprise>();
            for (int i = 0; i < 10; i++)
            {
                listaEmpresas.Add(new Enterprise("Empresa" + i, "Direccion" + i, "Telefonia"));
            }
            EnterprisesList.ItemsSource = listaEmpresas;
        }

El resultado sería este:

Aquí os podéis descargar el código:

Archivo: ControlListbox.zip

Y para no defraudar a mis lectores aquí pongo mi sello con una canción coj*** maravillosa, Dance with the Devil de Breaking Benjamin.

 

Framework para botones en CSS3

Os dejo un interesante framework para crear bonitos botones con CSS3 para tu página web. Resulta muy fácil implentarlo añadiendo sus CSS e imagenes de fondo para los botones. En la web del autor podréis encontrar toda la ayuda necesária.

Podéis acceder desde aquí.

Enlace: css3buttons.michaelhenriksen.dk

mar 4, 2011

Estructura básica de una página con HTML5

Esta sería una estructura básica realizada con HTML5 para que podáis empezar a montarla. Es un simple ejemplo de como utilizar las nuevas etiquetas que este lenguaje nos proporciona.

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
    <head>
        <title>Prueba con HTML5</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    </head>
    <body>
        <header> <!-- Cabecera de la página -->
            <nav> <!-- Menú de la aplicación -->
                <ul>
                    <li>item1</li>
                    <li>item2</li>
                </ul>
            </nav>
        </header>
 
        <section>
            <article>
                <header>
                    <h2>Título de artículo 1</h2>
                    <p>Posteado el <time datetime="2011-03-04T16:31:24+02:00">4 de Marzo 4th de 2011</time> por <a href="#">Escritor</a> - <a href="#">6 comentarios</a></p>
                </header>
                <p>Extracto del primer post.</p>
            </article>
 
            <article>
                <header>
                    <h2>Título de artículo 2</h2>
                    <p>Posteado el <time datetime="2011-03-04T16:31:24+02:00">4 de Marzo 4th de 2011</time> por <a href="#">Escritor</a> - <a href="#">6 comentarios</a></p>
                </header>
                <p>Extracto del segundo post.</p>
            </article>
        </section>
 
        <aside>
            <h2>Barra lateral de la página</h2>
            <p>Texto de la barra lateral de la página.</p>
        </aside>
 
        <footer>
            <p>Copyright 2011 La Villa Digital</p>
        </footer>
 
    </body>
</html>
mar 3, 2011

Carga de diferentes páginas en WP7 (Aplicación Multipágina)

Este post se ha escrito más a modo de ayuda para recién iniciados. Explicaremos como cargar diferentes páginas en nuestra aplicación WP7.

Para empezar haremos el ejemplo más sencillo que será cargar una segunda página desde la inicial cuando hagamos click en un botón. El código del evento del botón será algo así:

private void page2Button_Click(object sender, RoutedEventArgs e)
{
       NavigationService.Navigate(new Uri("/PageTwo.xaml", UriKind.Relative));
}

Donde page2Button será el nombre de nuestro botón y PageTwo.xaml será nuestra segunda página. También podremos pasarla parámetros a esta página de la siguiente manera:

private void page3Button_Click(object sender, RoutedEventArgs e)
{
    NavigationService.Navigate(new Uri("/PageThree.xaml?info=" + infoTextBox.Text, UriKind.Relative));
}

En este segundo ejemplo cargaremos una tercera página pero pasándole por parámetro la variable info, cuyo valor recogemos de un textbox. Para recoger el valor desde la página 3 lo haremos de la siguiente manera:

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
    string info = "";
    if (NavigationContext.QueryString.TryGetValue("info", out info) ) {
        infoTextBlockFromQuery.Text = info;
    }
}

Acciones al iniciar y cerrar tu aplicación WP7

Siguiendo con los posts de programación con Windows Phone, explicaremos como crear el evento que se ejecuta cuando se inicia la aplicación y cuando ésta se cierra. Esto es muy útil cuando queremos que la aplicación realice ciertas acciones en esos momentos como por ejemplo cargar variables de un fichero.

Para crear estos eventos deberemos abrir nuestra página App.xaml. En ella deberemos añadir los eventos Startup y Exit como puedes ver a continuación:

<Application
    x:Class="wp702.App"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
    xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone" Startup="Application_Startup" Exit="Application_Exit">
 
</Application>

El código que hemos añadido es:  Startup=”Application_Startup” Exit=”Application_Exit”. A continuación para definir los eventos haremos click derecho encima de cada uno de ellos y seleccionaremos Navigate to Event Handler. Se nos creará el siguiente código:

private void Application_Startup(object sender, StartupEventArgs e)
{
}
 
private void Application_Exit(object sender, EventArgs e)
{
}

Ya tenemos creados nuestros eventos donde podremos insertar el código que necesitemos. Os dejo un ejemplo de evento que crea el fichero datos.xml al iniciar la aplicación si éste no existe.

private void Application_Startup(object sender, StartupEventArgs e)
        {
            var store = IsolatedStorageFile.GetUserStoreForApplication();
 
            if (store.FileExists("data.xml") == false)
            {
                IsolatedStorageFileStream rootFile = store.CreateFile("data.xml");
                rootFile.Close();
                try
                {
                    using (StreamWriter sw = new StreamWriter(store.OpenFile("data.xml", FileMode.Open, FileAccess.Write)))
                    {
                        sw.WriteLine(@"<?xml version=""1.0"" encoding=""utf-8""?>");
                        sw.WriteLine("<root></root>");
                    }
                }
                catch { }
            }
        }

 

Espero haberos sido de ayuda.

 

Aplicaciones web para iPhone con iWebKit

iWebKit es un paquete de archivos diseñado para ayudarte a crear aplicaciones web que funcionan como aplicaciones nativas de iPhone, iPod Touch o iPad. iWebKit usa básicos de HTML, CSS y Javascript que permiten a cualquier persona crear sitios completos y optimizados para verse en dispositivos móviles. ¿Está bien, no?.

Para aquellos que de momento no puedan permitirse la adquisición de un Mac, esta es una buena solución para calmar su curiosidad en cuanto a desarrollar aplicaiones para iPhone. No es lo mismo… pero es una opción válida.

Aconsejo bajarse el kit i ver el código de la demo. Es realmente insultante lo fácil que es hacer cosillas chulas.

 

feb 25, 2011

Tutorial de programación para Windows Phone

Como ahora me ha dado por aprender a programar aplicaciones para Windows Phone he estado buscando mucha información sobre el tema. Os dejo un link a un tutorial muy completo en PDF que he encontrado por ahí, me ha parecido muy didáctico e imprescindible ya que la información acerca de este entorno no es que sobre precisamente. A algunos les decepcionará el que esté en inglés pero que se le va a hacer… no pienso ponerme a traducirlo…

Programming Windows Phone 7

Páginas:«1234567...13»