guía de laboratorio - ua

20
Guía de laboratorio Índice 1 Ordenadores del aula de MAC de la Biblioteca General............................................. 2 2 Apuntes del Especialista............................................................................................... 2 3 Moodle.......................................................................................................................... 3 4 Proyectos y espacios de trabajo en Eclipse.................................................................. 5 4.1 Creación e importación de proyectos....................................................................... 6 5 Repositorios Git.......................................................................................................... 12 5.1 Cómo crear el repositorio Git inicial para cada módulo........................................ 14 5.2 Git en Eclipse......................................................................................................... 15 5.3 Git en Xcode.......................................................................................................... 17 6 Como realizar la entrega de los ejercicios.................................................................. 19 Copyright © 2012-13 Dept. Ciencia de la Computación e IA All rights reserved.

Upload: others

Post on 31-Oct-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Guía de laboratorio - ua

Guía de laboratorio

Índice

1 Ordenadores del aula de MAC de la Biblioteca General............................................. 2

2 Apuntes del Especialista...............................................................................................2

3 Moodle..........................................................................................................................3

4 Proyectos y espacios de trabajo en Eclipse.................................................................. 5

4.1 Creación e importación de proyectos.......................................................................6

5 Repositorios Git..........................................................................................................12

5.1 Cómo crear el repositorio Git inicial para cada módulo........................................ 14

5.2 Git en Eclipse.........................................................................................................15

5.3 Git en Xcode.......................................................................................................... 17

6 Como realizar la entrega de los ejercicios..................................................................19

Copyright © 2012-13 Dept. Ciencia de la Computación e IA All rights reserved.

Page 2: Guía de laboratorio - ua

En esta sesión de ejercicios vamos a describir los aspectos más importantes de lasdistintas plataformas, utilidades y sitios web necesarios para el desarrollo de las prácticasdel Especialista.

Los elementos más importantes son los siguientes.

• Ordenadores. Las prácticas se desarrollarán en el aula de ordenadores Mac. Lasdiferentes plataformas que utilizaremos están instaladas. Todas ellas serían usables enotros sistemas operativos salvo la de desarrollo en iOS, para la que necesitamos losordenadores Mac.

• Repositorio Bitbucket. Utilizaremos Git como repositorio local y Bitbucket comorepositorio remoto. A través de él los profesores podrán hacer el seguimiento de lasentregas y también servirá como sistema de control de versiones para los alumnos.

• Apuntes y materiales docentes. Todos los apuntes, transparencias y materialesdocentes están disponibles en una zona restringida de la web del Especialista.

• Moodle. Se utilizará un servidor Moodle como plataforma de foro privado del curso.

A continuación vamos a detallar el uso de estos elementos y algunos otros tambiénnecesarios para el desarrollo del Especialista.

1. Ordenadores del aula de MAC de la Biblioteca General

Los laboratorios en los que se realizarán las prácticas están gestionados por el CPD. Paraacceder a ellos se utilizará el usuario alumno. No tendrás permisos de administración perotodo el software necesario para el curso está instalado.

¡Cuidado con tus datos! No debes confiar en que lo que dejes en el disco duro delordenador se encuentre en la siguiente sesión. Los discos duros de los ordenadores sereestablecen en cada arranque. Es muy importante que hagas un uso regular delrespositorio Subversion que hemos instalado para el curso.

2. Apuntes del Especialista

Los apuntes, trasparencias, plantillas para los ejercicios y demás material docente seencuentran en un sitio web restringido a los alumnos del Especialista. Puedes acceder aesta zona pinchando en el recuadro correspondiente (azul) en la web pública delEspecialista (http://www.jtech.ua.es/) o escribiendo directamente la URLhttp://www.jtech.ua.es/dadm/restringido/. Una vez introduzcas tu usuario del Especialistay tu contraseña podrás acceder a esta web.

El login en este sitio web es las iniciales de tu nombre y tu primer apellido. La contraseñaes el número de DNI, sin la letra de control. Por ejemplo, si el nombre del alumno esPedro Pérez, su login es pperez

Guía de laboratorio

2Copyright © 2012-13 Dept. Ciencia de la Computación e IA All rights reserved.

Page 3: Guía de laboratorio - ua

Si deseas cambiar tu contraseña (o no la recuerdas), puedes pulsar en el enlacecorrespondiente. Se enviará un mensaje a tu dirección de correo con un enlace con el quepodrás modificar la contraseña.

3. Moodle

Vamos a utilizar Moodle como plataforma de trabajo colaborativo. La usaremos paragestionar los foros, ya que las entregas de ejercicios se harán a través del repositorio y nopor Moodle. Se accede pinchando en el recuadro correspondiente (amarillo) en la web delEspecialista o escribiendo directamente la URL http://moodle.jtech.ua.es.

Al igual que el resto de recursos de acceso restringido, el usuario de acceso será lasiniciales del nombre y tu primer apellido. La contraseña inicial será el DNI, y la primeravez que te registres te pedirá una nueva contraseña.

Utilizaremos los foros para resolver dudas y para las sesiones de consulta on-line delproyecto de integración. Podemos acceder a la plataforma desde la urlhttp://moodle.jtech.ua.es/. Desde la página principal de Moodle se puede accederdirectamente a los foros. Se llaman Foro general y Foro proyecto integración.

Guía de laboratorio

3Copyright © 2012-13 Dept. Ciencia de la Computación e IA All rights reserved.

Page 4: Guía de laboratorio - ua

Para poder utilizar correctamente el foro es muy importante que actualices tu foto enMoodle. Para eso, debes pinchar en tu nombre (en la zona de Usuarios en línea o abajo ala derecha, donde pone Usted se ha autentificado como) y seleccionar la pestaña Editarinformación. Allí puedes colocar tu foto.

Cuando todos tenemos la foto es mucho más sencillo contestar e interactuar en el foro. Lasiguiente imagen muestra un ejemplo del foro general en la edición 2009-2010 delespecialista de Java Enterprise:

Guía de laboratorio

4Copyright © 2012-13 Dept. Ciencia de la Computación e IA All rights reserved.

Page 5: Guía de laboratorio - ua

4. Proyectos y espacios de trabajo en Eclipse

Eclipse es el entorno de programación que se va a usar en todas los módulos del curso. Eltrabajo en Eclipse se organiza en proyectos que se guardan en carpetas que Eclipsedenomina espacios de trabajo (Workspaces). Un espacio de trabajo se corresponde con undirectorio físico del disco duro y los proyectos se corresponden con subdirectorios suyos.Para organizar mejor los trabajos que se irán realizando, trabajaremos con dos espacios detrabajo. Uno para los proyectos realizados en los distintos módulos del especialista y otropara los distintos proyectos de integración.

Nota:Eclipse guarda la configuración del espacio de trabajo y de los proyectos en ficheros ocultos queresiden en los mismos directorios que los espacios de trabajo y los proyectos. Los ficheros másimportantes son .metadata que se guarda en el directorio raíz del espacio de trabajo,.project que se guarda en el directorio raíz de cada proyecto y otro fichero .classpath encada proyecto con información necesaria para la compilación en Java de las clases del proyecto.

Cuando arrancamos Eclipse por primera vez aparece un cuadro de diálogo en el que nospide el espacio de trabajo en el que vamos a trabajar.

Por defecto, Eclipse sugiere el directorio llamado workspace en el home del usuario. Enel caso de la MV el directorio que sugiere Eclipse es /home/especialista/workspace.Si aceptamos ese espacio de trabajo, Eclipse crea el directorio y comenzaremos a trabajaren él.

Podemos abrir otro espacio de trabajo pulsando el botón Browse o escribiendo su ruta enel campo de texto. Eclipse abrirá el directorio correspondiente, o creará un nuevodirectorio si no existe.

Un espacio de trabajo puede contener distintos proyectos. Cada proyecto puede contener(entre otras cosas) un conjunto de clases Java y un conjunto de librerías. Los proyectospueden estar relacionados, de forma que uno utilice clases o librerías Java que residen en

Guía de laboratorio

5Copyright © 2012-13 Dept. Ciencia de la Computación e IA All rights reserved.

Page 6: Guía de laboratorio - ua

otro. Veremos todo esto con detalle en el módulo Java y Herramientas de Desarrollo. Enla sesión de hoy estudiaremos los aspectos más sencillos relacionados con los proyectos.Entre otras cosas, cómo crearlos, importarlos, guardar una copia de seguridad o subirlos aun repositorio SVN. Por último, explicaremos cómo realizar una entrega de los ejerciciosrealizados utilizando el repositorio SVN.

4.1. Creación e importación de proyectos

En este pequeño ejercicio vamos a comprobar lo sencillo que es crear nuevos proyectosen el espacio de trabajo Eclipse. Durante el curso, vamos a trabajar con dos espacios detrabajo:

• El espacio de trabajo por defecto (workspace) en el que guardaremos los proyectos delos módulos

• El espacio de trabajo del proyecto de integración, que llamaremos (proyint)

Vamos a empezar creando un pequeño proyecto Java. Para ello seguiremos los siguientespasos:

1. Abrimos Eclipse con el espacio de trabajo workspace.2. Creamos un proyecto (pperez-pres-agenda) y algún fichero dentro del proyecto.3. Importamos otro proyecto en el espacio de trabajo.

Vamos a continuación a realizar estos pasos de forma detallada.

Arrancamos Eclipse con el espacio de trabajo workspacedefinido. Tendrá el siguienteaspecto:

2. El panel vertical izquierdo es el destinado a contener los proyectos, ahora está vacío.

Guía de laboratorio

6Copyright © 2012-13 Dept. Ciencia de la Computación e IA All rights reserved.

Page 7: Guía de laboratorio - ua

Para crear un proyecto podemos escoger la opción File > New > Java Project... o pulsarel botón derecho sobre el panel de proyectos y escoger la opción New > Java Project....En cualquiera de estos casos, aparecerá un asistente que nos guiará para crear el tipo deproyecto que deseemos. En este caso vamos a crear nuestro primer proyecto Java.Escribimos como nombre del proyecto pres-agenda, precedido por nuestro nombre deusuario: pperez-pres-agenda. Todos los nombres de proyecto vamos a escribirlosutilizando este formato: nuestro nombre de usuario, el nombre corto del módulo en queestemos haciendo los ejercicios y el nombre del proyecto. De esta forma podremosalmacenarlos todos en un mismo directorio o repositorio (el espacio de trabajo workspace

de Eclipse y el repositorio SVN). La utilización de tu login en el prefijo hará posiblepublicar, compartir o corregir los mismos proyectos realizados por distintos alumnos.

Cuando pulsamos Finish Eclipse crea el proyecto, creando un directorio nuevo en elespacio de trabajo. Aparece como una carpeta en el panel de proyectos. Una vez creado elproyecto, vamos a crear en él un pequeño programa Java, que nos va a servir parademostrar algunas de las características de Eclipse. En el programa vamos a definir unaclase Tarjeta con los datos de una tarjeta de contactos: id (int), nombre (String) yeMail (String) y una clase Main con el programa principal de la aplicación, que crea unpar de tarjetas, las guarda en un array y lo recorre para mostrarlas por la salida estándar.

Todas las clases deben estar en el paquete org.especialistajee.agenda. Es unacostumbre habitual utilizar como prefijo en el nombre del paquete la URL de la empresau organización que desarrolla el código en orden inverso. De esta forma se garantiza queel nombre completo de la clase es único y no coincide con otras clases desarrolladas porotras organizaciones. En nuestro caso la URL http://especialistajee.org está redirigida alfrontal del Especialista: http://web.ua.es/especialistajava.

Guía de laboratorio

7Copyright © 2012-13 Dept. Ciencia de la Computación e IA All rights reserved.

Page 8: Guía de laboratorio - ua

Para crear una clase seleccionamos New > Class y rellenamos el cuadro de diálogo con elnombre de la clase y el paquete. Comenzamos con la clase Tarjeta:

Escribimos la clase Tarjeta con los campos indicados, los getters y setterscorrespondiente y un constructor que cree una tarjeta nueva a partir de un identificador.Podemos probar a utilizar la ayuda de Eclipse para generar código con la opción Source >Generate Getters and Setters ... o Source > Generate Constructor using fields ....Generamos también de forma automática el método toString.

Creamos una clase Main en la que declaramos un array de tarjetas, creamos y añadimosun par de tarjetas y recorremos el array imprimiendo sus datos en la salida estándar. Laestructura de clases que aparece en el proyecto es esta:

Antes de lanzar la aplicación vamos a probar a modificar la configuración de los panelesen la perspectiva actual. Una perspectiva es un conjunto de vistas en unas posicionesdeterminadas. Una vista es un panel especializado de Eclipse que permite interactuarsobre una determinada característica del proyecto. Eclipse contiene una enorme cantidadde vistas que permiten gestionar múltiples aspectos del desarrollo: listas de tareas porhacer, baterías de pruebas, despliegue, edición y compilación, etc. Todas estas vistas seorganizan en un conjunto de perspectivas predefinidas.

Guía de laboratorio

8Copyright © 2012-13 Dept. Ciencia de la Computación e IA All rights reserved.

Page 9: Guía de laboratorio - ua

Las perspectivas que vamos a utilizar principalmente en el curso son Java y Java EE.

Añadimos la vista Navigator que nos permite explorar la estructura de archivos creadosen el disco duro. La podemos colocar junto a la vista Package Explorer:

Guía de laboratorio

9Copyright © 2012-13 Dept. Ciencia de la Computación e IA All rights reserved.

Page 10: Guía de laboratorio - ua

Vemos que Eclipse realiza automáticamente todo el trabajo de compilar las clases .java

a ficheros .class y colocarlos en los directorios correspondientes a sus paquetes.También podemos ver los ficheros .settings, .classpath y .project donde guardadistintas características del proyecto. Es recomendable dejar esta vista Navigator porquela utilizaremos más de una vez para visualizar la estrucutura real del sistema de archivos.

En algunos casos, puede ser que al mover las distintas vistas dejemos bastante cambiadauna perspectiva. Si queremos volver a la configuración por defecto debemos seleccionarWindow > Reset Perspective..

3. Ejecutamos la aplicación con la opción Run > Run As > Java Application. Una formarápida de acceder a esta opción es con el icono de play en la barra superior de eclipse.

4. Por último vamos a probar la importación de proyectos Eclipse. Vamos a hacer laprueba con un proyecto que hemos creado para esta sesión. Se encuentra comprimido enel fichero sesion01-ejercicios.zip, en la página principal de los apuntes de estemódulo (lo puedes descargar directamente desde este enlace). Guarda el fichero ZIP en lacarpeta de descargas, por ejemplo, y descomprímelo. Verás el proyecto PuntosEnCanvas.Se trata de una sencilla aplicación Java en la que se abre una ventana y se dibujan algunospuntos en ella.

Importa el proyecto con la opción File > Import... (o pulsando el botón derecho sobre elpanel y seleccionando Import > Import...). Selecciona General > Existing Project intoWorkspace. Selecciona Select root directory y escoge el directorio del proyecto queacabas de descargar. Puedes ver cómo aparece marcada la opción Copy projects intoworkspace, indicando que Eclipse copiará físicamente el proyecto al espacio de trabajo.Si se dejara desmarcada Eclipse trabajaría los ficheros del proyecto en su localizaciónoriginal. La dejamos marcada:

Guía de laboratorio

10Copyright © 2012-13 Dept. Ciencia de la Computación e IA All rights reserved.

Page 11: Guía de laboratorio - ua

Una vez importado, puedes consultar el código fuente del proyecto y también ejecutarlo.Después, para seguir el convenio de que todos los proyectos de un mismo módulocomiencen su nombre con el módulo, cambia el nombre del proyecto apperez-pres-puntosEnCanvas con la opción Refactor > Rename...:

Una vez creados e importados los proyectos, vamos a ver en el siguiente apartado cómosubirlos al repositorio SVN.

Nota:Hay que hacer notar la gran portabilidad de los proyectos de Eclipse (debido sobre todo a queEclipse está desarrollado en Java). Es posible comenzar a trabajar en Windows y seguirtrabajando en cualquier otro sistema operativo (Linux o Mac OS X). El único detalle a tener encuenta es el de asegurarse de usar la misma codificación de texto (text encoding) en todos lossistemas. Por defecto, Eclipse usa la codificación de texto del sistema operativo, lo que puede darlugar a problemas de compatibilidad al abrir ficheros de texto creados en otros sistemasoperativos. Lo recomendable cuando vamos a trabajar con distintos SOs es escoger una única

Guía de laboratorio

11Copyright © 2012-13 Dept. Ciencia de la Computación e IA All rights reserved.

Page 12: Guía de laboratorio - ua

codificación (ISO-8859-1, por ejemplo) y un único delimitador de fin de linea (el de Unix, porejemplo). Para escoger la codificación en la que va a trabajar Eclipse hay que seleccionar laopción Window > Preferences > General > Workspace.

5. Repositorios Git

Si hemos creado un repositorio Git local para nuestro proyecto, será sencillo replicarlo enun repositorio Git remoto. En primer lugar, necesitaremos crear un repositorio remoto.Vamos a ver cómo crear un repositorio privado en BitBucket (bitbucket.org).

• En primer lugar, deberemos crearnos una cuenta en BitBucket, si no disponemos yade una.

• Creamos desde nuestra cuenta de BitBucket un repositorio (Repositories > Createrepository).

• Deberemos darle un nombre al repositorio. Será de tipo Git y como lenguajeespecificaremos Objective-C.

Guía de laboratorio

12Copyright © 2012-13 Dept. Ciencia de la Computación e IA All rights reserved.

Page 13: Guía de laboratorio - ua

Creación de un repositorio BitBucket

• Una vez hecho esto, veremos el repositorio ya creado, en cuya ficha podremosencontrar la ruta que nos dará acceso a él.

Ficha del repositorio en BitBucket

Guía de laboratorio

13Copyright © 2012-13 Dept. Ciencia de la Computación e IA All rights reserved.

Page 14: Guía de laboratorio - ua

5.1. Cómo crear el repositorio Git inicial para cada módulo

En primer lugar descargaremos las plantillas de la web de JTech, y añadiremos laconfiguración necesaria al directorio de trabajo local para conectarlo con el repositorioremoto de BitBucket. En la cuenta de Bitbucket tendremos que crear un repositorio porcada módulo del curso. El nombre del repositorio será el nombre corto del módulo:

• intro• web• objc• java• ios• android• persistencia• red• serv-android• serv-ios• multimedia• proyecto-android• proyecto-ios

Los pasos a seguir son:

1. Crear el repositorio en BitBucket con el nombre que corresponda (según la listaanterior). En BitBucket veremos la URL que identifica el repositorio, por ejemplo:

https://[email protected]/malozano/intro.git

2. Crear un directorio local para el repositorio del módulo. Será diferente según si laplataforma es Android o iOS.

• Android: Crear con Eclipse un workspace con el nombre del módulo. Por ejemplo,java.

• iOS: Crear un directorio en el disco con el nombre del módulo. Por ejemplo, objc.

3. Inicializar el espacio de trabajo o el directorio anterior como un repositorio Git. Paraello, ejecuta en dicho directorio el comando

$ git init

4. Descargar las plantillas de la sesión, y añadir los proyectos que contienen al directorioo espacio de trabajo anterior.

• Android: Importar los proyectos desde Eclipse• iOS: Descomprimir los proyectos en el directorio directamente.

Guía de laboratorio

14Copyright © 2012-13 Dept. Ciencia de la Computación e IA All rights reserved.

Page 15: Guía de laboratorio - ua

5. Añadir los ficheros al repositorio y hacer el primer commit desde el terminal o desdeEclipse.

Android: desde línea de comandos

git add .git commit -m "Versión inicial"

iOS: desde línea de comandos

git add NombreProyecto NombreProjecto.xcodeproj/project.pbxprojgit commit -m "Versión inicial"

Eclipse (en lugar de usar línea de comandos):

Selecciona uno a uno los proyectos del módulo y escoge en el menú contextual la opciónTeam > Share Projects.... Selecciona Git.

6. Configura el repositorio remoto. Desde el directorio raíz ejecutamos:

$ git remote add originhttps://[email protected]/malozano/intro-ios.git

7. Ahora podemos hacer commit desde Xcode y Eclipse cada vez que se haga algúncambio para registrarlo en el repositorio local, y push cada vez que el proyecto alcance unestado estable para subir los cambios a BitBucket. También se pueden realizar estasoperaciones desde terminal:

$ git commit -m “Mensaje del commit”$ git push origin master

8. Compartir el proyecto con permisos de lectura con los profesores (grupoexpertomoviles:profesores) desde la web de BitBucket.

5.2. Git en Eclipse

Eclipse vendrá con el plugin Egit instalado que nos permite hacer con menús y asistentescasi todo lo que se puede hacer en línea de comandos.

Permite crear un nuevo repositorio Git que estará en local. Cada proyecto de esterepositorio será una carpeta diferente, se pueden añadir (Add) desde Eclipse, dentro delsubmenú Team del menú contextual del proyecto correspondiente. En dicho menú seencuentran también las opciones de hacer Commit, y la de Push, que en nuestro caso seríapara actualizar los cambios en Bitbucket:

Guía de laboratorio

15Copyright © 2012-13 Dept. Ciencia de la Computación e IA All rights reserved.

Page 16: Guía de laboratorio - ua

Push en Egit

Para hacer push hay que introducir la URL del repositorio, que viene dada por Bitbucketpara cada repositorio.

Url remota en Egit

Se pide subir HEAD, todos los branches y todos los tags (etiquetas):

Guía de laboratorio

16Copyright © 2012-13 Dept. Ciencia de la Computación e IA All rights reserved.

Page 17: Guía de laboratorio - ua

Asistente de push en Egit

Para no tener que introducir la Url de un repositorio cada vez que se haga push, se puedeir a la vista de Git Repositories en Eclipse para configurar un nuevo repositorio remoto:

Vista Git Repositories

5.3. Git en Xcode

Con una cuenta ya creada en Bitbucket, abrimos Xcode, donde tenemos un proyecto yacreado con un repositorio Git local. Para vincular este repositorio local con el repositorioremoto que acabamos de crear, deberemos ir a la pestaña Repositories de la ventana delOrganizer, donde veremos el repositorio local de nuestro proyecto.

Guía de laboratorio

17Copyright © 2012-13 Dept. Ciencia de la Computación e IA All rights reserved.

Page 18: Guía de laboratorio - ua

Repositorio en Organizer

Dentro de este repositorio local, veremos una carpeta Remotes. Entraremos en ella, ypulsaremos el botón Add Remotes de la parte inferior de la pantalla. Ahora nos pedirá unnombre para el repositorio remoto y la ruta en la que se puede localizar. Utilizaremos aquícomo ruta la ruta de tipo HTTPS que vimos en la ficha del repositorio de BitBucket:

Añadir repositorio remoto

Una vez añadido el repositorio remoto, deberemos introducir el login y password que nosden acceso a él. Con esto ya podemos volver al proyecto en Xcode, y enviar los cambiosal servidor. En primer lugar deberemos hacer un Commit de los cambios en el repositoriolocal, si los hubiera (File > Source Control > Commit...). Tras esto, ya podremos subirestos cambios al repositorio remoto (Push). Para ello, seleccionamos la opción File >Source Control > Push..., tras lo cual nos pedirá que indiquemos el repositorio remoto en

Guía de laboratorio

18Copyright © 2012-13 Dept. Ciencia de la Computación e IA All rights reserved.

Page 19: Guía de laboratorio - ua

el que subir los cambios. Seleccionaremos el repositorio que acabamos de configurar.

Push en repositorio remoto

Tras realizar esta operación en la web de BitBucket podremos ver el código que hemossubido al repositorio:

Código en BitBucket

6. Como realizar la entrega de los ejercicios

La entrega se realizará etiquetando el repositorio a entregar con la etiquetamodulo-entrega, donde módulo es el nombre corto del módulo anteriormentemencionado. La etiqueta deberá colocarse en el momento en que ya se considerafinalizado el trabajo, y deberá ser colocada antes de las 23:59 del último día de entregaestablecido para cada módulo. También hay que hacer un push antes de esa hora para quela etiqueta y últimos cambios queden actualizados en Bitbucket. Para que los profesorestengan acceso hay que compartir el repositorio con el grupo de expertomoviles:profesoresque aparecerá en la parte Admin/Access del repositorio en la interfaz web de Bitbucket.

Guía de laboratorio

19Copyright © 2012-13 Dept. Ciencia de la Computación e IA All rights reserved.

Page 20: Guía de laboratorio - ua

Select a group... para compartir el repositorio con el grupo de profesores.

Guía de laboratorio

20Copyright © 2012-13 Dept. Ciencia de la Computación e IA All rights reserved.