Mi Primera App en FireFoxOS
Ya debemos tener instalado nuestro FireFoxOS-simulator en nuestro ordenador, y hemos podido revisar algunas cosas.
Si aun no lo sabes, FireFoxOS es un Sistema Operativo totalmente estructurado en HTML5 + CSS3 y javascript, por lo tanto, todas sus aplicaciones son escritas en html5, estilizadas con css3, y las funcionalidad se la otorga javascritp, tan sencillo como eso.
Ahora vemos aqui un poco de como se ve y mueve FireFoxOS-simulator.
Pero ya basta de escribir de tantas tonterías, vamos a lo que todos quieren ver, como hago un Hola Mundo.
Como ya hemos dicho nuestra aplicación sera basada en código html5,css3 y javascript.
Entonces lo primero que haremos sera escribir el código de una estructura básica en html5 (Basandonos en este snippet de css-tricks)
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Hola Mundo!!</title> </head> <body> <h1>Hola Mundo!!</h1> </body> </html>
Y guardamos este codigo como index.html dentro de nuestra carpeta “holamundo”
Ahora crearemos el archivo mas importante que es: manifest.webapp, podemos descargar de este enlace una plantilla y adaptarla a nuestra aplicación.
{
"name": "Hola Mundo",
"description": "Mi primera aplicacion en FireFoxOS",
"launch_path": "/index.html",
"icons": {
"128": "/img/icon-128.png"
},
"developer": {
"name": "Alexis Sánchez",
"url": "http://about.me/aasanchez"
},
"default_locale": "es"
}
Ya con todo esto esta listo, para probar tu aplicacion solo debes abrir el panel de lanzamiento de FirefoxOS-simulator

Luego en el boton “Add Directory” seleccionar el directorio de nuestra aplicación y hacer click en el archivo manifest.webapp y hacer luego click en abrir.
Navegar por los paneles de nuestro Sistema Operativo hasta encontrar nuestra aplicación (Generalmente en el Ultimo Panel) y ejecutarla.
Instalando Firefox-OS Simulator
Desde hace un buen rato el amigo Arturo Martinez quien es uno de los representantes mas importantes de la fundación Mozilla para latinoamerica, ha estado en varios eventos donde hemos coincidido como ponentes hablando de FirefoxOS, de su potencial y todo eso, pero la verdad aunque la cosa me había llamado no me había dispuesto realmente buscar información para comenzar a hacer las pruebas, hasta hace unos días donde decidí hacer una instalación pensando que seria algo muy complicado, me dispuse toda una tarde libre para hacer la instalación de todos los archivos necesarios para hacer mi primera prueba, pero realmente estaba muy equivocado la instalación de todo lo necesario se haca LITERALMENTE en 2 pasos en extremo simples (y 2 pasos si y solo si no tienes firefox instalado en tu computador).
Entonces me dispongo a hacer un manual con todos los pasos en extremo detallados para que instales tu firefoxos-simulator y tengas todo lo necesario para hacer tu hola mundo en FireFox OS
Paso 1) Instalemos FireFox:
sudo apt-get install firefox
Paso 2) Instalamos FirefoxOS simulator
Buscamos FireFoxOS simulator como complemento de firefox.



Este proceso tomara unos minutos, dependiendo de tu velocidad de conexión, por que esta extensión pesa unos 100Mb. Cuando la instalción termine, tendremos algo como esto.

y listo… ya con esto tenemos todas las herramientas necesarias para comenzar a hacer pruebas con firefox os, realmente no necesitamos mas nada, claro esta que para un desarrollo mas eficiente yo recomendaría instalar un Editor de código bueno como SublimeText2, y quizás un apache en tu computador para ir haciendo poco a poco las pruebas, pero eso es cuestión de gustos.
Para lanzar el Simulador de Firefox Os, hacemos lo siguiente.


(Nota: La calidad de colores es pobre en esta imagen por que es un gif, me dio flojera hacer un vídeo de esto)
Y listo, ya tienen el simulador de FireFox lanzado, pueden probarlo y jugar con el, la verdad es tan sencillo como esto, no hay que instalar SDK, ni nada por el estilo, es todo realmente simple, muy pocos pasos.
Instalar Eagle 6.3 en Linux
Sin lugar a dudas Eagle es la plataforma de desarrollo de PCB, Esquemáticos más distribuida en el Mundo, su funcionamiento es espectacular y su gran poder son las librerías que posee.
Y Como todo buen software, corre perfectamente bajo GNU/Linux, AUNQUE NO ES LIBRE, desde mi punto de vista son esos software que vale la pena pagar por usarlos, excelente desarrollo, muy colaborativo, y realmente no hay competencia bajo GNU/Linux, por que aunque kicad es bueno, la falta de librerias nativas es un gran dolor de cabeza a la hora de desarrollar.
Si desdeas instalar la version 6.3 de Eagle en tu sistama GNU Linux, solo debes ejecutar este script.
#!/bin/sh mkdir /tmp/libpng-eagle cd /tmp/libpng-eagle wget ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.4.12.tar.gz tar xvfz libpng-1.4.12.tar.gz cd libpng-1.4.12/ ./configure --prefix=/tmp/libpng-eagle/install CFLAGS=-m32 make check make install cd /tmp/libpng-eagle/install/lib/ mkdir -p /home/$USER/.eagle/lib cp -a libpng14.so* /home/$USER/.eagle/lib/ export LD_LIBRARY_PATH=/home/$USER/.eagle/lib/ cd /tmp/libpng-eagle/ wget ftp://ftp.cadsoft.de/eagle/program/6.3/eagle-lin-6.3.0.run chmod 755 eagle-lin-6.3.0.run ./eagle-lin-6.3.0.run
T01.- Mi Primera Aplicación Android: Creando un Proyecto Android y un Dispositivo Virtual
El primer paso para crear una aplicación en Android valiéndose de su SDK + Eclipse que hace tiempo explique como realizarlo (aquí). y bueno en el Post anterior explique un poco las razones de esta serie de tutoriales y de que se tratara la aplicación que vamos a desarrollar, es importante que cualquier duda o sugerencia la haga vía comentarios en este articulo… bueno comenzamos.
1.- Crear el Proyecto Android
2.- Crear el Proyecto Android
En la ventana que se nos presenta, debemos indicar el nombre de la Aplicación, Proyecto y empaquetado (este es como el S.O Android identificara el proceso)
Luego debemos seleccionar cual sera el la versión del SDK que usaremos para nuestro desarrollo, particularmente recomiendo si la aplicación no va a ser algo DEMASIADO ESPECIFICA usar la 2.3.3 o API10, ya que esta es la versión mas difundida globalmente (Fuente en Open Signal Maps)
Y no esta de mas hacer check para crear un Icono de la Aplicación.

3.- Configurar icono para el Launcher
Aqui podremos ajustar el icono de nuestra aplicación, si tienes problemas de creatividad para desarrollar tu icono, seguramente en iconfinder encontraras la inspiración necesaria.
Primero podremos seleccionar entre una imagen, un clipart o solamente texto, agregarle un fondo, posicionarlo y otros detalles..
Si se preguntan que es ldpi, mdpi, hdpi y xdpi es y para ponérselos simple es una relación entre resolución y densidad…
Proporción base: 480*800
- ldpi = 0.75 = 360*600
- mdpi = 1 = 480*800
- hdpi = 1.5 = 720*1200
- xdpi = 2 = 960*1600 (sin apenas uso)
Proporción base: 320*480
- ldpi = 0.75 = 240*360
- mdpi = 1 = 320*480
- hdpi = 1.5 = 480*720
- xdpi = 2 = 640*960
Si quieren mas información sobre las resoluciones no dejen de leer esto Supporting Multiple Screens

3.- Crear activitiy
El concepto es algo complicado, así que voy a hacer un extracto de la gente de nosolounix para no estar inventando teoría que no se
.
La clase “Activity”, esta clase es la base de cualquier aplicación Android con interfaz de usuario, es decir, si tiene interfaz de usuario tendrá al menos una clase Activity, o más bien una clase que hereda de “Activity”.
Por lo tanto, podemos resumirlo en que cada Activity está relacionada con un pantalla visible. Una aplicación puede tener más de una pantalla visible, cada una muestra una IU y responde a eventos iniciados por el sistema o por el usuario. Además, las Activity-s utilizan una o varias Views para presentar al usuario los elementos de la IU.
Esta información es lo que por ahora necesitamos saber, pero en conclusión una Activity es una interfaz visual…

4.- Detalles de Activity
Simplemente llenaremos los datos de la activity o sus componentes, como definir su clase, el nombre de su layout, y otros detalles.

5.- Proyecto Creado
Con esto ya el proyecto esta creado… y tenemos nuestro primer Hola Mundo, pero ¿Como ejecutarlo?

6.- Preparando nuestro en dispositivo para Depuración
Si queremos ver la ejecución de nuestra aplicación y tenemos un dispositivo android a la mano, en primer lugar y para debemos de colocar al dispositivo en modo “Depuración USB” cuando este conectado. Busca Ajustes –> Aplicaciones –> Desarrollo –> Y seleccionas la opción “Depuración USB”.

7.- Creando un Dispositivo virtual
En caso de que no poseamos un dispositivo android, para hacer nuestras pruebas, o simplemente no deseemos usarlo para esto, podemos siempre crear un dispositivo virtual para hacer nuestras depuraciones y/o ejecuciones, lo importante es que no todo es posible visualizarlo, por ejemplo no tendrás resultados de los sensores, bluetooth, nfc y otros detalles, pero el movimiento básico de la aplicación lo puedes fácilmente probar.
8.- Invocamos el Android Virtual Device Manager

9.- Pedimos crear un nuevo Dispositivo Virtual

10.- Pedimos crear un nuevo Dispositivo Virtual
Aquí solo parametrizamos el dispositivo Virtual que recién creamos, básicamente debemos seleccionar que versión de android queremos que posea, tamaño de pantalla, de memoria interna y otros detalles…

11.- Subir a repositorio
Como todo programador serio que aspiro ser y seguro eres, todo proyecto importante debe tener su repositorio de control de versiones, esto es de GRAN ayuda a la hora de algún problema, o revisión que deseemos hacer.
En este caso no voy a explicar que es GIT, ni por que seleccione github ni nada de ni como usar git, creo que no corresponde a este tutorial sino que debe ser parte de otro, pero si quieres mas información google sera quien te pueda ayudar.
$ cd Desarrollo/eclipse/OsERPa/
$ git init
$ git add .
$ git commit -m "Iniciamos el Proyecto"
$ git remote add origin https://github.com/aasanchez/OsERPA.git
$ git push -u origin master
Ya con esto tenemos creado nuestro Proyecto y tenemos el repositorio git para mayor seguridad.
T00.- Mi Primera Aplicación Android (Razones)
El día de ayer asistí a una entrevista técnica en una conocida empresa de la ciudad de barquisimeto, donde buscaban un desarrollador Android, como sabrán muchos mis conocimientos de Android son bastante básicos no mas que un par de cosas simples, y cuando me presentaron el examen mi cara fue algo así…

Ser buen programador no depende de cuantos lenguajes sepas, sino de tu capacidad de comprender y adaptarte a todos los lenguajes, casi todos o son algo como java o algo como C, me apreté el pantalón, saque los zapatos y comenzé a desarrollar y aliándome con Google para todo lo que no sabia (casi todo)…
Este fue el examen:
Diseñar una app que permita tomar pedido a los clientes almacenados en la base de datos local.
La Aplicación al iniciar debe solicitar el código del vendedor el cual estará incluido en el pedido, para identificar el vendedor que tomo el mismo.
La aplicación debe traer cargado 5 clientes (rif, razón social) y 10 productos (código, descripción, precio).
La aplicación debe tener los siguientes módulos:
- Toma de Pedido
- Reporte
- Pedidos
- Clientes
Descripción de modelos
Toma de Pedido: En este módulo se debe seleccionar el cliente, producto con sus respectivas unidades del mismo, requerida por el cliente.Reporte – Pedidos: En este módulo se listaran los pedidos tomados desde la aplicación. En dicha lista se debe mostrar el número de pedido, cliente y código de vendedor. Dicha opción debe permitir visualizar el detalle de un pedido.
Reporte – Clientes: En este módulo se listarán los clientes disponibles en la aplicación.
La arquitectura para el diseño para la aplicación sera la siguiente:
Base de datos local.
POO.
Obviamente no logre hacer un buen trabajo, tarde demasiado intentar usar una base de datos SQLite, y casi toda la mañana la perdí por problema del computador que me habían entregado, bueno aunque hoy ya las escusas sobran, al final no quede contento con mi trabajo, sin embargo me he dispuesto a realizar la aplicación de nuevo, pero como debería hacerse, en el proceso aprender mas sobre Android y su SDK, y bueno que mejor forma escusa para aprender que dedicarse a enseñar…
Así que ahora comenzare una serie de entradas en este blog, de como se deberia desarrollar una aplicación de este tipo en Android, para que todo aquel interesado pueda ir aprendiendo sobre programación en Android
El Desarrollo lo estaré alojando en mi cuenta en github, en el siguiente repositorio https://github.com/aasanchez/OsERPA
Esto fue lo que pude entregar durante el examen: Versión Original
Respuesta a: 3 Motivos para elegir Windows Phone antes que Android
Hoy varios conocidos me han publicado por facebook una entrada de un site llamado celularis.com donde el autor habla del por que debemos , por un momento pensé en responder vía facebook a mis amigos, luego pensé en responderle directamente en la entrada del site ya mencionado, pero recordé que tenia un blog y bueno pensé mas bien en hablar por acá.
Metro:
La primera razón resulta obvia, siendo la primera cosa que nos encontramos al encender la pantalla de un Windows Phone y la que más facilita el uso de un dispositivo a diario. ¿Por qué me gusta Metro? Porque es una forma de mostrar contenido natural, con la que ya estamos acostumbrados y crecemos basada en la de los servicios públicos, estaciones y aeropuertos.
No se Uds pero en mi ciudad no hay metro, y no encuentro vinculación entre esto:

y esto:

Pero si te gusta ese tipo de interfaz, ya en Android hay varios Launchers (Entornos de Escritorios o Interfaz como quieras llamarlo) que trabajan al estilo metro
Y a diferencia de Windows Phone, no estamos atados a una interfaz, sino podemos tener gran variedad y modificaciones de interfaz, en este vídeo se pueden ver algunas, algunos con cambios ligeros, otros muy radicales.
Diseño
Content before chrome, contenido antes que adornos. Tres palabras que, sin duda, definen a grandes rasgos la filosofía que Microsoft quiso implantar en Metro y donde marcó el hito diferenciador con Android e iOS. Antes de Metro, el contenido se englobaba dentro de un marco, un adorno que no aportaba nada al usuario, pero que era necesario para que el dispositivo pudiese interactuar con él. Como respuesta innovadora Microsoft propuso hacer que sea el mismo contenido la forma de interactuar con el usuario, dándole más importancia en espacio de pantalla y atención; total, los controles para navegación están presentes físicamente en todo Windows Phone.
Ah ok es que ver el nivel de Batería no es importante, pero si es que lo que quieres es ver el contenido de tus aplicaciones a pantalla completa, eso se hace un un click en la configuración por de nuestro Dispositivo Android, y hay Launchers que hacen esto por defecto… NO ESTAMOS ATADOS A UN DISEÑO…
Experiencia de usuario
Metro no es sólo un lenguaje de desarrollo, es una filosofía para mostrar contenido. Metro no es sólo una filosofía, es “ser digital”, mostrar empeño en el diseño, hacer que el usuario sepa manejar un dispositivo antes de haberlo tenido en sus manos. Y esto es justo lo que pasa con un Windows Phone, ya sabes manejarlo. Al contrario que en Android e igual que en iOS, en Windows Phone existen unas directrices claras desde el principio sobre cómo deben ser las interfaces de usuario, lo que elimina la fragmentación de interfaces, el mayor problema de los usuarios del sistema de Google, quienes creen que la fragmentación se refiere solo a que yo no pueda tener ICS en un Motorola del año pasado de manera oficial.
Personalmente he visto Metro, y de primera mano JAMAS es fácil de usar, te acostumbras rápido si… pero de que sabes usarlo antes de tenerlo en las manos, es falso y absurdo. Ya es el tercer punto en el que el autor original se refiere a la interfaz, ¿sera esto lo único que creen que es bueno en WP7? y ya hay launcher que lo hacen en Android… ¿Por que ver la posibilidad de tener una interfaz personalizada y acorde a mis necesidades se es visto por el autor como algo malo?…
Ahora pensando en en la interfaz veo que si se parece algo a Metro… es que es una columna de cosas amontonadas una detras de la otra como los vagones de un metro.,.. solo eso…
Sistema cerrado
Aquí es donde los seguidores de Stallman y fandroids se arrancan las barbas, o intentan venir a por las mías. Señores: hay que cambiar el chip, mejor dicho, hay que diferenciar chips. Yo también soy desarrollador, y mentiría vilmente si dijera que no he aprovechado software con su código en CodePlex o Github para hacer mis propias aplicaciones, pero lo que hay que tener en cuenta cuando uso un dispositivo móvil no es si su código lo puedo ver (por cierto, Android tampoco se lleva la palma en sistemas móviles abiertos), lo que hay que tener en cuenta es “¿qué me permite hacer y con qué facilidad?”. Cuando uso un Windows Phone o iOS no pienso en “Vaya, no puedo ver cómo funciona esto”, pienso en que funciona maravillosamente, pienso en lo que estoy haciendo con el aparato, ya sea enviar un correo o llamar o cualquier cosa; contrario a lo que pasa cuando uso mi Defy con la ROM oficial, momentos en los que pienso qué bien está pavimentado el suelo de mi calle o qué habrá de comer hoy en casa mientras espero que las aplicaciones abran, pero de la inmadurez de Dalvik y la inefectividad de Java hablaremos otro día (aquí es donde los fandroids dicen que su teléfono va fluido).
Poder montar Android sobre cualquier dispositivo tiene más contras que pros. Sí, está genial que cualquier empresa que disponga de un hardware pueda darle vida con Android, pero eso es lo que está mal de cara a la experiencia del usuario final. Antes remarcaba con negritas que los usuarios del SO verde decían que su teléfono iba bien, el por qué ese remarque está en el posesivo: lo que queremos no es que determinados n-cores vayan bien, lo que queremos es un dispositivo que con menos hardware logre las mejores prestaciones, como ya lo mencionaba Gerardo Torrealba; los usuarios que creen que ahorran comprando un ZTE frente a un Lumia 610 se equivocan: ahorrar es obtener las mejores prestaciones con los mínimos recursos.
Pensemos en algo, muchos que leerán esto quizás tengan un vehículo, o tengan un conocido que tenga un vehículo, por ejemplo si deseo modificar las prestaciones del motor de mi vehículo (carro, camioneta), solo basta googlear un poco y ver que puedo modificar, desde cambiar la suspencion y colocar una mejor de la que viene de fabrica, mejores cauchos, cambiar el radio, etc… Sabemos que esto es posible en nuestros vehículos, pero quiere decir que debemos hacerlo nosotros o estamos atados a obligar a saber como se hace o pensar en hacerlo constantemente, la verdad no, mi mama tiene un Yaris 2001 y no sabe ni siquiera medirle el aceite, y lo tiene desde hace varios años, ¿entonces?, pero hay personas que se puedes especializar en hacer estas modificaciones y las podemos buscar para que lo hagan, y así mejorar el rendimiento y/o prolongar la vida de nuestro vehículo… Pasa lo mismo con el Software, el hecho de que el software sea abierto no quiere decir que tenemos que entender como funciona, pero si quiere decir que hay personas que si están interesadas en saberlo y pueden hacer mejoras que pueden ayudar en las prestaciones de nuestro sistema.
Redes sociales
Windows Phone tiene algo único en cuanto a redes sociales: People Hub. En pocas palabras: acceso en un click a todas las actualizaciones de tus redes sociales (Facebook, Twitter, LinkedIn,…) y a actualizar el estado en todas ellas al mismo tiempo. Con una descripción tan corta diréis que es una basura de feature, pero estas son las funcionalidades más jugosas: las que te permiten hacer muchas cosas de la manera más sencilla posible.
Aparte de la integración con las redes sociales, Windows Phone se integra de manera genial con SkyDrive, el gran desconocido -hasta hace poco- de los servicios Live, permitiéndote tener 25 (o 7, si eres nuevo) Gb de almacenamiento en línea para cualquier archivo, hacer presentaciones desde el teléfono o compartir documentos en la nube.
Eso de People Hub. es algo que hacen gran cantidad de aplicaciones desde que android existe. La que recomiendo personalmente esTambien tenemosentre muchas otras… Asi como aplicaciones oficiales de los dueños las redes sociales, como twitter, facebook y pare de contar, que tienen 100% integración con nuestros contactos y todo nuestro dispositivo.
Skydrive, bueno si te gusta Skydrive en Android hay gran cantidad de aplicaciones clientes para este servicio, pero también tenemos Dropbox (Que ahora en alianza con samsung con el S3, viene con 50gb de almacenamiento), Ubuntu One, entre muchos.
Pero recientemente nacio Google Drive, del que no voy a hablar mucho, sino que voy a darles un enlace con una buena noticia sobre este servicio: .
Bueno y Ofimática Online, pues… tenemos igual un gran universo de Aplicaciones.
Desarrolladores
Como comentaba anteriormente, Windows Phone es un sistema cerrado. Y Microsoft lo quiere mimar, que sus aplicaciones sean de calidad y ofrezcan utilidad real a sus usuarios, no que cualquiera pague US$25 y se ponga a programar copypasteando de quién sabe dónde. Esto no significa que Microsoft no te ponga las cosas fáciles, todo lo contrario, ofrece más facilidades que Apple o Google para desarrollar en Windows Phone 7:
- Si eres estudiante, Microsoft te regala la licencia de desarrollo y publicación en el Marketplace para Windows Phone, pudiendo rentabilizar tu tiempo libre.
- La documentación de desarrollo en el MSDN es amplísima y con muy buenos ejemplos, el SDK es gratuito para cualquiera que quiera jugar con el emulador.
- Si quiero a Microsoft por algo, es por hacer SDKs y Frameworks maravillosos, en Windows Phone no han defraudado, Visual Studio es genial y el emulador funciona.
Admito que el Marketplace tiene pocas aplicaciones, pero ¿es necesario tener cientos de miles de aplicaciones que no usaré?. Yo prefiero tener las esenciales, en lugar de tener que bucear en un Play lleno de baratijas.
No crean mucho esto de que les regalan una “licencia de Desarrollo”, por que lo que da DreamSpark son versiones Express de sus producto, es decir, versiones limitadas, cosa que no pasa con el desarrollo en Android, que podemos tener un IDE completo, como Eclipse con todo lo necesario para el desarrollo… Que de paso es Multiplataforma y es también nos sirve para desarrollar gran cantidad de Aplicaciones y Lenguajes distintos, cosa que no pasa con VS.net que no edita mas que un puñado de lenguajes.
Documentacíon,tenemos Una amplísima cartelara Oficial, y mucho mas grande comunitaria, basta con googlear algo para conseguirlo, incluso mi blog ofrece como instalar el IDE.
Y Quizás esa aplicación que a ti no te hace falta, a alguien si la necesita.
En resumen
En Resumen Windows Phone nos pone una interfaz y un diseño estático y único, que te dicen o te gusta o hacemos que te guste, de paso si eres un acolito de Microsoft te obligan a desarrollar algo para ellos, algo para Windows Phone, tengo varios amigos de este clan se han visto “muy incentivados” a desarrollar algo si querían seguir manteniendo su estatus, cosa que no pasa con Android, sistema abierto que puedo adaptarlo a mis necesidades y conseguir una configuración que realmente me guste y se adapte a mis necesidades.
















