FONTIC. Taller de Windows Phone

La Fundación Empresa de la Universidad de La Laguna organiza el Foro de Oportunidades de Negocio en las TIC (FONTIC) los días 24 y 25 de septiembre. El foro trata de ofrecer las claves de cómo triunfar como emprendedores tecnológicos y, con los antecedentes que tienen las plataformas de SmartPhones actuales, se han organizados unos talleres de desarrollo móvil para fomentar que los desarrolladores puedan emprender y buscar negocio en ese mundo.

 

Me han encargado el taller de Windows Phone, que se impartirá el 25 de septiembre a las 16:00, en el que hablaremos de los principios de diseño de la plataforma y crearemos una aplicación de ejemplo, paso a paso, para que introduciros a un mercado que está en auge y en el que podemos encontrar muchas oportunidades de negocio.

Las plazas son limitadas, así que no te olvides de registrarte.

Desafío FONTIC

Podrás participar en el Desafío FONTIC, un concurso de desarrollo de aplicaciones móviles, consistente en desarrollar una aplicación con un objetivo, mejorar la comunidad universitaria (aunque no es obligatorio, será muy bien valorado) y por la que podrás ganar 300€. ¿te animas?

Espero veros a todos allí…

Hackathon Windows 8 en Tenerife.

El hackathon de Tenerife ha sido un éxito de participación y organización. Unos 40 asistentes que fueron bajando hasta unos 20 que se quedaron para desarrollar su aplicación de Windows 8. 20 desarrolladores que han venido a formar parte de la cantera de desarrolladores de Windows 8, que conocieron por primera vez el XAML el viernes, en una sesión improvisada sobre iniciación al desarrollo en Windows 8, y que han conseguido con mucho esfuerzo sacar sus ideas y presentar 6 aplicaciones al concurso local. FELICIDADES A TODOS!!!!!!

 

Organización

Las aulas de la FEULL han cumplido con todas nuestras expectativas y a los asistentes se les ha visto bastante cómodos en ellas, si a esto le sumamos la cantidad necesaria de Agua de Fuente Alta, los dulces de Panrico y el PicNic que llegaba a mediodía, han conseguido que pasemos un fin de semana muy bueno. Incluso tuvimos tiempo para hacer una conexión en vivo con el resto de ciudades http://www.youtube.com/watch?v=9ztF42eAdCo&list=UUQZyH9sRRjvtZhMw-ldRvXQ&index=2&feature=plcp

 

Equipos

Esto era lo realmente importante del fin de semana, que hubieran equipos y que desarrollaran sus ideas. Algunas eran muy buenas y les haremos un seguimiento para que todas lleguen al Windows Store. Al final, se presentaron estas seis aplicaciones:

Restaurant Ranking.

  • Equipo 1
  • Descripción. La idea general del producto es un ranking de restaurantes donde cualquiera puede votar una serie de criterios. Los usuarios podrán buscar restaurantes por denominación, dirección, favoritos…
  • Participantes. 2 desarrolladores
  • Tecnología. C# + XAML

 

Photo Dashboard.

  • Equipo 2
  • Descripción. La aplicación es un cuadro de mando o dashboard para que cada usuario pueda gestionar la vida social multimedia (imágenes) de manera centralizada, pudiendo ver de una sola pasada que imágenes tiene compartidas con qué servicios, permitiendo compartir e interactuar con las fotos (visualizar y comentar imágenes, mostrar imágenes que le gusten al usuario).
  • Participantes. 3 desarrolladores
  • Tecnología. C# + XAML

 

Collectable.

  • Equipo 3
  • Descripción. Es una aplicación para la gestión de colecciones, donde mediante el sistema de compra desde la aplicación, el usuario podrá acceder a diferentes plantillas desarrolladas para controlar las distintas colecciones (Películas, Música, Libros, Sellos, etc…) de las que el usuario quiera llevar el control.
  • Participantes. 4 desarrolladores
  • Tecnología. C# + XAML

 

MetroReader.

  • Equipo 4
  • Descripción. Consumo de información procedente de fuentes rss y redes sociales como Pinterest, Flickr, Picasa, …La aplicación se conecta a las fuentes más populares de estos proveedores. En el caso de sitios que proporcionan un listado con el título, la imagen en miniatura y una breve descripción (extraída de los comentarios de la foto). Cuando se selecciona una imagen del listado, se muestra en grande a la derecha del listado. En el caso de RSS, se muestra el listado y el detalle con todo el texto cuando se pulsa un elemento. Tiene implementados los contratos de búsqueda de Windows 8, así como las Live Tiles de la pantalla de inicio del sistema operativo.
  • Participantes. 3 desarrolladores
  • Tecnología. C# + XAML

 

myViate.

  • Equipo 6
  • Descripción. Es una aplicación cuyo objetivo es llegar a ser un gestor profesional de curriculums, orientado a personal de recursos humanos pero sin olvidar el usuario normal. myVitae nace conectado y soportando el estándar europeo Europass, http://europass.cedefop.europa.eu/es/home, pero el objetivo de la aplicación es convertirse en un completo gestor haciendo uso de los servicios online más populares, Monster, InfoJobs, LinkedIN y muchos más. Cómo ya hemos comentado, el objetivo de myVitae es convertirse en un completo gestor por lo tanto también podrá gestionar altas de ofertas de trabajo en los servicios anteriormente mencionados.
  • Participantes. 2 desarrolladores
  • Tecnología. C# + XAML

 

GeoTag.

  • Equipo 7
  • Descripción. Herramienta de notificación georeferenciada. Llego a casa y no hay nadie. En ese momento me llega una notificación que indica que cerca de mi posición hay una o varias notas. Abro la aplicación visualizo las notas, y entre ellas veo una de mis compañeros de piso en la que indica que se encuentran en el Bar y que me pase cuando pueda.
  • Participantes. 2 desarrolladores
  • Tecnología. C# + XAML

 

Aplicación ganadora

Después de las votaciones, por parte de la organización, y de un duro debate porque no se ponían de acuerdo sobre el ganador, la competencia ha sido muy dura, y ganó Photo Dashboard.

 

Tenemos más fotos de Tenerife en el sitio de TenerifeDev.

Felicidades a todos por este magnífico fin de semana!!

Windows 8. Versiones de prueba de nuestra App

Con Windows 8 se nos abre un abanico de posibilidades para monetizar nuestra aplicación. El API de la Windows Store nos permite controlar las compras de la siguiente forma:

Pagar antes de descargar

Es la opción más simple, no tenemos que implementar ningún código y requiere que el usuario pague la aplicación antes de usarla. En contra posición, es la opción menos efectiva porque ¿quién va a pagar por tu aplicación sin haberla probado?

Versión de prueba limitada por tiempo

Nos permite especificar un período de prueba para que el usuario pueda usar nuestra aplicación antes de pagar por ella. Una vez se ha caducado el periodo de prueba, la aplicación deja de funcionar.

Versión de prueba con funcionalidades limitadas

Esta opción permite al usuario hacer uso de la aplicación y probarla sin necesidad de comprarla. Nos tenemos que hacer cargo de comprobar si estamos en modo de prueba, para que limitemos las funcionalidades en código.

Compras In-app

In-app nos permite vender funcionalidades dentro de nuestra app, por ejemplo, si tenemos una aplicación de recetas, podemos vender paquetes de nuevas recetas desde usando la Windows Store. Es compatible con el resto de tipos, trial o no trial, y es, quizás, la opción que más trabajo nos puede llevar.

Implementando la versión de prueba

WinRT nos proporciona una clase CurrentApp y CurrentAppSimulator que tiene los métodos necesarios para obtener la información de la licencia. Para comprobar si estamos en modo de prueba, tenemos que ver el valor de la propiedad IsTrial de la clase LicenseInformation. Por su puesto, si estamos en depuración debemos de utilizar la clase correspondiente al Simulator.

#if DEBUG


if (CurrentAppSimulator.LicenseInformation.IsTrial)


{


CurrentAppSimulator.LicenseInformation.LicenseChanged += OnLicenseChanged;


GetListingInformationAsync();


}


else


_licensed = true;


#else


if (CurrentApp.LicenseInformation.IsTrial)


{


CurrentApp.LicenseInformation.LicenseChanged += OnLicenseChanged;


GetListingInformationAsync();


}


else


_licensed = true;


#endif


 

También nos debemos de suscribir al evento LicenseChanged para recibir cualquier cambio en la licencia, por ejemplo, el usuario compra la aplicación mientras esta está en ejecución.

private void OnLicenseChanged()


{


#if DEBUG


if (!CurrentAppSimulator.LicenseInformation.IsTrial)


{


_licensed = true;


CurrentAppSimulator.LicenseInformation.LicenseChanged -= OnLicenseChanged;


}


#else


if (!CurrentApp.LicenseInformation.IsTrial)


{


_licensed = true;


CurrentApp.LicenseInformation.LicenseChanged -= OnLicenseChanged;


}


#endif


}


 

Comprobando el valor de IsTrial (o en mi caso la variable _licensed) sabremos en todo momento si estamos en modo de prueba y, si fuera nuestro caso, limitar ciertas funcionalidades que no ofrecemos en el modo de prueba.

Como las versiones limitadas por tiempo dejan de funcionar automáticamente cuando llega la fecha de caducidad, sería importante mostrarle al usuario la fecha de caducidad o el tiempo que le queda del periodo de prueba.

var longDateFormat = new Windows.Globalization.DateTimeFormatting.DateTimeFormatter("longdate");                                                


var daysRemaining = (licenseInformation.ExpirationDate - DateTime.Now).Days;


 

No menos importante es enseñarle al usuario que opciones están limitadas y ofrecerle la compra para poder hacer uso de ellas. Sólo tenemos que usar el método RequestAppPurchaseAsync que tenemos en la clase CurrentApp.

if (App.AppLicenseDataSource.IsTrial)


{


var dialog = new MessageDialog("Estás usando la aplicación en modo prueba, y no es posible es uso de esta característica. Tienes que comprar la aplicación para obtener esa funcionalidad.", "Trial");


dialog.Commands.Add(new UICommand("¿Quieres comprarla?, async command =>


{


#if DEBUG


CurrentAppSimulator.RequestAppPurchaseAsync(false);


#else


CurrentApp.RequestAppPurchaseAsync(false);


#endif


 

}));


dialog.Commands.Add(new UICommand("No"));


dialog.ShowAsync();


}


else


{


Frame.Navigate(typeof(Views.AlbumsPage), item.Id);


}


 

Es importante que pensemos en nosotros mismos como usuarios y que, por lo habitual, no compramos nada que no podamos tocar o probar. Esto mismo tenemos que trasladar a nuestras aplicaciones, son un par de líneas de código que nos permiten comprobar si estamos en modo prueba y así nuestros posibles usuarios podrán probar las bondades de nuestra aplicación y darles un motivo para que la compren.

 

Saludos a todos…

Active Directory. Delegar permisos de replicación de cambios

En el post anterior donde mostrábamos el nuevo método de sincronización de perfiles, hablábamos que la cuenta de conexión al directorio activo para importación necesitaba tener permisos de replicación de cambios en el directorio (Replicating Directory Changes). Para configurar este permiso, necesitamos tener acceso al directorio activo y delegar control al usuario de servicio.

 

Seleccionar al usuario de servicio.

 

Crear una tarea de delegación personalizada.

 

A todos los objetos del directorio.

 

Con el permiso de replicación de directorio.

 

 

 

SharePoint 2013. Importación ligera de Directorio Activo

La novedad en SharePoint 2010 era la utilización de FIM (Forefront Identity Manager) como medio de sincronización de perfiles con el AD (Directorio Activo) y otros. FIM nos permite hacer sincronización de perfiles desde el AD y, motivo por el que se usa, hacia el AD. Esto es, con SharePoint 2010 y FIM podemos enviar datos de nuestros perfiles de usuarios al directorio activo de la compañía.

Genial, podemos sincronizar bidireccionalmente los perfiles de usuarios aunque tenga un lado negativo, la complejidad de configuración de todo esto. Para que FIM se active y funcione correctamente, tenemos que seguir una serie de minuciosos pasos, muchos publicados en diversos blogs, que obligaban a delegar permisos en la cuenta que usábamos para sincronizar y también debíamos dar permisos de administrador local, durante el proceso de configuración, a esa cuenta. Bueno, no os voy a aburrir con todos estos pasos que podéis ver en internet (por ejemplo http://www.harbar.net/articles/sp2010ups.aspx).

Con SharePoint 2013 se ha incluido un nuevo-viejo método llamado Importación de Active Directory de SharePoint, este método, que teníamos en SharePoint 2007, permite deshabilitar la sincronización de FIM y realizar una importación de los usuarios del directorio activo directamente. Por supuesto, no vamos a tener todas las funcionalidades que tenemos con la sincronización de perfiles, pero para aquellas granjas en las que no necesitemos realizar una sincronización compleja que envíe información de los perfiles al directorio activo, utilizar BCS, dominios en los que el nombre de NetBIOS difería del nombre de DNS, es más que suficiente y completa una serie de escenarios que permiten una configuración ligera del servicio de sincronización de perfiles.

Para configurar este modo, tenemos que ir al servicio de Perfiles de Usuario y configurar la sincronización con la opción de Importación de Active Directory de SharePoint.

Una vez activado el modo importación, tenemos que crear la conexión al directorio activo. Necesitaremos el FQDN de nuestro dominio (si vemos la imagen, pone el nombre de controlador de dominio completo y es incorrecto) y una cuenta con permisos de replicación de cambios en el directorio activo. Si nos hiciera falta, podemos filtrar automáticamente los usuarios deshabilitados o especificar el filtro LDAP para la consulta al directorio.

Con esto, pulsamos en rellenar contenedores y, una vez que veamos la estructura de nuestro directorio activo, seleccionar las unidades organizativas que queremos importar en los perfiles.

Ya podemos iniciar una sincronización completa y comprobar que se importan los usuarios correctamente.

¿Qué os parece? Creo que a muchos les hubiera ahorrado ciertos quebraderos de cabeza, en SharePoint 2010, con este modo de sincronización. Rectificar es de sabios, y aquí tenemos un ejemplo de ello.

 

Saludos a todos…