Thursday, November 20, 2008

Search source code

Usually i have to search some of source code,whatever, i saw today this post talking about his top 10 of source code searchers

http://www.cavdar.net/2008/08/01/my-top-10-source-code-search-engines/

writed down!

Code Documentation

It's time to clean up my code, there are some links to guide me to the best practices in the Source Code Documentation


-Oficial javadoc documentation
http://java.sun.com/j2se/javadoc/writingdoccomments/

-Another english javadoc how to.
http://open.ncsu.edu/se/tutorials/javadoc/

-A spanish javadoc documentation
http://www.lab.dit.upm.es/~lprg/material/apuntes/doc/doc.htm

-A spanish programmers tell us how to doc.
http://www.galeon.com/neoprogramadores/howdocod.htm

Sunday, November 16, 2008

Thursday, October 30, 2008

Apps without borders

Una de las politicas de las aplicaciones para aplicaciones en android, para mi muy acertada, es la de traer internet al mundo real. Usar el movil juntando servicios que existen en la red pero dandole un uso fuera de la silla, escritorio y monitor.

Este es un video explicativo de ingenieros de android.

Monday, October 27, 2008

Acabando Implementacion

Hagamos un recuento de cosillas que toca iCua:

- Layout independiente horizontal vertical segun se gire el dispositivo.
- Escaneo de la SDCARD en busca de mp3, donde se registran artistas, albums y canciones
- Portadas y fotos de artisatas.
- poder reporducir playlist aleatoria, por autor, por album o playlist propia.
- MediaPlayer en servicio para poder navegar por el movil
- Streaming de fichero perfecto
- Streaming verdadero implementado, no soportado por android, no se ha podido mejorar con lo que hay disponible. He decidido no tocar codigo nativo. Pega algun salto
- Streaming verdadero con lastfm. Radios
- Radio por artistas similares a...
- Radio por estilos de musica
- Guardar cancion de la Radio y añadirla a la libreria
- Estadisticas de reporduccion sobre LASTFM tanto radio como ficheros de la libreria.

Estos puntos estan implementados, para la release 1.0, algunos falta integrarlos en el programa principal

Tareas que quedan:

- Pulir la integración de los puntos anteriores
- Streaming de dispositivo a dispositivo( una vez conseguido el de radio no esta tan lejos)
- añadir efectos y animaciones a los layouts

Saturday, October 25, 2008

Links para no perder

Uso del Emulador y limitaciones
http://code.google.com/android/reference/emulator.html#connecting

API lastfm
http://www.lastfm.es/user/dahnielson/journal/2007/08/07/8nrm_last.fm_radio_protocol
http://www.lastfm.es/api/mobileauth
http://tutorialninjas.net/2007/01/31/lastfm-audioscrobbler-the-social-music-revolution/
http://swik.net/Last.fm/Plugin+API

Component HorizontalSlider
http://www.helloandroid.com/node/250?page=0%2C1

Thursday, October 23, 2008

Internet access android

Llevaba algun tiempo con fallos en las descargas de las caratulas e imagenes de los artistas, no sabia muy bien por que razón sucedia.

java.net.SocketException: unknown error

Esta era la excepcion que saltaba al lanzar el código del post anterior.

Pues bien, Android a partir de la Beta 0.9, hasta la release 1.0 que es la actual, requiere que le digamos explicitamente que queremos usar internet, medida razonable pero que en la M3 M5 no sucedia.

Esto lo arreglamos con la siguiente linea en el AndroidManifest.xml

< uses-permission android:name="android.permission.INTERNET" / >

Wednesday, October 22, 2008

Android Source Code

Android ya es opensource,

Ayer salió la noticia de la pubicación del codigo fuente de la plataforma.

http://source.android.com/

Precio de la Release 1.0

En la nueva versión de la SDK de android uno se va dando cuenta de cosillas que no se entiende para que las tocam.

Este caso ha sido la descarga de ficheros y streams de entrada y salida. En las anteriores versions de android sin problema, pero ahora mismo cóndigo( el cual corre sobre java normal en un pc) no hay manera de que ande... en fin..

public static void download(String address, String localFileName) {
OutputStream out = null;
URLConnection conn = null;
InputStream in = null;
try {
URL url = new URL(address);
out = new BufferedOutputStream(
new FileOutputStream(localFileName));
conn = url.openConnection();
in = conn.getInputStream();
byte[] buffer = new byte[1024];
int numRead;
long numWritten = 0;
while ((numRead = in.read(buffer)) != -1) {
out.write(buffer, 0, numRead);
numWritten += numRead;
}
System.out.println(localFileName + "\t" + numWritten);
} catch (Exception exception) {
exception.printStackTrace();
} finally {
try {
if (in != null) {
in.close();
}
if (out != null) {
out.close();
}
} catch (IOException ioe) {
}
}

Tuesday, October 21, 2008

Android Servicios Remotos

Cuando definamos servicios remotos, las interfaces que pudes usar para acceder al mismo deben estar incluidas en el androidmanifest, OJO CON LAS MAYUSCULAS!!!! es case sensible y puede provocar muchos dolores de cabeza ya que nunca os hará bind.

Monday, October 20, 2008

Services Android

Llevo días, por no decir semanas con fallos en mi aplicación android y sin ser capaz de saber porqué falla.
Todo el tema de servicios en Android a mi gusto esta muy confuso.

Primero hay que diferenciar Servicios locales o Remotos, locales corren en el mismo proceso y remotos pueden correr en cualquier otro. Yo en iCua empecé con Locales por problemas con los remotos, pero por funcionalidad me he tenido que pasar a los Remotos.

Una vez tenemos eso podemos iniciarlos y detenrlos con mas o menos dificultad, pero hay que definir una interface si queremos poder interactuar con el servicio desde cualquier aplicación. Esto se hace mediante aidl, la verdad que sobre aidl ningun problema, todo parece bastante claro.

El Problema lo he tenido siempre al hacer el "bind" y usarlo mediante la interfaz... siempre me petaba la aplicacion o en su defecto lo hacia algunas veces que es todavia peor.

Al ejecutar un metodo del servicio justo despues de hacer bind, no tenia en cuenta que bind es asincrono, asi que a veces se da el caso que android le da preferencia a la actividad y continua con el flujo en el que estaba y este llama al metodo de la interfaz encontrandose con el servicio no disponible y petando todo. Esto pasa en el emulador, y se puede solucionar con un sleep de al menos 4-5 segundos, pero queda claro que en aplicacion real se va a tener que hacer un bucle de espera, ya que vete a saber que tal se maneja el procesador de los HTC.... es un punto feo por el que puede petar o puede que no.

Wednesday, September 24, 2008

Android 1.0 SDK, Release 1

Ya la Release de la SDK de Android, ya mismo van a empezar a salir los HTC...

http://code.google.com/android/download_list.html

Wednesday, September 10, 2008

Bugs Android

Durante mi implementación de codigo con android me he encontrado alguna que otra excepción que se les escapa, o algunos detalles feos, http://code.google.com/p/android/issues/list esta dirección es la que se pueden reportar todos los bugs y la primera vez que lo usé me sorprendió la celeridad en revisar las tareas...

Apress Android Essentials

Hace una semana llegó a mi un libro(versión eBook), Apress Android Essentials de Chris Haseman, el libro no está mal para tener unas pinceladas sobre la plataforma pero como todo lo que rodea android hasta que saquen su última release(espero que después ya no) queda "deprecated" o sin sentidos al cambiar de versión.

El libro es de Julio'08 y esta basado en la M5, en agosto ha salido la beta y ya hay cosas que son diferentes a como las cuenta, sobretodo el código fuente que incluye que es algo bastante delicado. Igualmente para algunos conceptos básicos de android es muy recomendable.

Saturday, September 6, 2008

Estado de la wifi

Para tener acceso al estado de la wifi, hay que añadir los permisos pertinentes en el AndroidManifest.xml, seria la siguiente linea

< uses-permission xmlns:android="http://schemas.android.com/apk/res/android" android:name="android.permission.ACCESS_WIFI_STATE" >< / uses-permission >


Lamentablemente esto no esta muy claro, y buscando ACCESS_WIFI_STATE en google no sale mucho ahora mismo, solo la enumeracion de permisos de la documentacion oficial de android, así que me pareció interesante postearlo por si acaso, ya que fué una de los problemas que me encontré cuando empecé a tocar la wifi.

Required maximum version of adb: 1.0.18

El primer problema que me encontré es que hay que buscar nuevos plugins en eclipse una vez campias la ruta de la SDK en preferencias, de no ser así al arracanr da un mensaje algo asi como "Required maximum version of adb: 1.0.18" y con la beta viene la 1.0.20, lo pongo como titulo de post por si alguien tiene el mismo problema...

Updating Android SDK

Hace mas o menos tres semanas apareció otra SDK de Android, esta vez es la beta, se presupone bastante cercano a la versión que debe ser definitiva.

El mismo día 18 de agosto que salió dicha beta me la instalé en el pc, pues si quiero evaluar las posiblidades de la plataforma no tiene sentido que me quede en una versión que no se parece a la final sobre la que deberían desarrollar aplicaciones la gente que se decida por la plataforma de google.

Podría resumir diciendo que todavía la aplicación iCua no funciona sobre la beta... parece bastante malo a primera vista, y lo es en segunda tercera y se mire como se mire... Google se ha caracterizado en estas SDKs por cambiar, a mi parecer, demasiado los parámetros y retornos de las funciones y cargándose clases básicas como relacionadas con servicios o media... ellos tienen escusa, no era ni beta y todo eso...

Hay nuevos cambios, mejoraron el tema WIFI, que decir queda que para el streaming de iCua en la version M5 de la SDK era bastante desesperante, a ver ahora... Hay un player de Musica, justo como el Modulo 1 de iCua, sabe un poco mal por todo lo que me he tenido que pelear para tenerlo yo pero era de esperar y mi finalidad tiene que ser ver las possiblidades mas que cualquier otra cosa.

El resto de funcionalidades de la sdk las aseguraré una vez consiga migrar del todo iCua, y entonces quedará menos para poder acabar teniendo iCua en release...

Wednesday, September 3, 2008

Android 0.9 SDK Beta (r1)

Nueva versión de la SDK de android, esta vez ya es una beta!!

Como anteriormente hay cambios, y algunos afectan al desarrollo de iCua, después de un tiempo para amoldar los servicios dentro de las aplicaciones de android habrá que hacer algun pequeño cambio, igualmente lo dejaré para cuando tenga listo el streaming a ver si da tiempo, pues es la primera beta... a ver como va la cosa

13 de Octubre es la fecha marcada para el final de la implementacion de iCua, a partir de ahi solo será trabajo de documentacion y algun retoque si es necesario.

Tuesday, May 20, 2008

Funcionalidades Mayo

Hasta el momento tengo asumidas las distintas funcionalidades:

Módulo 1

-Reproduccion de MP3 como Activity
-Captura de tags ID3 del MP3
-Almacenamiento del fichero de MP3 en el sistema
-Conexion con LastFM y obtención de Caratula del disco y foto del artista (Interacción con otras APIs sin nada que ver con android) /lectura XML+interaccionWEB
-Abstracción del UI haciendolo independiente de resoluciones... HVGA, QVGA, etc, etc
- Gestion de la persistencia sobre sqlLite de manera transparente

Existen algunas básicas del proyecto y otras especificas del modulo 1, pendientes para acabar hay:

- Funcionamento del la reproduccion como servicio ( casi finalizado)
- Area de notificacion de las canciones reproduciendo
- Interfaz de usuario ( quedan algunas pantallas por hacer y enlazar todo y mejorar detalles )