martes, 11 de octubre de 2011

Nace Synergy Blogs y AndroCode

Hoy tengo el placer de presentaros mi nuevo proyecto AndroCode, blog del que soy fundador. Hace ya meses que soy Editor de Androjuegos.com y ahora hemos tomado la decisión de expandirnos, creando la red de blogs que paso a presentaros y que seguira creciendo pues tenemos varias ideas en el horno. Espero que os guste y sin mas os dejo con el post de presentacion de AndroCode:

Aunque somos un blog nuevo, no estamos solos... nacemos en buena compañía, con blogs hermanos y formando parte de un grupo, Synergy Blogs, un grupo que, como nosotros, nace hoy con mucha ilusión y con ganas de informaros y ayudaros en todo lo que podáis necesitar sobre android.
Os dejamos la nota de prensa...

PRESENTACIÓN DEL GRUPO SYNERGY BLOGS
El sistema operativo para moviles android está creciendo a nivel a mundial de una forma exponencial. La necesidad y el reclamo de infomación sobre la plataforma android, crece de la misma manera.
Se hace evidente la necesidad de canales en los que localizar la información que cada persona necesita. Existen canales muy buenos, dedicados al mundo android, pero son canales generalistas que aglutinan toda la información sin una especialización definida.
Por este motivo y estrenando una nueva colaboración y hermanamiento entre los blogs AndroJuegos, blog de referencia en el ámbito de los videojuegos para android, y AndroTalk, blog generalista del mundo android con un importante crecimiento en los últimos meses, y junto con el nacimiento de AndroCode, blog enfocado a la programación para android, queremos anunciar el nacimiento de Synergy Blogs.
Synergy Blogs, nace de esa necesidad de especialización de cada una de las ramas de información del mundo android. Una manera de crear una sinergia, como nuestro nombre indica, con la que de unas partes menores y más especializadas, crear un todo más completo. Una red fuerte que sea capaz de ofrecer toda la información necesaria, dedicada y pensada para los diferentes ámbitos del universo android.
La base de esta sinergia, será la colaboración entre los blogs integrantes de este grupo, haciendo que la información fluya de una manera contínua, teniendo como meta una información limpia y fiable de todos los temas que a cada lector le son interesantes dentro de su campo.
Este proyecto no está cerrado, y hay planes de futuro para ampliar los canales de información, de manera que nuestros lectores puedan tener puntos de vista de cada ámbito de la vida android.
Esperamos que nuestros lectores, nos acompañen en esta aventura que comenzamos y que nos ayuden a mejorar día a día con sus sugerencias y críticas.
Muchas gracias por estar con nosotros. Muchas gracias por confiar en nosotros. Muchas gracias por ayudarnos. Porque sin nuestros lectores, sin su apoyo y su constancia, esto no habría sido posible.
Contamos con vosotros... Contad con nosotros.

De modo que, como podeis ver, estámos bien acompañados e intentaremos crear un blog donde cualquiera de vuestras dudas acerca de la programación en android pueda ser resuelta.
Esperamos vuestra ayuda para crecer. Esperamos ideas, opiniones y críticas para poder mejorar día a día.
Un saludo de parte del equipo de Androcode. Un saludo de toda la red Synergy Blogs.

domingo, 25 de septiembre de 2011

Primeros pasos con GreenDroid, ActionBar y QuickActions



Actualmente me encuentro empezando un nuevo proyecto en Android  y como en otros muchos que ya existen en el mercado me he visto en la necesidad de incluir la ActionBar, elemento que dará un aspecto mucho mas profesional a nuestras aplicaciones y hará nuestras interfaces muchos mas usables. Despues de pedir consejo y ojear el blog de javielinux me decidi a usar la libreria GreenDroid ya que facilita bastante nuestra labor. Si aun no sabeis de que hablo os dejo una captura:





Para empezar nos bajamos la libreria y añadirla a nuestro workspace para poder usarla en nuestros proyectos. Para ello accedemos a la siguiente direccion https://github.com/cyrilmottier/GreenDroid y pulsamos en Downloads:





Una vez descargado el archivo ZIP lo descomprimimos en nuestro workspace y comprobaremos como existen tres carpetas en su interior:

  • GreenDroid, la libreria en cuestion.
  • GreenDroid-GoogleAPIS, GreenDroid con funcionalidades añadidas para trabajar con Google Maps.
  • GDCatalog, el codigo fuente de la aplicacion de demostracion disponible en el market.
Para poder usarlas en nuestros proyecto deberemos importarla como proyecto dentro de eclipse, en nuestro caso usaremos GreenDroid sin las funcionalidades añadidas. En e l caso de querer usar la segunda habria que importar tambien la primera puesto que depende de ella.



Una vez hecho esto deberemos indicar a nuestro proyecto que vamos a usar esta libreria. Para ello accedemos a las propiedades de nuestro proyecto a la seccion Android y se lo indicamos:





Con esto ya tendriamos el proyecto preparado para su uso y pasariamos al codigo. Antes que nada deberemos crear un objeto application, para ser mas precisos que herede de GDApplication y que implemente el metodo getHomeActivityClass() que servirá a la aplicacion para ver cuando tiene que mostrar el boton de home:





import greendroid.app.GDApplication;

public class NomadApplication extends GDApplication {
    
    @Override
    public Class<?> getHomeActivityClass() {
        return MainActivity.class;
    }
}

MainActivity será la Activity que elegiremos como Main y a la que volveremos pulsando la casita. Para que nuestra aplicacion use esta clase deberemos indicarselo en el AndroidManifest.xml. anañadiendo la propiedad name a la etiqueta application.



Tendremos que indicar a nuestras actividades que usen el style Theme.GreenDroid para que la ActionBar aparezca en ellas. Si hacemos esto la ActionBar aparecerá con un estilo predeterminado y es por eso que si queremos modificar el aspecto nos crearemos nuestro propio Theme sobreescrbiendo las caracteristicas a modificar. A continuacion os dejo un ejemplo en el que modificamos cosas como los colores, el separador, añadirmos un drawable de titulo para la pantalla de main o cambiamos el icono de home. Si quereis modificar mas cosas bastará con ir al codigo fuente de la libreria y comprobar cuales son las propiedades disponibles.


Pasando a la clase Java para que nuestras clases operen con ActionBar deberan heredar de GDActivity y desde aqui bastara con usar el metodo addActionBarItem(type, itemId); para añadir elementos a la barra. GreenDroid cuenta con una libreria de tipos de botones para la barra con lo cual no nos tendremos que preocupar ni por los iconos, tan solo tendremos que seleccionar uno de estos tipos de la clase Type y el lo hara todo solo. Hay que tener en cuenta que la barra no admite mas de tres iconos, si necesitamos mas deberemos recurrir a las QuickActions que explicaremos mas adelante. A continuacion os dejo un ejemplo:


public class NomadActivity extends GDActivity {
    private final int CHECKING = 0;
    private final int TIMELINE = 1;
    
    private QuickActionWidget quickActions;
        
	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setActionBarContentView(R.layout.main);

		initActionBar();
	}
	
	
	private void initActionBar() {
        	addActionBarItem(Type.Edit, CHECKING);
        	addActionBarItem(Type.List, TIMELINE);
	}

	@Override
	public boolean onHandleActionBarItemClick(ActionBarItem item, int pos) {
		switch (pos) {
			case CHECKING:
				Toast.makeText(getApplicationContext(), "Has pulsado el boton CHECKING", Toast.LENGTH_SHORT).show();
				break;
			default:
				break;
		}
		return super.onHandleActionBarItemClick(item, pos);
	}
	
    }

Como vemos en el ejemplo de codigo luego deberemos de implementar el metodo onHandleActionBarItemClick para añadir funcionalidad a nuestros botones. Con esto ya seriamos capaces de usar la ActionBar en nuestras primeras aplicaciones pero ¿y si queremos añadir mas de tres botones?, la solucion es QuickActions que paso a explicar.

Para crearnos las QuickAction lo primero que haremos es declarar una variable que las almacenara y luego desde el onCreate del Activity las inicializamos a nuestro gusto, añadiendo mas o menos elementos. Como podemos ver hay dos tipos de manera de presentar las QuickAction, una barra con scroll horizontal (QuickActionBar) o mediante un grid (QuickActionGrid). Para mostrar una u otra bastara con crear un objeto de un tipo u otro respectivamente como veremos en el ejemplo:


//quickActions = new QuickActionBar(this);
	    quickActions = new QuickActionGrid(this);
		
	    quickActions.addQuickAction(new QuickAction(this, R.drawable.ic_quickaction, "Opcion 1"));
	    quickActions.addQuickAction(new QuickAction(this, R.drawable.ic_quickaction, "Opcion 2"));
	    quickActions.addQuickAction(new QuickAction(this, R.drawable.ic_quickaction, "Opcion 3"));
	    quickActions.addQuickAction(new QuickAction(this, R.drawable.ic_quickaction, "Opcion 4"));
	    quickActions.addQuickAction(new QuickAction(this, R.drawable.ic_quickaction, "Opcion 5"));
	    quickActions.addQuickAction(new QuickAction(this, R.drawable.ic_quickaction, "Opcion 6"));
	    
	    quickActions.setOnQuickActionClickListener(new OnQuickActionClickListener() {
	    	public void onQuickActionClicked(QuickActionWidget widget, int position) {
	    		Toast.makeText(NomadActivity.this, "Item " + position + " pulsado", Toast.LENGTH_SHORT).show();
	        }
	    });


Como vemos cada vez que añadimos un elemento podemos indicar el icono que usara y el nombre que llevara y luego mediante setOnQuickActionListener daremos funcionalidad al elemento en la posicion position.

Y con esto hemos terminado, espero que os sirva de ayuda.

martes, 20 de septiembre de 2011

Mi primer proyecto con Maven en Eclipse (sin dependencias)

Maven es una herramienta que nos ayuda a construir nuestros proyectos software, facilitandosno bastante la tarea cuando estos estan constituidos por varios módulos, pero empecemos por el principio. Hoy realizaremos nuestro primer proyecto con Maven (sin dependencias) y generaremos un .jar ejecutable.

  • Una vez hemos arrancado Eclipse creamos un nuevo proyecto del tipo "Maven Project" en la seccion Maven.
  • Se abrirá la ventana del asistente de creación del proyecto, en ella marcamos la opción de  "Create a Simple Project" y hacemos click en "Next".
  • Es aqui donde ya vemos propiedades propias de Maven, ya que se nos solicita una información que paso a describir y que deberemos de rellenar tal como vemos en la imagen y pulsar sobre "Finish":
    • Group Id: Es el nombre de conjunto de proyectos al que pertenecera el nuestro y cuyo nombre coincidira con el paquete principal del proyecto.
    • Artifact Id: Es el nombre que le daremos a nuestro proyecto.
  • Con esto ya tendremso creado nuestro proyecto Java con Maven y lo podremos ver en el Package Explorer:
  • Ahora crearemos la clase HolaMundoMaven.java, en el src/main/java con el siguiente codigo:
package com.tutorialMaven;
 
public class HolaMundoMaven {

    public static void main(String[] args) {
        System.out.println("Hola Mundo Maven!...");
    }
}
  •  Para comprobar que funciona lo ejecutamos como "Java Application" y comrpobamos la salida por consola.


Con esto ya tendriamos creado nuestro primer proyecto y antes de seguir unas pinceladas mas sobre Maven:
La versión 2 usa un archivo de configuración en XML llamado pom.xml. Su funcionalidad es parecida a Apache Ant de manera que permite compilar, ejecutar test o realizar distribuciones pero con la diferencia que trata de forma automática las dependencias del proyecto. Una de las más importantes características es su actualización en línea mediante servidores repositorios. Maven es capaz de descargar nuevas actualizaciones de las bibliotecas de las que depende el proyecto y de igual manera subir una nueva distribución a un repositorio de versiones, dejandola al acceso de todos los usuarios.
Es este archivo precisamente el que deberemos de configurar si deseamos generar correctametne el .jar ejecutable de nuestro proyecto. Otro dato a destacar es que existe herencia en los POMs y que el "Effective POM" sería el POM generado una vez tenida en cuenta todas las herencias y que la raiz es el Super POM definido por Maven. Una vez sabido esto pasamos a configurar nuestro proyecto para poder generar nuesto .jar ejecutable.

  • Abrimos el archivo pom.xml y pulsamos sobre la pestaña "Effective POM" (no editable) y comprobamos que el contenido nada tiene que ver con el de la pestaña "pom.xml", esto es debido a lo que ya contábamos de que la razi es el Super POM y Maven se encarga de configurar lo básico que nosotros no hagamos. En nuestro caso para generar el .jar deberemos indicar cual es el la clase principal del proyecto que se ejecutara, esto se hace configurando el plugin que genera dicho .jar y para ello deberemos de copiar el siguiente código en nuestro pom.xml dentro de las etiquetas de "project".



    
        maven-jar-plugin
        2.3.1
        
            
                default-jar
                package
                
                    jar
                
            
        
        
            
                
                com.tutorialMaven.HolaMundoMaven
                
            
        
    



  • Una vez hecho este pulsaremos con el botón derecho del ratón sobre el archivo pom.xml y ejecutaremos como "Maven Install".
  •  Con esto ya habremos generado nuestro .jar ejecutable que podremos encontrar en el directorio "target" de nuestro proyecto.
  •  Para comprobar si funciona abrimos una consola de sistema, accedemos al directorio donde está alojado y ejecutamos "java -jar nombreDelJar.jar".

¡Y hasta aquí por hoy!

lunes, 19 de septiembre de 2011

Instalacion de Maven 2.x y del plugin m2e para Eclipse

Maven es una de las principales herramientas de software para la gestión y construcción de proyectos Java y por tanto un elemento destacable a incorporar en nuestro currículum. En el post que nos centra os explicaré como instalarlos en vuestros equipos junto con el plugin para Eclipse.

Nota: Se ha usado Eclipse 3.7 (Indigo) y Windows 7.

  • Una vez descargado lo descomprimimos en C:/ generándose el directorio C:\apache-maven-2.2.1.
  • Antes de instalarlo deberemos añadir la ruta C:\apache-maven-2.2.1/bin al PATH de Windows y asegurarnos de que el JAVA_HOME está apuntando al JDK.
    Nota: ¿como declarar variables de entorno?.
  • Para instalar abrimos una consola de comandos nueva y ejecutamos: mvn --version
  • Con esto ya tendríamos instalado Maven y ahora pasaríamos a la instalación del plugin para integrarlo con Eclipse, nuestro IDE a usar. Para instalar vamos a menú "Help" y entramos en "Install New Software..."
  • Aquí deberemos añadir un nuevo repositorio del que descargaremos el plugin m2e, así que pulsamos sobre el botón "Add...". Como nombre pondremos un nombre cualquiera aunque es recomendable algo identificativo para poder reconocerlo en un futuro, por ejemplo "Maven2", y en Location la url http://eclipse.org/m2e/download/. Pulsamos sobre "OK" y ya tendremos creado nuestro repositorio.
  • Una vez creado, en la pantalla de instalación deberemos seleccionarlo en la sección "Work with". Al seleccionarlo nos aparecerán los paquetes disponibles para instalar, elegimos "m2e - Maven Integration for Eclipse" y pulsamos en "Next". A partir de aquí el proceso de instalación del plugin es trivial. Al finalizar la instalación, reiniciar el eclipse.
    Nota: m2e is tested against Eclipse 3.6 (Helios) and 3.7 (Indigo).
  • Acceder a Windows > Preferences > Maven > Installations y añadir la ruta donde hemos instalado Maven. Automaticamente enlazara con el archivo de configuración "settings.xml", hacemos click sobre "open file" para modificarlo y configurarle el directorio del repositorio local. Hacemos click en "Apply" para poder editarlo. Deberemos habilitar esta la línea que aparecera comentada:C:/rutaY en la misma le indicaremos la ruta de nuestro repositorio local creado por nosotros.
  • Acceder a  Windows > Preferences > Maven > User Settings y configurar la ubicacion del fichero de propiedades "settings.xml" anteriormente editado y veremos como se carga el repositorio local configurado en el paso anterior, al finalizar hacer click en Apply y OK.
  • Reiniciar el Eclipse y listo.

Con esto ya tendríamos preparado nuestro entorno para crear nuestro primer proyecto con Maven. En el próximo post veremos como.