Contador de Truco para Android v1.5

Para aquellas personas que no pueden dejar de jugar al Truco o para los que disfrutan los fines de semana con amigos tomando Fernet y jugando a este juego tan argentino, les cuento que se liberó el Contador de Truco para Android.

En esta versión 1.5 se puede optar por dos modos de vista, ambas con componentes clásicos, ya que se puede optar por sumar con fósforos ó porotos.

Vista Fósforos

Vista con fósforos

Este programa fue pensado para ser rápido y fácil de usar, sin entrar en complejidades, opciones o funcionalidades que poco aportan a la agilidad a la hora de anotar el puntaje mientras se disfruta un buen rato con amigos o ¿Por qué no? En un partida acelerada en nuestro lugar de trabajo.

Vista Porotos

Vista con porotos

Para descargar la aplicación pueden utilizar el Barcode Scanner y enfocar a este código:

Código QR

Código para descargar

A su vez, pueden descargar el .apk desde Rapidshare e instalarlo con alguna aplicación.

También lo pueden buscar en el Android Market como “Contador de Truco” (es su nombre) o buscando la palabra “Truco” aparecerá en los resultados como Contador de Truco. La aplicación está disponible para todos los celulares con Android desde 1.5 en adelante y con soporte para todas las pantallas.

Para las próximas versiones se espera:

  • Arrastrar porotos.
  • Cronómetro.

Por último, ahora figura como desarrollador la empresa Bipgeeks, de la cual soy co-fundador.

Introducción a Android

Android

Qué es Android?

Android, es el nombre con el que se denomina al SO para dispositivos móviles desarrollado por la Open Handset Alliance (una alianza de empresas comandada por Google y en las que participan organizaciones tales como: Motorola, Samsung, HTC, LG, Sony Ericsson, entre otras). Pero Android es mucho más que un sistema operativo, es también un lenguaje de programación y un framework para desarrollo de aplicaciones. Es decir, que al conjunto de todos esos elementos se lo llama Android. Android no solo es desarrollado por la Open Handset Alliance, sino que colaboran muchísimas personas alrededor del mundo debido a que es un proyecto de Software Libre.

La sintaxis del lenguaje de programación es Java, pero es importante destacar (y marcar la diferencia) que no es Java, ya que no implementa todas las bibliotecas de ME.

Entre las bibliotecas con las que se cuenta se pueden mencionar:  OpenGl, SQL lite, libc, entre otras.

Logotipo de Android

Logotipo de Android

Conceptos Básicos

A la hora de programar en Android, se deben tener en cuenta una serie de conceptos para realizar un buen desarrollo, descriptos a continuación:

  • Activity: Las aplicaciones que tengan interfaces gráficas deberán tener al menos una clase del tipo Activity, ya que ésta actúa como lo que comúnmente se conoce como “formulario”. En una Activity se colocan los elementos de la interfaz gráfica.
  • Services: Son lo que comúnmente se conocen como procesos. Estos seguirán corriendo aunque no haya una interfaz gráfica para mostrar la aplicación. Por ejemplo cuando uno tiene un programa para reproducir música y “lo minimiza” se continuará escuchando el sonido ya que se habrá creado un Service encargado de la reproducción de los sonidos.
  • Intents: Es un mecanismo para comunicar a las distintas aplicaciones y Activities. Android esta desarrollado sobre la base de reutilizar código y aplicaciones existentes, es por eso que esta característica es tan importante.
  • Content Providers: Es el mecanismo encargado de administrar la información que se pretende que perdure.
  • Broadcast Recivers: Se utilizan para que una aplicación responda a un determinado evento del sistema. Por ejemplo. se puede utilizar un Broadcast Reciver en un programa para que cuando el teléfono se esté quedando sin batería se muestre un mensaje advirtiendo al usuario sobre su utilización.

Espero que les sea útil y los invito a que dejen comentado sus dudas o sus aportes al post.

Próximamente postearé un tutorial sobre como instalar Android.

Importar proyectos Android desde el SVN o descargados desde otro lado

Como indica el título, me voy a tomar este espacio para explicar cómo es el tema de “revivir” proyectos que tenemos en un servidor y que descargamos con el SVN (Subversion), para los que no saben de qué se trata,  les cuento que es un programa de versionado y que se utiliza para que muchas personas puedan programar sobre el mismo código y saber qué y quién modificó cada cosa para que no haya problemas de inconsistencia en el programa que se está desarrollando, obviamente es una definición rápida y extremadamente ligera. También,  se puede aplicar para proyectos que tienen en sus máquinas y que desean llevarlos a otra, prestarlo a sus amigos o simplemente proyectos que descargaron de algún lado.

Logo de Android

Logo de Android

Bueno, hasta que pude descubrir cómo se hace para abrir proyectos que no fueron creados con el entorno Eclipse (es el IDE que utilizo yo) que estoy utilizando me he vuelto un poco loco. Lamento decir que por algún extraño motivo el plugin de Android para Eclipse no es lo suficientemente bueno (o tal vez usable) como para encargarse de hacer que proyectos externos comiencen a funcionar con tan solo hacer un simple import del mismo.

Aclarado eso, voy a comenzar a explicar.

Conseguir el código

  • Si el código se descarga de Internet o si se los paso alguien o lo consiguieron de algún lado, necesitan ponerlo en una carpeta con el nombre de proyecto que ustedes elijan. Obviamente, cuando uno habla de tener un proyecto, se habla de tener no sólo el código fuente, sino también de la estructura de directorios, imágenes y todas las clases del programa.
  • Si el código se tiene que descargar desde un servidor SVN, se debe realizar de la siguiente manera que detallaré. Dado que uso Eclipse, lo explicaré para dicha IDE y con el SVN instalado. Bueno, deben ir a: Archivo – Import – SVN – Checkout projects from SVN. Una vez allí, seleccionar “Create a new repository location” presionan “siguiente“, seleccionan el proyecto que desean importar y lo colocan en su Workspace. En definitiva, se hace como el checkout de cualquier proyecto.
Imporar desde SVN

Primer paso para importar un proyecto desde SVN

Crear el proyecto Android

Muy bien, ahora ya tenemos el código del proyecto en nuestra computadora, ahora queremos que sea como cualquier proyecto Android que creamos con el Wizard y que podemos ejecutar. Lamentablemente, nos damos cuenta de que no es todo tan mágico.

Tanto si lo importamos desde el SVN o desde otro sitio, veremos que es un proyecto, pero no un proyecto Android. Si bien el ADT nos permite pararnos la raíz de un proyecto (la carpeta que tiene el nombre del proyecto y que contiene todas las carpetas, códigos, imágenes, etcétera) desde el Eclipse, hacer click derecho, ir a la opción Android y seleccionar “convert to Android project”, nos daremos cuenta de que no nos sirve en lo más mínimo y que nos puede traer más problemas de los que intenta solucionar. He perdido invertido como cuatros horas tratando de que ande un proyecto con las herramientas de Android para el Eclipse y aún no lo he logrado.

Es ahora donde entra la magia de este tutorial.

Ya con el código en nuestra PC, debemos crear un proyecto Android con el mismísimo Project Wizard que viene con la SDK de Android. Da igual la información que le demos al Wizard, la terminaremos borrando. En cierta forma,  si ponemos la menor cantidad de información será lo mejor.

Project Wizard de Android

Creación de un proyecto Android con el Project Wizard

¡Felicidades! Ahora ya tenemos un proyecto Android creado, no es el que queremos hacer correr, pero al menos es un Android Project con toda las letras.

Sobrescribir el proyecto deseado con el recién creado

Genial, ahora que ya tenemos el proyecto que queremos utilizar en nuestra máquina y tenemos un proyecto Android nuevo creado, debemos fusionarlos para tener el proyecto deseado funcionando.

Para realizar eso, minimizaremos el Eclipse e iremos a la carpeta del proyecto descargado desde el SVN y que está en nuestro Workspace (o iremos a la carpeta del proyecto que nos pasó nuestro amigo) y copiaremos todo lo que se encuentra allí, es decir:

  • Carpetas (src, res, bin, gen)
  • Android Manifest
  • .project
  • default.properties
  • y toda carpeta o archivo que esté dando vueltas.
Carpetas típicas del proyecto Android

Carpetas y Archivos típicos de un proyecto Android

Una vez copiado todo, nos dirigimos a nuestro Workspace y abrimos la carpeta del proyecto Android que creamos hace unos instantes. Una vez allí, pegamos el proyecto que recién terminamos de copiar, obviamente reemplazamos todos los archivos y carpetas.

Perfecto, ahora nuestro nuevo proyecto Android en verdad es el famoso proyecto que queríamos hacer correr en nuestra computadora.

Limpieza del proyecto

Ahora ya podemos volver a maximizar el Eclipse. Una vez allí refrescamos el proyecto Android que habíamos creado y veremos que aparece todo lo que acabamos de pegar en la carpeta de dicho proyecto.

Es ahora donde debemos borrar todo el vestigio del “proyecto alternativo” que creamos, es decir, tenemos que ir a la carpeta “src” y borrar el paquete que se creo al crear el proyecto alternativo por ejemplo, se llamará “cualquier.cosa.esto” o “unpaquete” dependiendo del nombre que hayamos puesto en el Wizard. El otro archivo que tal vez nos queda por borrar es el que se encuentra en el directorio “res/layout” y que se llama main.xml. Antes de borrarlo ábranlo, y si ven que tiene lineas de código coherentes al proyecto importado no lo borren, ya que la persona que arrancó a desarrollar el proyecto se olvidó de la buena práctica: “Cambiar el nombre del XML que define una Activity“.

Seguir codeando y sincronizando

Muy bien amigos, ya pueden seguir codeando tranquilos su proyecto Android.

Una vez que quieran realizar un commit (subir el código modificado por ustedes al repositorio del proyecto) o cualquier tarea relacionada con SVN deben de haber sincronizado el proyecto con el servidor donde lo tienen subido por lo menos una vez, sí el proyecto que importaron ya se había sincronizado, no deberían configurar nada, pero sí el proyecto nunca se ha subido a un servidor SVN lo deben realizar por primera y única vez. Para realizar esta acción deben hacerlo como con cualquier otro proyecto.

Esperemos que en las próximas versiones se pueda realizar la tarea de importar los proyectos de una mejor manera o por lo menos más usable.

De momento, reportaré de este bug a la gente que está desarrollando el ADT para Eclipse y los mantendré informados sobre el estatus de la situación.

Contador de Truco para Android

Para aquellas personas que no pueden dejar de jugar al Truco o para los que disfrutan los fines de semana con amigos tomando Fernet y jugando a este juego tan argentino, les cuento que se liberó el Contador de Truco para Android.

En esta versión inicial se puede optar por dos modos de vista, una versión clásica con la apariencia de una hoja de papel y la típica anotación con palitos y otra, que brinda el puntaje en forma numérica sobre una tradicional mesa de bar.

Vista clásica con palitos

Vista clásica con palitos

Este programa fue pensado para ser rápido y fácil de usar, sin entrar en complejidades,  opciones o funcionalidades que poco aportan a la agilidad a la hora de anotar el puntaje mientras se disfruta un buen rato con amigos o ¿Por qué no? En un partida acelerada en nuestro lugar de trabajo.

Pero la buena noticia no termina ahí, esta aplicación no sólo es gratuita, sino que es un proyecto de Software Libre (es decir, se puede distribuir, mejorar, modificar y utilizar con cualquier propósito). El código del programa se puede descargar desde la página del proyecto (momentaneamente el código no se encuentra online, próximamente se podrá volver a descargar).

Vista de Bar

Vista de bar

Para descargar la aplicación pueden utilizar el Barcode Scanner y enfocar a este código:

Código del Contador de Truco

Código del Contador de Truco para descargarlo

También pueden buscar en el Android Market como “Contador de Truco” (es su nombre) o buscando la palabra “Truco” aparecerá en los resultados como Contador de Truco. La aplicación está disponible para todos los celulares con Android desde 1.5 en adelante y con soporte para todas las pantallas.

Por último, para las próximas versiones se espera:

  • Contar puntos con porotos.
  • Cambios en la interfaz gráfica.
  • Cronómetro.