viernes, 6 de enero de 2012

MDPS LINGO



MDPS LINGO es un juego para tu móvil Android que la puedes obtener gratuitamente desde el siguiente enlace:MDPS LINGO en Google Market
MDPS Lingo es como un Mastermind de letras. En lugar de colores tendrás que adivinar la palabra puesta por tu rival con la ayuda de las posiciones de las letras adivinadas.
Elige rival y ponle una palabra para que adivine.
Él tendrá que poner otra palabra para que tu la adivines.
Cuanto antes la adivines, si consigues adivinarla más puntuación.

Tienes que adivinar la palabra que te ha puesto tu rival.
Tienes 5 oportunidades.
Si adivinas una letra y su posición tendrá la apariencia de la primera letra.
-Si adivinas una letra pero no su posición tendra la apariencia de la primera letra pero en rojo.
-Si la letra no está en la palabra a adivinar aparecerá como un carácter normal.

Solo puedes escribir una palabra inexistente.
Si esto ocurre aparecerá una calavera y podrás poner ninguna palabra inexistente más.
Si lo hicieras no podrías continuar adivinando la palabra.
Las palabras inventadas no puntúan.
Cuanto antes adivines la palabra más puntos obtendrás.
Si terminas antes que tu rival tendrás que esperar su respuesta.
La partida aparecerá en la lista de Esperando.
Si no, aparecerá el resultado del duelo en la pantalla.
Puedes rendirte dando a la bandera blanca.
Puedes adivinar palabras en inglés o en español.

Puedes jugar a esta versión durante 30 días, si quieres hacerlo cuando quieras descárgate la versión donación.

Si quieres jugar sin limite de tiempo:
MDPS LINGO Donación en Google Market

lunes, 19 de diciembre de 2011

Mi Vino


Mi Vino es una aplicación para tu móvil Android que la puedes obtener gratuitamente desde el siguiente enlace:Mi Vino en Google Market
Administra tus vinos favoritos con Mi Vino.
Graba toda la información sobre el vino, cosecha, uvas, tipo de vino, bodega, denominación de origen, etc.
Además, puedes hacer una foto de la botella del vino y grabarla asociándola a la ficha.
¿Qué estás probando un vino que te gusta mucho y luego lo quieres comprar en el supermercado?
¿Qúe estás en casa de unos amigos y te sacan esa botella maravillosa que tenían guardada para una ocasión especial?
¿Qué estás de visita en una bodega y te dan a catar la estrella de sus vinos?
¿Qué estás en un restaurante y pruebas un vino sensacional?
¿Qué siempre que hablas de un vino muy rico que probaste una vez no te acuerdas ni de como era la botella?

Para estas situaciones y muchas más quedátelo en Mi Vino.

Y si quieres tener más funcionalidad y ordenar y filtrar los vinos por diferentes criterios y además colaborar con el desarrollo gratuito de apps, descargarte la versión donación:
Mi Vino Donación en Google Market

jueves, 1 de diciembre de 2011

Fuerteventura

Fotos de Oporto


Fuerteventura como su propio nombre indica donde sopla fuerte el viento. Conocida por sus espectaculares playas, no sólo es eso lo que nos ofrece. Paisajes volcánicos, dunas interminables, atardeceres rojizos, una gran gastronomía compuesta de los más variados pescados, su queso de cabra majorero, etc. Visitar la vecina isla de Lobos perfectamente acondicionada para pasear por sus múltiples senderos nos hará sentir que aún quedan lugares prácticamente vírgenes en el planeta. Fuerteventura es un remanso de paz en mitad del oceáno donde la naturaleza nos obsequia con unas maravillosas instantáneas... Haz click en la foto para ver más.

domingo, 13 de noviembre de 2011

My Trip


My Trip es una aplicación para tu móvil Android que la puedes obtener gratuitamente desde el siguiente enlace:

Con My Trip podrás ver tus viajes con tus amigos en tiempo real. Selecciona un destino e invita a quien quieras que vaya a hacer el mismo viaje que tú y observa la posición de cada uno en el mapa. Puedes hablar con ellos y decirles todo lo que consideres importante sobre el viaje. Diles que ya has llegado o mira cuando alguno empieza el viaje, sus velocidades, si ya han salido, si han llegado, si han parado, etc.
Cuando utilizar My Trip:
- Vas a hacer un viaje con tus amigos y cada uno parte de diferentes lugares.
- Vas al trabajo y quieres saber alguien que hace una ruta parecida esta en un atasco o va bien.
- Dile a quien quieras que lo sepa que ya has llegado a tu destino.

jueves, 10 de noviembre de 2011

Servicios en Android con interfaces remotas

Aunque existen multitud de foros de programación en donde se explica de todo y este blog va en otra línea voy a intentar explicar con un ejemplo sencillo sin entrar demasiado en la explicación del código algo de lo que me ha costado encontrar información en condiciones al respecto (aunque seguro que la hay), y así de paso pongo mi granito de arena en el asunto.
Se trata del uso de servicios en Android con interfaces remotas. Muchas veces necesitamos que algún proceso se ejecute en background y procese cierta información y el servicio pida y ofrezca información a la Activity llamante. Ejecutar servicios en background no tiene ningún misterio, pero el hecho de pasar información entre la activity y el servicio para mi hasta hace bien poco si que lo tenía y ahí es donde entran en juego las interfaces remotas.
Nuestro ejemplo consistirá en una activity que ejecutará un servicio que busque en un servidor el último mensaje disponible para un usuario determinado. Para ello el servicio necesitará la información del usuario que se lo proporcionará la Activity y una vez que el servicio obtenga dicha información se la pasará a la Activity que la mostrará en pantalla.
Inicialmente debermos definir las interfaces remotas. Una interfaz remota representa un mecanismo mediante el cual dos procesos separados
pueden utilizar métodos declarados en el otro proceso. Cada uno de los extremos
desconoce la implementación del otro, simplemente conoce a través de una interfaz qué
métodos se ofrecen, pudiendo utilizarlos como si de cualquier otra clase local se tratase.
Utilizaremos el lenguaje AIDL (Android Interface Definition Language). Eclipse se encargará de generar las clases automáticamente aunque deberemos lógicamente implementar los métodos definidos en las interfaces. Este código deberá ser guardado en ficheros .aidl

Este sería el código de la interfaz que llamaremos IRemoteCallback:


package com.mdps;

interface IRemoteCallback {

String getUsuario();
void postMensaje(String data);

}



Nuestro servicio también ha de ofrecer otros métodos remotos que
permitan a nuestra Activity pasarle un instancia de su interfaz remota con la que pueda
invocar a sus métodos, es decir, hacer lo que se denomina callback. El servicio deberá
implementar, pues, los siguientes métodos remotos:

register(): guarda un objeto de la interfaz remota.
unRegister(): elimina un objeto de la interfaz remota.


package com.mdps;
import com.mdps.IRemoteCallback;
interface IRemoteRegister {

void register(IRemoteCallback regService);
void unRegister(IRemoteCallback regService);
}


Una vez definidas las interfaces procedemos a su implementación. En nuestra Activity MostrarMensaje implementaremos:

private RemoteServiceConnectionActualizarMensajes mConnectionActualizarMensajes;
private IRemoteRegister mServiceActualizarMensajes = null;
private IRemoteCallback.Stub mCallbackActualizarMensajes = new IRemoteCallback.Stub() {
public String getUsuario() {
return usuario;
}

public void postMensaje(String data) {
mensaje = data;
}

};

class RemoteServiceConnection implements
ServiceConnection {
public void onServiceConnected(ComponentName className, IBinder service) {
// Obtener instacia gracias al stub
mServiceActualizarMensajes = IRemoteRegister.Stub
.asInterface(service);

// Hacer llamada remota: registrar instancia de IRemoteCallback
try {
mServiceActualizarMensajes
.register(mCallbackActualizarMensajes);
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

public void onServiceDisconnected(ComponentName className) {
mServiceActualizarMensajes = null;
}
};


En el onCreate de nuestra Activity invocaremos el servicio en el momento que nos interese:

// Vincular el Service y la Activity actual
if (mConnectionActualizarMensajes == null) {
mConnectionActualizarMensajes = new RemoteServiceConnection();

Intent i = new Intent();
i.setClassName("com.mdps", "com.mdps.ServicioObtenerMensajes");
bindService(i, mConnectionActualizarMensajes,
Context.BIND_AUTO_CREATE);
Log.d(getClass().getSimpleName(), "bindService()");
// Lanzar Service
this.startService(i);
}

Ya tenemos definidos en nuestra activity los métodos necesarios y hemos realizado la invocación del servicio. Ahora toca el turno del código que deberemos implementar en el servicio. En el servicio deberemos implementar los metodos register y unregister
definidos en la interfaz IRemoteRegister. Este servicio será un Thread que en el caso del ejemplo se estará ejecutando continuamente cada minuto.

public class ServicioObtenerMensajes extends Service
{
public static Activity ACTIVIDAD;
// temporizador de conexión
private int mTime = 60000;

Runnable mTask = new Runnable() {
public void run()
{
Context contexto = getApplicationContext();

// Mientras dure el Service
while (true){
// Activar mCallbacks
mCallbacks.beginBroadcast();

try{
String usuario = mCallbacks.getBroadcastItem(0).getUsuario();

// A continuación se implementaría la llamada al servidor para
// obtener la información del ultimo mensaje asociado al usuario // obtenido

String ultimoMensaje = llamadaServidor();

mCallbacks.getBroadcastItem(0).postMensaje(ultimoMensaje);

} catch (Exception e) {
e.printStackTrace();
}
// Desactivar mCallbacks
mCallbacks.finishBroadcast();
// Dormir el hilo
try {
Thread.sleep(mTime);


} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
};


public Thread mThread = new Thread(mTask);

@Override
public void onCreate() {
super.onCreate();
mThread.start();
}




private RemoteCallbackList<IRemoteCallback> mCallbacks =
new RemoteCallbackList<IRemoteCallback>();
private IRemoteRegister.Stub mRegister = new IRemoteRegister.Stub(){
public void register(IRemoteCallback interfac) {
// Guardar interfaz remota
if (interfac!= null) mCallbacks.register(interfac);
}


public void unRegister(IRemoteCallback interfac) {
// Eliminar interfaz remota
if (interfac!= null) mCallbacks.unregister(interfac);
}
};




@Override
public IBinder onBind(Intent intent) {
return mRegister;
}


}



Resumiendo el funcionamiento en conjunto sería.
Nuestra activity en un momento dado lanza el servicio ServicioObtenerMensaje que será un Thread que se ejecutará indefinidamente.
Al comenzar solicita a la activity mediante el método getUsuario el usuario para el que quiere obtener el mensaje.
Realizará la llamada al servidor donde se procesará la información.
Mientras tanto la activity ha continuado con su ejecución y en el momento en que el servicio disponga del mensaje se lo notificará a mediante el método postMensaje implementado en la Activity. Una vez esta información esté disponible se mostrará por pantalla (este código no aparece).









martes, 25 de octubre de 2011

Libros bilingües

Dualbooks

Buceando por la red hemos encontrado una manera muy interesante y amena de aprender inglés y leer literatura al mismo tiempo. Se trata de libros que tienen una pagina escrita en inglés y la de al lado su traducción al castellano párrafo a párrafo. Son grandes clásicos de la literatura, títulos muy conocidos como Alicia en el país de las Maravillas, el retrato de Dorian Gray, la isla del Tesoro, etc.

Se llaman Dualbooks y tienen una tienda virtual en la que podrás encontrar toda la información que necesites.

jueves, 13 de octubre de 2011

Buscador Ticket Restaurant







Busca Ticket Restaurant es una aplicación para tu móvil Android que la puedes obtener gratuitamente desde el siguiente enlace:
Buscador Ticket Restaurant en Google Market

Existe una versíón donación que puedes descargar desde el siguiente enlace:
Buscador Ticket Restaurant Donación en Google Market

Ya sois muchos los que tenéis un móvil con Android (o conocéis a gente que lo tenga), por lo que os presento una nueva aplicación llamada Busca Ticket Restaurant. Con esta aplicación podréis buscar los restaurantes que acepten tickets restaurant más próximos a donde estéis, a un lugar determinado, o buscar un restaurante concreto. Pero no os preocupéis los que no tengais tickets, puesto que para vosotros también es muy útil. Son muchas las cadenas de restaurantes que aceptan tickets como Vips, Ginos, Burger King, Mc Donalds, etc, así que si algún día quieres saber cuales son los Telepizzas más cercanos a donde estés y quieres llamar para pedir una pizza, lo puedes hacer desde la aplicación o si por ejemplo te apetece un Doner Kebab y no sabes donde encontrar uno pues más de lo mismo. Otra situación interesante es que quieras ir a comer por ejemplo a un egipcio en Madrid y quieras encontrar alguno para reservar, o que tengas una reunión en algún sitio y quieras encontrar los restaurantes de la zona que admiten los tickets...en fin cualquier situación de este tipo.

Aquí tenéis una descripción mas exhaustiva de la aplicación:
Disponemos de 4 botones sobre el mapa en la aplicación.
·El botón de configuración que permitirá configurar los siguientes parámetros:
-El número de resultados a mostrar. En la versión gratuita este parámetro no será modificable y tendrá el valor de 3.
-El radio de acción de la búsqueda. En la versión gratuita este parámetro no será modificable y buscará en 2 kms a la redonda.
-El tipo de comida ofrecida por el restaurante.
-Si el restaurante acepta tickets o tarjeta restaurant. En la versión gratuita este parámetro no será modificable y tendrá el valor de papel.
·El botón de búsqueda que tendrá formas de buscar establecimientos pulsando sobre el icono de la lupa:
- Mi ubicación. Seleccionándolo obtendremos los establecimientos más cercanos a nuestra ubicación.
Ej: Estoy en el trabajo y quiero saber cuales son los restaurantes que admiten cheques más próximos.

- Dirección. Especificando una dirección obtendremos los establecimientos más próximos a dicha dirección. Si se especifica un nombre de ciudad únicamente, se obtendrán los establecimientos del centro de dicha localidad en caso de haberlos.
Ej: Voy a ir a la Gran Via en Madrid y quiero saber los restaurantes que admiten cheques más próximos. Selecciono Dirección y escribo en el texto búsqueda Gran Via, Madrid.

- Palabras clave. Utilizaremos está búsqueda por ejemplo para obtener los establecimientos cuyo nombre contenga la/s palabra/s especificadas.
Ej: Quiero ir a un Vips, selecciono palabras clave y escribo en el texto búsqueda Vips.

NOTA, en todos los casos la versión gratuita sólo aparecerán como máximo 3 establecimientos y que estén en un radio de 2 kms.

·El botón de modo texto que servirá para obtener un listado con los restaurantes encontrados.
Una vez obtenido el listado si pulsamos sobre uno de ellos aparecerá la opción o bien de mostrarlo en el mapa o bien de llamar al establecimiento por ejemplo para realizar una reserva.

·El botón de vista satélite que permitirá alternar entre modo mapa y modo satélite.

jueves, 16 de junio de 2011

Eclipse total de luna 15 de Junio 2011

¡Qué mejor manera de celebrar la entrada número 50 de este blog que comentando el espectacular eclipse total de luna vivido anoche! A pesar de observarlo en un lugar con cierta oscuridad, costó que nos diéramos cuenta de la presencia tenue de la luna en el cielo, ya que cuando la luna salió la tierra ya se había interpuesto completamente entre ella y el sol. Esas tonalidades rojizas en la penumbra quedarán grabadas en nuestras retinas por mucho tiempo. Contemplar un suceso de este tipo bien merece la pena la parafernalia que hay que montar de trípodes, telescopio, prismáticos y cámara de fotos para observarlo desde todas las perspectivas.
Y cuando el sol empezó a iluminar poco a poco la luna, las diferentes tonalidades de colores y sombras dejaban embelesados a todos los que observaban el espectáculo. Así pasaban los minutos hasta que la luna quedó nuevamente iluminada por completo, tan iluminada que deslumbraba. Habrá que esperar hasta 2018 para vivir algo semejante, ¡ayer pudimos disfrutarlo!

eclipse luna 15 junio
eclipse luna 15 junio
eclipse luna 15 junio
eclipse luna 15 junio
eclipse luna 15 junio

viernes, 20 de mayo de 2011

Infopolenes

info polen


Infopolenes es una aplicación para tu móvil Android que la puedes obtener gratuitamente desde el siguiente enlace:
Infopolenes en Google Market

Infopolenes ayuda a la gente con problemas alérgicos a conocer los valores publicados de gramíneas, arizonicas, platanus y olivo de estaciones de medición de diferentes localidades. Además se pueden consultar los valores de las 2 últimas semanas para cada uno de ellos en forma de gráfica para observar su evolución.

Con Infopolenes obtendrás los últimos datos on-line, para ello se requiere conexión a Internet.
Esta versión tiene funcionalidad completa. Si te parece útil colabora con un simple click en la publicidad para el mantenimiento y desarrollo de nuevas aplicaciones.

miércoles, 11 de mayo de 2011

Infolluvia

Info lluvia

Infolluvia es una aplicación para tu móvil Android que la puedes obtener gratuitamente desde el siguiente enlace:
Infolluvia en Google Market

¿Qúé te vas de viaje y quieres saber si está lloviendo por donde vas a ir?
¿Qué estás en la playa y no sabes si se acerca tormenta?
¿Qué simplemente quieres saber si está lloviendo, si parará en breve o si la cosa tiene mala pinta?

Con Infolluvia obtendrás los últimos datos procedentes de Aemet on-line, así como una animación de la evolución y desplazamiento de las lluvias en las últimas 12 horas, para todo ello se requiere conexión a Internet.
Creative Commons License
LoloSil-La Rosa de los Vientos es una idea original de MDPS - This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License