From 97891544eca42a7e247c17568fe425694cebd910 Mon Sep 17 00:00:00 2001 From: gumartinm Date: Sun, 11 Nov 2012 20:56:42 +0100 Subject: [PATCH] Changes in "Diagrama de clases aplicacion Android" Hopefully last ones. --- capitulo5/capitulo5.tex | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/capitulo5/capitulo5.tex b/capitulo5/capitulo5.tex index 9b55d16..fcd835e 100644 --- a/capitulo5/capitulo5.tex +++ b/capitulo5/capitulo5.tex @@ -1,4 +1,4 @@ -\chapter{Diseño e implementación de las aplicaciones Web y Android} +\chapter{Diseño de las aplicaciones Web y Android} \section{Capa de persistencia, modelado bases de datos} @@ -113,6 +113,12 @@ En la Figura~\ref{fig:MobiAdsAndroidDataBase}) donde se representa la única tab \label{fig:MobiAdsObjects} \end{figure} +En el diagrama de la Figura~\ref{fig:MobiAdsObjects}) se muestra la existencia de las cuatro \emph{Activities}\footnote{Android \emph{Activities}, ver: \url{http://developer.android.com/reference/android/app/Activity.html}} así como su relación con otras partes de la aplicación Android. Por ejemplo, se muestra claramente como \emph{Activities} relacionadas con la representación de los datos descargados deben acceder a la base de datos SQLite de la aplicación a través de una clase denominada \textbf{IndexerProvider}. + +La clase denominada \textbf{MobiAdsBatch}, como su nombre hace presagiar se encargará de realizar acciones en segundo plano mediante un servicio de Android configurado para tal fin (la clase \textbf{MobiAdsService}). Y por último la clase \textbf{DefaultHttpClient} se encargará de las comunicaciones HTTP con el servidor Web. + +Por otro lado en la Figura~\ref{fig:MobiAdsService}) se hace zoom para mostrar al lector de qué clases se compone internamente \textbf{MobiAdsService}. Este servicio en segundo plano, se ejecutará a voluntad del usuario y a través de la implementación de la clase \textbf{LocationListener} de Android permitirá realizar peticiones automáticas al servidor Web a medida que el usuario varía su posición física. Las coordenadas GPS serán recibidas por \textbf{MobiAdsBatch} que las procesará y llevará a cabo las acciones que correspondan como será explicado en las siguientes páginas. + \begin{figure}[H] \centering \includegraphics[width=1\textwidth]{fig/MobiAdsService} @@ -120,6 +126,14 @@ En la Figura~\ref{fig:MobiAdsAndroidDataBase}) donde se representa la única tab \label{fig:MobiAdsService} \end{figure} +En la Figura~\ref{fig:MobiAdsBatch}) como se hizo anteriormente para \textbf{MobiAdsService}, se representa el esquema interno de las clases que componen \textbf{MobiAdsBatch}. Es muy importante que esta clase funcione correctamente, pues sus procesos se ejecutarán de forma desatendida. Se observa que hace uso de la clase \textbf{AndroidHttpClient} que permitirá enviar y recibir información desde el servidor Web vía HTTP. + +Para poder procesar varias acciones (actualización de coordenadas GPS) en paralelo, se hace uso del \textbf{ExecutorService} de Java que permite ejecutar tareas en paralelo mediante hilos. Los datos procesados son almacenados (si es necesario) en la base de datos SQLite. Haciendo uso para ello de la clase \textbf{IndexerProvider} que permite separar el modelo de datos del resto de la aplicación evitando tener que implementar sentencias SQL. Si en un futuro Android usara otro tipo de base de datos, esta abstracción hará que el cambio sea completamente transparente para el resto de la aplicación. + +Por último en la Figura~\ref{fig:MobiAdsList}) se muestra el diagrama de clases de la \emph{Activity} \textbf{MobiAdsList}. Es importante resaltar que esta clase usa \emph{Fragments}\footnote{Android \emph{Fragments}, ver: \url{http://developer.android.com/guide/components/fragments.html}}, lo cual facilitará la utilización de esta \emph{Activity} (y por tanto de esta aplicación) en dispositivos con diferentes tamaños y resoluciones de pantalla (no solo \emph{Smartphones} si no también tabletas y portátiles con Android) + +También en la Figura~\ref{fig:MobiAdsList}) se observa que la clase \textbf{AdsListLoader} extiende de \textbf{AsynckTaskLoader} que es una clase proporcionada por la API Android y que permite actualizar y alimentar la vista con datos procedentes del modelo (en nuestro caso datos procedentes de la base de datos SQLite) sin bloquear la vista (de forma asíncrona) + \begin{figure}[H] \centering \includegraphics[width=1\textwidth]{fig/MobiAdsBatch} @@ -134,14 +148,6 @@ En la Figura~\ref{fig:MobiAdsAndroidDataBase}) donde se representa la única tab \label{fig:MobiAdsList} \end{figure} -\begin{figure}[H] - \centering - \includegraphics[width=1\textwidth]{fig/MobiAdsLatestList} - \caption{\emph{Diagrama de clases Android: MobiAdsLatestList.}} - \label{fig:MobiAdsLatestList} -\end{figure} - - \section{Diagrama de clases aplicación Web} -- 2.1.4