Etiqueta

Mostrando entradas con la etiqueta jsClient. Mostrar todas las entradas
Mostrando entradas con la etiqueta jsClient. Mostrar todas las entradas

20 de diciembre de 2014

Aplicaciones para Android (requerimientos, instalación y configuración de Eclipse)

Requerimientos Android


Para construir y desplegar aplicaciones para Android, necesitará lo siguiente:

  • Windows, OS X o Linux
  • Eclipse con ADT Plugin
  • Android SDK
  • $0 - $25

En cuanto a los requisitos del sistema operativo, según los diferentes modos de uso, necesitará:

  • Para el modo “On-line”: Android 2.2+ (API 8)
  • Para el modo “Off-line”: Android 2.3+ (API 9)
  • Para soporte de bases de datos locales: Android 2.2+ (API 8)

Configuración del entorno Android


1) Instalar herramientas de desarrollo Android

El entorno de desarrollo Android comprende Eclipse, el ADT Plugin para Eclipse y el Android SDK.

Google ahora ofrece un paquete ADT, que contiene Eclipse, el plugin ADT y el SDK para Android, todo ya configurado y listo para su uso.

  • Descargue el paquete ADT desde: http://developer.android.com/sdk.
  • Se trata de un archivo zip, que deberá extraer y colocar en el lugar que desee.
  • A continuación lanzaremos la herramienta, mediante el ejecutable Eclipse que podremos encontrar bajo la carpeta de instalación ADT.
2) Importar el proyecto
  • Primero descargue la última versión del “wrapper” Android. desde la página web Omnis.
Para importar el proyecto Omnis, deberá abrir Eclipse y hacer lo siguiente:
  • Seleccione la opción “Import” del menú “File”.
  • Una vez abierto el asistente, seleccione “General ≥ Existing Projects Into Workspace”.
  • Desde la siguiente ventana escoja “select archive file” y el archivo “wrapper” zip que descargó anteriormente, después pulse “Finish”.
3) Uso del proyecto
Al usar proyectos “wrapper” Android, intentaremos siempre hacer uso del último SDK disponible. Sin embargo, deberá tenerse en cuenta que se actualizan muy a menudo, por lo que podría suceder que no disponga de una versión en particular instalada del SDK.
  • Pulse botón-derecho sobre el nodo raíz del proyecto y seleccione “Properties”.
  • Bajo la sección “Android” de las propiedades, asegúrese de tener marcado “Project Build Target”. Si dispone de varios SDK instalados, seleccione el más reciente. 



Si no dispone de un SDK reciente, le recomendamos que lo instale y lo marque como el “Build Target” a utilizar. El último “wrapper” para Android requiere cómo mínimo el API 18, pero le sugerimos que utilice siempre el más reciente. Para instalar otras versiones del SDK, use el “Android SDK Manager” accesible desde la barra de herramientas de Eclipse, icono:


Personalización de aplicaciones Android


Una vez importado el “wrapper” en Eclipse, deberá personalizarlo para su aplicación particular. Este proceso comprende los pasos siguientes:

  1. Renombrar el proyecto
  2. Editar el fichero “config.xml”
  3. Cambiar el nombre del paquete
  4. Cambiar el nombre visible de la aplicación (App Name)
  5. Añadir iconos personalizados
  6. Añadir pantallas de transición personalizadas
  7. Eliminar elementos no requeridos
  8. Localizar su aplicación
  9. Agregar SCAFs (sólo para aplicaciones “off-line”)
  10. Agregar bases de datos para funcionamiento “off-line”
  11. Editar la ventana “Acerca de..”  
¡paso a paso! iremos viendo todo ésto en sucesivas entregas...

17 de diciembre de 2014

Aplicaciones para iOS (despliegue) (Parte 4 de 4)

A través de la tienda Apple (App Store)


DESCARGO DE RESPONSABILIDAD: Antes de llevar acabo el proceso que se describe a continuación, usted deberá leer los requisitos y las directrices de Apple sobre la publicación de aplicaciones. TigerLogic no se responsabiliza en cuanto a los contenidos de su aplicación.

Este proceso requiere de un “App Store Provisioning Profile”. Si no dispone de uno, consulte la sección “Configuración del entorno iOS” de la entrada "Aplicaciones para iOS (requerimientos, instalación y configuración de xCode)" en éste mismo blog.

El primer paso será crear un repositorio para sus aplicaciones en “iTunes Connect”.

  • Conéctese a “iTunes Connect” (https://itunesconnect.apple.com) y seleccione “Manage Your Apps”.
  • Pulse el botón “Add New App”, y siga los pasos del asistente para crear su repositorio. Tendrá que aportar datos descriptivos de su tienda, imágenes, etc. El asistente le proporcionará todas las instrucciones que necesite.
  • Al terminar, habrá obtenido un repositorio de aplicaciones en estado de “Prepare For Upload”.
  • Si está satisfecho con las descripciones, imágenes y etc. aportados, pulse “View Details” para ver su nuevo repositorio de aplicaciones y a continuación, pulse “Ready to Upload Binary” finalmente, siga los pasos del breve asistente que se abrirá a continuación.

  • Su repositorio de aplicaciones deberá estar en estado de “Waiting For Upload”. Si es así, podrá subir su aplicación desde xCode.
  • Abra el “Organizer” de xCode (Pulse: Cmd-Shift-2) y sitúese en la sección “Archives”.
  • Seleccione el archivo que construyó en la sección anterior (Construcción de una aplicación iOS) y a continuación, pulse el botón “Validate”.
    • Siga los pasos del asistente, indicando su repositorio de aplicaciones y su “App Store Provisioning Profile” cuando se le solicite.
    • Se realizarán una serie de controles sobre su aplicación, tratando de localizar cualquier cuestión que pueda causar su rechazo.
    • Si se encuentra algún problema, asegúrese de corregirlo (si es así deberá crear un nuevo archivo y re-validarlo) antes de seguir adelante. 



  • Si todo ha ido bien, abra el “Organizer” y seleccione de nuevo “Archive”, pero esta vez pulse el botón “Distribute”.
  • Al igual que antes, siga los pasos del asistente, indicando su repositorio de aplicaciones y su “App Store Provisioning Profile” cuando se le solicite.
  • Al final de este proceso, su aplicación se habrá subido y presentado, pasando a estar a la espera de ser revisada por Apple. Podrá comprobar el progreso de esta revisión en “iTunes Connect”. Conviene que después de subir su aplicación compruebe como se ve en su tienda, puede que no se vea como usted esperaba. (por ejemplo, tal vez quiera revisar alguna captura de pantalla)

Si la evaluación termina con éxito (lo cual puede llegar a tardar varias semanas), se convertirá en disponible desde la App Store y abierta a millones de potenciales usuarios.

16 de diciembre de 2014

Aplicaciones para iOS (despliegue) (Parte 3 de 4)

Desde un servicio web propio


Con sólo un poco más de trabajo que el descrito en el proceso anterior, podrá dar a sus usuarios un toque de profesionalidad, automatizado el proceso de instalación desde su sitio web.

Este proceso requiere de un “Ad-Hoc Provisioning Profiles”. Si no dispone de uno, consulte la sección “Configuración del entorno iOS” de la entrada "Aplicaciones para iOS (requerimientos, instalación y configuración de xCode)" en éste mismo blog.

  • Abra el “Organizer” de xCode (Pulse: Cmd-Shift-2) y sitúese en la sección “Archives”.
  • Seleccione el archivo que construyó en la sección anterior (Construcción de una aplicación iOS) y a continuación, pulse el botón “Distribute”. 


  • Sobre la ventana que se abrirá, seleccione “Save for Enterprise or Ad-Hoc Deployment” y después pulse “Next”.
  • Seleccione el “Distribution Provisioning Profile” que desee usar para firmar la aplicación y pulse “Next”.
  • Desde el cuadro de diálogo “Save As”, marque la casilla “Save for Enterprise Distribution”.

Esto ampliará el diálogo con varios campos nuevos que deberá rellenar del modo siguiente:

  • Application URL - Esta es la URL donde se podrá encontrar la aplicación dentro del servidor. Se tratará de un archivo .ipa por lo que tendrá el formato: http://www.miservidor.com/Aplicaciones_iOS/miAplicacion.ipa.
  • Title - Es el nombre que se mostrará para la aplicación mientras se descarga e instalación en el dispositivo. Una vez instalada, sólo se verá al nombre definido en su proyecto XCode.
  • Small Image URL - Esta es la URL de una imagen PNG con tamaño 57x57 ubicada en un servidor web, será el icono que se muestre de fondo mientras la aplicación se descarga e instala en el dispositivo. Una vez instalada, la aplicación mostrará el icono ya definido en su proyecto XCode.
El fichero imagen “Icon2.png”, (ya usado en su proyecto) puede ser el adecuado.


  • Tome nota de las ubicaciones indicadas para sus ficheros .ipa y .png, después pulse “Save”.
  • Esto creará en el lugar indicado, dos ficheros, uno con extensión .ipa y otro con extensión .plist. Cópielos sobre el servidor web y en el espacio indicado en “Application URL”.
Si con el paso del tiempo olvida cuales fueron los lugares indicados (URL’s), podrá consultar el fichero .plist, ya que contiene su configuración.
  • Copie también al servidor el fichero de imagen y en el espacio indicado en “Small Image URL”.
  • Cree un enlace para su página web, con el siguiente formato:
    itms-services://?action=download-manifest&url=≤URL hacia su fichero .plist≥
  • Es posible que deba configurar el servidor web para transmitir adecuadamente este tipo de archivos. Podrá hacerlo mediante ajustar los “MIME Types” para que reconozca los ficheros “.ipa” como “application/octet-stream” y los “.plist” como “text/xml”.
Ahora, si un dispositivo iOS sigue este enlace (y siempre que el dispositivo haya sido incluido en su “provisioning profile”), su aplicación se descargará e instalará.

10 de diciembre de 2014

Aplicaciones para iOS (despliegue) (Parte 2 de 4)

Despliegue manual


Este proceso requiere de un “Ad-Hoc Provisioning Profiles”. Si no dispone de uno, consulte la sección “Configuración del entorno iOS” de la entrada "Aplicaciones para iOS (requerimientos, instalación y configuración de xCode)" en éste mismo blog.

  • Abra el “Organizer” de xCode (Pulse: Cmd-Shift-2) y sitúese en la sección “Archives”.
  • Seleccione el archivo que construyó en la sección anterior (Construcción de una aplicación iOS) y a continuación, pulse el botón “Distribute”. 


  • Sobre la ventana que se abrirá, seleccione “Save for Enterprise or Ad-Hoc Deployment” y después pulse “Next”.
  • Seleccione el “Distribution Provisioning Profile” que desee usar para firmar la aplicación y pulse “Next”.
  • Seleccione el lugar de destino en el cuadro de diálogo “Save As” y pulse “Save”.

Esto creará un archivo .ipa en el lugar indicado.

Lo que ha obtenido es una aplicación iOS firmada y lista para ser instalada en los dispositivos de los usuarios. Podrán hacerlo importando el archivo .ipa a iTunes, sincronizando después sus dispositivos.

5 de diciembre de 2014

Aplicaciones para iOS (despliegue) (Parte 1 de 4)

Despliegue de aplicaciones iOS

Una vez construida la aplicación, estará lista para su instalación en los diferentes dispositivos. A continuación describimos tres diferentes opciones en cuanto a cómo hacerla disponible a sus potenciales usuarios:

  1. Despliegue manual

  2. Desde un servicio web propio

  3. A través de la tienda Apple (App Store)

Despliegue manual: Consiste simplemente en distribuir su archivo “App Ad-Hoc” a los usuarios de forma manual. Después deberán instalarlo en sus dispositivos por medio de de iTunes.

Desde un servicio web propio: Consiste en alojar su “App Ad-Hoc” en un servidor web, a fin de que sus usuarios puedan instalar la aplicación en sus dispositivos mediante un enlace.

A través de la tienda Apple (App Store): Para que su aplicación pueda figurar en la tienda Apple o “App Store”, el proceso es un poco más complicado, pero los beneficios hacen que merezca la pena. El proceso requerirá que su aplicación sea verificada manualmente por parte de Apple, esto hace que su implantación pueda dilatarse en el tiempo, tal vez hasta un par de semanas y sin garantía alguna de que será aceptada.

3 de diciembre de 2014

Aplicaciones para iOS (el "wrapper") (Parte 9 de 9)

Agregar bases de datos para funcionamiento “Off-line”.


Es posible añadir una base de datos SQLite preparada para su uso con la aplicación (naturalmente sólo si es construida mediante el “Target” para SQLite). La cual podrá ser usada desde los “form’s” mediante conexiones $sqlobject, e incorporada del siguiente modo:

  • Arrastre el fichero .db de SQLite desde el sistema de archivos, a la carpeta “Resources” de su proyecto xCode.
    • Asegúrese de seleccionar la opción “Copy items into destination group's folder”.
    • Asegúrese también de marcar la casilla para que quede agregado al “SQLite target”.
  • Edite el archivo “config.xml” de su proyecto e indique en su propiedad “≤ServerLocalDatabaseName≥” el nombre de la base de datos (incluyendo la extensión .db).
Tenga en cuenta que usted está creando una aplicación para un dispositivo móvil, por lo que no deberá pensar en una gran cantidad de datos a almacenar. Si necesita acceder a grandes bases de datos, seguramente deberá conectarse a un servidor Omnis y utilizar la funcionalidad de sincronización para actualizar datos con el dispositivo. Puede encontrar toda la información relacionada con Sync Server en la web de Omnis.

Construcción de una aplicación iOS


Una vez personalizado el proyecto para su aplicación, la creación de una versión distribuible es un proceso muy simple.

  • Seleccione el código fuente apropiado (dependiendo de si su aplicación soportará o no bases de datos locales) de la lista desplegable y que se encuentra en la parte superior de la ventana xCode. También seleccione el dispositivo iOS que necesite.

  • Seleccione “Archive” en el menú “Product” de xCode.
  • De éste modo guardará el fichero de su proyecto en su estado actual. Con el podrá poner su aplicación a disposición de los usuarios, ya sea manualmente o a través de la tienda Apple “App Store”. Dicho proceso se describe con detalle en la sección siguiente “Despliegue de aplicaciones iOS”, ya que el proceso es diferente en función del modo de distribución elegido.

2 de diciembre de 2014

Aplicaciones para iOS (el "wrapper") (Parte 8 de 9)

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


Si su aplicación debe incluir soporte para modo “off-line”, deberá decidir si incluirá o no los ficheros “SCAF” ya pre-instalados en la aplicación. Si lo hace, la aplicación será más grande, pero podrá ejecutarse en modo sin conexión desde el mismo principio, es decir, sin necesidad de conexión con el servidor Omnis para su actualización.

Para incluir los ficheros “SCAF” en la aplicación, deberemos hacer lo siguiente:

  • Busque la carpeta html/sc localizable bajo el raíz de la instalación Omnis Studio.
    • En caso de Windows, será bajo el directorio AppData, por ejemplo en: C:\Users\≤usuario≥\AppData\Local\TigerLogic\OS6.X\
  • Localice el “App SCAF” de su aplicación. (Un archivo con extensión .db dentro del directorio “sc” y con el mismo nombre que tiene su librería)
  • Localice también el “Omnis SCAF”. (Un archivo omnis.db situado en sc/omnis/)
  • Importe ambos archivos SCAF a su proyecto en xCode, situándolos dentro del directorio “OmnisJSWrapper/Resources”.
    • La forma más sencilla de hacerlo es arrastrándolos desde el Finder a su proyecto xCode. Asegúrese de seleccionar la opción “Copy Files” y de marcar las casillas “add to all of the targets”.

28 de noviembre de 2014

Aplicaciones para iOS (el "wrapper") (Parte 7 de 9)

Eliminar elementos no requeridos


Cuando construimos una determinada aplicación, es probable que no queramos incorporar todos los posibles ajustes de conexión. Para lograrlo, necesitaremos desactivar lo que no necesitemos del “Settings.bundle”.

  • Abra mediante xCode el proyecto y seleccione “Settings.bundle”.
  • Quite la marca de los “target’s” no requeridos, de entre los mostrados en “Target Membership”. 


26 de noviembre de 2014

Aplicaciones para iOS (el "wrapper") (Parte 6 de 9)

Localizar su aplicación


La localización, sólo está soportada en versiones 1.1.3 o superiores del “wrapper” iOS.

Si desea traducir los textos utilizados por la aplicación “wrapper”, podrá hacerlo tal y como describimos a continuación. Si el usuario configura su dispositivo para su uso con alguno de los idiomas soportados, se utilizarán los textos según la traducción elegida.

  • Sitúese sobre la raíz del proyecto en el “Project Navigator” y seleccione la pestaña “Info” del proyecto.
     
  • Sitúese bajo la sección “Localizations” y añada un nuevo lenguaje.


  • Sobre la ventana que aparece a continuación, asegúrese de seleccionar los dos archivos “Localizable.strings” e “InfoPlist.strings”. 
  • Si ahora desde nuestro “Project Navigator” nos situamos sobre nodo “Localizable.strings”, observaremos que puede ser ampliado. Si así lo hacemos, veremos que se ha creado una copia del archivo para el nuevo idioma.
  • Este archivo contiene grupos emparejados “key-value”. Las “keys” (situadas a la izquierda del signo igual) deberán dejarse como están, sin embargo, los “values” (situados a la derecha del signo igual) deberán traducirse al idioma elegido.
  • Asegúrese de que cada línea termina siempre con un punto y coma.

Si deseáramos cambiar algunos de los atributos de nuestro “application package” (como por ejemplo, el nombre de la aplicación, el icono, etc.), podríamos hacerlo del siguiente modo:

  • Busque el archivo “InfoPlist.strings” de su proyecto, localizable bajo el nodo “Supporting Files” amplíelo y escoja el correspondiente al idioma que desee. 
  • Cómo en el caso anterior, puede ser construido utilizando pares “key-value”, es decir con el formato: "Key Name" = "Key Value";
  • En este caso los nombres “key” deben coincidir con los definidos en el fichero “≤Nombre Proyecto≥-Info.plist. (por ejemplo “OmnisJSWrapper-Info.plist) La acción predeterminada no muestra éstos valores, por lo que deberá pulsar clic derecho sobre el nombre del archivo y escoger la opción “Open As ≥ Source Code” para verlos.
  • Recuerde que cada línea debe terminar con un punto y coma.


19 de noviembre de 2014

Aplicaciones para iOS (el "wrapper") (Parte 5 de 9)

Añadir iconos y pantallas de transición personalizadas


Las imágenes utilizadas para el proyecto como iconos y pantallas iniciales, se guardan en la carpeta: OmnisJSWrapper/Resources. Deberá sustituirlos (manteniendo sus mismos nombres) por los de su propia versión.

Sus tamaños y usos son los siguientes:

Iconos de Aplicación:


  • Icon.png (57x57) - iPhone/iPod No-retina. 
  • Icon@2x.png (114x114) - iPhone/iPod Retina. 
  • Icon-72.png (72x72) - iPad No-retina. 
  • Icon-72@2x.png (144x144) - iPad Retina.

Iconos de búsqueda y parámetros:


  • Icon-Small.png (29x29) - iPhone/iPod No-retina. 
  • Icon-Small@2x.png (58x58) - iPhone/iPod Retina. 
  • Icon-Small-50.png (50x50) - iPad No-retina. 
  • Icon-Small-50@2x.png (100x100) - iPad Retina.

Pantallas de transición:


  • Default.png (320x480) - iPhone/iPod No-retina. 
  • Default@2x.png (640x960) - iPhone/iPod Retina. 
  • Default-568h@2x.png (640x1136) - iPhone 5. 
  • Default-Portrait.png (768x1004) - iPad No-retina (orientación vertical). 
  • Default-Portrait@2x.png (1536x2008) - iPad Retina (orientación vertical). 
  • Default-Landscape.png (1024x748) - iPad No-retina (orientación horizontal). 
  • Default-Landscape@2x.png (2048x1496) - iPad Retina (orientación horizontal).

Imágenes para el “App Store” e “iTunes”:


  • iTunesArtwork (512x512) – Dispositivos No-retina. 
  • iTunesArtwork@2x (1024x1024) – Dispositivos Retina.

Si desea obtener más información sobre el uso de estas imágenes, consulte la documentación que proporciona Apple al respecto.

Aplicaciones para iOS (el "wrapper") (Parte 4 de 9)

Cambiar el nombre visible de la aplicación (App Name)


Para cambiar el nombre visible de su aplicación:

  • Sitúese sobre la raíz de su proyecto en el “Project Navigator”. 
  • Seleccione uno de los “Targets” y abra su pestaña “Build Settings”. 
  • Localice el “Product Name” de entre la lista de parámetros y modifique su valor.
    Repita éstos pasos para cada uno de los “targets”.


    12 de noviembre de 2014

    Aplicaciones para iOS (el "wrapper") (Parte 3 de 9)

    Cambiar el identificador (Identifier)


    El “Identifier” identifica a su aplicación y debe ser único entre todas las aplicaciones del dispositivo. Dos aplicaciones con el mismo identificador serían vistas por el dispositivo como si se tratase de la misma aplicación, por lo que este es un paso muy importante. Se recomienda el uso de una sintaxis de nombre de dominio inverso. Por ejemplo: com.miempresa.omnis.miaplicacion.

    • Sitúese sobre la raíz de su proyecto en el “Project Navigator”.
    • Seleccione cualquiera de los “Targets” y abra su pestaña “Summary”.
    • Modifique su “Bundle Identifier” consignado un valor diferente.



    5 de noviembre de 2014

    Aplicaciones para iOS (el "wrapper") (Parte 2 de 9)

    Editar del fichero “config.xml”


    El fichero "config.xml" contiene la configuración que utilizará su aplicación para conectarse con el servidor Omnis, además de otras opciones que determinarán su comportamiento.

    Localice el fichero "config.xml" situado sobre el directorio raíz del proyecto y modifique sus valores según sea necesario, tal y como se describe a continuación.

    • AppTitle – Mostrará o no, la barra de estado de iOS. 1 para cierto, 0 para falso.
    • SettingsFloatControls - Permite o no, que el “form” pueda cambiar su tamaño/posición, de acuerdo a su propiedad $edgefloat y en relación con la diferencia entre el tamaño de la pantalla del dispositivo y lo consignado en $screensize. 1 para cierto, 0 para falso. Funcionará sólo si el parámetro “SettingsScaleForm” contiene el valor 0.
    • SettingsScaleForm - De ser cierto (1), el “form” será escalado hacia arriba o hacia abajo, hasta ajustarse al tamaño de pantalla del dispositivo del cliente. 1 para cierto, 0 para falso.
    • SettingsAllowHScroll y SettingsAllowVScroll - Si es cierto, se permitirá el desplazamiento horizontal o vertical del “form”. 1 para cierto, 0 para falso.
    • SettingsMaintainAspectRatio - Si el parámetro “SettingsScaleForm” contiene el valor 1, el “form” se escalará de acuerdo a su aspecto original. 1 para cierto, 0 para falso.
    • SettingsOnlineMode - Determina si la aplicación se abrirá en modo “On-line” (1) o en modo “Off-line” (0).
    • TestModeEnabled - Determina si el modo de pruebas (opción Ctrl-M para testar “forms” en dispositivos) estará habilitado para su aplicación. 1 para cierto, 0 para falso.
    • TestModeServerAndPort – Es la ≤direccionip≥:≤puerto≥ usada con la versión Omnis Studio Developer durante el modo de pruebas. 
     
      • ServerOmnisWebUrl - URL del servidor Omnis o servidor Web. En caso de un servidor Omnis su formato debería ser: ≤direccionip≥:≤puerto≥ y si se trata de un servidor web, debería ser la raíz de su servidor Web: http://miservidor.com.
      • ServerOnlineFormName - Ruta hacia el fichero .htm correspondiente al “form” inicial, alojado en el servidor “ServerOmnisWebUrl”. Si se esta desarrollando la aplicación, es decir usando el “Omnis Studio Developer”, su formato será /jschtml/miform. Si se está utilizando un servidor web, será el resto de la URL necesaria para llegar hasta el fichero, por ejemplo, /omnisapps/miform. (¡Sin añadir la extensión .htm
     
      ServerOmnisWebUrl y ServerOnlineFormName, sólo son necesarios si se usarán “forms” en modo “On-line”. El resto de parámetros “Server...” se necesitarán si la aplicación también será ejecutada en modo “Off-line”. 
       
      • ServerOmnisPlugin - Si se está usando un plugin para establecer la comunicación entre el servidor web y el servidor Omnis, éste parámetro deberá indicar la ruta donde éste se encuentra, partiendo de “ServerOmnisWebUrl”. Por ejemplo /cgi-bin/omnisapi.dll.
      • ServerOmnisServer – Indica el camino hacia el Servidor Omnis, su formato es ≤direccionip≥:≤puerto≥. Sólo es necesario si se está usando un servidor web con el “Omnis Web Server Plugin” instalado. Si el servidor Omnis, se está ejecutando en la misma máquina que el servidor web, sólo necesitará indicar el puerto en uso. Ejemplo 194.168.1.49:5912.
      • ServerOfflineFormName - Nombre del “form” para uso en modo “off-line”. (¡No añada .htm!), Por ejemplo rfOffline.
      • ServerAppScafName - Nombre de la aplicación “SCAF”. Deberá coincidir con el nombre de su librería. Por ejemplo: milibreria. Nota: el nombre es sensible al uso de letras mayúsculas y minúsculas, por lo que le recomendamos usar sólo minúsculas).

    28 de octubre de 2014

    Aplicaciones para iOS (el "wrapper") (Parte 1 de 9)

    Primeros pasos


    • Primero, descargue la última versión del proyecto “iOS Wrapper Project”, desde la web de Omnis Studio.
    • Descomprima el fichero zip del “wrapper” sobre una carpeta y asegúrese de no dejar espacios intermedios en la ruta hacia la carpeta extraída.
    • Haga doble-clic sobre el fichero “OmnisJSWrapper.xcodeproj”, para abrir el proyecto con xCode. 

    Personalización de aplicaciones iOS


    Una vez importado el “wrapper project” sobre xCode, deberá personalizarlo para su aplicación en particular. Este proceso comprende los siguientes pasos:

    1. Renombrar el proyecto
    2. Editar el fichero “config.xml”
    3. Cambiar el identificador (Identifier)
    4. Cambiar el nombre visible de la aplicación (App Name)
    5. Añadir iconos y pantallas de transición personalizadas
    6. Localizar su aplicación
    7. Eliminar elementos no requeridos
    8. Agregar SCAFs (sólo para aplicaciones “off-line”)
    9. Agregar bases de datos para funcionamiento “off-line”

    Renombrar el proyecto


    Una vez abierto el proyecto “wrapper” en xCode, es probable que desee cambiar su nombre por otro, que designe de modo más apropiado a su aplicación en particular.

    La modificación del nombre del proyecto no ejerce efecto alguno sobre la aplicación resultante, pero si le permitirá registrar sus proyectos del modo más apropiado, especialmente si pretende crear diferentes aplicaciones ya que deberá usar proyectos independientes para cada una de ellas.

    • Escoja la vista “Project Navigator”, desde la barra lateral del proyecto (podrá hacerlo mediante hacer clic sobre el icono en forma de carpeta situado sobre la barra de herramientas).
    • Seleccione el nombre del proyecto, situándose sobre el nivel superior de la vista, y luego pulse la tecla “Entre” para cambiar su nombre.
    • Cambie el nombre y presione de nuevo “Enter”. Se le preguntará si también desea cambiar el resto de lugares donde también es usado. Deberá seleccionar la opción “rename all” para cambiar todas sus apariciones.
    • La versión actual de xCode (en el momento de escribir esto) parece omitir el cambio del los “Prefix Header” en los “targets”. De modo que deberá hacerlo manualmente:
      • Sitúese sobre el nivel raíz del proyecto en el “Project Navigator” – para que pueda ver la configuración del proyecto sobre el panel principal.
      • Seleccione uno de los “Targets”, para ver sus “Build Settings”.
      • Localice el ajuste “Prefix Header” (si lo desea puede usar para ello la caja de búsqueda) y asegúrese de que el nombre del archivo con extensión .pch figure con el formato -Prefix.pch.
      • Repita el paso anterior para los 3 “Targets”.

    Aplicaciones para iOS (requerimientos, instalación y configuración de xCode)

    Requerimientos iOS


    Para construir y desplegar aplicaciones iOS necesitará lo siguiente:

    • Mac OS X 10.7 o superior
    • xCode 4.5 o superior
    • $99 - $299 (cuota anual)

    Instalación de xCode


    Para la construcción de aplicaciones iOS, es imprescindible instalar xCode. Si lo desea puede descargarlo (para OS X 10.7 o posterior) a través de Mac App Store.

    Configuración como desarrollador autorizado


    Para la correcta creación de aplicaciones iOS, es necesario que su código esté firmado y hacerlo en el momento de su compilación. El primer paso del proceso será inscribirse en uno de los programas para desarrolladores de Apple iOS.

    Apple ofrece 3 diferentes opciones de inscripción en el “iOS Developer Program”:

    • Free - Permite descargar el SDK de iOS y probar las aplicaciones sobre el simulador, pero no podrá instalarlas sobre un dispositivo real.
    • Standard ($99 anuales) - Permite subir aplicaciones en la tienda “AppStore”, he impone un máximo de 100 dispositivos "Ad-Hoc" (modo test). 
    • Enterprise ($299 anuales) - Esta es la opción para compañías grandes, las cuales dispondrán de un “Dan & Broadstreet Number” (DUNS). Al igual que en el caso anterior, se permite la distribución de aplicaciones a través de la AppStore, y no impone límite en el número de dispositivos "Ad-Hoc".

    Seguramente la gran mayoría de los desarrolladores Omnis se inscribirán en el programa “Standard”, las indicaciones incluidas a continuación suponen el uso de ésta modalidad.

    Independientemente de la modalidad elegida, podrá registrarse como empresa o como individuo. La inscripción como empresa le ofrece la posibilidad de agregar miembros al equipo, mientras que la inscripción como individuo no lo permite.

    Una vez registrado como desarrollador iOS, deberá iniciar una sesión en el “iOS De Center” y seguir los pasos que le mostramos a continuación:

    Certificados


    • Abra la sección “Certificates” de su cuenta “iOS Dev Center” y seleccione el tipo “Production”.
    • Pulse sobre el botón + para abrir el asistente que le guiará durante la creación del certificado.

    • Cuando se le pida que seleccione el tipo de certificado, deberá elegir dentro de “Production” el tipo “App Store and Ad Hoc”.
      • En caso de que no tenerlo ya instalado, use el enlace que aparece en esta misma página para descargar e instalar el “Intermediate Certificates” (Worldwide Developer Relations Certificate Authority).
    • El asistente le guiará a través del resto del proceso de creación.
    • Una vez creado el certificado (y asociada su clave privada), es importante que guarde una copia del mismo en un lugar seguro.
      • Abra el “Keychain Access” localizado en “Applications/Utilities/”.
      • Pulse sobre la categoría “Certificates” localizada en la barra lateral y después sobre el certificado que acaba de crear.
      • Pulse botón-derecho sobre el certificado y escoja la opción “Export”.
      • Manténgalo en lugar seguro - si cambia de hardware o por cualquier otra razón pierde el certificado, podrá importarlo de nuevo desde esta copia de seguridad. Cualquier actualización posterior de sus aplicaciones, deberá ser firmada con el mismo certificado, de modo que esto es muy importante.

    Identificadores


    Un “App ID” (identificador de aplicación) determina los que podrán ser usados para realizar firmas mediante su perfil.
    • Abra la sección “Identifiers” de su cuenta “iOS Dev Center” y seleccione “App IDs”.
    • Pulse sobre el botón + para abrir el asistente que le guiará durante la creación del “App ID”.
    • Puede optar por crear un “Explicit App ID” (permite firmar un único identificador de aplicación) o un “Wildcard App ID” (permite firmar cualquier aplicación cuyo identificador coincida con el formato especificado).
      El formato para los identificadores de aplicación consiste en un nombre de dominio inverso. Por ejemplo “com.entidad.aplicacion”. De modo que deberá crear el identificador siguiendo éste patrón, tanto si está creando un “Explicit App ID”, como un “Wildcard App ID”. Está permitido el uso del carácter “*”, para indicar que se usará cualquier nombre, por ejemplo “com.entidad.*”.
      Sea cual sea el nombre elegido, téngalo siempre a mano, ya que tendrá que hacer uso de él más tarde, cuando tenga que asignar un identificador a su aplicación.
    • Las aplicaciones o “wrapper’s” Omnis, no requieren “App Services”.

    Dispositivos


    Si va a desplegar sus aplicaciones directamente (Ad-Hoc) y no a través de la “App Store”, deberá registrar cada dispositivo susceptible de ejecutar su aplicación.

    • Abra la sección “Divices” de su cuenta “iOS Dev Center”.
    • Pulse sobre el botón + para abrir la página que le permitirá añadir el dispositivo.

    • Los diferentes dispositivos deberán ser añadidos con su UDID (Ónique Device Identifier). Podrá localizar el UDID del dispositivo mediante conectarlo a iTunes y hacer clic sobre su número de serie. En la dirección http://whatsmyudid.com/ podrá encontrar una práctica explicación sobre como hacer esto.

    Aprovisionamiento de perfiles (Provisioning Profile)


    Un “Provisioning Profile” posibilita la unión de un Certificado (Certificate) con un “App ID” (también la de un grupo de dispositivos (Devices) con un “Ad Hoc Provisioning Profiles”). Es mediante el “Profile” resultante, con el que podrá firmar su aplicación (combinado con el “certificate/private key” almacenada en su llavero).

    • Abra la sección “Provisioning Profiles” de su cuenta “iOS Dev Center” y seleccione “Distribution”.
    • Pulse sobre el botón + para abrir el asistente que le guiará durante la creación de un nuevo “Provisioning Pofile”.

    • Podrá crear un “Distribution Provisioning Profile” de tipo “Ad Hoc” (despliegue directo) o bien de tipo “App store”.
      Deberá seleccionar en cada momento el que coincida con el modo de distribución elegido. Asegúrese de crear perfiles de tipo “Distribution”  y no del tipo “Development”.
      Es posible la creación de varios “Provisioning Profiles”, a fin de poder hacer uso de uno o más tipos, si así lo desea.
    • Siga los pasos del asistente. Una vez completado, podrá descargar el “Provisioning Profile”, para después hacer doble-clic desde el Finder sobre el archivo descargado, haciendo posible su incorporación a xCode.


    9 de octubre de 2014

    Construcción de aplicaciones para iOS, Android y BlackBerry con Omnis Studio

    Además de utilizar la nueva tecnología “JavaScript Client” en la construcción de aplicaciones ejecutables sobre el navegador de cualquier ordenador, tablet o dispositivo móvil, podemos usarla en la creación de aplicaciones totalmente terminadas para dispositivos iOS, Android y BlackBerry. Dichas aplicaciones podrán incluso operar completamente “off-line”, es decir, sin necesidad de conexión a ningún tipo de servidor, en éste caso tan sólo requerirá de un número de serie especial instalado en su SDK Omnis, el “Serverless Client Serial”.

    Para la construcción de dichas aplicaciones terminadas, disponemos de tres aplicaciones "esqueleto" construidas a medida de cada sistema, denominadas “wrapper” y presentadas en la forma de proyectos JavaScript: una para iOS, una para BlackBerry10 y otra para Android.

    Dichos proyectos posibilitarán la creación de aplicaciones personalizadas, mediante una sencilla integración de clases “remote-form”, que permitirán a su vez el acceso a gran parte de las funcionalidades implementadas de modo nativo en el dispositivo, tales como la lista de contactos, función GPS y cámara de fotos.

    Mediante las sucesivas entregas que iré publicando en éste blog, comprenderemos los diferentes pasos necesarios para crear y desplegar aplicaciones personalizadas para cada una de las plataformas móviles mencionadas. Estudiaremos paso a paso, todo lo que necesitaremos saber, tanto para la creación de la aplicación, como para su despliegue a los usuarios finales, ya sea que se haga a través de la tienda de aplicaciones del propio dispositivo o de manera autónoma.

    Les sugiero que se suscriban a "Aula Omnis" a  través de cualquiera de las redes disponibles Facebook, Twitter, Linkedin, Google+, RSS FeedBurner o como seguidores de éste blog, a fin de no perderse las sucesivas entregas.

    Reciban un cordial saludo.

    8 de julio de 2014

    jsClient: Cofiguración del wrapper JavaScript

    Configuración del wrapper


    La estructura del archivo de configuración ha cambiado y ahora se proporciona un formato genérico para todas los dispositivos móviles soportados. El archivo config.xml contiene la dirección URL de la página con el “remote-form” JavaScript y dependiendo de la plataforma, podrá contener un número variable de otros parámetros (esto se  describe en la nota técnica correspondiente). El config.xml está basado en la siguiente estructura:

    ≤? Xml version="1.0" encoding="UTF-8"≥
    ≤settings≥
       ≤apptitle≥0≤/apptitle≥
       ≤menuincludesettings≥1≤/menuincludesettings≥
       ≤menuincludeoffline≥1≤/menuincludeoffline≥
       ≤menuincludeabout≥1≤/menuincludeabout≥
       ≤settingsfloatcontrols≥0≤/settingsfloatcontrols≥
       ≤settingsscaleform≥1≤/settingsscaleform≥
       ≤settingsallowhscroll≥0≤/settingsallowhscroll≥
       ≤settingsallowvscroll≥0≤/settingsallowvscroll≥
       ≤settingsmaintainaspectratio≥0≤/settingsmaintainaspectratio≥
       ≤settingsonlinemode≥1≤/settingsonlinemode≥
       ≤serveromnisweburl≥http://172.19.250.25:5911≤/serveromnisweburl≥
       ≤serveronlineformname≥/jschtml/RFonline≤/serveronlineformname≥
       ≤serveromnisserver≥≤/serveromnisserver≥
       ≤serveromnisplugin≥≤/serveromnisplugin≥
       ≤serverofflineformname>rfOffline≤/serverofflineformname≥
       ≤serverappscafname≥mylib≤/serverappscafname≥
       ≤testmodeenabled≥0≤/testmodeenabled≥
       ≤testmodeserverandport≥172.19.250.25:5911≤/testmodeserverandport≥
    ≤/settings≥

    El config.xml contiene las siguientes propiedades estándar:

    • AppTitle
    La aplicación mostrará una barra de título en la parte superior.

    • MenuIncludeSettings
    La opción de menú “Ajustes” estará disponible en tiempo de ejecución.

    • MenuIncludeOffline
    La opción de menú para cambiar al modo “off-line”, estará disponible en tiempo de ejecución.

    • MenuIncludeAbout
    La opción de menú “Acerca de” estará disponible en tiempo de ejecución.

    • SettingsFloatControls
    Esta propiedad sólo es significativa cuando SettingsScaleForm es "0" (falso). En este caso, el cliente hará uso de la nueva propiedad $screensizefloat presente en cada control de los “remote-forms” jsClient. Al aplicar el tamaño de la pantalla, el cliente hará uso de $screensizefloat para hacer flotar los bordes de los controles, usando para ello las mismas reglas definidas para los $edgefloat (tenga en cuenta que son los valores del componente los que están soportados, sino sólo los valores relacionados con sus bordes). Si el “form” es más ancho o más alto que la pantalla, la flotación se produce sólo si los parámetros SettingsAllowHScroll o SettingsAllowVScroll están en estado falso. El modo en que los controles floten dependerá de la diferencia entre el ancho o la altura de la pantalla actual y el ancho o la altura diseñada en el “remote-form” y siempre según el valor más próximo al de su propiedad $screensize. El valor de $screensizefloat es guardado tras cada ajuste del $screensize del “remote-form”.

    • SettingsScaleForm
    Si se ajusta a "1" (true), el cliente escalará el “form” hasta ajustarse al espacio de pantalla disponible. El factor de escala es el ancho de la pantalla o su altura dividido por la anchura o altura del valor más cercano a $screensize. Se usa, el tamaño real de la pantalla, el cual incluyen las áreas reservadas al sistema operativo, tales como la barra de estado.

    • SettingsAllowHScroll y SettingsAllowVScroll
    Deberá fijar sus valores a "1" si desea permitir el desplazamiento horizontal o vertical del “form” respectivamente, o "0" en caso contrario.

    • SettingsMaintainAspectRatio
    Si se ajusta a "1", el escalado mantiene la relación de aspecto del “form”. Si está activado y en función del estado de SettingsAllowHScroll y SettingsAllowVScroll, será posible reducir el factor de escala en una dirección específica, con el fin de ajustar el “form” y su centrado vertical u horizontal según se requiera.

    • SettingsOnlineMode
    La aplicación se iniciará en modo “On-line”.

    • ServerOmnisWebUrl
    URL del servidor Omnis o del Servidor Web. Si utiliza un servidor de Omnis debería ser http://:. Si utiliza un servidor web deberá ser la URL raíz de su servidor Web, http://miservidor.com.
    • ServerOnlineFormName
    Ruta del “form” en el fichero .htm del ServerOmnisWebUrl. De modo que si usted está testando una aplicación en construcción sobre un servidor de aplicaciones Omnis, será de la forma /jschtml/miform.htm, pero si está utilizando un servidor web, la URL tendrá la forma /omnisapps/miform. (¡Sin añadir la extensión .htm!)
    De modo que las propiedades ServerOmnisWebUrl y ServerOnlineFormName son sólo necesarias para “forms” usados en modo “on-line”. El resto de propiedades son sólo para el modo “off-line”.
    • ServerOmnisServer
    Servidor Omnis ≤Dirección IP≥:≤Puerto≥.
    • ServerOmnisPlugin
    Si se está utilizando un servidor web con plug-in para conectar con Omnis, será la ruta a añadida desde el raíz ServerOmnisWebUrl. Por ejemplo: /cgi-bin/omnisapi.dll

    • ServerOfflineFormName
    Nombre del formulario “on-line”. (¡No añada .htm!)
    • ServerAppScafName
    Nombre de la aplicación SCAF. Será el mismo nombre que tiene la librería.
    • TestModeEnabled
    Permite activar el modo de pruebas (Pulsando Ctrl-M se permitirá testar el “form” sobre el dispositivo remoto)
    • TestModeServerAndPort
    Dirección ≤ipaddress≥:≤puerto≥, si se desea hacer uso del modo test mediante Omnis Studio Developer.
    También es posible modificar estos parámetros pulsando el botón de menú en el dispositivo móvil y activando las opciones de cambio. La aplicación recuerda el último ajuste realizado a través del menú, por lo que la configuración suministrada mediante el fichero config.xml sólo servirá para suministrar los valores iniciales del wrapper.

    2 de julio de 2014

    jsClient: Testando “remote-forms” incluidos en un wrapper JavaScript

    Durante el desarrollo es posible la apertura de un “remote-form” JavaScript incluido en un wrapper, mediante la opción “Test Form Mobile” (Ctrl-M), siempre que el wrapper esté configurado y habilitado para ello (de lo contrario sólo podrá testar los “forms” sobre un navegador de tipo escritorio y antes de la configuración del wrapper). Esta opción aparece debajo de la opción “Test Form” en el menú contextual del “remote-form”. La opción “Test Form Mobile” se mostrará sólo bajo las siguientes circunstancias:
    1. Que esté habilitado el "modo test" en el dispositivo remoto (ver el menú de aplicación en caso de Android, y el de configuración del sistema en caso de iOS)
    2. Que estén habilitadas las opciones correspondientes sobre el servidor de aplicaciones Omnis, mediante los parámetros para el modo “test form”.

    La propiedad $designshowmobiletitle determinará si será o no visible el título de la aplicación wrapper, mientras se esté utilizando la opción “Test Form Mobile” (Ctrl-M). Para su implementación deberá consignar el título a mostrar sobre el fichero config.xml.

    23 de junio de 2014

    jsClient: Uso del wrapper JavaScript

    Cuando nuestra aplicación no requiera de una bases de datos


    Si la aplicación de cliente remoto no requiere del apoyo de una base de datos, la aplicación deberá unirse con la librería dbNoSQL. Esta proporciona el código auxiliar necesario para el correcto funcionamiento de cualesquiera otras funciones del dispositivo. En éste caso, cualquier intento de usar el "objeto SQL" del jsClient fallará.

     

    El Wrapper y JavaScript


    La wrapper incluye un WebView, que a su vez, aloja una aplicación JavaScript. La aplicación se inicializa mediante el archivo config.xml suministrado y que informa a al wrapper sobre cual es la página HTML desde donde cargar la aplicación.
    El wrapper puede ser configurado para que se conecte a Omnis sólo con propósitos de testeo. Esto se logra a través de la opción de menú “Test Form” de Omnis Developer. El wrapper también proporciona acceso independiente al dispositivo remoto, con funciones específicas para el control del GPS, la cámara o la interfaz de audio (consulte el manual para obtener más información sobre cómo acceder a las funciones del dispositivo).

    Para permitir el uso de éstas operaciones sin necesidad de conexión alguna con un servidor, el WebView deberá ejecuta secuencias de comandos locales, es decir que deberán estar contenidas en métodos que sólo pueden ser ejecutados del lado del cliente. Antes de compilar su aplicación, tendremos que personalizar el archivo config.xml de modo que pueda cumplir con éste propósito.
    Cuando el cliente opera en el modo “on-line” se hará uso del parámetro URL del archivo de configuración, para cargar el “remote-form”, pero cuando es ejecutado en modo sin conexión, (modo “off-line”) los parámetros de configuración son utilizados únicamente para (si así se desea) actualizar su copia local de la aplicación o bien para ejecutar localmente los “remote-form”.

     

    El wrapper para iOS


    El wrapper iOS, incorpora tres modos de uso, para según la base de datos local a soportar. Estos son:  

    OmnisJSWrapper            No hay soporte para base de datos local.
    OmnisJSWrapper_SQLite     Se utiliza SQLite como soporte de base de datos local.
                              Sincronización con un servidor Omnis.
    OmnisJSWrapper_UltraLite  Se utiliza UltraLite como soporte de base de datos local.
                              Sincronización con un servidor MobiLink.

     

    Un apunte sobre UltraLite 


    Deberá tenerse en cuenta que debido a restricciones de licencia, no es posible incluir como tal, el archivo "libulrt.a" del que depende UltraLite, lo que significa que cada vez que se desee incluir una nueva versión de UltraLite, tendremos que incluir este archivo manualmente. Para hacer esto, deberemos primero instalar SQLAnywhere 12, después y sobre el directorio ultralite/iphone de la instalación SQLAnywhere12, podremos encontrar el código fuente, etc., y un archivo léeme que nos guiará a través del proceso de construcción. (TigerLogic no proporciona ningún tipo de soporte sobre la compilación de este archivo).

    Una vez construido el fichero "libulrt.a" (bien sea para su uso con el dispositivo o con un simulador), tendremos que situarlo sobre la carpeta correspondiente (-iphoneos o -iphonesimulator) bajo el directorio dbInterface del wrapper.

    Los ficheros del wrapper


    El código fuente de los diferentes wrapper's ya no se incluye junto con Omnis. Deberán descargarse desde el sitio web de Omnis: www.tigerlogic.com/omnis. Los archivos ZIP contienen los ficheros config.xml, junto con el resto de archivos que lo conforman. Existen diferentes notas técnicas disponibles en el sitio web Omnis, sobre el uso y la personalización de los wrapper's, como, por ejemplo las siguientes:
    • TNJS0001: “Building & Customizing the Android Wrapper App
”
    • TNJS0002: “Building & Customizing the iOS Wrapper App”

    • TNJS0004: “Building & Customizing the BlackBerry Wrapper App”

    El proceso de compilación para cada plataforma se describe en la respectivas notas técnicas.

    20 de junio de 2014

    jsClient: El objeto SQL (Sincronización con SQLite)

    Si queremos hacer uso de SQLite en modo “off-line” y sincronizar una base de datos SQLite desde el dispositivo del cliente en lugar de usar Sybase UltraLite. Tendremos que tener en cuenta que dicha  sincronización está apoyada en bases de datos SQLite creadas al efecto e instaladas en el dispositivo cliente, estas guardan las tablas del usuario, así como información sobre el estado de la sincronización. El “SQLite Synchronization Server” utiliza estas tablas para pasar los datos a/de cada sincronización y para reenviar las solicitudes de sincronización. El proceso de sincronización SQLite es descrito en el manual “SQLite Synchronization Server”, puede ser descargado desde el sitio web Omnis: http://www.tigerlogic.com/omnis/download

    Para poder utilizar el objeto de base de datos SQLite, en lugar del objeto UltraLite, la aplicación del dispositivo móvil, deberá estar unida a la librería dbSQLite en lugar de la dbUltraLite.

    Aparte de esto, el funcionamiento y uso del objeto de SQL es esencialmente el mismo. Ta sólo los parámetros de inicialización difieren ligeramente, tal y como se muestra a continuación.

    $syncinit()


    Do oSQL.$syncinit(syncParams) Returns id

    El módulo de SQLite actualmente reconoce los siguientes parámetros:

    Username    Nombre de usuario de sincronización
                (definido en el servidor de sincronización)

    Password    Contraseña de usuario de sincronización
                (definido en el servidor de sincronización)

    HostString  URL del servidor de sincronización SQLite Omnis Web.

    Timeout     Tiempo de espera en segundos para las operaciones
                de sincronización.

    Al finalizar, se invocará el método $sqldone() pasando los siguientes parámetros:

    • El ID de la solicitud (el mismo que retornó el $syncinit()).

    Ejemplo: 

    Do config.$define(Username,Password,HostString,Timeout)
                 ;; se define mediante el uso de variables locales
    Do config.$assigncols('Usuario1','xxxxxx','http://192.168.0.10:7001/ultra?OmnisClass=rtSync&OmnisLibrary=SyncServer',5)
    Do oSQL.$syncinit(config) Returns id

    Consulte el manual de la "SQLite Synchronization Server" para obtener más información sobre el diseño, implementación y uso del servidor de sincronización. Si lo desa podrá descargar su manual desde la página web Omnis (www.tigerlogic.com/omnis).