PDM Avanzado Práctica a entregar

De Manuais Informática - IES San Clemente.
Ir a la navegación Ir a la búsqueda

Introdución

Para avaliar ao profesorado que sigue o curso en Platega propóñense dúas opcións:

  • ou ben facer as tarefas indicadas en Platega para cada unha das unidades didácticas
  • ou facer unha aplicación completa que se indica a continuación aplicando os conceptos aprendidos en cada unha delas.

Na plataforma Platega entrégase ao alumnado o proxecto da aplicación coa parte da interface xa feita, quitando todo o código que teña que ver có contido das diferentes unidades didácticas.


A aplicación instalable é a seguinte: Media:DiarodeViaxe.apk.

Se se instala nun AVD este ten que ter unha imaxe coa versión Google API como está comentado neste enlace. Está probada nun Google Map API 21.


O proxecto Android inicial baleiro da aplicación está na plataforma Platega e no seguinte enlace: [[Media:]] (Por agora dispoñible só na plataforma Platega ou Mestre do IES San Clemente)


Cando se importa o proxecto hai que resolver unha referencia á librería 'android-support-v7-appcompat', porque está cun sdk-mínimo inferior da API 16.

Para facelo:


Se non está dita librería ('android-support-v7-appcompat') no voso proxecto:

Se aparece unha cruz vermella na librería hai que ir ás propiedades (botón dereito sobre a librería => properties), e na sección Android escoller como Proyect Build Target a versión de Android 5.0.1 (API 21).

Facer un Clean de todos os proxectos (opción de menú Proyect => Clean de Eclipse).



Comentar que o alumno ten total liberdade para modificar a funcionalidade e aparencia da aplicación así como o SDK mínimo, con tal que implemente as funcionalidades correspondentes de cada unidade didáctica.

Agora explicaremos o funcionamento.

Obxectivo da práctica

O obxectivo da aplicación é ter un diario de viaxe no que gardar os lugares que visitamos. Dentro de cada lugar podemos:

  • Gardar fotos.
  • Gardar coordenadas GPS. Por exemplo, se facemos unha ruta andando podemos gardar os puntos máis interesantes da mesma.
  • Gardar audios gravados (e reproducilos).

Tamén podemos visualizar un mapa de Google Map unindo mediante liñas rectas os puntos GPS que teña rexistrado un lugar e ademais amosa a posición actual do usuario.

Pantallas

Pantalla de presentación

Nome da clase no proxecto entregado: Presentacion.java

Pantalla na que aparece unha animación e unha música.

Debemos premer o botón 'Adiante'. Esta pantalla está totalmente feita.


PDM Avanzada Aplicacion 1.JPG


Pantalla Principal

Nome da clase no proxecto entregado: Principal.java

PDM Avanzada Aplicacion 2.JPG

Permite ir ás diferentes pantallas que conforman a aplicación e que ten na parte superior dúas opcións de menú:

Dito arquivo analízase e engádense os lugares á base de datos.
  • Opción de menú Preferencias: Indicamos a coordenada (latitude e lonxitude) na que queremos que nos situemos no mapa cando o abramos. Ten que estar a opción de checkbox activada. En caso contrario situarase na última posición coñecida, ata recibir nova información polo GPS. Usamos unha pantalla de preferencias.
Nome da clase no proxecto entregado: /res/xml/pantalla_preferencias.xml
PDM Avanzada Aplicacion 3.JPG

O alumno terá que implementar a pantalla de preferencias e programar a súa funcionalidade na pantalla do mapa (XestionMapa.java).

Pantalla Alta Lugar

Nome da clase no proxecto entregado: AltaLugar.java

PDM Avanzada Aplicacion 4.JPG


Pantalla que da de alta un novo lugar na base de datos.

Os campos necesarios son o nome do lugar e unha descrición.

Unha vez prememos o botón de alta, debemos engadir á base de datos o lugar.

Ao engadilo:

  • Obteremos o identificador do lugar (clave autonumérica) que teremos que pasar no Intent á seguinte pantalla (AltaRecordos.java) xunto co nome do lugar.
  • Creamos os seguintes cartafoles:
  • /SD_CARD/DIARIO_DE_VIAXE/NOME_LUGAR/IMAXES => Onde se gardarán as imaxes.
  • /SD_CARD/DIARIO_DE_VIAXE/NOME_LUGAR/AUDIOS => Onde se gardarán os audios.

Pantalla Alta Recordos

Nome da clase no proxecto entregado: AltaRecordos.java

PDM Avanzada Aplicacion 10.JPG


A esta pantalla podemos vir dende a pantalla 'Lista Lugares' ou dende a pantalla 'Alta Lugar'. As dúas mandarán no Intent o id do lugar e o nome.

O obxectivo desta pantalla é a de gardar as fotos / audio / coordenadas GPS asociados ó lugar.

Na parte inferior (en forma de botóns) temos todas esas opcións.

  • Ó gravar un audio se gardará en /SD_CARD/DIARIO_DE_VIAXE/NOME_LUGAR/AUDIOS e se refrescará a lista de audios.
  • Ó obter unha foto se gardará en /SD_CARD/DIARIO_DE_VIAXE/NOME_LUGAR/IMAXES e se refrescará o horizontalScrollView (control que visualiza as imaxes).
  • Ó gravar unha coordenada GPS se engadirá a lista de coordenadas e a base de datos. O envío de coordenadas 'falsas' de GPS está explicado na Unidade de Xeolocalización.

Pantalla Lista Lugares

Nome da clase no proxecto entregado: ListaLugares.java

PDM Avanzada Aplicacion 11.JPG


Aparecen nunha lista a lista de lugares da base de datos.


Ó manter premido sobre un lugar aparece o seguinte menú emerxente (/res/menu/menulistalugares.xml):

PDM Avanzada Aplicacion 12.JPG


  • Detalle lugar: Volvemos á pantalla de 'Alta Recordos' amosando os datos do lugar escollido.
  • Mapa lugar: Aparece un mapa de google map onde, se está activado o GPS, aparece unha icona indicando o nosa posición e ademais aparecen unidos os puntos GPS rexistrados para ese lugar.
  • Borrar lugar: Dá de baixa o lugar seleccionado. Bórrao da base de datos e da SD externa (/SD_CARD/DIARIO_DE_VIAXE/NOME_LUGAR).

Pantalla Mapa Lugar

Nome da clase no proxecto entregado: XestionMapa.java

PDM Avanzada Aplicacion 16.JPG

Aparece un mapa de google map onde, se está activado o GPS, aparece unha icona indicando o nosa posición e ademais aparecen unidos os puntos GPS rexistrados para ese lugar.


Base de datos

A base de datos xa se atopa creada no cartafol /assets/ do proxecto.

O alumno terá que (explicación dada na unidade de Datos Persistentes) copiar, sempre que non exista, dita base de datos ó cartafol /data/data/nome_paquete/databases/. Isto se fará na activity Principal.

A base de datos consta das seguintes táboas en SQL:

Táboa LUGARES:

CREATE TABLE LUGARES ( 
    _id         INTEGER         PRIMARY KEY ASC AUTOINCREMENT,
    nome        VARCHAR( 200 )  NOT NULL,
    descripcion VARCHAR( 800 ) 
);


Táboa COORDGPS:

CREATE TABLE COORDGPS ( 
    _id       INTEGER PRIMARY KEY AUTOINCREMENT,
    latitude  REAL,
    lonxitude REAL,
    _id_lugar INTEGER REFERENCES lugares ( _id ) ON DELETE CASCADE
                                                 ON UPDATE CASCADE 
);






-- Ángel D. Fernández González e Carlos Carrión Álvarez -- (2014).