jueves, 10 de marzo de 2011

Experiencia con Android Market y Droid 2 Global

En esta ocasión les quiero compartir algunas de las opciones que presenta el Android Market para nosotros los usuarios del sistema. Esto lo experimente con mi Droid 2 Global activado en México, pero creo que debe de estar disponible para mas dispositivos. Si alguno de ustedes cuenta con algún otro teléfono android y desea compartir la experiencia que tubo no duden en comentar. Recientemente estaba obteniendo unas imágenes para un nuevo post (que espero poder subir pronto) y sin darme cuenta mi conectividad se acabo, no 3G, no Internet, lo cual es bastante malo para mi ya que me he acostumbrado a estar siempre descargando, chateando o en facebook desde el cel. Acababa de instalar un home replacement para mi Droid 2 Global y el cual estaba probando (openHome beta, esperen el post) y tristemente yo pensé que algo malo había pasado con el teléfono, tal vez por ser versión beta o algo malo en la instalación y había provocado que no recibiera mas señal 3G, revise las configuraciones una y otra vez y nada, al final como acertadamente un amigo bloguero comento fue un problema de Telcel. Una vez que pude restablecer mi conexión 3G, después de hablar al centro de atención, ya era demasiado tarde; había ejecutado un default restore en el dispositivo y ya había perdido todas las configuraciones y aplicaciones que había instalado, lo que se puede hacer en estos casos es visitar el android market desde la web market.android.com y registrarse con su cuenta de google, esto permitirá que el backup assistance de android market guarde que aplicaciones tienen instalados y una vez que se efectué en restore poder reinstalar las aplicaciones sin ningún problema e incluso empujar aplicaciones a ser instaladas en el teléfono desde la web. Todo esto puede ser efectivo a partir de dispositivos con android 2.2 los cuales cuentan con el servicio de Cloud To Devise Messaging, pueden ver las reseñas en esta pagina, el cual creo que es una gran API por parte de los ingenieros de google.

Como podrán ver en las imágenes siguientes pueden ver que android market te presenta las aplicaciones que tienes instaladas para que puedan ser sincronizadas de nuevo, puedes instalar nuevas aplicaciones desde la web y tambien puedes registrar tu dispositivo en el servidor de google, aunque no se si esta ultima opción sea muy buena, no se que opinen ustedes.

Saludos
Aplicaciones instaladas

Instalando Aplicación desde la web

Registro del Dispositivo en Android Market

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.