tus camisetas frikis en camisetafriki.com

Archive

Author Archive

Megacomparativa 8 tabletas

March 14th, 2011 No comments

Cogiendo un par de imágenes de skattertech.com he confeccionado esta lista con los 8 tablets principales que están por salir:
-Samsung Galaxy Tab 10.1
-Apple iPad 2
-HP Touchbook
-LG G-Slate
-Blackberry Playbook
-Dell Streak
-iPad
-Motorola Xoom

Categories: Android, Tecnología Tags: ,

Mock Locations, mi primera aplicación Android

March 8th, 2011 3 comments

Al final he conseguido aprender Android y desarrollar mi propia aplicación para lanzar en la tienda de aplicaciones, cuya finalidad es poder probar otras aplicaciones que necesiten geolocalización, ya que lo principal función de mi herramienta es simular la posición del GPS para que las aplicaciones crean que estás donde tu quieras, y no sólo posiciones estáticas, sino que además puedes simular una ruta que cambie de posición a lo largo de sus puntos a intervalos, y éstas rutas pueden ser tanto buscadas al momento empleando el cálculo de rutas de Google Maps como guardando archivos KML en la tarjeta de memoria y cargándolas desde la aplicación.

Algunos malhechores también pueden usarla para engañar a foursquare o Google Places haciéndoles creer que están en otro lugar o engañar a la pareja/familia si éstos comparten su ubicación por Google Latitude ;)

La aplicación tiene anuncios de AdMob pero planeo sacar una versión de pago sin anuncios a ver que tal se da, pero al ser una aplicación más pensada para desarrolladores no tiene mucho público objetivo.

Os dejo una captura y espero que la disfrutéis!

INSTALAR

mock locations screenshot

Categories: Android Tags:

Nokia se pasa a Android, finalmente

December 28th, 2010 No comments


Pues si, al final los directivos de Nokia, ante los pésimos resultados que ha tenido este año, en el cual Apple y Android se han hecho con la mayor parte del mercado de sistemas operativos móviles y que además, tras la renuncia de varios directivos y que además ha tenido que recortar 800 puestos de trabajo en Finlandia, se han decantado por cambiar de sistema operativo y abandonar MeeGo en virtud de Android, lo que supondrá un ahorro en desarrollo de un 30% y que permitiría a Nokia disfrutar de un mercado de aplicaciones ya maduro y bastante poblado y casi inmediatamente, para ello, Nokia ha lanzado un comunicado de prensa ayer, en el que anunciaba por sorpresa el primer terminal con Android, y para no ser menos, ya trae de fábrica Gingerbread (Android 2.3) como podemos ver en el siguiente vídeo:

Esperamos que con este movimiento, Nokia recupere parte del mercado en terminales de gama alta ya que como sabemos, son los mejores haciendo hardware pero se estaban quedando atrás en cuanto a software.
Bien por Nokia!

Actualización: Bueno como os imaginaríais, esto era una inocentada del 28 de diciembre, pero esperemos que suceda algún día!

Categories: Android, Tecnología Tags:

Android dev: Abrir Google Navigation mediante Intent

December 23rd, 2010 4 comments

Un snippet muy práctico, para abrir Google Navigation con el destino que nosotros queramos, desde nuestra ubicación actual, con indicaciones habladas, vista oblicua e información del tráfico, mediante un intent:

1
2
3
4
5
//point es del tipo GeoPoint
String location = (point.getLatitudeE6()/1E6)+","+(point.getLongitudeE6()/1E6);
Intent i = new Intent(Intent.ACTION_VIEW,
Uri.parse("google.navigation:q="+location));
context.startActivity(i);

Google Navigation

Categories: Android, Programacion Tags: ,

Esto con Android no pasa!

December 14th, 2010 No comments

Esto con Android no pasa
Miniactualización!

He creado en Facebook una página donde voy colgando enlaces a noticias, aplicaciones, imágenes divertidas, etc. sobre móviles en general y Android en concreto. La coña surgió como siempre comparando las características de iPhone y las del Nexus One, y de vez en cuando salía la frase “esto con Android no pasa!” refiriéndome a determinadas cosas que pasan en iOS y no pasan en Android.

La puedes encontrar aquí:
Esto con Android no pasa

Categories: Android, Tecnología Tags: ,

Revisión de propósitos de 2010

December 3rd, 2010 No comments

PropositosA principios de este año hice una lista de buenos propósitos de esos que se prometen cada año y que luego, al final, no se cumplen, ni se recuerdan, ni se comprometen, ni nada, pero cómo siempre hay una primera vez, quiero hacer una revisión de esos propósitos porque resulta que este año si que he cumplido con la mayoría de ellos, quiero hacerles una revisión. El post original es este.

Propósito 1: Perder peso; pues sí, este año he perdido entre 10 y 12 kilos de peso a base de comer menos y más saludable porque ejercicio no es que haya hecho mucho, salvo éste último trimestre que me apunté a un gimnasio para no estar fofo, más que para perder peso, y es que al final es más importante una dieta saludable que matarse a ejercicio todos los días.

Propósito 2: Certificarme en .Net; Terminé el curso y aún no me he presentado ni al primer examen, así que aquí fail, para el nuevo año me pondré fechas y trataré de cumplirlas. Lo malo es que como en la empresa dejé de trabajar con .Net, no puedo poner en práctica lo aprendido.

Propósito 3: Proyectos personales (en concreto Geoturista y Readcomicsonline); aqui suspenso, siempre salen ideas nuevas, escaso tiempo, o cualquier excusa para no avanzar este tipo de proyectos que se van postergando indefinidamente…

Propósito 4: Irme de viaje a Irlanda; bueno este a medias, porque cambié Irlanda por 15 días en Bristol en un curso intensivo de inglés y la verdad es que me lo pasé genial y conocí muy buena gente y aún mantengo contacto con algunas personas. Recomendado!

Propósito 5: Aprender a programar para iPhone y Android; a medias también, de Android he aprendido gracias a un par de proyectos en la empresa, de iPhone aún no se nada pese a tener un Mac y un iPad para trabajar… fail!

Propósito 6: Empezar un blog sobre realidad aumentada; si, lo empecé, pero no lo actualizo muy amenudo, lo puedes encontrar en http://ar.forgottenprojects.com

Propósito 7: Seguir vendiendo camisetas en www.camisetafriki.com; conseguido, hasta la fecha 87 productos vendidos, más de 250€ en ganancias y casi 35.000 visitas, se puede decir que para ser un hobby no ha ido mal!

Y para resumir, también he conocido un montón de gente, sobre todo gracias a twitter y los eventos que se organizan, cambiarme a un piso más céntrico también a contribuido a mejorar notablemente mi vida social en Madrid (y aplazar los proyectos ad infinitum)

Categories: La nueva vida, Personal Tags:

Los programadores de Android son unos cachondos

October 29th, 2010 1 comment

android death star
No hay mas que ver la cantidad de detalles curiosos de la documentación oficial, como por ejemplo, constantes definidas con la gravedad de los planetas, la estrella de la muerte y la isla de Lost (que no podía ser otra que 4.815162342).

Además, he metido la gamba con una libreria y al reconstruir el proyecto me sale el siguiente mensaje intimidatorio, que indica que algo no estoy haciendo bien, y que si es algo intencionado, la aplicación fallará y seré culpado, acusado y me llevará al dolor, sufrimiento, pena y lamento…

Attempt to include a core class (java.* or javax.*) in something other
than a core library. It is likely that you have attempted to include
in an application the core library (or a part thereof) from a desktop
virtual machine. This will most assuredly not work. At a minimum, it
jeopardizes the compatibility of your app
with future versions of the
platform. It is also often of questionable legality.

If you really intend to build a core library -- which is only
appropriate as part of creating a full virtual machine distribution,
as opposed to compiling an application -- then use the
"--core-library" option to suppress this error message.

If you go ahead and use "--core-library" but are in fact building an
application, then be forewarned that your application will still fail
to build or run, at some point. Please be prepared for angry customers
who find, for example, that your application ceases to function once
they upgrade their operating system. You will be to blame for this
problem.

If you are legitimately using some code that happens to be in a core
package, then the easiest safe alternative you have is to repackage
that code. That is, move the classes in question into your own package
namespace. This means that they will never be in conflict with core
system classes. If you find that you cannot do this, then that is an
indication that the path you are on will ultimately lead to pain,
suffering, grief, and lamentation.

Categories: Android, Freaks, Programacion Tags: ,

Android: Formas de manejar un evento

August 24th, 2010 1 comment

Escribo esto casi como un recordatorio de las posibles formas de manejar eventos en Android, pongo por caso cómo manejar los eventos OnClick de un botón:

Inline:

1
2
3
4
5
this.btnCalcular.setOnClickListener(new View.OnClickListener() {
      public void onClick(View v) {
       	calcularRuta();
      }
});

Con un delegado:

1
2
3
4
5
6
7
8
9
private OnClickListener btnMyLocation_OnClick = new OnClickListener() {		
	@Override
	public void onClick(View v) {
		// Desde aquí no tenemos acceso a la clase 
		// así que podemos llamar a una método de 
		// la clase para modificarla			
	}
};
this.btnMyLocation.setOnClickListener(this.btnMyLocation_OnClick);

Implementando OnClickListener como una interfaz (esta opción no permitiría manejar eventos OnClick diferenetes salvo que hagamos un switch del View en la función OnClick para identificarlo):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class ExampleActivity extends Activity implements OnClickListener {
    protected void onCreate(Bundle savedValues) {
        ...
        Button button = (Button)findViewById(R.id.corky);
        button.setOnClickListener(this);
    }
 
    // Implement the OnClickListener callback
    public void onClick(View v) {
      switch(v.getId())
      {
          case(R.id.corky):
          ...
      }
    }
    ...
}

En el XML del layout:

1
2
3
4
<Button
android:onClick="metodo"
... 
/>
1
2
3
4
public void metodo(View v)
{
   //hacer algo
}

(fuente: http://developer.android.com/guide/topics/ui/ui-events.html)

Categories: Android, Programacion Tags:

Android: Cambiar el color de un botón sin alterar su comportamiento

August 23rd, 2010 2 comments

Últimamente ando con temas de Android en el curro y estoy aprendiendo un montón, tanto que tengo pensados unas serie de posts sobre Android donde contaré cómo hacer aquellas cosas que no están demasiado bien explicadas en la documentación, o que hay que investigar un poco para conseguir hacerlas.

Como aún sigo trasteando, voy a empezar con una entrada cortita.

En este caso queremos pintar un botón de un color que no sea el del tema que estemos usando pero no queremos coger el photoshop y currarnos un botón bonito y sombreado desde cero y todos sus estados de seleccionado, pulsado, etc. solo para cambiarle el color, así que tiraremos de una función muy sencilla integrada en Android que consiste en aplicarle un filtro de color alpha al botón en cuestión partiendo de la base del típico botón gris:

boton coloreado

Para lograr esto sólo tenemos que aplicar esta línea:

1
button.getBackground().setColorFilter(0xFFFF0000, PorterDuff.Mode.MULTIPLY);

Siendo 0xFFFF0000 el color en formato ARGB que queremos aplicar, en este caso, rojo.

Es muy interesante poder aplicar este tipo de filtros porque nos permite hacer un montón de efectos sobre los controles predefinidos en Android. Esta técnica no es exclusiva de Android, sino que también es muy usada en Photoshop para cambiar colores por ejemplo.

Aquí una tablita con las operaciones que se pueden hacer (no se si Android soporta todas)
alpha composition

(fuente: Stack Overflow)

Categories: Android, Programacion Tags:

Empezando con PhoneGap + Windows

July 28th, 2010 38 comments

En la Campus Party 2010 he asistido a una charla de espresso-team relacionada con aplicaciones web para móviles que se ejecutan como si fueran nativas. En este ámbito PhoneGap se lleva la palma y dado que las instrucciones de la web no son todo lo aclaratorias que deberían ser, voy a a indicar algunos consejos que me han ayudado a compilar el .jar con las librerías y a crear el proyecto de prueba:

Pasos:

1. Instalar el Java JDK:
http://java.sun.com/javase/downloads/index.jsp

2. Instalar Eclipse:
http://www.eclipse.org/downloads/ (extraer en algún sitio)

3. Instalar Android SDK:
http://developer.android.com/sdk/index.html (descomprimir en alguna ruta sin espacios, ej e:\android-sdk)
Importante para evitar dolores de cabeza después, añadir a la variable de entorno PATH la ruta hasta la carpeta del SDK (ej e:\android-sdk) y a la carpeta tools (ej. e:\android-sdk\tools)

4. Instalar el plugin ADT para Eclipse:
http://developer.android.com/sdk/eclipse-adt.html

5. Añadir componentes del SDK:
http://developer.android.com/sdk/adding-components.html

Si hay alguna duda hasta aquí, es como seguir la guía de Android para desarrolladores: http://developer.android.com/sdk/index.html

6. Instalar Apache ANT:
http://ant.apache.org/index.html (descomprimir en una carpeta sin espacios ej. e:\apache-ant)
IMPORTANTE: Crear dos variables de entorno, JAVA_HOME con la ruta al java_sdk (ej. C:\Program Files (x86)\Java\jdk1.6.0_20) y ANT_HOME con la ruta a la carpeta de ANT (ej. e:\apache-ant), además, añadir la ruta al /bin de ANT al PATH (ej. e:\apache-ant\bin)

7. Instalar ruby
Con instalador: http://rubyinstaller.org/

8. Instalar PhoneGap:
Hay dos opciones, instalar un cliente de github y bajárselo con él, o descargarte la última versión a mano de http://github.com/phonegap/phonegap-android (descomprimir en una carpeta)

9. Correr el comando mágico que creará tu .jar y el proyecto de ejemplo:
Dentro de la carpeta de phonegap-android:
ruby ./droidgap [ruta al android sdk] [nombre aplicacion] [nombre del package] [ruta al www] [ruta al proyecto de prueba]

dónde:
[ruta al android sdk] = ruta donde has descomprimido el SDK de android
[nombre aplicacion] = el que quieras, será el nombre de la aplicación
[nombre del package] = el que quieras, será el nombre del paquete
[ruta al www] = ruta donde están las fuentes html, que si no tienes, puedes poner la carpeta example de phonegap-android
[ruta al proyecto de prueba] = carpeta donde se creará el proyecto para abrir con Eclipse

En mi caso:
ruby ./droidgap e:\\Android\\android-sdk-windows test com.forgotten example/ e:\\Android\\proyectos\\phonegap1

10. Abrir Eclipse, crear un nuevo proyecto Android e indicar que lo queremos crear a partir de un código fuente existente, que será el que hemos indicado en [ruta al proyecto de prueba]

11. En el árbol de ficheros, clic derecho en libs/phonegap.jar > Build path > Add to build path

12. Clic derecho en la carpeta del proyecto dentro de Ecplise > Run As > Android Aplication.
Debes tener configurado un AVD compatible con el build target indicado en el manifest.xml.
Para más info sobre esto mejor ver el quick start de http://developers.android.com

Posibles errores:
./droidgap:37:in “’: No such file or directory – ant jar (Errno::ENOENT)
Solución, añadir la ruta de ANT a la variable de entorno PATH.

./droidgap:49:in “’: No such file or directory – android create project
Solución, añadir la ruta a las tools de Android SDK a la variable de entorno PATH.

Esto me ha llevado un montón conseguirlo por no leer las cosas, así que espero que sirva de ayuda

Categories: Programacion Tags: ,