Más

    ¿Tienes 20 minutos? Te enseño cómo (y por qué) empaquetar tu app Win32 como UWP para subirla a la tienda

    Una de las novedades de esta Build, que aunque ya conocida no habíamos visto su funcionamiento, es Proyect Centennial, que nos permite empaquetar nuestra app Win32 como una app UWP para que cualquiera pueda usarla y descargarla de la tienda.

    Dado que las herramientas ya han sido presentadas, he visto el track donde nos enseñan como hacerlo, y es tan sencillo que deberías dedicar 20 minutos a empaquetar tu app Win32 y subirla a la tienda. La herramienta es absolutamente automática, aunque algunas cosas deberemos especificarlas. Vamos a ver algunos puntos interesantes sobre esto:

    ¿Qué ventajas ofrece bajar app a la tienda respecto a instalarla desde una web?

    Las ventajas son innumerables, probablemente me deje alguna que tú mismo veas. Si es así, ¡Escríbelo en los comentarios!

    • El usuario instala la aplicación con un solo click, sin molestarse en acceder a una URL ni abrir su carpeta de descarga
    • Las aplicaciones de la tienda pasan una certificación, por lo que puedes estar seguro de que no tendrás aplicaciones que no querías ni malware después de instalarla.
    • Las aplicaciones no escriben al registro de Windows directamente, por lo que no queda basura en el registro y no se enlentece el sistema con el tiempo.
    • Las aplicaciones no dejan dlls ni archivos olvidados en tu unidad de almacenamiento, que eun futuro pueden dar problemas o ocupar espacio.
    • Cuando desinstalas la aplicación no queda rastro de ella. Es cómo si no hubiera existido nunca en tu equipo. No más accesos directos huérfanos, no más restos de dlls compartidas en Win32.
    • Como desarrollador/publicador, no tienes que preocuparte de tener un servidor de actualizaciones ni que tu app compruebe si hay una versión posterior. Si la actualizas, todos la actualizan.
    • Puedes integrar todas las mejoras de Windows 10 (Requiere desarrollo adicional), como las notificaciones interactivas o un Live Tile.

    Me has convencido… ¿Cómo lo hago?

    Cabe decir que el conversor no está disponible a la fecha de redacción de este tutorial, pero nos han dicho en la //BUILD/ 2016, que estará a lo largo de abril. ¡Ya queda poco! Si estás leyendo esto después de abril, probablemente lo tengas disponible en aka.ms/converter.

    El proceso no te llevará más de 20 minutos (10 si eres correcaminos), y podrás llegar a millones de usuarios mediante la tienda de Windows. ¡Manos a la obra!

    Usando el conversor

    Lo primero que necesitamos es el instalador de tu aplicación, ese ejecutable que antes solías distribuir por la web. Cópialo en una carpeta a tu elección. En nuestro caso, los chicos de Channel 9, lo han hecho con VLC.

    También necesitaremos el conversor. Si ya está disponible, descárgalo de la dirección proporcionada más arriba. Tras descomprimir el conversor, nos encontraremos una serie de archivos

    Tenemos dos maneras de usar el conversor, una mediante DesktopAppComverter.ps1 (powershell) y otra mediante DesktopAppConverter.cmd (Command Line), podemos optar por cualquiera, ya que no hay diferencias. Este es el comando que deberemos teclear:

    Vamos a analizar sus parametros:

    • -Installer XXXXX: La ruta al instalador de nuestra aplicación
    • -InstallerArguments «XXXXXXX»: Los parámetros necesarios para que dicho instalador se ejecute en modo quiet ó silent. Ten en cuenta que se requiere que el instalador finalize e instale todos los componentes necesarios por sí mismo, sin requerir interacción del usuario
    • -Destiantion «XXXXX»: El directorio de destino donde se guardará la conversión
    • -PackageName «XXXXX»: El nombre que queremos darle al paquete
    • -Publisher «CN=XXXXXX»: El nombre del desarrollador / Publicador
    • -Version X.X.X.X: El número de versión de la aplicación
    • -ExpandedBaseImage: Limítate a copiar la línea. La ExpandedBaseImage es una especie de sandbox que se encarga de capturar todas las interacciones que hace tu aplicación con elementos como el registro o como el sistema de archivos fuera del ámbito del usuario, para poder hacer que la aplicación se ejecute en el sandbox.

    Ahora solo nos queda esperar un poco, si le hemos indicado el parametro -Verbose podemos ir viendo lo que pasa, y lo que va haciendo la herramienta.

    Editando el AppxManifest.xml y viendo lo que ha pasado

    Como toda aplicación empaquetada para la tienda, nuestra salida, una vez ha terminado la herramienta, tendrá un archivo AppxManifest.xml. El directorio VFS que puedes ver en la salida, es el Virtual File System, que contiene los directorios virtuales de tu aplicación, de manera que Windows no se toca para nada. También encontramos un Virtual Registry en la forma del archivo Registry.dat.

    Poniendo un icono chulo, guapo o chévere (según de donde nos leas)

    Dentro del directorio VFS que comentabamos en el anterior paso, hay una excepción, un directorio que no es de tu aplicación, que es el directorio Assets. Ahí puedes copiar (o sobreescribir los que genera el conversor) los tiles que has diseñado para la app de la tienda.

    Si por cualquier motivo deseas cambiarles el nombre, no te olvides de editar el AppManifest.xml, con eso será suficiente:

    Asociando algunos tipos de archivo

    Tal y como nos explican el track, anteriormente, con las apps de escritorio, teníamos que realizar modificaciones en el registro (que a veces a algunos desarrolladores no le salían nada bien) para asociar los tipos de archivo.

    Ahora, en el manifest, pondremos las asociaciones de archivos que puede abrir nuestra app. Recordemos que esto va a ser revisado manualmente, por lo que no debes poner nada que no interactúe directamente con tu app o suponga una experiencia mala (por ejemplo, hacer que VLC abra archivos PDF)

    Añadimos lo siguiente al AppManifest.xml, entre la etiqueta Application:

    <Extensions>
        <uap:Extension Category="windows.fileTypeAssociation">
            <uap:FileTypeAssociation Name="fileassociations">
                <uap:Logo>Assets\ELLOGOQUESEMOSTRARÁ.png</uap:Logo>
                <uap:SupportedFileTypes>
                    <uap:FileType>.mp4</uap:FileType>
                    <uap:FileType>Otra extensión...</uap:FileType>
                </uap:SupportedFileTypes>
            </uap:FileTypeAssociation>
        </uap:Extension>
    </Extensions>

    Y ya está. A partir de ahora se ofrecerá nuestra UWP para abrir las extensiones que hayamos puesto aquí, tanto al abrir un archivo con dicha extensión (Se detecta que hay una app nueva y por lo tanto se pregunta) como al hacer botón secundario > Abrir como…

    Ya tenemos todo listo, empaquetemos

    Ya solo nos falta empaquetar nuestra aplicación UWP. Para hacerlo, nos bastará un par de lineas de comandos. Necesitaremos tener instaladas las herramientas necesarias para hacerlo, que normalmente vienen con Visual Studio si has elegido instalar las herramientas de desarrollo para aplicaciones universales:

    C:\AppXTools\makeapp.exe pack -d vlcout -p VLC.appx
    C:\AppXTools\signtool.exe sign -f C:\AppXTools\my.pfx -fd SHA256 -v .\VLC.appx

    Cambia las rutas por las tuyas, y ya tendrás una App firmada y lista para probar. Vamos a instalarla con Powershell:

    add-appxpackage "RUTADELAPPX"

     ¡Ya está!

    Búscala en tu menú de inicio, y comprueba que todo funciona. Puedes arrastrar archivos, abrirlos… Se comporta tal y como debe. Ahora solo te queda subirla a la tienda para que todo el mundo la disfrute.

    Para finalizar…

    Si en un futuro quieres añadir características de Windows 10 a tu aplicación, encontrarás más detalles en esta página. Además puedes ver el track entero en vídeo, que dura aproximadamente unos 20 minutos:

    Comentarios

    En directo: Picacódigo

    Te puede interesar

    Picacódigo

    Mas leídas

    Otros temas de interés