viernes, 25 de febrero de 2011

Comercial Motorola XOOM (Android 3.0 Tablet)

Que tal, desde hace algún tiempo me pareció muy importante el anuncio de Motorola sobre su tablet XOOM, esta tablet fue ganadora del primer lugar en el CES 2011. Se dice que puede ser un gran competidor de la iPad, según sus especificaciones es bastante poderosa y cuenta con la nueva versión de android Honeycomb (3.0), un procesador dual core de 1 Ghz la hace muy convincente, y red 3G actualiza ble a 4G; si quieren ver las especificaciones completas pueden ir a la siguiente pagina. Y lo mejor ya esta disponible a la venta en Estados Unidos con Verizon Wireless o a través de la online shop de Motorola, cuesta 799 DLLS + gastos de envió la cual la hace mas costosa que la iPad basica. Espero luego poder compartir una reseña punto a punto sobre estos dos productos,  lo que les quiero compartir ahora es el comercial de televisión que lanzo Motorola para promocionar su producto, creo que es un gran comercial y tiene un muy buen mensaje oculto, sera que XOOM viene a liberar a la humanidad de la tendencia Apple? y que significa que todas las personas sostengan con una mano el cable de los audífonos?
Espero y me compartan su opinión sobre el mensaje que manda Motorola en este vídeo.

jueves, 24 de febrero de 2011

Motorola Droid 2 Global en Mexico Parte 2 (Root y Mas Cosas)

Hola que tal, hace algunos meses adquirí un Motorola Droid 2 Global de Verizon y lo traje aquí a México para usarlo con Telcel. Publique un post en aquel entonces con comentarios sobre el dispositivo y la verdad es que hasta el día de hoy sigo pensando que es un excelente teléfono, la sigo pensando que la vida útil de la batería podría ser mucho mejor pero después de unos meses de uso me he acostumbrado a tener un día completo de pila y nada mas. He visto en algunos posts de Internet que se puede comprar una batería extendida pero aun no me he animado, hoy les quiero platicar algunos trucos y aplicaciones que he utilizado para mejorar el tiempo de vida de la batería y en general el teléfono.

Primero que nada el usuario root, la verdad es que es muy sencillo hacer root este teléfono, tarde un poco en animarme a hacerlo por que pensaba que nada bueno se consigue así de fácil, lo primero que necesitamos es la aplicación z4Root. Esta aplicación se instala y te permite rootear tu teléfono y volverlo a la normalidad con un solo clic en un botón. Esta aplicación le doy un 10, solo un pequeño desperfecto, existen dos opciones root permanente y root temporal, el temporal no me funciono pero pues la verdad no creo necesaria esa opción ya que si lo necesitas hacer solamente temporal, luego puedes unroot el teléfono sin ningún problema.


Una vez que tengamos acceso con usuario root a nuestro teléfono lo siguiente que instale fue CPUMasterFree, esta aplicación nos permite disminuir la frecuencia del reloj del procesador para que consuma menos batería, es verdad que nuestro teléfono no sera tan poderoso cuando el procesador este alterado, mas sin embargo las llamadas, mensajes, correo, redes sociales, etc funcionaran sin ningún problema. Yo normalmente tengo mi cpu establecido a 800 Mhz y me funciona muy bien, solo cuando voy a jugar o compartir mi conexión 3G a través de hotspot es cuando subo la frecuencia hasta 1200 Mhz. Con esta opción he logrado desconectar mi teléfono a las 7:30 a.m., ir al antro en la noche y regresar a mi casa a las 3 a.m. con una sola carga.

Luego viene la aplicación BloatManager ya que mi dispositivo fue importado de Estados Unidos y originalmente esta diseñado para funcionar con Verizon Wireless, viene con varias aplicaciones pre-instaladas por Verizon. Alguna gente le llama BloatWare, otra gente le llama CrapWare, yo simplemente las ignoraba. Las aplicaciones que venían en mi cel eran, amazon kindle, blockbuster, my verizon, entre otras; lo importante es que no las podía usar fuera de la red de verizon y algunas corren servicios que consumen nuestra preciada batería. Con esta aplicación, podemos remover estas aplicaciones sin ningún problema, solo es necesario seleccionar las aplicaciones que no necesitamos, aceptar los cambios y reiniciar el teléfono. Con esto ya no aparecerán estas molestas aplicaciones que solo quitan espacio en tu home.

Y no pueden faltar los juegos por supuesto, NFS es uno de los juegos que venían pre-cargados en el celular y aunque es un demo y solo te permite jugar una sola partida es de gran utilidad para perder el tiempo y superar tus propias marcas. El memorable Angry Birds el cual es muy divertido, Ninja Jump es otro de mis favoritos y si quieres algo de acción en 3D Hero of Sparta o algún emulador que nos permita jugar nuestros juegos favoritos como FPSE o SNesoid. Recuerden que los juegos en 3D pueden necesitar bastante poder de procesamiento para funcionar bien así que esta es una ocasión para utilizar el CPUMasterFree y establecer el reloj al máximo.

Esto es lo que he echo hasta el momento con el dispositivo y la verdad es que es una maravilla, recientemente comencé a compartir mi conexión 3G con varios compañeros en la oficina y la verdad funciona muy bien, he logrado compartir la conexión durante 4 horas con una sola recarga y funciona muy bien, si necesitan mas tiempo siempre es posible tener el teléfono cargando y compartiendo la conexión, aunque de esta manera el teléfono se calienta bastante de la parte lateral y la verdad es que si da miedo que vaya a pasar algo malo. No se si a alguno le haya pasado esta situación.

Muy bien, un saludo a todos y cuando tenga mas experiencias sobre el dispositivo espero poder compartirlas.

viernes, 11 de febrero de 2011

Crear una Vista Personalizada en Android

Que tal, en esta ocasión les quiero compartir la manera en la que podemos crear una vista personalizada para una aplicación Android. Ya hemos comentado en algunas ocasiones sobre como construir vistas y lo que estas son (pueden ver posts pasados para recordar un poco). Básicamente una Vista es algo que ocupa espacio en pantalla en una aplicación, y puede haber infinidad de vistas, por ejemplo Botones, Combos, etc. o también existen los grupos de vistas (ViewGroup) los cuales son vistas especiales que almacenan otras vistas dentro (o las agrupan), mas sin embargo todos estos diferentes objetos extienden un mismo objeto padre que es la vista (View). Ya con estas bases podemos deducir que si nosotros creamos nuestro propio objeto que extienda de View o ViewGroup puede ser interpretado y desplegado por el sistema, lo mas común es extender un objeto como un Boton, o un TableLayout para crear nuestras propias vistas ya que de otra manera si extendemos directamente View entramos en código un poco complejo como dibujar en pantalla por medio del Canvas y eso, por lo tanto lo mas sencillo y rápido (y lo que les quiero mostrar en este post) es como crear nuestra propia vista basándonos en una preexistente. En este ejemplo les quiero mostrar la manera de hacer una vista muy facil pero ampliamente usada.
La mayoría de los developers (si no es que todos yo creo) nos hemos topado con esta situación, "Necesitas crear un formulario para llenar datos y enviarlos a algún lado" por lo tanto necesitas poner una etiqueta describiendo lo que necesitas llenar, seguido de un campo donde el usuario pueda escribir el dato. Algo mas o menos así:
Normalmente necesitaríamos un TextView (etiqueta) que almacenara la descripción del campo necesario, el Nombre en este caso, y un EditText (campo de entrada) donde el usuario pueda introducir los datos, ahora imaginen que necesitamos 10, 20 o 30 campos como este en nuestro formulario, nuestro archivo de layout crecería bastante simplemente en estar definiendo los atributos para cada uno de las etiquetas y campos de entrada, es por esto que podemos crear una vista personalizada que englobe estos dos campos en uno solo. Lo primero que necesitaríamos hacer seria crear nuestro archivo xml de layout que utilizaríamos como base, este se vería mas o menos así:


Como ven estamos tomando un LinearLayout como base para generar nuestra nueva vista, estamos definiendo un punto de partida para nuestra nueva clase, ahora lo que necesitamos hacer es crear nuestra nueva vista y hacer uso de este archivo XML, lo mas sencillo es extender una vista ya establecida y no directamente la clase View o ViewGroup, para fines de este ejemplo tomaremos como base un LinearLayout pero lo mismo aplicaría para cualquier vista que ustedes quieran. Por lo tanto nuestra nueva clase se vería de esta manera.
y listo como verán lo único que hacemos es inflar nuestro layout base y asignar ciertos parámetros a nuestras vistas internas, mas sin embargo nuestra vista puede ser tan compleja como nosotros queramos, podemos dibujar, agregar fondos de animados a la vista, etc. cualquier cosa creativa que necesiten, solo recuerden que entre mas compleja sea nuestra vista mas tiempo tardara nuestra aplicación en inflarla, haciendo que el usuario espere en una horrorosa pantalla negra o podemos agregar alguna splashscreen al cargar nuestra vista. Para finalizar lo único que necesitaríamos en nuestro layout principal, el cual se agregara a una actividad, es agregar nuestra nueva vista. Este es un ejemplo de como quedaría nuestro archivo de layout para nuestra actividad principal.
Recuerdan que tenemos un método dentro de nuestra vista que busca por los atributos "text" y "default_input"?, los podemos agregar en nuestro archivo xml y serán reconocidos por nuestra vista al momento de ser construida. Ademas pueden repetir esta vista cuantas veces sea necesario para crear su
formulario (espero y en otro post poder revisar como crear un formulario completo). ya solo falta a nuestra actividad principal llamar el método setContentView de esta manera (nuestro layout principal se llama main).
setContentView(R.layout.main)
Espero y este breve tutorial les aya servido de ayuda para crear nuevas y geniales vistas para sus aplicaciones. No olviden dejar sus comentarios y si necesitan el codigo me pueden decir o mandar un mail y con mucho gusto les envió este pequeño proyecto,  saludos a todos.
Asi se veria nuestra vista en una aplicacion:


jueves, 10 de febrero de 2011

Construir Vistas de Android por Código

El día de hoy les quiero compartir una forma de construir vistas dinámica-mente mediante código en la plataforma android. Para android, una vista (View) es un objeto que ocupa espacio dentro de la pantalla que se esta desplegando. Puede ser un cuadro transparente, un cuadro de color, un botón, un contenedor (ViewGroup), etc.; todas estas vistas se construyen a partir de un mismo objeto base (View) y pueden ser establecidas en una Actividad como la interfaz que sera desplegada al usuario dentro de la aplicación. Una de las grandes ventajas de la plataforma es la construcción de estas vistas a partir de un archivo XML, esta funcionalidad es de gran ayuda al momento de desarrollar una aplicación; creo que todos han visto una linea de código parecida a esta dentro de una actividad de android (esta linea se escribe por defecto cuando se crea un nuevo proyecto utilizando el plugin de eclipse):

setContentView(R.layout.main);

Este código lo que nos dice básicamente es establecer el contenido del archivo XML main.xml como la vista principal de nuestra actividad. Dentro del archivo main existe una definición para la vista que sera construida y posicionada en nuestra actividad en tiempo de ejecución; este archivo puede contener Textos, Botones, Combos, Layouts y cualquier otra Vista existente dentro de la plataforma, incluso podemos crear nuestra propia vista y declararla dentro de nuestro archivo XML (pero ese es tema para otro post). Los archivos de layout (como los llaman comúnmente) nos ahorran muchas lineas de código al momento de estar escribiendo una aplicación, podemos definir infinidad de vistas y adjuntar las a nuestra actividad para que sea desplegada (solo recuerden que entre mas vistas estén especificadas en el archivo mas tiempo tardara la aplicación en inflar el archivo). Pero que pasa si una vista necesita ser generada dinámica-mente antes de ser desplegada, como por ejemplo una tabla con un numero indeterminado de renglones, o un formulario desplegando los datos de un contacto seleccionado; no podemos generar una vista diferente para todas las posibles opciones de contacto o de numero de renglones por lo tanto tenemos que construir nuestra interfaz en tiempo de ejecución con los datos que necesitamos. Para hacer esta tarea tenemos varias opciones, una es crear todas las vistas necesarias por medio de código e ir ajuntando las y construyendo nuestra interfaz por medio de funciones (un poco a lo que se hacia en los lenguajes de programación viejos antes de tener los tan adorados WYSIWYG), como por ejemplo:
con este código crearíamos una tabla con varias columnas cada una con un texto relacionado con nuestro contacto, mas sin embargo imaginen las lineas de código necesarias para construir una vista compleja como un formulario o una tabla con encabezado y pie de pagina, etc. Es por eso que los archivos de layout son muy utiles y donde la clase LayoutInflater juega un papel importante. Esta clase nos permite construir una vista a partir de un archivo XML especificado como un recurso, esta vista la podemos manipular a nuestro antojo antes de que sea adjuntada a una actividad y así poder ahorrar mucho código al momento de estar creando la interfaz para el usuario; como ejemplo les adjunto como seria construir la misma interfaz pero utilizando la clase LayoutInflater:

Lo primero que tenemos que hacer es crear un archivo xml definiendo nuestra tabla principal y sus parámetros, el cual quedaría mas o menos así (archivo table.xml):



luego creamos un archivo xml con la definición de nuestras filas, este se vería mas o menos así (archivo row.xml):

y por ultimo creamos nuestra vista:




Como verán, de esta manera nos ahorramos mucho código ademas de que los archivos xml pueden ser reutilizados en alguna otra actividad o vista para desplegar otra información en un mismo formato. También vean que no es necesario agregar cada uno de los TextView que retraemos de nuestra nueva fila a nuestro objeto TableRow, ya que en nuestro archivo xml ya esta establecido que esta vista pertenece a una vista superior (al momento de ser un elemento xml interno). También los ids pueden ser cambiados por ids globales de aplicación que quedaran registrados en la clase R al utilizar la notación android:id="@+id/identificador" en el archivo XML. Con esta técnica se pueden construir Vistas muy complejas de una manera sencilla, solo recuerden que entre mas compleja es la vista mas tiempo tardara la aplicación en inflarla, es por esto que yo les recomiendo inflar vistas muy grandes dentro de una tarea asíncrona (otro día publicare como realizar esta acción). Para terminar les dejo como se vería esta vista que acabamos de construir, un saludo.

Por cierto si quieren que les envié el código completo de este pequeño ejemplo no duden en escribir un comentario o escribirme un correo electrónico

.

viernes, 4 de febrero de 2011

No Android honeycomb para smartphones

Para todos aquellos que han visto los previos de Android Honeycomb y como este sistema ha evolucionado esta noticia nos callo como balde de agua fría. Según personal de Google, la versión 3.0 del sistema Android (Honeycomb) no sera lanzado para los celulares; este sistema esta diseñado y optimizado para Tablets por lo cual no aparecerá en los tan populares smarphones. Aunque según comentarios, algunas mejoras que se hicieron en el sistema si serán portadas a la plataforma para celulares (aunque no se especifico cuales), esperemos y sean  bastantes ya que este sistema incorpora un muy buenos features (para una completa lista pueden ver este link).
Esperemos y estas mejoras al sistema sean incorporadas rápidamente a los teléfonos celulares y que los makers envíen actualizaciones a nuestros dispositivos.
Fuente: http://www.tekgoblin.com/2011/02/03/google-says-honeycomb-will-not-come-to-smartphones/
Saludos

jueves, 3 de febrero de 2011

Certificación Java Certified Programmer SE6 (javacertificate.com)

Hola que tal a todos, actualmente me encuentro estudiando para presentar el examen de la universidad Oracle y convertirme en un Programador Certificado Java en la plataforma 6 (espero y logre obtener el titulo), actualmente cuento con un libro con el que estoy estudiando para la certificación y la verdad es que es muy bueno. He estado estudiando por varios meses ya y la verdad es que aun salgo muy bajo en los exámenes de prueba, ya había presentado el examen anteriormente (y falle por muy poco) y la verdad es que no recuerdo que la dificultad fuera tan alta como se presenta en este libro. Hoy les quiero recomendar un sitio de Internet muy bueno el cual me ha estado ayudando a simular el examen que voy a presentar. Se llama JavaCertificate.com y te presenta varios exámenes para objetivos específicos y al final puedes tomar un examen de prueba acerca de todos los temas involucrados, se registran muy fácilmente y es completamente gratuito. Si solo quieres probar que tan bueno es tu conocimiento sobre el lenguaje en la pagina de inicio cuentan con un link a un examen rápido de 10 preguntas sobre temas básicos del lenguaje para revisar tus capacidades rápidamente. Una vez que estés registrado tendrás acceso a tu centro de certificación personalizado donde encontraras varios exámenes sobre objetivos específicos de la certificación y al final un examen de repaso general. Ademas de eso puedes adquirir una cuenta premium (creo que es algo así como 20 USD) donde encontraran secciones de apoyo y exámenes de repaso mas grandes y apegados a la realidad.
La verdad es que este sitio es altamente recomendable, si están buscando certificarse o si solo quieren saber que tan bien andan en sus conocimientos de Java, seria bueno que visitaran el link y realizaran los exámenes de prueba. Si alguien tiene alguno otro sitio o libro que me recomienden para el estudio favor de dejarme un comentario, espero y ahora si en este intento logre mi certificación, deseenme suerte.

miércoles, 2 de febrero de 2011

Android Honeycomb preview Liberado (How To)

Algunos de ustedes ya sabrán que la vista previa de Android Honeycomb (3.0) la nueva versión de android ya ha sido liberada para los desarrolladores. Este nuevo sistema esta optimizado para tablets y se ve genial (ver vídeos previos android honeycomb), esta optimizado para resoluciones de pantalla grandes, para procesadores de doble núcleo y gráficos 3D, entre otras (si qieren ver mas detalles vean los hilights del sistema). Yo lo baje y lo probé por algunas horas y la verdad es que se ve increíble; la interfaz es única, el explorador y las aplicaciones por defecto fueron cambiadas y optimizadas para el tamaño de la pantalla y las capacidades multitasking del sistema. Para instalar el previo es muy sencillo y lo puedes conseguir en cuestión de minutos, a continuación les diré como.Primero tienen que tener instalado el androidSDK en su computadora, todo parte de ahí. Si no lo tienen pueden ir a la siguiente pagina y descargarlo.
Una vez que tengan el SDK abrimos el Android SDK Manager que se encuentra dentro del directorio de instalación del SDK.
Una vez que este instalado vamos a la sección de available packages -
> android repository y
podremos encontrar SDK Android Platform Honeycomb Preview, Revision 1.
Lo seleccionamos y le damos instalar, va a descargar los paquetes y dejar el previo disponible para crear un nuevo dispositivo virtual
en nuestro emulador. Si no han creado un nuevo dispositivo android emulado antes pueden seguir el siguiente tutorial, o buscar dentro del avd manager como crearlo, es muy sencillo.

Nota: si ya tenían instalado anteriormente el SDK y solo están agregando el previo de Honeycomb es probable que cuando descarguen el paquete les arroje un error al momento de instalarlo. Esto es debido a que existe una nueva versión de las android tools y es necesario actualizarlas, mas sin embargo el manager trata de mover el directorio "platform-tools" a un respaldo y sale un error. Esto es por que muy probablemente el server de adb esta corriendo y no permite que el directorio se renombre, para corregirlo solo es necesario terminar el proceso de adb y renombrar la carpeta manualmente.

A continuación les dejo unas imágenes de como se ve un emulador android corriendo el nuevo honeycomb. La verdad es que el emulador si es bastante pesado y necesitan buen churro en su maquina para que corra bien, en mi computadora del trabajo se ve bastante lento, pero en mi casa que tengo una dual core a 2.6 se ve bastante decente.









martes, 1 de febrero de 2011

Tecnologías Viejas

Una muestra de lo rápido que evoluciona la tecnología. A alguno de ustedes les toco jugar con algunos de los dispositivos que se muestran en el vídeo?