Windows Phone 8 sucintamente localización, tienda de Windows Phone y compras dentro de la aplicación

Cuando hablamos de aplicaciones móviles, el desarrollo no es el único aspecto que debemos considerar. Si queremos tener éxito, también tenemos que distribuir y promover nuestra aplicación. En este tutorial, analizaremos la localización, la tienda de Windows Phone y las compras dentro de la aplicación..

Aplicaciones de prueba

Una de las características distintivas de las aplicaciones de Windows Phone es que admiten un modo de prueba, que les permite descargarlas de la Tienda de Windows Phone como una versión de prueba con funciones limitadas. Una vez que los usuarios deciden comprar la aplicación completa, no tienen que descargarla desde cero; la Tienda simplemente descargará un certificado actualizado, que desbloqueará todas las funciones bloqueadas previamente.

Desde el punto de vista del desarrollador, la gestión de una prueba es simple. los Windows.ApplicationModel.Store espacio de nombres contiene una clase llamada Información de licencia, que ofrece una propiedad llamada Istrial. Si su valor es cierto, significa que la aplicación se ha instalado en modo de prueba, por lo que tenemos que bloquear las funciones que no queremos habilitar; de lo contrario, el usuario lo ha comprado, por lo que todas las funciones pueden estar disponibles.

Depende de usted elegir la mejor experiencia de prueba para su aplicación. Por ejemplo, puede deshabilitar algunas funciones, limitar el número de veces que se pueden ejecutar las aplicaciones, o en un juego, elegir qué niveles desbloquear.

LicenseInformation info = new LicenseInformation (); if (info.IsTrial) MessageBox.Show ("La aplicación se está ejecutando en modo de prueba");  else MessageBox.Show ("¡La aplicación se está ejecutando en modo completo!"); 

Localización

Una de las mejores formas de aumentar las ventas y la cantidad de descargas de una aplicación es admitir múltiples idiomas. La plantilla predeterminada de Windows Phone 8 en Visual Studio ya admite la localización al incluir una carpeta llamada Recursos. Contiene todos los archivos de recursos, que son archivos XML simples con un especial .resx extensión.

Los archivos de recursos son simplemente una colección de valores (el texto traducido) asociado con una clave específica que se utiliza en la aplicación para referirse a ese texto. Según el idioma del usuario, la aplicación utilizará automáticamente el archivo de recursos adecuado.

La plantilla estándar crea un archivo llamado AppResources.resx dentro de Recursos carpeta, que se refiere al idioma estándar (generalmente inglés). 

Apoyar un nuevo idioma es fácil. Sólo botón derecho del ratón tu proyecto en el Explorador de la solución y elige Propiedades. El cuadro de culturas admitidas mostrará todos los idiomas disponibles. Cuando agregue nuevos idiomas seleccionándolos en la lista, Visual Studio creará automáticamente un nuevo Recursos de la aplicación archivo llamado AppResources.xx-yy.resx en la carpeta de Recursos, donde xx-yy es el código de cultura del idioma seleccionado (por ejemplo, si ha agregado italiano, creará un archivo llamado AppResources.it-IT.resx).

Visual Studio ofrece un editor visual útil para trabajar con archivos de recursos. Muestra todos los valores dentro de una tabla, donde puede definir fácilmente una clave, su valor y un comentario opcional. Para acceder a él, simplemente haga doble clic en un archivo de recursos en el Recursos carpeta.

Además de ofrecer un archivo de recursos estándar, la plantilla de Windows Phone también incluye una clase llamada LocalizedStrings, que actúa como un contenedor entre el archivo de localización y el XAML. Puede encontrarlo definido como un recurso global en el App.xaml expediente:

  

Gracias a este contenedor, podrás acceder a los recursos directamente en XAML. No tiene que agregarlo directamente en el XAML cada vez que necesite mostrar texto en la interfaz de usuario; en su lugar, agregará los archivos de recursos y luego los conectará a su XAML con la siguiente sintaxis:

Gracias a LocalizedStrings clase, podemos acceder a cada valor en el archivo de recursos simplemente usando el LocalizedResources.MyKey sintaxis, donde Mi llave es la clave que identifica el texto que desea mostrar.

Si desea acceder a la cadena de recursos directamente desde el código, deberá utilizar la Recursos de la aplicación clase de singleton, como se muestra en el siguiente ejemplo:

void privado OnShowMessageClicked (remitente del objeto, RoutedEventArgs e) MessageBox.Show (AppResources.SampleText); 

El kit de herramientas de aplicaciones multilingües

Microsoft ha creado una útil extensión de Visual Studio llamada Multilingual App Toolkit, que se puede descargar desde el Centro de desarrollo de Windows. La herramienta no cambia cómo funciona la localización; siempre se basará en archivos de recursos, a los que accede la aplicación utilizando el LocalizedString clase.

La siguiente lista detalla algunos de los principales beneficios de Multiling App Toolkit:

  • Uno de los aspectos que más tiempo lleva trabajando con la localización es copiar manualmente todos los nuevos valores que ha agregado en el lenguaje básico a todos los demás archivos de recursos. El kit de herramientas de aplicaciones multilingües lo hará por usted. Durante el proceso de construcción, copiará todas las nuevas claves agregadas a la AppResources.resx archivo a todos los otros archivos de recursos.
  • Ofrece una mejor interfaz visual para gestionar traducciones. Podrá identificar inmediatamente las nuevas claves para traducir y establecer un estado de traducción diferente.
  • Es compatible con los servicios de Bing para traducir oraciones automáticamente. Obviamente, no puede confiar completamente en las traducciones automáticas, pero pueden ser un buen comienzo para su proceso de localización..
  • Es capaz de generar automáticamente un pseudo lenguaje, que es una forma de identificar de inmediato los recursos no traducidos y tener una mejor idea de cuánto espacio ocupa el texto en la interfaz de usuario.

Una vez que hayas instalado el kit de herramientas, deberás habilitarlo para tu proyecto en la Herramientas menú de Visual Studio seleccionando el Habilitar el kit de herramientas de la aplicación multilingüe opción. Después de habilitarlo, Visual Studio trabajará con .xlf archivos en lugar de .resx Archivos (excepto el idioma principal). Durante el proceso de compilación, el kit de herramientas generará todos los .resx archivos para ti.

Para acceder a la interfaz visual del kit de herramientas, simplemente haga doble clic en un .xlf Archivo y verá la lista completa de recursos. Un ícono le notificará el estado de cada recurso. Si el recurso aún no se ha traducido, se muestra un círculo rojo. Si el recurso se ha traducido pero requiere una revisión, se muestra un círculo amarillo. Si la traducción ha sido aprobada, se muestra un círculo verde..

Forzando un idioma

Windows Phone seleccionará automáticamente el archivo de recursos que coincida con el idioma del teléfono. Si falta un archivo de recursos apropiado (debido a que la aplicación no admite el idioma del teléfono), se utilizará el valor predeterminado..

Puede cambiar este comportamiento, por ejemplo, si desea dar a los usuarios la opción de elegir el idioma que prefieran, independientemente del idioma del teléfono. Para hacer esto, necesitarás establecer un código de cultura diferente cuando el Aplicación clase (declarada en el App.xaml.cs archivo) se crea:

Aplicación pública () CultureInfo culture = new CultureInfo ("it-IT"); Thread.CurrentThread.CurrentCulture = culture; Thread.CurrentThread.CurrentUICulture = culture; 

Después de que hayas definido un CultureInfo pasar el código de cultura como un parámetro, puede asignarlo a dos propiedades diferentes de la Thread.CurrentThread objeto:

  • Cultura actual es la cultura de la aplicación, que se utiliza para definir características como formatos de fecha y hora, moneda, etc..
  • Cultura actual es la cultura de la interfaz de usuario, que se utiliza para comprender qué archivo de recursos se debe seleccionar.

Este enfoque también es necesario si desea utilizar el pseudo lenguaje generado por el Kit de herramientas de la aplicación multilingüe durante el proceso de prueba. Dado que el pseudo idioma no es un idioma oficial admitido por la plataforma, tendrá que forzarlo usando el qps-ploc Código de cultura, como se muestra en el siguiente ejemplo:

Aplicación pública () CultureInfo culture = new CultureInfo ("qps-ploc"); Thread.CurrentThread.CurrentCulture = culture; Thread.CurrentThread.CurrentUICulture = culture; 

El uso de pseudo lenguaje es una excelente manera de identificar texto que aún no se ha traducido y probar si el diseño de su aplicación es capaz de administrar texto largo. Lo que suele suceder al desarrollar una aplicación es que la prueba solo con un par de idiomas, olvidando que una palabra que se ve muy corta en inglés, por ejemplo, puede ser muy larga cuando se traduce al alemán.

La experiencia de la tienda

Como se mencionó en el primer artículo, Windows Phone Store es la única forma de distribuir aplicaciones a sus usuarios a menos que esté buscando la distribución empresarial. Necesitará una cuenta de desarrollador pagada, que se puede comprar en el Centro de desarrollo de Windows. La tarifa es de $ 19 por año, a menos que sea un estudiante suscrito al programa DreamSpark, en cuyo caso el acceso es gratuito. Se otorga un beneficio similar a los suscriptores de MSDN: en la página de beneficios, puede obtener un token que le permite registrarse de forma gratuita.

Además de la tarifa anual, Microsoft aplica un enfoque de participación en los ingresos: Microsoft mantiene el 30% del precio de la aplicación, mientras que el otro 70% se otorga al desarrollador. Por supuesto, este intercambio no se aplica si la aplicación es gratuita.

Una vez que su cuenta de desarrollador se haya activado y su aplicación esté lista, puede enviarla al portal en dev.windowsphone.com. Durante el proceso, deberá definir las funciones de marketing de la aplicación, como el precio, los metadatos y el tipo de distribución. Después de eso, se completa el envío y comienza el proceso de certificación. Las aplicaciones no se publican automáticamente en la Tienda; Primero, deben pasar un proceso de certificación que valide la aplicación tanto desde el punto de vista técnico como de contenido..

Las pruebas técnicas aseguran que la aplicación ofrezca una buena experiencia a los usuarios: no falla, es rápida y receptiva, y la interfaz de usuario no es confusa.

Las pruebas manuales verifican el contenido de la aplicación. Algunos tipos de contenido como pornografía, violencia excesiva, etc., no están permitidos y conducirán a un fracaso en la certificación..

Cuando inicie el proceso de envío, verá una lista de pasos a seguir para completar el proceso. Veamos brevemente cada paso.

Paso 1: Información de la aplicación

El primer paso del proceso de publicación se utiliza para establecer cierta información básica, como la categoría de la aplicación, el nivel de precios y la distribución del mercado. Su aplicación se distribuirá automáticamente en todos los países admitidos al precio que haya elegido. El precio se convertirá automáticamente en la moneda de cada país.. 

En este paso, puede optar por excluir automáticamente países como China, donde las políticas de contenido son más estrictas. El proceso de certificación también ofrece un opcional. Selección de mercado y precios personalizados. Step, que ofrece una personalización más profunda: puede elegir distribuir las aplicaciones solo en países específicos y personalizar el precio para cada país..

La otra opción importante para establecer durante este paso es el canal de distribución. Hay tres formas de distribuir una aplicación de Windows Phone:

  • La tienda publica: La aplicación puede ser descubierta y descargada por cualquier usuario..
  • Oculto: La aplicación aún está disponible en el almacén público, pero los usuarios no pueden descubrirla. La única forma de encontrarlo es mediante el enlace directo que se genera cuando se publica la aplicación.
  • Beta: Los usuarios no pueden descubrir la aplicación y, además, solo los usuarios autorizados podrán descargarla. Los usuarios están autorizados con la cuenta de Microsoft con la que registraron el teléfono. Podrás incluir hasta 10,000 usuarios durante el proceso de envío. Este canal de distribución fue creado para soportar las pruebas beta; en este escenario, sin embargo, la aplicación no se probará realmente, sino que estará disponible para los usuarios seleccionados dentro de las dos horas posteriores al envío de la aplicación. Una aplicación beta caduca automáticamente 90 días después de que se haya enviado por primera vez, independientemente de las actualizaciones posteriores.

Paso 2: Sube y describe tu XAP

El segundo paso requiere más tiempo para completarse, ya que deberá proporcionar toda la información de la aplicación que se mostrará en la Tienda de Windows Phone..

El primer paso es subir el archivo XAP. El XAP es el paquete producido por Visual Studio cuando compila su proyecto y contiene todos los archivos necesarios para que la aplicación se ejecute. Lo encontrarás dentro de la compartimiento carpeta de su proyecto de Visual Studio. Recuerda siempre compilar la aplicación en modo de lanzamiento; de lo contrario no será aceptado.

Una vez que haya cargado el XAP, el portal mostrará automáticamente un resumen de las características de la aplicación, como las resoluciones compatibles, las capacidades requeridas, etc. También deberá establecer el número de versión de la aplicación que está cargando..

El portal también detectará automáticamente los idiomas que admite, que se mostrarán en un menú desplegable llamado Detalles de idioma. Tendrá que configurar los metadatos de la aplicación (título, descripción y palabras clave) para cada idioma compatible. Esta información se mostrará en la Tienda cuando el usuario abra la página de su aplicación..

También deberá cargar al menos una captura de pantalla (se permiten ocho) para cada idioma y resolución compatible, además del icono de la aplicación. Se mostrarán en la sección de capturas de pantalla de la Tienda. Para tomar capturas de pantalla, puede usar una de las herramientas disponibles en el emulador.

Una vez que haya completado todos los pasos necesarios, el portal le mostrará un resumen del envío para su confirmación..

Gestionando el Ciclo de Vida de la Aplicación

Una vez que su solicitud haya sido certificada, tendrá acceso a muchos informes que lo ayudarán a comprender qué tan bien está funcionando su aplicación. Hay informes de descarga, informes de ventas e informes de fallos..

Si la aplicación no pasa el proceso de certificación, encontrará en su panel un archivo PDF que contiene el informe completo. Le dirá en detalle qué salió mal y qué debe hacer para solucionar los problemas identificados..

Al final, por supuesto, también puede actualizar su aplicación. En este caso, simplemente tendrá que repetir todos los pasos de envío, aunque todos los campos ya estarán rellenos con la información y los metadatos antiguos. El proceso también es el mismo si solo desea cambiar información como el precio, la descripción y las capturas de pantalla. El envío solo tiene que estar certificado si ha cambiado cualquier información que deba validarse. Si solo cambia el precio, la actualización se publica inmediatamente..

Compras en la aplicación

Una forma diferente de ganar dinero con las aplicaciones de Windows Phone es apoyar las compras dentro de la aplicación. Además de comprar la aplicación en la Tienda, los usuarios también pueden realizar compras dentro de la misma aplicación..

Las compras dentro de la aplicación siempre se han permitido, pero Windows Phone 8 ha introducido API específicas y soporte backend de Microsoft. Anteriormente, el desarrollador se encargaba de crear la infraestructura del servidor, administrar los pagos y conectar el cliente.

Ahora, simplemente puede confiar en la infraestructura de la tienda. Los usuarios pagarán con la misma tarjeta de crédito que usaron para comprar aplicaciones o música en la Tienda, y el portal le permitirá crear uno o más productos para comprar dentro de la aplicación. También en este caso, se aplicará el enfoque de reparto de ingresos. Si desea evitarlo, puede implementar su propia infraestructura de compra dentro de la aplicación; Microsoft no obliga a los desarrolladores a usar sus servicios.

Es importante destacar que la compra en la aplicación a través de los servicios de Microsoft solo se permite para productos virtuales (como nuevas funciones, niveles de juego, etc.); No se puede usar para comprar bienes físicos..

Windows Phone admite dos tipos de productos:

  • Bienes de consumo duradero son productos que se pueden comprar solo una vez, como características de la aplicación, paquetes de nivel, etc..
  • Consumibles son productos que se pueden comprar nuevamente después de que se hayan consumido, como monedas virtuales.

Definiendo un producto

Los productos se definen en el portal. En la página de la aplicación, el Productos La sección ofrece una opción para agregar nuevos productos en la aplicación. Definir un producto es similar a enviar una aplicación: tiene que establecer algunas propiedades básicas como el nombre, el precio y los metadatos, y luego enviarlo.

Hay dos propiedades clave:

  • el identificador del producto, que es un ID único que utiliza en su aplicación para referirse al producto
  • El tipo de producto, que puede ser consumible o duradero.

Interactuando Con Productos

Una vez que haya definido todas las propiedades, puede comenzar a trabajar con los productos en su aplicación. Probablemente, el primer requisito es mostrar la lista de productos disponibles que los usuarios pueden comprar. Este objetivo se logra utilizando el CurrentApp clase que pertenece a la Windows.ApplicationModel.Store espacio de nombres.

privado async void OnListStuffClicked (objeto remitente, RoutedEventArgs e) ListingInformation listing = await CurrentApp.LoadListingInformationAsync (); Lista productListings = listing.ProductListings.Values.ToList (); Purchases.ItemsSource = productListings; 

los CurrentApp clase expone la LoadListingInformationAsync () método, que devuelve un ListadoInformación Objeto que almacena toda la información sobre los productos disponibles.. 

Los productos se almacenan dentro de la Listado de productos colección. En la muestra anterior, los mostramos al usuario usando un LongListSelector Control, que tiene la siguiente definición:

         

Cada Lista de productos El objeto contiene la misma propiedad que hemos asignado al producto en la Tienda. En la muestra anterior, mostramos el nombre (Nombre) y el precio (FormattedPrice) del producto.

Una vez que tenga la lista de productos, debe administrar el proceso de compra. Una vez más, necesitamos usar el CurrentApp clase, que ofrece la RequestProductPurchaseAsync () método. Como parámetro, vamos a pasar el Lista de productos objeto seleccionado por el usuario.

privado async void OnSelectedPurchaseChanged (remitente del objeto, SelectionChangedEventArgs e) ProductListing selectedPurchase = Purchases.SelectedItem as ProductListing; aguarda CurrentApp.RequestProductPurchaseAsync (selectedPurchase.ProductId, true); 

Una vez que se compra un producto, puede verificar su estado usando el CurrentApp.LicenseInformation.ProductLicenses colección. Contiene todos los productos compatibles con el estado de la licencia correspondiente. Cada producto se identifica mediante una clave, que es el identificador único que asignamos cuando lo creamos en el portal.

Private Void MainPage_Loaded (objeto remitente, RoutedEventArgs e) if (CurrentApp.LicenseInformation.ProductLicenses.ContainsKey ("CoolProduct")) ProductLicense license = CurrentApp.LicenseInformation.ProductLicenses ["CoolProduct"]; if (license.IsActive) // Desbloquee la función.  else // Bloquea la característica. 

En la muestra anterior, podemos determinar si el producto con el CoolProduct identificador ha sido comprado mediante la comprobación del valor de la Está activo propiedad. La operación se realiza cuando se carga la página: si el producto se ha comprado, desbloqueamos la función relacionada, de lo contrario, esperaremos a que el usuario la compre..

Para un producto consumible, el proceso de compra es el mismo. La única diferencia es que, una vez que se ha consumido, debemos informarla para que pueda "desbloquearse" y volver a comprarla..

Podemos reportarlo llamando al ReportProductFullfillment () método de la CurrentApp clase, que requiere como parámetro la Licencia de producto Objeto que identifica el producto..

el vacío privado OnConsumeButtonClicked (remitente del objeto, RoutedEventArgs e) var licencias = CurrentApp.LicenseInformation.ProductLicenses; if (license.ContainsKey (“CoolProductConsumable”)) ProductLicense productLicense = licencias [“CoolProductConsumable”]; CurrentApp.ReportProductFulfillment (productLicense.ProductId); 

Pruebas de compras en la aplicación

Desafortunadamente, probar una compra en la aplicación no es muy fácil. Como los productos deben definirse en el portal, deberá enviar su solicitud antes de poder probar el proceso de compra..

Una solución alternativa es publicar la aplicación como beta; Ya que la aplicación no necesita ser certificada, estará disponible de inmediato para su prueba. El inconveniente es que es difícil probarlo correctamente si algo sale mal, ya que no puede depurarlo utilizando Visual Studio como lo haría normalmente con cualquier otra aplicación..

Por esta razón, Microsoft ha proporcionado una biblioteca de prueba llamada MockIAP. Su propósito es "simular" las API reales de compra en la aplicación para que las operaciones no se ejecuten contra el servicio real de Microsoft, sino que utilicen productos falsos que se definen dentro de la aplicación..

MockIAP se puede descargar desde MSDN y añadido a su solución. Las API que ofrece son las mismas que las expuestas por el SDK nativo; La única diferencia es que pertenecen a la MockIAPLib espacio de nombres en lugar de Windows.ApplicationModel.Store espacio de nombres.

Hay dos cosas que hacer para comenzar a usar la biblioteca MockIAP. La primera es agregar algunas directivas de compilación condicional para que cuando la aplicación se compile en modo de depuración (normalmente durante la prueba) use la biblioteca simulada. Cuando se compila en modo de lanzamiento, utilizará los servicios reales de Microsoft.

El siguiente ejemplo de código muestra cómo se verá la declaración de espacio de nombres en su página:

#if DEBUG usando MockIAPLib; utilizando Store = MockIAPLib; #else utilizando Windows.ApplicationModel.Store; #terminara si

El segundo paso es definir los productos que necesitamos utilizar. Dado que la aplicación no se conectará a los servicios reales, debemos duplicar en el código los productos que hemos definido en el portal..

El siguiente código muestra una inicialización de muestra:

vacío privado SetupMockIAP () MockIAP.Init (); MockIAP.RunInMockMode (true); MockIAP.SetListingInformation (1, "en-US", "Esta es una aplicación de ejemplo", "1", "SampleApp"); ProductListing p = new ProductListing Name = “Cool product”, ProductId = “CoolProduct”, ProductType = Windows.ApplicationModel.Store.ProductType.Durable, Description = “A cool product”, FormattedPrice = “10.00 €”, Tag = string. Vacío; MockIAP.AddProductListing ("CoolProduct", p); ProductListing p2 = new ProductListing Name = “Cool product consumable”, ProductId = “CoolProductConsumable”, ProductType = Windows.ApplicationModel.Store.ProductType.Consumable, Description = “Un producto consumible cool”, FormattedPrice = “5.00 €”, Etiqueta = string.Empty; MockIAP.AddProductListing ("CoolProductConsumable", p2); 

Creamos dos productos: uno duradero identificado por la clave. CoolProduct, y un consumible identificado por la llave. CoolProductConsumable. Cada producto es identificado por el Lista de productos clase (la misma clase que usamos con los servicios reales), y podemos usarla para definir todas las propiedades del producto que normalmente se recuperan de los servicios de Microsoft, como el nombre, el tipo, el precio, etc..

Añadimos cada producto utilizando el AddProductListing () método de la MockIAP clase. Después de agregar los productos, podemos usar las API estándar para las compras dentro de la aplicación. Las operaciones se realizarán localmente con los productos falsos en lugar de los servicios reales, pero el comportamiento será exactamente el mismo. Podremos listar, comprar y consumir los productos disponibles..

Conclusión

Cuando hablamos de aplicaciones móviles, el desarrollo no es el único aspecto que debemos considerar. Si queremos tener éxito, también tenemos que distribuir y promover nuestra aplicación. En este tutorial, hemos discutido:

Este tutorial representa el capítulo final de Windows Phone 8 Sucintamente, un libro electrónico gratuito del equipo de Syncfusion. Esperamos que haya disfrutado de esta serie sobre el desarrollo de aplicaciones para Windows Phone 8.!