Archivo de la etiqueta: windows8

Preparando el examen 70-484

El pasado 30 de mayo aprobé el examen 70-484 de desarrollo de aplicaciones para Windows 8 con C#, lo que me acerca un paso más al MCPD en desarrollo de apps para la plataforma, y es a su vez una excusa y un reto para aprender más de la misma.

Al comentarlo por Twitter, algunos desarrolladores me preguntaron qué recursos había usado, y aquí va un pequeño resumen.

Sigue leyendo

Consumiendo APIs REST con Windows 8 [I/II] (Evento 21/03)

El pasado 21 de marzo en la Universidad de Salamanca, estuvimos hablando de diferentes APIs REST.

Durante algo más de una hora vimos cómo a través de APIs Rest podemos consumir y crear contenidos desde nuestras aplicaciones. En este primer artículo de la serie, veremos cómo consumir servicios existentes, primero por consola, y luego a través de un cliente Windows 8.

Sigue leyendo

Viernes 22: Desarrollo para Windows Phone y Windows 8 en la Universidad de Salamanca

El próximo viernes 22 a partir de las 5 PM estaré en la Facultad de Ciencias de la Universidad de Salamanca con los chicos de @DotNetUSAL, hablando de desarrollo para aplicaciones Windows 8 y Windows Phone.

BZXb95zCcAI1UHD

Durante un buen tramo de la tarde estaremos viendo qué ventajas nos da la plataforma Windows Phone y Windows 8, y cómo aprovechar esas ventajas para que nuestras aplicaciones destaquen por encima del resto.

Las herramientas de desarrollo están disponibles en los siguientes enlaces:

Para hacer la charla más dinámica, usaremos VS Anywhere para que todos los asistentes que lo deseen puedan contribuir a la misma, y seguir las demos desde su ordenador. Si quieres aprender de una manera diferente, crea tu cuenta en http://vsanywhere.com y descarga el plugin:

VS Anywhere requiere Visual Studio Professional o superior, que puedes conseguir gratuitamente a través del programa Dreamspark. Si no lo tienes pregunta a los chicos de @DotNetUSAL cómo conseguirlo.

Por otra parte, tienes versiones de prueba de 90 días de cualquiera de las versiones de Visual Studio 2013 en este enlace: http://www.visualstudio.com/downloads/download-visual-studio-vs

Nos vemos en Salamanca!

Estado de conexión para aplicaciones Metro

Uno de los requisitos que necesita cumplir nuestra aplicación Metro para su correcta validación es que sea capaz de comportarse correctamente sin conexión a internet. En este artículo veremos 2 maneras de obtener esta información, o bien de manera activa, solicitando el estado del perfil de conexión, o bien de manera pasiva, suscribiendonos a un evento.

Solicitando el perfil de conexión

El siguiente código fuente hace uso de la clase NetworkInformation para consultar el tipo de perfil que tiene la aplicación. En caso de ser nulo, significa que el sistema no tiene ninguna manera de conectarse a Internet.

var profile = NetworkInformation.GetInternetConnectionProfile();
if (profile == null)
{
  //No tenemos ninguna conexión disponible.
}
else
{
  //Al parecer, tenemos internet, pero tenemos que ver que tipo.
}

Sin embargo, el hecho de tener un perfil de conexión no nulo no garantiza la correcta conexión a la red, ya que podemos tener un perfil válido sin conexión. Esto es lo que comprueba la segunda parte del código mostrado.

  var level = profile.GetNetworkConnectivityLevel();
  if(level == NetworkConnectivity.LocalAccess || level == NetworkConnectivityLevel.None)
  {
     //Tenemos conexión, pero no tenemos acceso a internet.
  }

Deberemos ser capaces de informar correctamente a nuestros usuarios del estado de la conexión de manera no intrusiva, este último parámetro es muy importante.

Recibiendo de manera activa los cambios que ocurran con la conexión

La segunda manera de saber el estado de la red, es que nuestra aplicación informe al usuario si existen cambios en la red (cambio de conectado a desconectado y viceversa). Afortunadamente la clase NetworkInformation proporciona un evento al que podemos suscribirnos y obtener esta información:

En la página principal. nos suscribimos al evento:

public MainPage()
{
  this.InitializeComponent();
  NetworkInformation.NetworkStatusChanged += NetworkInformation_NetworkStatusChanged;
}

Posteriormente, hacemos una llamada al dispatcher para poder actualizar la interfaz de usuario (ya que, de otra manera obtendremos una excepción):

async void NetworkInformation_NetworkStatusChanged(object sender)

  await Dispatcher.RunAsync(CoreDispatcherPriority.Normal,UpdateUI);
}

Finalmente, actualizamos la interfaz de usuario con el mensaje más apropiado:

private void UpdateUI()
{
  //Informar al usuario del cambio de condiciones de la red.
}

Conclusiones

Estos dos ejemplos los podemos combinar para mejorar la experiencia del usuario, y con ella la calificación de nuestra aplicación,

Más información:

Evento: Metro en Valencia

El pasado 3 de Abril me fui a la ETSE (Escola Tècnica Superior d’Enginyeria) de la Universidad de Valencia para hablarles de Metro, de desarrollo de aplicaciones para Windows 8, y de por qué es importante dar difusión al proyecto.

Tuvimos un interesante debate sobre qué tipos de aplicaciones encajan en la filosofía Metro y cómo un juego como Cut the Rope respeta esa filosofía, pese a que no tiene nada que ver con lo que esperamos de una aplicación de estilo metro, es decir, una tipografía clara, unos colores vivos, el número justo y necesario de opciones, entre otras.

Aquí dejo la presentación realizada con los ejemplos de código.

Ejemplos

Gracias a Samuel por la invitación y enhorabuena por la organización.

Hablando de Metro con los chicos del Mad.nug

Ayer pude asistir a la reunión mensual del grupo de usuarios de .net, esta vez como ponente, para hablar sobre 3 puntos: qué es metro, cómo nos afecta y cómo podemos aprovecharlo.

Estuvimos revisando conceptos tan maravillosos como el de baldosas vivas (live tiles) los encantos (charms) o las notificaciones tostada (toast notifications) que confirman lo que ya sabíamos, que nos encanta poner nombres intraducibles a las cosas, para que haya que decirlo en el idioma de turno (no hablemos de la siesta, que daría para otro post).

El evento tuvo un público excepcional, abanderado por el gran @davidsb, evangelista de cualquier cosa que se programe y/o se compile. Vimos las características que hacen únicas las apps Metro, cómo programar un cliente simple de Twitter con ellas (cariñosamente: Tweetstalker) y cómo aprovechar las características especiales que nos proporciona Metro para dar ese toque de distinción a nuestras apps.

Ejemplos

En este enlace podrás descargar el ejemplo completo visto en la charla.

Slides

Además, dejo las transparencias empleadas (disponibles vía slideshare)

Enlaces

Finalmente, algunos enlaces sobre temas que comentamos en la charla.

Me queda pendiente un artículo “Cómo sobrevivir tus primeros 3 días con windows 8 y no morir en el intento” :)

CodeMotion, la torre de babel de los lenguajes de programación

El pasado sábado 24 de marzo, tuve la oportunidad de asistir a CodeMotion, un evento por y para desarrolladores que lleva 5 años triunfando en Italia y que engloba prácticamente todas las plataformas conocidas (.NET, Java, Ruby, Python, Obj-C, Javascript…) y otras tantas que escapan a mi comprensión.

Desde las 9 AM hasta pasadas las 7 PM estuvimos absorbiendo conocimientos más de 1000 asistentes, en charlas que fueron, como en todo evento de gran escala, de todo tipo, muy buenas, buenas, regulares y malas.

Además de ello, contamos con la presencia de patrocinadores la mar de interesantes, entre los que estaban Microsoft, Tuenti, Amazon, Atlassian o Telefónica I+D, entre las más conocidas.

Entre las charlas y los temas que pude ver, estuvo (cómo no) Windows 8 con Javascript, paralelismo con .NET, usabilidad a la hora de crear APIs REST, servicios web usando Groovy, un lenguaje de la máquina virtual de Java muy parecido a lenguajes como Ruby o Python, y el cierre con la charla (awesómica) de David Bonilla, sobre cómo podemos convertir productos en plataformas, y cómo (como plataforma) establecer una relación con nuestros “desarrolladores”.

Ha sido una experiencia muy enriquecedora, ya que de vez en cuando es bueno salir de nuestra zona de confort, y aprender lenguajes nuevos, o nuevas maneras de comunicar ;). Me quedo con el objetivo global del evento: juntarnos a todos, independientemente del lenguaje que hablemos, en una torre de babel del mundo de la informática.

Espero que el el próximo año se repita, y poder asistir una vez más.