Etiqueta

13 de marzo de 2015

Aplicaciones para BlackBerry (el "wrapper") (Parte 8 de 8)

Agregar SCAFs (sólo para aplicaciones “off-line”)


Si su aplicación incluye soporte “off-line”, deberá decidir si incluirá o no los ficheros SCAFs dentro de la propia aplicación. Tenga en cuenta, que si así lo hace, la aplicación será de mayor tamaño, aunque, sin embargo, podrá ser ejecutada en el modo “off-line”, es decir, sin necesidad de una primera conexión con el servidor para su actualización.

Si opta por incluir los ficheros SCAF en su aplicación, deberá hacer lo siguiente:
  • Localice la carpeta “html/sc” bajo el directorio de instalación Omnis Studio.
    • En un sistema Windows, la encontrará bajo el directorio “AppData”. Ejemplo: C:\Users\AppData\Local\TigerLogic\OS6.X\
  • Localice su “App SCAF” (Un archivo con extensión .db bajo el directorio sc, con el mismo nombre que el asignado a su librería Omnis).
  • Localice también su “Omnis SCAF” (El fichero omnis.db situado en sc/omnis/).
  • Importe ambos ficheros SCAF a su proyecto BlackBerry, situándolos bajo el directorio “assets/Serverless”.
  • La forma más fácil de hacer esto es arrastrarlos desde el explorador de archivos al proyecto abierto sobre el SDK. Asegúrese de tener seleccionada la opción “Copy Files”.
 

11 de marzo de 2015

Aplicaciones para BlackBerry (el "wrapper") (Parte 7 de 8)

Localizar su aplicación


Si desea traducir los textos utilizados por la aplicación o “wrapper”, o si desea hacer uso de diferentes pantallas de inicio/iconos para según que idiomas, podrá hacerlo siguiendo los pasos que se describen a continuación. Si el dispositivo del usuario es ajustado para ser usado con alguno de los idiomas soportados, la aplicación automáticamente hará uso de los textos traducidos y/o iconos alternativos que se hayan especificado.


Añadiendo soporte multilingüe

  • Abra el fichero “bar-descriptor.xml” del proyecto y seleccione la pestaña “Localization”.
  • Aquí deberá figurar la lista con los idiomas para los que desee proporcionar traducciones.
  • Podrá Agregar/Quitar idiomas mediante los botones “Add/Remove”.
  • Modifique esta lista para poblarla con los lenguajes a los que desee aportar las diferentes traducciones.
  • Si el idioma que desea aportar, no estuviese incluido en la lista, podrá agregarlo especificando un código de idioma sobre el campo “Other”, situado en la parte inferior.


 

Iconos y/o nombres de aplicación alternativos

  • Seleccione uno de los lenguajes de la lista “Language”.
  • A su derecha hallará el acceso a la sección  “Entry-Point Text and Images”.
  • Rellene esta sección con los textos e imágenes para el idioma seleccionado.
  • Cualquier valor introducido aquí anulará su predeterminado y según lo indicado por el usuario al configurar la opción de idioma del dispositivo. Si no se indica un texto o icono alternativo se tomar el predeterminado.
 

Traducción de cadenas de texto

El “wrapper” utiliza cadenas de texto en muchos lugares diferentes. Por ejemplo, en el menú de la aplicación. Estos también pueden ser traducidos.
  • Una vez agregadas las diferentes lenguas, deberá “Build” (construir) y “Clean” (limpiar) su proyecto.
    • Haga clic-derecho sobre el proyecto y seleccione la opción “Build Project”, después, pulse de nuevo clic-derecho y seleccione “Clean Project”.
  • Esto deberá generar varios archivos con formato ..._XX.ts sobre el directorio “translations” del proyecto.
  • Localice y edite el archivo .ts correspondiente al idioma que desee traducir.
  • Podrá comprobar que se trata de un archivo XML compuesto de varias etiquetas ≤message≥ - cada una con su correspondiente ≤source≥ y ≤translation≥.
  • En caso de haberse añadido nuevas lenguas, cada etiqueta ≤translation≥ incluirá un atributo type="unfinished". Mientras esté presente no se hará uso de la traducción.


  • La etiqueta ≤source≥ contiene la cadena por defecto, y la etiqueta ≤translate≥ es la que deberá ser editada para contener la cadena traducida para ese idioma.
    • Ejemplo: ≤source≥Application Auto Updater≤/source≥ ≤translation≥Mise à jour automatique≤/translation≥
    • Si la etiqueta ≤translation≥ contiene el atributo type="unfinished", elimínelo, pues de lo contrario no se hará uso de la traducción.

10 de marzo de 2015

Aplicaciones para BlackBerry (el "wrapper") (Parte 6 de 8)

Eliminar elementos no requeridos


Cada aplicación BlackBerry debe solicitar permisos para acceder a diversas áreas del dispositivo. (Contactos, Cámara, Localización, etc.) Es una mala práctica incluir permisos innecesarios en su aplicación, especialmente si se está distribuyendo a través de BlackBerry World, ya que cuando el usuario descarga o instala la aplicación, deberá aceptar los permisos a los que su aplicación solicita acceso. El uso de permisos innecesarios pueden darle al usuario la impresión de que su aplicación es maliciosa.

  • Abra el fichero “bar-descriptor.xml” de su proyecto y seleccione la pestaña “Application”. 
  • La sección “Permissions” de esta página le permitirá seleccionar los realmente requeridos por la aplicación, mediante el uso de casillas de verificación. 
  • Por defecto, están marcados todos los permisos posibles para una aplicación Omnis. 
  • Marque sólo los que su aplicación va a necesitar realmente y desactive todos los demás.


PERMISOS OBLIGATORIOS:

  • Internet

El resto de permisos pueden ser eliminados para su aplicación, si es el caso que no los necesita. Sus nombres y descripciones son explicados por sí mismos cuando su aplicación los solicite.

Los permisos opcionales, (dependiendo de los requeridos por su aplicación) son los siguientes:
  • Camera - necesario si se hará uso de lector de código de barras (kJSDeviceActionGetBarcode). 
  • Contacts - necesario si se activa kJSDeviceActionGetContacts para acceder a la lista de contactos. 
  • GPS Location - proporciona un ajuste fino (se usa el sensor GPS) sobre los datos de ubicación kJSDeviceActionGetGps
  • Location - proporciona un ajuste parcial (se usa la red) sobre los datos de ubicación kJSDeviceActionGetGps
  • Shared Files - necesario si se desea obtener imágenes desde la cámara o de entre las ya guardadas en el dispositivo (kJSDeviceActionTakePhoto o kJSDeviceActionGetImage).