#Garmin – Trabajando con recursos y culturas en una app #ConnectIQ

Hola !

Cuando creamos una aplicación para un dispositivo Garmin, trabajar con un recursos es un #MustHave. En el siguiente video se muestra un escenario sencillo en el que se cambia el lenguaje de una aplicación. En el mismo, la etiqueta principal de la aplicación cambiará cada vez cambie el lenguage del reloj.

2016 02 24 Garmin Resource Languages

About Resources and Cultures

Las aplicaciones de ConnectIQ tienen una estructura de recursos estándar donde podemos definir strings, almacenar imágenes y también definir layouts o menús para nuestras apps. Podemos encontrar todos estos elementos en la carpeta de la raíz principal de nuestro proyecto.

image

La carpeta contenido de raíz, para esto es “resources”. Para cada cultura diferente, podemos agregar un nuevo folder y añadir sólo los diferentes elementos que necesitamos para cada uno. En el ejemplo, el principal recurso tiene este contenido en el archivo “resources\strings\strings.xml”

<strings>
<string id=”AppName”>App04</string>
<string id=”prompt”>Hello Martina</string>
<string id=”menu_label_1″>Item 1</string>
<string id=”menu_label_2″>Item 2</string>
</strings>

El contenido mismo de la cultura española se encuentra en “resources-spa\strings\strings.xml” e incluye este contenido

<strings>
<string id=”AppName”>App04</string>
    <string id=”prompt”>Hola Martina</string>
    <string id=”menu_label_1″>Item 1</string>
<string id=”menu_label_2″>Item 2</string>
</strings>

También hay otro elemento importante en la aplicación: Layouts (claramente explicadas en la guía de programadores). He creado un diseño personalizado que se almacena en un archivo llamado “resources\layouts\layoutcustom.xml”, que incluye el siguiente contenido

<layout id=”CustomLayout”>
<label x=”center” y=”5″ text=”@Strings.prompt” color=”Gfx.COLOR_WHITE” justification=”Gfx.TEXT_JUSTIFY_CENTER” />
<bitmap id=”id_martina” x=”center” y=”30″ filename=”../drawables/martina.png” />
</layout>

Hay varios elementos que pueden utilizarse en un archivo de diseño, como textos, imágenes, formas, etc.. Nuevamente la guía de programadores explica toda la información necesaria para ello.

Resource Compiler

Por último tenemos el compilador de recursos. Cada vez construimos nuestra aplicación, el compilador de recursos crea un conjunto de clases y modulos que permiten trabajar con estos elementos. Si tenemos cualquier problema o mal archivo definido, en el registro de consola de ConnectIQ podremos ver un poco de ayuda al respecto.

image

Una vez que tenemos una estructura exitosa en nuestra aplicación, podemos acceder a estos elementos mediante código utilizando un módulo llamado Rez. Se trata de un módulo generado automáticamente una estructura similar a esta

module Rez
{
    module Drawables
    {
        var bitmap_id = 123;
    }
    module Strings
    {
       var hello_id = 456;
    }
    module Fonts
    {
       var font_id = 789;
    }
}

En nuestra muestra, con el fin de acceder y utilizar el diseño personalizado, la forma de hacer esto es

image

De la misma manera podemos acceder a secuencias, mapas de bits, fuentes, etc..

En el siguiente post más cosas y tal vez un ejemplo conectado a AZURE.

GitHub Source Code: https://github.com/elbruno/Blog/tree/master/Garmin

Greetings @ Toronto

-El Bruno

References


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s