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.

martes, 28 de diciembre de 2010

Motorola Droid 2 Global en Mexico

Que tal, en esta ocasión quiero escribir mis puntos de vista acerca del motorola Droid 2 Global (de verizon) al traerlo a México. Hace una semana recibí el teléfono y no tuve ningún problema en el desbloqueo, lo mas sencillo es buscar en e-bay por el código (cuesta al rededor de 7 dlls) y después de una hora introducirlo en el teléfono cuando ingreses tu tarjeta SIM. Este telefono es GSM quad-band (850,900,1800,1900), CDMA 800/1900 y Triband en WCDMA (850/1900/2100), por eso lo denominan Global, así que no tendrán problemas en activarlo con cualquier carrier que deseen en Mexico. Telcel, Movistar, Iusacell, el que gusten este aparato tiene para todos y con todos aceptara conexión 3 o 3.5 G.
Hasta el momento 100/100.

El Hardware, pantalla 3.7" WVGA (854x480 ). Me encantan los teléfonos con teclado físico, y este hace un excelente trabajo, presenta un teclado QWERTY completo bajo su pantalla deslizable y ademas quitaron el espantoso DPAD presente en el Droid para darle mas espacio al teclado y mejor acabado, presenta un DPAD dividido en 4 teclas como un teclado normal de pc y posicionado en la parte derecha. Las teclas tienen un acabado con borde para facilitar su uso y se escribe perfectamente. Tiene un procesador de 1.2 GHz y cámara de 5 megapixeles con flash dual de led, la verdad el flash si es bastante fuerte y algunas veces puede llegar a molestar en los ojos pero pues es cuestión de practica para manejar bien el flash de acuerdo a la luz del ambiente, no soy fotógrafo profesional así que yo solo lo coloco en automático. Toma vídeo con calidad DVD y posee una memoria interna de 8 GB, que puede ser expandida por tarjetas micro SD hasta 32GB extra. El único desperfecto que he encontrado con respecto al hardware hasta el momento es la batería, según las especificaciones de Motorola la batería dura hasta 500 min. en modo CDMA y 430 min. en modo GSM, algo así como 7 u 8 horas usando al máximo, esto es importante por que en mi caso el teléfono siempre esta conectado a Internet y mandando y recibiendo SMS y llamadas. En mi caso salgo de mi casa a las 7:30 AM y para las 6:30 que salgo de trabajar ya tengo el 15 % de la batería, mas sin embargo he logrado, con algunos trucos como bajar el brillo de la pantalla y reducir el tiempo de sincronía, a tener un poco mas de 12 hrs de pila.
Ahora 95/100

Luego se encuentran con el sistema operativo, Android 2.2 (Froyo) extendido con el Home de Motorola y sus Widgets, muy bueno podrán notar algunos puntos donde la fluidez en la respuesta de la pantalla no es tan buena, como al momento de desbloquear la pantalla pero eso puede pasar desapercibido después de algún tiempo de uso, ademas cuenta con la bandeja de entrada universal y demás widgets de Motorola muy buenos para la sincronía de las redes sociales. Cuenta también con HotSpot de Wifi para compartir tu conexión 3G con hasta 5 dispositivos, esto es especialmente bueno cuando vas a visitar a tus parientes en lugares remotos donde no tienen Internet y todo mundo necesita acceder desde su computadora portátil u algún otro dispositivo, a mi me paso y fui el salvador para todos los primos adictos a la tecnología; aunque hay que destacar que esta funcionalidad consume mucha batería así que tengan listo su cargador donde quiera que vayan. Cuenta con clientes de correo para gmail, hotmail, yahoo, irc, exchange y otros, la funcionalidad de sincronía empresarial ha sido mejorada y funciona muy bien con el servidor exchange de la empresa para la que trabajo. Me encanta Android así que el sistema es simplemente exquisito tendremos que esperar a que Motorola empuje una actualización para Gingerbread para que sea perfecto.
Calificación 95/100

Con su procesador y su hardware el teléfono esta listo para correr juegos en 3D como need for speed y Hero of Sparta, asi que esto lo hace un muy buen teléfono tanto para el usuario normal como el usuario empresarial, el único desperfecto que le veo es su tiempo de batería mas sin embargo he visto que existen algunas baterías extendidas para aumentar el tiempo de uso pero aun no me he animado a comprar una; ademas en comparación con las 6 horas de pila que tiene mi hermano en su blackberry curve mis ocho horas no están tan mal. Así que calificación final 95/100, definitivamente un teléfono que tienen que probar si son usuarios Android.




Si alguno de ustedes es usuario de este teléfono dejen sus comentarios.

martes, 14 de diciembre de 2010

Chrome Apps

La mayoría ya abra escuchado hablar sobre Chrome OS, el sistema operativo que Google esta esperando lanzar, existen varios vídeos y publicaciones acerca de el. A mi forma de pensar Google esta apostando al usuario simple de las pcs, los jóvenes y nuevas generaciones que utilizan Internet en la vida diaria, Chrome OS esta diseñado para llevarte a Internet en segundos. Según ciertas reseñas el sistema operativo sera un solo navegador, todo se manejara desde dentro de Google Chrome (el navegador de Internet de Google) y podrás usar servicios como blogger, youtube, Google Docs y Grooveshark para realizar las tareas mas comunes dentro de Internet. Al descargar aplicaciones especializadas desde Chrome Web Store, estas aplicaciones se integraran directamente en tu navegador y te permitirán escuchar musica, ver videos, realizar documentos y presentaciones así como jugar juegos lijeros pero muy divertidos. Ya existen ciertos anuncios sobre Chrome Notebook, la pc de Google que traerá Chrome OS directo desde la caja (al fin una pc que no tenemos que remover Windows antes de empezar a usar nuestro OS favorito), y la funciones que pueden adaptarse dentro del mundo Chrome, mas sin embargo el día de hoy quiero mostrarles como podemos simular un poco de este sistema dentro de nuestra instalación de Linux o Windows.

Lo primero que tenemos que hacer es descargar Google Chrome o Chromium Web browser desde cualquiera de sus paginas, luego entramos a la dirección de la Web Store y descargamos cualquier aplicación sencilla (recomiendo grooveshark o The Fancy Pants Adventure) para que se habilite la tab de Apps de nuestro navegador y listo podemos navegar dentro de la tienda y descargar las aplicaciones que nosotros queramos, cabe destacar que al igual que Android market (en el OS android) algunas aplicaciones son de paga pero cuentan con versiones de prueba que son gratuitas, es cuestión de ustedes si deciden pagar o no por sus aplicaciones.

En conclusión Google esta apostando por la sencillez y el uso masivo que le dan al Internet los nuevos usuarios de las pcs, mas sin embargo con esto salta la pregunta de que pasara con los usuarios que aun no tengan acceso a Internet o cuando tu servicio de Internet se caiga, podrán estos problemas ocasionar que tu pc se vuelva inservible por completo? y que pasara con los developers que utilizan las computadoras para cargar IDEs, compiladores, librerías, etc y que solo utilizan el Internet para consultar documentaciones, APIS, actualizaciones, etc.

Les dejo este video que esta muy cotorro sobre Google Notebook

domingo, 12 de diciembre de 2010

What is Google Chrome OS?

no puedo esperar a que estas bellesas esten en el mercado, tendremos que esperar para ver que es lo que pueden hacer y como se manejara el desarrollo web dentro de estas maquinas.
Slds