«

»

feb 14 2013

Cómo hacer más cómodo el trabajo con Eclipse

Lo parezca o no, trabajar cómodo con nuestro entorno de desarrollo es muy importante de cara a la productividad. Es por eso que nos cuesta tanto cambiarnos a otro IDE cuando estamos acostumbrados a uno concreto. Nos sentimos perdidos, todo lo que es diferente nos parece peor. Porque no hay nada como escribir código cómodamente.

eclipse_indigo

El post de hoy no es tan exclusivo para el desarrollo Android, pero como también nos afecta a nosotros me ha parecido bien tratarlo. Vamos a ver algunos trucos y consejos para escribir código aún más fácilmente, si estamos usando Eclipse.

Todo lo que se comenta en esta entrada son opiniones a título personal y como orientación Para gustos colores, si no te parecen buenos consejos o tienes otros mejores, cuéntanoslo en los comentarios ;)

Important!

Utilizaré como base el ADT Bundle para Windows que tenemos disponible en la página de desarrolladores, que contiene el SDK y una versión modificada de Eclipse 3.6 con la configuración básica para empezar a desarrollar aplicaciones Android.

Como la lista es larga y variada os dejo un índice para localizar más rápidamente cada cosa:

Preparación del entorno

Ayuda para escribir código

 

Preparación del entorno

Lo primero que vamos a ver son algunos cambios en la configuración de Eclipse que podemos hacer para facilitarnos el trabajo. Aunque opciones hay muchas, éstas son las que me han parecido más útiles. Mi “must have” personal, lo primero que tengo que cambiar si hago una instalación nueva.

 

Cambiar la codificación de caracteres

Es un tema por el que me he echado las manos a la cabeza más de una vez. Y más de dos, y de trés… Trabajar con diferentes codificaciones es un infierno, sólo causará problemas. Eclipse por defecto en Windows utiliza una codificación, en Linux otra, y en OSX otra distinta. Si trabajas siempre en la misma máquina el problema puede pasar desapercibido, pero en cuanto migras un proyecto de sistema, se lo pasas a alguien, etc. verás como los caracteres especiales se han convertido en símbolos extraños.

Los angloparlantes no suelen tener graves problemas con esto, pues la mayoría de codificaciones respetan sus símbolos. Pero nosotros, con tanta tilde y símbolo raro, vamos a encontrarnos en apuros. Lo mejor es curarse en salud y cambiar desde un principio la codificación de todo el workspace, en el menú bajo Window > Preferences,  a una universal como UTF-8. 

codificacion

Si lo hacéis no me lo agradeceréis porque no os daréis cuenta de que os ha servido. Pero si no, ya os arrepentiréis.  ;-)

 

Desactivar compilado automático y compilar todo

Por defecto Eclipse tiene activada la opción de compilar automáticamente nuestro proyecto cuando guardamos algún archivo modificado. Esto es especialmente problemático en Android cuando tenemos proyectos relativamente complejos, con varias librerías externas vinculadas y demás compilar puede llevar varios segundos o peor en ordenadores con pocos recursos (¿he oído minutos?). Y no es agradable que nos interrumpan el trabajo sólo por guardar los cambios. Por ello es de lo primero que desactivo cuando abro Eclipse por primera vez. Sólo hay que desmarcar la opción en Project > Build Automatically.

build

Aunque desactivando dicha opción tenemos el problema inconveniente de tener que compilar manualmente cuando lo necesitemos. Por suerte tenemos el atajo de teclado Ctrl+B para hacerlo a golpe de tecla, pero este atajo corresponde al comando Build All, es decir que nos compilará todos los proyectos de nuestro workspace. ¡Aún peor que lo anterior! Don’t panic, es tan fácil como cambiar el atajo para que ejecute el comando Build Project en su lugar, de esa forma la combinación te teclas sólo compilará el proyecto en el que nos encontremos en ese momento. En el apartado Keys de las preferencias buscamos el comando Build All y le anulamos el atajo de teclado con Unbind Command, luego seleccionamos Build Project y en Binding pulsamos la combinación Ctrl+B (u otra) para establecérsela.

build3

Aunque para ejecutar no suele hacer falta compilar porque ya lo hace solo, ya sabemos cómo se pone de tonto a veces Eclipse. Es uno de los comandos que yo más utilizo.

 

Desactivar corrección ortográfica

Curiosamente Eclipse tiene corrector ortográfico para los comentarios y documentación. Pero a los hispanohablantes no nos sirve de mucho si escribimos en español porque sólo está en inglés. Podríamos descargar e instalar un diccionario en español, pero yo prefiero optar por desactivarlo por completo y quitarme las molestas líneas rojas que salen por todas partes.

spelling

 

Explorador de paquetes en vista jerárquica

El explorador de paquetes nos permite 2 formas básicas de visualizarlos: plana y jerárquica. Por defecto nos los muestra de forma plana, pero cuando tenemos muchos paquetes anidados la jerárquica permite verlos más claramente con su estructura de árbol. ¿No os parece?

package

Podéis usar la que más os guste, en cualquier caso el cambio es sencillo.

package3

 

Ayuda para escribir código

Ahora veremos alguno ajustes orientados a facilitarnos la escritura de código. Eclipse permite un alto nivel de personalización, pero sólo veremos unos que me parecen muy interesantes. Como antes, recomiendo echar un ojo a todas las opciones y adaptarlo todo a nuestras necesidades.

 

Punto y coma siempre al final

En java las sentencias llevan un punto y coma al final. Parece una tontería, pero son incontables las veces que he tenido que desplazarme al final de la línea para poner un punto y coma. Con este cambio Eclipse colocará la puntuación correctamente al final de la línea aunque estemos editando en mitad, ahorrándonos un par de pulsaciones de tecla.

semicolon

 

Autocompletado de métodos mejorado

El autocompletado de Eclipse es magnífico. Ctrl+Espacio es la combinación que más uso con diferencia, nos ahorra escribir una barbaridad de código. Pero algo que siempre me ha reventado es cómo al completar una variable o un método desde en medio inserta el texto en vez de modificarlo.

overwrite12

Pues hace poco descubrí que se podía cambiar para que sustituyera el resto del texto. De esa forma en el ejemplo anterior obtendríamos lo siguiente:

overwrite34

A mi me resulta muchísimo más útil la segunda transformación, y sólo hay que cambiar una opción:

overwrite

 

Escapar Strings al pegar texto

Copiar y pegar es el recurso más utilizado. ¿Cuántas veces hemos pegado en una cadena un texto copiado de otra parte que contiene comillas y otros caracteres que necesitan ser escapados (como las comillas en un código html)? Activando esta opción no tendremos que hacerlo más, pues el texto se transformará automáticamente cuando lo peguemos para escapar dichos caracteres.

strings

Aquí vemos cómo quedaría al pegar una cadena con comillas antes y después de activar esta opción:

strings2

 

Acciones al guardar

Nos puede venir bien que Eclipse haga determinadas cosas automáticamente cuando guardamos un archivo. Por ejemplo, que reorganice las importaciones de paquetes, o que formatee el código según las reglas que le digamos. Debo confesar que yo personalmente lo tengo desactivado, porque tengo la manía de guardar los cambios constantemente, y al procesar el archivo cada vez puedo notar el retraso en contadas ocasiones si el ordenador está pasando un mal rato y no lo soporto. Pero aun así, si no sois tan maníacos como yo seguro que agradecéis esta función.

save

 

Formateo de código

Otra de las funciones más útiles de Eclipse es el formateo de código automático, mediante la combinación de teclas Ctrl+Shift+F. Nosotros escribimos (o pegamos) un churro, con las identaciones mal puestas, espacios sobrantes, etc., y Eclipse nos deja un código limpio, claro y ordenado. Pero es importante para estar cómodos con nuestro IDE que nos produzca código que nos guste. Para ello viene bien echar unos minutos en revisar las opciones de personalización del formateo de código, que no son pocas. Podemos tener varios perfiles, e incluso configurar un perfil distinto para cada proyecto (modificando las preferencias del proyecto concreto, y no las globales). Para personalizarlos creamos uno nuevo o editamos el existente (habrá que guardarlo con otro nombre).

format1

Aquí entran muy en juego los gustos de cada uno. Aconsejo mirar todas las opciones, elegir las que nos parezcan mejores, y volver a mirarlas tras llevar un tiempo con ellas para asegurarnos de que estamos cómodos con todas.

format2

Os comento como ejemplo las que yo suelo cambiar, que son realmente pocas: En Identation pongo Tab Policy a Tabs Only, y activo Statements within switch body; en Line Wrapping pongo el Maximun line width a un valor alto como 200 para que no me divida las líneas, y activo Never join already wrapped lines por si quiero dividirlas  manualmente; y por último en Comments activo Never join lines para decidir yo los saltos de línea, y pongo el Maximun line width también a un valor como 200. 

Mucho ojo a esta función si trabajamos en grupo con repositorios, o si contribuímos a proyectos de software libre. Debemos adaptarnos a las normas comunes, así que si pensamos dejar que Eclipse formatee nuestro código debemos asegurarnos de respetar dichas normas. No queremos que Git nos marque todo el archivo “en rojo” cuando sólo hemos cambiado una línea, ¿verdad?

 

Etiquetas

No muy usadas, pero están ahí para ayudar a organizarnos si las necesitamos. Las etiquetas son comentarios especiales que podemos poner para marcar nuestro código. La más famosa es la etiqueta TODO, para dejar anotado algo que tenemos que hacer o cambiar en un futuro. Pero nosotros mismos podemos crear nuestras etiquetas personalizadas. Por ejemplo DEBUG para indicar algo que debemos quitar antes de sacar la aplicación a producción,  asignar tareas a determinadas personas en un grupo, etc. 

tags

Luego podemos ver la lista de etiquetas usadas en la vista Tasks (Si no la tenemos se activa en Window > Show View > Tasks)

tags2

 

Plantillas de código

Eclipse nos permite usar palabras clave para generar automáticamente determinadas estructuras de código, y más aún, crearlas a nuestro gusto. Por ejemplo, uno de los métodos más utilizados en Java es System.out.println() para imprimir texto en la consola; pues nos basta con escribir en el editor “sysout” y pulsar el autocompletado (ctrl+espacio) para que nos inserte la línea completa y nos ponga el cursor en la posición del argumento. Lo mismo ocurre con “try” para insertar un bloque try-catch.

codtemplate12

La lista completa podemos verla en las preferencias, y ahí mismo podemos añadir nuestras propias plantillas. Por ejemplo, podríamos crear una plantilla así para inicializar el método getView() típico del BaseAdapter: 

codetemplates3

codetemplates4

Copiar código

Y en el editor de código, poniendo la palabra clave con autocompletado, nos genera el código por el que podemos movernos mediante el tabulador. ¡Magia!

codetemplates56

 

Plantillas de ADT

No hace mucho añadieron al plugin ADT la posibilidad de crear componentes de Android como Actividades para nuestras aplicaciones mediante un asistente, que podemos encontrar en el menú File > New bajo la categoría de Android, el cual nos genera el código y recursos que podemos editar fácilmente. Por ejemplo, en el caso de las Actividades nos creará un layout y menú básicos en xml, la clase Java correspondiente con el código para mostrar el layout y el menú, y la entrada necesaria en el AndroidManifest.xml. E incluso podemos decirle que nos añada elementos extra de navegación como pestañas, ViewPager y más.

templatesadt2

Por si fuera poco, un tiempo después añadieron la posibilidad de instalar plantillas personalizadas creadas por nosotros mismos. Yo os recomiendo estas plantillas creadas por Jeff Gilfelt para crear Actividades compatibles con la magnífica librería ActionBar Sherlock, entre otras. En el repositorio tenéis más información sobre para qué es cada uno de los elementos que añade. Además, instalar las plantillas es tan sencillo como pegarlas en la carpeta /extras/templates/ del SDK.

templatesadt4

Tenéis más información sobre cómo crear plantillas en este post de Google+. ¿Se os ocurren más plantillas útiles? ¿Os animáis a hacerlas y compartirlas? ;)

Y hasta aquí los cambios que os sugerimos para vuestro IDE, espero que algunos os resulten tan útiles como a mi. En futuras entregas intentaremos contar otros trucos a la hora de usar Eclipse. Si tenéis más sugerencias relacionadas son bienvenidas en los comentarios  ;-)

Fuentes: Vogella y cosecha propia

Acerca del autor

Rafa Vázquez

Estudio Ingeniería Informática del Software en Sevilla. Me considero geek sin dinero, amante y desarrollador novato de Android. He creado algunas aplicaciones como SeviBus, TicTacDroide, Kill Bieber y Traductor Hoygan, si es que se puede llamar aplicaciones a estas dos últimas ;) Ganas de aprender más y más no me faltan, e intentaré compartir mis experiencias con vosotros en la medida de lo posible.

  • Jesús

    Muy buenos consejos la verdad. Me gusta que Eclipse sea tan configurable y lo de las plantillas ya es brutal. Buen artículo si señor.

  • Esteve Camps

    Hola Sloy, una que es muy útil es el cambio de pestañas. Por defecto está configurado con el Ctrl+Shift+F6 i Ctrl+F6 (creo que son esas combinaciones). A mi me gusta configurarlo con el Ctrl+Tab y Ctrl+Shift+Tab. Hace más ligero el uso.

    En cualquier caso, muy buenas propuestas las que haces en este post.

    Un saludo ;)

    • http://about.me/sloy Sloy

      Cierto, también es bastante práctico ese cambio. Gracias por el apunte ;)

    • http://twitter.com/barkuz Marco Gonzalez Reyes

      Este me parece muy util pero no encuentro el identificador de este comando le agradeceria me dijera como se llama en la lista de comandos de Eclipse

      • Steven Ferreira

        Para los que lo necesiten aun: Preferences -> General -> Keys> y allí se pueden reconfigurar todos los atajos de teclado

  • http://www.facebook.com/Beat4 Jiménez Martínez Gabriel

    Muchas gracias por compartir tus conocimientos.
    Saludos.

  • Fulano Software

    muy util el autocompletado de texto, me ha pasado muchisimo, gracias! Los demas estan muy bien tambien

  • Andres

    Tenía problemas con las tildes, pero con el consejo de cambiar la codificación de caracteres, se solucionó. Mil gracias.

    • http://about.me/sloy Sloy

      Un placer! Es uno de los problemas que más he tenido desde que uso Eclipse, y el que más me he alegrado de aprender a corregir. Especialmente importante cuando compartes código entre varios sistemas operativos ^^

  • Pingback: Eclipse: Cómo hacer más cómodo el trabajo con Eclipse | Base de Datos de Conocimiento()

  • Chema

    Muy util! Sabia que se podían hacer muchas cosas, pero no he conseguido dejarlo a mi gusto nunca.

    Gracias!

  • Jose Antonio Ros

    Echo en falta en el editor las opciones de Rehacer y Deshacer con memoria de un monton de modificaciones (p.ej. en Dreamweaver), . Para mi es muy util. Es posible trabajarlo aqui?
    Muchas gracias.

  • https://plus.google.com/114692013281418161421 Monky D Luffy

    gracias por los tips, me recordaron que la vida es muy facil y no hay la necesidad de hacer las cosas manualmente… jejeje.. espero ver mas aportaciones.. que posten.. yo conocia el 70% de las k pusieron …

    saludosss

  • josezam

    Hola Sloy, yo quería hacerte una pregunta, cuando inserto código, no me aparece las posibles sugerencias ni haciendo click en ctrl+Space, porque no me aparecen las sugerencias?
    Gracias, muy buen trabajo y bastante currado

  • Raul

    Geniall !!! me fueron de muchisima ayuda!!

  • victor

    Buenas, tengo un problema y es que cuando uso el autocompletar con syso me lo configura pra un metodo, y sis escribo System.out.print me da error y no consigo configurarlo para quitar esos errores

  • http://gravatar.com/anonimo183 anonimo183

    Gracias.. hace mucho tiempo vi este post, y tube que reinstalar eclipse y no recordaba donde estaba todo para configurarlo… (se me perdio el archivo de las preferencias), ahora nose si conoces cual es el metodo para que con la tecla TAB elija la ayuda de codigo resaltada ?.. normalmente es con ENTER.. pero en visual studio creo que es con TAB y ya me acostumbre.
    Gracias

  • Caelant

    Artículo fantástico
    Muchísimas gracias por la ayuda!
    Un saludo.

  • Guido

    Excelente!! gracias

  • http://gravatar.com/glidero Ferran

    Buenas tardes!

    Tengo una duda, la función del punto y coma al final de cada línea, la tengo activada y no funciona. Se supone que inserta un punto y coma cada vez que, por ejemplo, creo una instancia ?

    Gracias.

  • Erick Delzo

    Amigo si aún estás atento aqui, porfa como puedo hacer para agregar codigo html a un boton en eclipse de android, es para una app en la que quiero ingresar una pagina.

  • jeral

    Hola que tal , una consulta Saben como hacer que un boton funcione solo uan ves y de ahi desactivarlo gracias..!

  • Victor Montes

    Sos un crack viejo, thanks!!!

  • Joaquin Bresan

    Gran aporte amigo. Gracias por compartir.

  • Humberto Santiago Molinares Pa

    El globlo de ayuda aparece con un fondo negro link azul que es muy molesto de leer con letras gris. Del cual no hablastes favor decidme como cambiar estos colores.Gracias