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.
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.
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.
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
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
- ConnectIQ Programmers Guide Resource Compiler
- ConnectIQ Programmers Guide User Interface