Una vez creada tu aplicación móvil con ionic framework, lo más natural es probarla. Intenté hacerlo con un emulador pero no lo puedes ejecutar al mismo tiempo que otras máquinas virtuales. Así que decidí mejor probarlo en mi teléfono.

Para ello, primero es necesario activar el modo de depuración usb en tu teléfono. Si tienes una versión de Android igual o superior a la 4.2, ve a los ajustes del teléfono->acerca de y busca hasta el final el número de compilación (build number), toca 7 veces y se activará la opción progrmador. Regresa a los ajustes y ve a la opción de programador, activa la depuración usb.
Después, en ubuntu, crea un archivo llamado /etc/udev/rules.d/51-android.rules con el siguiente contenido, reemplazando 0bb4 por el id del proveedor de tu dispositivo, lo obtienes conectando tu teléfono y ejecutando lsusb, son los 4 carácteres antes de los dos puntos

SUBSYSTEM==”usb”, ATTR{idVendor}==”0bb4″, MODE=”0666″, GROUP=”plugdev”

guarda el archivo y agrega permisos de lectura con sudo chmod a+r /etc/udev/rules.d/51-android.rules

Desconecta y vuelve a conectar tu teléfono, te pedirá que aceptes una llave RSA para permitir el acceso de tu computadora, selecciona “aceptar siempre” y acepta. Verifica que puedes acceder a tu dispositivo ejecutando adb devices y debe aparecer en el listado.

Para probar tu aplicación en el dispositivo basta con ejecutar

ionic run android --device

Fuentes:

Anuncios
screensaver

screensaver

Ahora que las Smart TV’s son más comunes, existe un número mayor de aplicaciones y usos que les podemos dar. Desde hace ya bastante tiempo, se han utilizado pantallas para desplegar la información de los vuelos en los aeropuertos.

Desarrollé una aplicación parecida al tablero del aeropuerto y estaba preocupado por el efecto “burn-in”, así que decidí utilizar un salvapantallas (screensaver). Afortunadamente un equipo de Adobe desarrolló un proyecto (git repo) que hace precisamente esto, y lo hace muy bien.

Para agregarlo en mi proyecto, solo copie los archivos en una carpeta ‘screensaver’ e inserte un iframe en la página que lo quería mostrar

<iframe id="saver" src="screensaver/saver.html"></ iframe>

y para que iniciara inmediatamente, sin la necesidad de la intervención del usuario

$(document).ready(function(){
this.$('#saver').load(function(){
this.contentWindow.eve('menu.instagram')
this.contentWindow.eve('go')
})
})

con esto es como si el usuario hubiera dado clic en el botón de instagram y luego en el botón de play 🙂

Fuentes:
http://stackoverflow.com/questions/251420/invoking-javascript-code-in-an-iframe-from-the-parent-page
http://stackoverflow.com/questions/12199797/why-is-iframe-contentwindow-null

abd logcat output

Una vez que logras ejecutar tu aplicación en el emulador es indispensable tener una forma de depurar la aplicación. La forma más sencilla que he encontrado es mediante mensajes en la consola usando el comando

console.log(‘mensaje para el log’)

para poder ver estos mensajes mientras ejecutamos la aplicación en el emulador la única forma que he encontrado es ejecutar en una terminal el comando

adb logcat | grep ‘Web Console’

simplemente filtramos la salida del comando adblogcat en búsqueda de logs que contengan la palabra ‘Web Console’, que para los mensajes producidos por console.log es agregada automáticamente.

Sería mucho mejor hacerlo con un filtro de logcat, pero no he podido encontrar uno que funcione 😦

he intentado

adb logcat Cordova:D DroidGap:D CordovaLog:D *:S

adb logcat ActivityManager:I MyAppName:D *:S

pero sin éxito.

Fuentes:
http://blog.koalite.com/2012/09/depurar-phonegapcordova-en-android-con-adb/
http://developer.android.com/tools/debugging/debugging-log.html
http://blog.joelambert.co.uk/2011/09/20/monitoring-console-log-on-phonegap-android/

Cairo Dock es mi lanzador por defecto en las últimas versiones de Ubuntu que he instalado. Me agrada estéticamente y tiene varias funcionalidades.

Este, como otros lanzadores (AWN, Unity Launcher, Docky), tiene problemas con identificar correctamente las ventanas de las aplicaciones Java. De estas, las que utilizo principalmente son Eclipse y WebStorm. Pues me di a la tarea de como resolver este problema y poder poner mi lanzador directamente en la barra de Cairo Dock, pero te debe funcionar también con los otros.

Primero crea tu lanzador (archivo .desktop), por ejemplo para WebStorm

[Desktop Entry]
Type=Application
Name=Web Storm
Comment=Web Development IDE
Icon=/home/cirovladimir/Apps/web-storm-6.0.1/bin/webide.png
Exec=/home/cirovladimir/Apps/web-storm-6.0.1/bin/webstorm.sh
Terminal=false
Categories=Development;IDE;Java;
StartupWMClass=jetbrains-webstorm

La línea importante es la que dice StartupWMClass=jetbrains-webstorm.

Para obtener el valor correcto de esta variable para otras aplicaciones puedes ejecutar el comando

xprops | grep WM_CLASS

y dar clic en la ventana de la aplicación

Fuentes:

http://askubuntu.com/questions/36434/how-can-i-remove-duplicate-icons-for-launched-java-programs-in-the-launcher
https://bugs.launchpad.net/docky/+bug/484610

Una parte importante de una aplicación es su ícono.
En build.phonegap puedes especificar el ícono de la aplicación en el archivo config.xml.
Los distintos tamaños dependerán de las plataformas en las que se ejecutará tu aplicación.

En Android se especifican 4 tamaños: ldpi (36×36), mdpi (48×48), hdpi (72×72) y xhdpi (96×96).

    <icon src="icons/android/ldpi.png" gap:platform="android" gap:density="ldpi" />
    <icon src="icons/android/mdpi.png" gap:platform="android" gap:density="mdpi" />
    <icon src="icons/android/hdpi.png" gap:platform="android" gap:density="hdpi" />
    <icon src="icons/android/xhdpi.png" gap:platform="android" gap:density="xhdpi" />

En iOS: clásico (57×57), retina (72×72), iPad (114×114) y retina iPad (144×144)

    <icon src="icons/ios/icon.png" gap:platform="ios" width="57" height="57" />
    <icon src="icons/ios/icon-72.png" gap:platform="ios" width="72" height="72" />
    <icon src="icons/ios/icon_at_2x.png" gap:platform="ios" width="114" height="114" />
    <!-- retina iPad support: PhoneGap 2.5.0+ only -->
    <icon src="icons/ios/icon-72_at_2x.png" gap:platform="ios" width="144" height="144" />

Fuentes:
https://build.phonegap.com/docs/config-xml
http://developer.android.com/guide/practices/ui_guidelines/icon_design_launcher.html
http://developer.apple.com/library/ios/#documentation/userexperience/conceptual/mobilehig/IconsImages/IconsImages.html

EPUB o ePub (acrónimo de la expresión inglesa Electronic publication – Publicación electrónica) es un formato redimensionable de código abierto para archivos de libro electrónico (e-book) creado por International Digital Publishing Forum (IDPF). En el formato de libro digital ePub se marca el contenido, pero no se delimita su formato, que se adapta a los diferentes tamaños de las pantallas de los múltiples lectores de libros electrónicos del mercado.

Los archivos ePub terminan con la extensión .epub.

Para poder leer estos archivos en Ubuntu puedes utilizar Okular y Calibre -entre otros-

Para activar el soporte en Okular debes instalar el paquete okular-extra-backends.

Desafortunadamente no muestra correctamente los documentos

Calibre va más allá de un lector y nos permite organizar nuestra biblioteca. En su lector se despliegan correctamente los archivos ePub.

Fuentes:
http://es.wikipedia.org/wiki/EPUB#Lectores