martes, 25 de enero de 2011

La Cuenta

La cuenta es una aplicación de android que desarrolle para dividir la cuenta del restaurante entre las distintas personas que acuden a comer, solo es necesario especificar el monto de la cuenta, el porcentaje de propina que deseas dejar y el numero de personas que asistieron. Con esto la aplicación te dirá exactamente cuanto dinero tiene que poner cada persona para pagar la cuenta de la comida. La desarrolle rápidamente como "training" pero espero poder incrementar su funcionalidad aun mas en el tiempo libre que pueda ir teniendo.
Cualquier duda o comentario pueden escribirme un correo a ti3r.bubblenet@gmail.com o dejar un comentario en el post.

Actualmente la aplicación se encuentra publicada en Shop4Apps de motorola pero si desean el paquete apk, pueden escribirme y con mucho gusto se los envío.
Espero y el programa les sea de utilidad.

lunes, 24 de enero de 2011

Android en el Espacio

Les dejo un link a lo nuevo que se esta probando con los dispositivos Android. Imaginen poder programar algo para un satelite.
Saludos
Mobile Phones Blast into space

domingo, 23 de enero de 2011

El nuevo Android

Ya hemos visto como ha evolucionado el sistema android en estos últimos años, con la llegada del Nexus S y Gingerbread el sistema cada vez se hace mas maduro, estable, compatible con mas dispositivos y mas emocionante de usar. Yo pase mas de 5 años con el mismo teléfono celular y he seguido al sistema desde hace ya tiempo, en este ultimo año he cambiado mas de 3 veces de móvil por lo rápido que esta plataforma evoluciona. Ahora les quiero compartir algunos videos que me emocionan acerca de el nuevo android y como va incursionando cada vez mas en el mercado de las tablets, con nuevos dispositivos y nuevo sistema (Honeycumb. Espero y les guste.

http://www.youtube.com/watch?v=20Lct9CKtL8


miércoles, 19 de enero de 2011

Localizar Recursos por Nombre en Android

Ya hemos visto varias veces como retraer recursos para una aplicación Android, ya sea un archivo de layout, un estilo, textos, etc. Si aun no sabes como retraer recursos en android te recomiendo que leas este articulo dentro de la documentación de android (http://developer.android.com/guide/topics/resources/index.html); básicamente lo que el
sistema hace es asignar un identificador (un numero entero [int]) y un nombre dentro de un
paquete a los recursos que declaramos en nuestra aplicación por el cual pueden ser referenciados en el código o en otros archivos android. Lo que generalmente vemos en una aplicación es algo como esto:
En esta imagen podemos ver como declaramos un TextView en nuestro archivo de layout y hacemos referencia a un recurso string que se llama hello (los recursos se identifican
"@tipo/nombre"), también en ciertas ocasiones es necesario retraer un recurso en código; y esto es logrado de varias maneras:
la mas sencilla es retraer un String desde un contexto, si queremos hacerlo desde una actividad se hace una llamada al método getString(int) donde int es el identificador del recurso, todos los identificadores son registrados y compilados en la clase especial R de android (puedes ver la siguiente pagina para ver la descripción de R).
También es posible retraer un objeto de recursos (android.conte
nt.res.Resources) desde el contexto (ya sea de la actividad o desde la aplicación), en la imagen siguiente se muestra un objeto de recursos que es retraído desde la actividad, desd
e el contexto y desde el contexto de aplicación. En la imagen también se muestra como retraer un String desde los recursos pero se pueden localizar cualquier tipo de recursos con distintos métodos de esta clase y con el id del recurso (puedes ver una descripción en la siguiente pagina).
Lo que les quiero mostrar el día de hoy, es que en ocasiones es necesario localizar un recurso dinamicamente, por ejemplo necesitas cargar un numero determinado de descripciones de configuración (esto fue lo que me paso recientemente), las descripciones de configuración están
guardadas en recursos string ya que es necesario cargar sus descripciones dependiendo del lenguaje de la aplicación y están distinguidas por medio de un Id, por lo tanto cree un método que dado un objeto de recursos y una lista de identificadores de descripciones buscara el texto y lo regresara a la función padre para ser cargada por la aplicación, y el código me quedo mas o menos así:
voy a tratar de explicar lo que intente hacer en este código,
De las lineas 24 a 26 declare un HashMap donde guardare los resultados de las consultas e inicie un ciclo para recorrer todos los ids que fueron pasados a la función. Luego (en la linea 27) cree un string el cual representara el nombre del recurso que quiero retraer, en este caso yo se que todos las descripciones están identificadas de la siguiente manera: sett_description_, por ejemplo sett_description_0 para la primera descripción, luego sett_description_1 y así sucesivamente, lo importante aquí es el código en la linea 28, el cual trata de localizar el identificador del recurso que queremos dentro de nuestro objeto de recursos, el método getIdentifier(String,String,String) espera recibir el nombre del recurso (desName que lo acabamos de construir), el tipo del recurso (string, layout, drawable, etc) en este caso "string" y el nombre del paquete donde se encuentran almacenados los identificadores de nuestros recursos (donde se encuentra la clase R de nuestro proyecto) en este caso "org.blanco.test.viewfliper".
Si este método regresa un identificador valido (si es mayor que 0) retraemos el recurso String con el método getString y lo almacenamos en nuestro resultado, si no guardamos un String por default en este caso "recurso no encontrado" (todo esto de las lineas 29-32. Al final cerramos el ciclo y regresamos el resultado.

Esta es la manera en la que retraje los recursos de una aplicación en forma dinámica, en este pequeño ejemplo utilizamos recursos String pero la idea puede ser aplicada a cualquier tipo de recursos. Espero y esta pequeña demostración les sirva en sus desarrollos si alguna vez se llegan a topar con un caso similar. De igual manera si saben de alguna otra manera en la cual obtener el mismo resultado y que sea mas optima o si tienen alguna duda o comentario les agradezco que dejen un comment en el post.
Saludos

jueves, 13 de enero de 2011

Regenerar la Clase R en proyectos Android

No es muy común, pero algunas veces puede pasar que cuando estas dentro de un proyecto de Android utilizando Eclipse y el plugin de ADT la clase R (la clase que se genera automáticamente para localizar los recursos) se pierda, se borre o se dañe de alguna manera; causando que el proyecto ya no sea compilable.
Para arreglar esto solo es necesario generar un nuevo recurso (algún string, o algún nuevo archivo layout, o algún archivo xml de android) para que el plugin de Android regenere la case. O también pueden utilizar las herramientas de android para el proyecto. Clic secundario en el proyecto => android tools => fix project y con esto la clase debe de estar generada nuevamente.
Lo comento por que recientemente un compañero no podía hacer esta tarea en un proyecto existente y siempre es bueno saberlo.
Saludos

miércoles, 5 de enero de 2011

Inducción a Ruby - Ruby on Rails

Que tal hoy les quiero compartir un tutorial muy bueno que encontré en Internet que te inicia en el desarrollo web utilizando Ruby on Rails. Como en este momento me encuentro desempleado (en tiempo sabático mientras entro a mi nuevo trabajo) decidí aprender un poco de Ruby. Así que entre a la pagina oficial www.ruby-lang.org para iniciarme en este lenguaje que ha crecido bastante en los últimos años, la verdad es que en la pagina se encuentran muy buenos artículos y ayudas para iniciarse en el lenguaje, muy buen trabajo para los de la comunidad ruby la verdad es que es muy sencillo y fácil de usar, con razón se ha vuelto tan popular.
La verdad es que tengo un poco de experiencia utilizando Python y me pareció un poco mas complicado por la cuestión de la "identacion" y algunos formatos pero la gente de Ruby ha hecho un muy buen trabajo en hacer que el lenguaje sea claro, muy bien documentado y a mi pensar creo que existe mas documentación en español de Ruby que Python.
Bueno esta fue mi experiencia, entre a www.ruby-lang.org y segui el tutorial en linea de Ruby, en la pagina existe una sección donde puedes usar el interprete directo desde el explorador. Luego continué con el tutorial de Ruby en 20 minutos, baje el interprete de Ruby lo instale en mi computadora y en 10 minutos ya estaba jugando con Ruby.
Luego de unas horas programando y jugando decidí probar un poco de rails, así que instale las gemas de Ruby on Rails (las gemas son paquetes que te permiten instalar aditamentos al interprete de una manera muy sencilla) e iniciarme en el mundo de Rails. Encontre unos vídeos y tutoriales interactivos en el Internet que se llaman Rails For Zombies, los cuales te dan una intro muy sencilla pero muy clara de como utilizar Rails y como crear tu primera aplicación utilizando este popular framework.
De verdad les recomiendo que vean estos vídeos, son claros y están muy divertidos ademas de que te dan las bases para que crees tus propias aplicaciones Rails y solo te tomara unas cuantas horas, claro que al terminar no seras experto en Ruby mucho menos en Rails mas sin embargo tendrás las bases y la noción para continuar por tu cuenta si es que decides continuar programando en este popular lenguaje. Por lo pronto yo voy a continuar desarrollando una aplicación en Rails 3, luego les contare que tal me fue en este desarrollo.