jueves, 22 de mayo de 2014

Investigando PHP para APache Cordova

Hemos intentado, para ver si podíamos generar una aplicación que atacase a una base de datos y que se recibiera información desde el servidor por petición de usuario, meterle PHP al código html que se introduce en Apache Cordova, y hemos hecho varias pruebas:
   echo 'esto es una prueba PHP';

Y el resultado era que nos sacaba el texto, lo cual nos ha empezado a llenar de alegría, pero también ponía el ;, lo cual nos ha empezado a perturbar un poco, de modo que hemos hecho otras pruebas como estas:
Prueba 1
$a=1;
$b=2;
$c= $a+$b;
echo 'suma=' . $c;

Pero no ha ha habido ningún resultado

Prueba 2
Hemos intentado hacer un index.php, para ver si así lo leía, pero nos hemos quedado con las ganas, ya que ha aparecido un mensaje de error en el cual nos ponía que en el directorio www estaba buscando el archivo index.html

De momento nos hemos quedado con las ganas de poder acceder a información dinámica, pero no perdemos la esperanza de lograrlo de alguna manera... las posibilidades pueden ser enormes....

miércoles, 21 de mayo de 2014

El archivo config.xml en Apache Cordova

Hemos estado investigando y creando la sección que habla sobre el archivo config.xml dentro de los proyectos de cordova, este archivo es independiente de la plataforma y esta basado en el formato especifico de la W3C (Empaquetado de aplicaciones web (Widgets)), ampliado para cumplir con las especificaciones de la API Cordova, con sus plugins y con la configuración de cada plataforma.

Por defecto tiene varios elementos:
    • Atributo id de la etiqueta <widget>: el cual proporciona un identificador y un número de versión.
    • La etiqueta <name>: especifica el nombre formal de la aplicación, como aparece en la pantalla principal del dispositivo y como aparecerá dentro de la tienda de app.
    • Las etiquetas <descripcion> y <author>: especifican metadatos e información de contacto que pueden aparecer en los anuncios de la tienda app.
    • La etiqueta opcional <content>: la cual define la página de inicio de la aplicación. El valor predeterminado por defecto es el archivo index.html, que habitualmente se encuentra en el directorio www del proyecto. 
    • Etiquetas <access>: definen el conjunto de dominios externos que pueden comunicarse con la aplicación. El valor determinado que se muestra, le permite acceder a cualquier servidor. 
    • La etiqueta <preference>: establece varias opciones como pares de, nombre/valor de atributos, referidos a las preferencias name, siendo sensible a las mayúsculas. Muchas de estas preferencias son exclusivas de plataformas especificas.
 Aparecen de este modo una serie de preferencias globales, como:
  • Fullscreen: permite ocultar la barra de estado en la parte superior de la pantalla. El valor predeterminado es false
  • Orientation: Permite bloquear la orientacion y evitar que se rote la pantalla en respuesta a los cambios de orientacion del  dispositivo. Los valores posibles son; default, landscape y protrait.
 Y otras preferencias sobre multiples plataformas, como:

  • DisallowOverscroll (boolean, valor predeterminado false): Si no se quiere que la interfaz regenere el scroll de la pantalla. Esto puede dar problemas, pero se arreglan tan solo poniendo el valor en true.
  • BackgroundColor: Sirve para definir el color de fondo de la aplicacion, admitiendo un valor hexadecimasl de cuatro bytes, representando el primero el valor alfa y los demas el RGB stándard para los siguientes tres bytes.
  • HideKeyboardFomAccessryBar (boolean, valor predeterminado false): si se coloca en true, se oculta la barra de herramientas que aparece encima del teclado.
Finalmente hemos puesto el uso de la etiqueta <feature> así como su posición en, los archivos config.xml y su formato básico:


 <featurename="Plugin"value="PluginID"/>

La interface de la línea de comandos

He estado investigando como funciona la línea de comandos o CLI para crear proyectos, añadir plataformas tanto desde Mac:
    $ cordova platform add ios
    $ cordova platform add android
    $ cordova platform add blackberry10
    $ cordova platform add firefoxos
Como desde windows:
    $ cordova platform add wp7
    $ cordova platform add wp8
    $ cordova platform add windows8
    $ cordova platform add android
    $ cordova platform add blackberry10
    $ cordova platform add firefoxos
Comprobando el sistema actual de plataformas instaladas:
$ cordova platforms ls
Eliminar plataformas:
    $ cordova platform remove blackberry10
    $ cordova platform rm android
La ejecución de comandos para agregar o quitar plataformas afecta a los subderectorios donde se encuentran los diversos directorios www, dentro de platforms, como por ejemplo platforms/android/assets/www (visto a lo largo del manual), o platforms/ios/www. De forma predeterminada, el archivo de configuración de cada plataforma se configura para poder acceder a todas las APIs de Cordova.

Naturalmente esta información se nota más desarrollada en la documenteción que estamos realizando.

viernes, 16 de mayo de 2014

Aplicación utilizando el dispositivo de vibración

Tras los problemas y las investigaciones desarrolladas para poder conseguir acceder a los plugins que controlan los dispositivos del movil, hemos logrado hacer la primera aplicación que los utiliza.
En este caso la aplicación consiste en un botón que al pulsarlo realiza una vibración del del movil, tal y como podeis ver en el vídeo.

Apache Cordova & PhoneGap


Algunas de las preguntas que nos estan surgiendo en el proyecto, sobre todo cuando otro compañero tiene que hacerlo sobre PhoneGap, son:

¿Que es PhoneGap?
PhoneGap es un framework para el desarrollo de aplicaciones móviles producido por Nitobi, y comprado posteriormente por Adobe Systems. Principalmente, PhoneGap permite a los programadores desarrollar aplicaciones para dispositivos móviles utilizando herramientas genéricas tales como JavaScript, HTML5 y CSS3. Las aplicaciones resultantes son híbridas, es decir que no son realmente aplicaciones nativas al dispositivo (ya que el renderizado se realiza mediante vistas web y no con interfaces gráficas específicas de cada sistema), pero no se tratan tampoco de aplicaciones web (teniendo en cuenta que son aplicaciones que son empaquetadas para poder ser desplegadas en el dispositivo incluso trabajando con el API del sistema nativo).
En la tercera versión de PhoneGap se incorpora el uso de una interfaz de comandos a través de consola, una nueva arquitectura de complementos descentralizados y la posibilidad de utilizar un código web unificado para crear múltiples proyectos.
PhoneGap maneja API que permiten tener acceso a elementos como el acelerómetro, la cámara, los contactos en el dispositivo, la red, el almacenamiento, las notificaciones, etc. Estas API se conectan al sistema operativo usando el código nativo del sistema huésped a través de una Interfaz de funciones foráneas en Javascript.
PhoneGap permite el desarrollo ya sea ejecutando las aplicaciones en nuestro navegador web, sin tener que utilizar un simulador dedicado a esta tarea, y brinda la posibilidad de soportar funciones sobre frameworks como Sencha Touch o JQueryMObile.
Apache Cordova es un software de código abierto y tanto este como PhoneGap pueden ser utilizados libremente en cualquier aplicación sin necesidad de atribución o licencias de ningún tipo.
Lo cual viene a ser básicamente lo mismo que Apache Cordova, tal y como se puede ir leyendo en el proyecto.

Entonces, ¿Cuál es la diferencia entre Apache Cordova y PhoneGap?
Ambos sistemas tienen funciones casi idénticas, la diferencia principal entre Apache Cordova y Phonegap es que el segundo tiene acceso a servicios de compilación en la nube proporcionados por Adobe Creative Cloud.
De hecho tras tocar un poco uno y otro podemos ver que a la hora de trabajar con ellos, una de las diferencias activas, por no decir la única, es que en algunas ordenes, como crear proyecto, añadir plugins... cambia el comando de cordova a phonegap.

Primera aplicación con Apache Cordova

He aquí un brevísimo vídeo con una demostración de nuestra primera aplicacion en Apache Cordova (vale, en verdad es la segunda, pero no merece la pena hacer un video sobre HolaMundo no?).

Aprovechando que actualmente estamos realizando el módulo de prácticas profesionales en Polonia, hemos creado un pequeño conversor de divisas entre euros y złotys polacos (la abreviatura es PLN). Se introduce el valor actual del cambio y la cantidad que queremos modificar. En el video se visualizan los correspondientes mensajes de error que se muestran cuando los datos introducidos son incorrectos o insuficientes.


sábado, 10 de mayo de 2014

Conseguir música del youtube de forma rápida y sencilla

El otro día necesitaba descargar algunas canciones desde el youtube para un proyecto de unos vídeos que estaba montando, pero el youtubecatcher no se por qué, no me funcionaba. De modo que empecé a buscar por la red a ver si encontraba algo y no tardé en dar con esta maravillosa página en la que se pueden convertir los vídeos en audio y descargar el archivo mp3 en cuestión de segundos.
Estoy seguro de que muchos de vosotros lo agradareis tanto como yo...
Pincha Aquí