miércoles, 27 de febrero de 2008

Yo me ofusco, tú te ofuscas, él...

La primera version de la mascota no tenia el código ofuscado. ¿Y esto que es? Viene a ser complicar el código para hacerlo practicamente ilegible.
Hay varios ofuscadores de código, pero el más famoso es proguard.
La mayoría de los entornos de desarrollo para J2ME permiten su uso en nuestras aplicaciones y especificamente NetBeans Mobile lo trae embebido y no necesita configuración alguna.
¿Para qué ofuscar? Puede que parezca que no sirva para nada 'complicar' (para el ojo humano) el código, pues siempre queremos que sea lo más legible posible. Bueno, pues es que ofuscar sería una tarea a realizar al empaquetar una versión de nuestro software.
Cuando el código no está ofuscado, para saber qué contiene un JAR basta con descomprimirlo con cualquier programa y buscar las clases que contiene.
Por ejemplo el codigo:
int contador = 0;
while (contador == 0) {
BaseDeDatos.insertar(alumno);
}

Cuando ofuscamos, el código toma la pinta:
int a = 0;
while (a == 0) {
b.c(d);
}

Facilmente nos damos cuenta que el codigo se complica sobremanera. Una ventaja importantisima es que vamos a poder reducir el tamaño de nuestras aplicaciones sobre un 20 y un 30%.
Centrandonos en móviles, viene a ser una gran ventaja.
Por ejemplo: WirePET ocupo 87 Kb sin ofuscarse. Esto impedía que pudiésemos instalar el juego en cualquier móvil que no permitiene aplicaciones de más de 64 Kb.
Pues bien, al ofuscar conseguimos que la aplicacion bajase hasta los 62 Kb permitiendo acceder a este conjunto de móviles.
Interesante ¿no?

Pues ya sabes, ofuscate todo lo que puedas, menos con las personas cercanas :)

No hay comentarios: