You are on page 1of 69

TRABAJO FIN DE GRADO

Grado de Ingeniera de Informtica

FRAMEWORK DE DESARROLLO DE APLICACIONES WEB MULTIPLATAFORMA

Autor: Tutor:

Javier Espinosa Alfonso Francisco Javier Garca Blas

egan!s" a # de septiem$re de %&'%

Ttulo: Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma Autor: Javier Espinosa Alfonso Tutor: Francisco Javier Garca Blas

EL TRIBUNAL
+residente,

-ocal,

.ecretario,

Reali/ado el acto de defensa 0 lect*ra del Tra$a1o de Fin de Grado el da 22 de 2222222 de %&'% en egan!s" en la Esc*ela +olit!cnica .*perior de la 3niversidad 4arlos III de 5adrid" ac*erda otorgarle la 4A IFI4A4I6N de

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

ndice General
'7 Introd*cci8n77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777779
'7' 5otivaci8n777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777779 '7% O$1etivos77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: '7; Estr*ct*ra de la memoria7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: '7< Glosario de t!rminos777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777=

%7 Estado del arte777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777'&


%7' >TT+77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777'& %7% >T5 #7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777'' %7; +>+7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777'% %7< 50.? 77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777'; %7# RE.T @e$ .ervices7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777'< %7A 1?*er0 B 1?*er0 5o$ile7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777'A %79 J.ON7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777': %7: +ConeGap77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777%' %7= .mart0 ;7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777%; %7'& J*stificaci8n de tecnologas777777777777777777777777777777777777777777777777777777777777777777777777777777777%<

;7 Anlisis77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777%A
;7' Descripci8n general77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777%9 ;7% Definici8n de reD*isitos7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777%:
;7%7' ReD*isitos f*ncionales777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 %= ;7%7% ReD*isitos no f*ncionales777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 ;% ;7%7; ReD*isitos de restricci8n77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 ;;

<7 DiseEo e implementaci8n77777777777777777777777777777777777777777777777777777777777777777777777777;#


<7' ArD*itect*ra del sistema77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777;# <7% Diagrama de fl*1o777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777;=

#7 Eval*aci8n 0 res*ltados777777777777777777777777777777777777777777777777777777777777777777777777777777<'
#7' Entorno de eval*aci8n777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777<'
#7'7' Tests de +>+3nit777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 <' #7'7% 3so de la aplicaci8n77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 <%

#7% Res*ltados777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777<;

A7 E1emplo de *so, Aplicaci8n m8vil7777777777777777777777777777777777777777777777777777777777777<< 97 +lanificaci8n 0 pres*p*esto77777777777777777777777777777777777777777777777777777777777777777777777A&


+gina ; de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

97' +lanificaci8n777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A&
97'7' Diagrama de Gantt777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 A'

97% +res*p*esto777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A%
97%7' 4ostes de personal777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 A% 97%7% 4ostes de Card(are77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 A; 97%7; 4ostes de soft(are777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 A< 97%7< 4oste total777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 A#

:7 4oncl*siones 0 lneas f*t*ras77777777777777777777777777777777777777777777777777777777777777777777AA


:7' 4oncl*siones77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777AA :7% neas f*t*ras7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A9

=7 Bi$liografa7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A:

+gina < de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

ndic d t!"l!#
'7 Ta$la, +lataformas m8viles D*e soporta +ConeGap 77777777777777777777777777777777777777777777777777777777777%% %7 Ta$la, ReD*isito f*ncional RF3F&&&'77777777777777777777777777777777777777777777777777777777777777777777777777777777777777 %= ;7 Ta$la, ReD*isito f*ncional RF3F&&&%77777777777777777777777777777777777777777777777777777777777777777777777777777777777777 %= <7 Ta$la, ReD*isito f*ncional RF3F&&&;77777777777777777777777777777777777777777777777777777777777777777777777777777777777777 %= #7 Ta$la, ReD*isito f*ncional RF3F&&&<77777777777777777777777777777777777777777777777777777777777777777777777777777777777777 ;& A7 Ta$la, ReD*isito f*ncional RF3F&&&#77777777777777777777777777777777777777777777777777777777777777777777777777777777777777 ;& 97 Ta$la, ReD*isito f*ncional RF3F&&&A77777777777777777777777777777777777777777777777777777777777777777777777777777777777777 ;& :7 Ta$la, ReD*isito f*ncional RF3F&&&977777777777777777777777777777777777777777777777777777777777777777777777777777777777777 ;' =7 Ta$la, ReD*isito f*ncional RF3F&&&A77777777777777777777777777777777777777777777777777777777777777777777777777777777777777 ;' '&7 Ta$la, ReD*isito no f*ncional RNFF&&&'777777777777777777777777777777777777777777777777777777777777777777777777777777;% ''7 Ta$la, ReD*isito no f*ncional RNFF&&&%777777777777777777777777777777777777777777777777777777777777777777777777777777;% '%7 Ta$la, ReD*isito no f*ncional RNFF&&&;777777777777777777777777777777777777777777777777777777777777777777777777777777;% ';7 Ta$la, ReD*isito no f*ncional RNFF&&&<777777777777777777777777777777777777777777777777777777777777777777777777777777;; '<7 Ta$la, ReD*isito de restricci8n RREF&&&'7777777777777777777777777777777777777777777777777777777777777777777777777777;; '#7 Ta$la, ReD*isito de restricci8n RREF&&&%7777777777777777777777777777777777777777777777777777777777777777777777777777;; 'A7 Ta$la, ReD*isito de restricci8n RREF&&&;7777777777777777777777777777777777777777777777777777777777777777777777777777;< '97 Ta$la, +lanificaci8n del tra$a1o por actividades777777777777777777777777777777777777777777777777777777777777777777A& ':7 Ta$la, 4ostes de personal7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 A% '=7 Ta$la, 4ostes de Card(are777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 A; %&7 Ta$la, 4ostes de soft(are7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 A< %'7 Ta$la, 4oste total7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 A#

+gina # de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

ndic d $i%ur!#
'7 Il*straci8n, ogo >T5 #777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 '' %7 Il*straci8n, ogo +>+77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 '% ;7 Il*straci8n, ogo 50.? 777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 '; <7 Il*straci8n, ogo de 1?*er07777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 'A #7 Il*straci8n, ogo de 1?*er0 5o$ile77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 '9 A7 Il*straci8n, 4onstr*cci8n de *n J.ON o$1ect777777777777777777777777777777777777777777777777777777777777777777777777': 97 Il*straci8n, 4onstr*cci8n de *n J.ON arra0777777777777777777777777777777777777777777777777777777777777777777777777777': :7 Il*straci8n, Formaci8n de *n string en J.ON777777777777777777777777777777777777777777777777777777777777777777777777'= =7 Il*straci8n, Opciones vlidas para la formaci8n de *n val*e en J.ON77777777777777777777777777777%& '&7 Il*straci8n, Formato de *n n*m$er en J.ON7777777777777777777777777777777777777777777777777777777777777777777777%& ''7 Il*straci8n, ogo de +ConeGap7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 %' '%7 Il*straci8n, Desarrollo aplicaci8n +ConeGap77777777777777777777777777777777777777777777777777777777777777777777777%' ';7 Il*straci8n, +lataformas soportadas7777777777777777777777777777777777777777777777777777777777777777777777777777777777777 %% '<7 Il*straci8n, ogo de .mart07777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 %; '#7 Il*straci8n, Estr*ct*ra principal del sistema77777777777777777777777777777777777777777777777777777777777777777777777%9 'A7 Il*straci8n, Estr*ct*ra detallada del sistema7777777777777777777777777777777777777777777777777777777777777777777777;A '97 Il*straci8n, Diagrama de fl*1o de *na petici8n >TT+777777777777777777777777777777777777777777777777777777777;= ':7 Il*straci8n, +antalla de inicio77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 <# '=7 Il*straci8n, +antalla de menG principal77777777777777777777777777777777777777777777777777777777777777777777777777777777<A %&7 Il*straci8n, +antalla de form*lario H+ide t* pres*p*estoH77777777777777777777777777777777777777777777777<9 %'7 Il*straci8n, +antalla con teclado n*m!rico77777777777777777777777777777777777777777777777777777777777777777777777777<: %%7 Il*straci8n, Bot8n de opciones7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 <= %;7 Il*straci8n, Bot8n de opciones IIIJ77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 <= %<7 Il*straci8n, Bot8n de opciones IIIIJ7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 #& %#7 Il*straci8n, +antalla con teclado de correo electr8nico7777777777777777777777777777777777777777777777777777#' %A7 Il*straci8n, +antalla de opciones H ocal/ateH77777777777777777777777777777777777777777777777777777777777777777777#% %97 Il*straci8n, +antalla de preferencias777777777777777777777777777777777777777777777777777777777777777777777777777777777777 #; %:7 Il*straci8n, +antalla de preferencias IIIJ7777777777777777777777777777777777777777777777777777777777777777777777777777777#; %=7 Il*straci8n, +antalla de preferencias II-J77777777777777777777777777777777777777777777777777777777777777777777777777777#< ;&7 Il*straci8n, +antalla de preferencias IIIIJ777777777777777777777777777777777777777777777777777777777777777777777777777777#< ;'7 Il*straci8n, +antalla HForm*lario no vlidoH777777777777777777777777777777777777777777777777777777777777777777777777## ;%7 Il*straci8n, 3so de K3sar mis preferenciasL7777777777777777777777777777777777777777777777777777777777777777777777777## ;;7 Il*straci8n, BGsD*eda de categora777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 #A ;<7 Il*straci8n, +antalla HB*scar por categoraH777777777777777777777777777777777777777777777777777777777777777777777777#A ;#7 Il*straci8n, +antalla de form*lario de H5*dan/asH777777777777777777777777777777777777777777777777777777777777#9 ;A7 Il*straci8n, Form*lario con campo de fecCa777777777777777777777777777777777777777777777777777777777777777777777777#: ;97 Il*straci8n, Form*lario con campo de fecCa IIIJ777777777777777777777777777777777777777777777777777777777777777777#: ;:7 Il*straci8n, +antalla de !Mito77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 #=
+gina A de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

&' Introducci(n
El o$1etivo de este apartado es presentar el pro0ecto de fin de grado 0 descri$ir de forma $reve c*les Can sido los motivos por los D*e se Ca reali/ado el pro0ecto" los o$1etivos planteados 0 *na estr*ct*ra de la memoria D*e se Ca llevado a ca$o para descri$ir el pro0ecto7 Adicionalmente se aEade *n glosario de t!rminos7

&'& Moti)!ci(n
El principal motivo de la reali/aci8n de este pro0ecto es $*scar de manera gil *n frame(or) de desarrollo de aplicaciones (e$ compati$le con el mMimo nGmero de dispositivos7 Esto incl*0e dispositivos tradicionales como el ordenador personal disponi$le en la ma0ora de Cogares desde Cace aEos 0 dispositivos m8viles con acceso a Internet con gran a*ge en los Gltimos aEos7 El pro$lema s*rge a la Cora de desarrollar para dispositivos m8viles7 4ada *no de ellos necesita *na aplicaci8n con *n entorno de desarrollo distinto" *n leng*a1e de programaci8n distinto" etc7 Esto o$liga a derivar ese desarrollo a *na empresa especiali/ada o a Cacer *na gran inversi8n de aprendi/a1e de cada *na de las tecnologas para a$arcar el ma0or nGmero de dispositivos m8viles7 Gracias al pro0ecto" no se necesita desarrollar en cada dispositivo m8vil7 3n Gnico desarrollo es s*ficiente para todos los dispositivos7 N lo ms venta1oso de todo, se sig*en *tili/ando los mismos leng*a1es de programaci8n D*e en los dispositivos tradicionales7
+gina 9 de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

4on lo c*al la c*rva de aprendi/a1e es mnima para desarrollar en estos dispositivos7 +or tanto" la necesidad de ser compati$le con el ma0or nGmero de dispositivos 0 conseg*ir D*e la c*rva de aprendi/a1e sea mnima para D*e esto sea posi$le" son los dos grandes motivos por los c*ales se Ca llevado a ca$o el tra$a1o de fin de grado D*e descri$e el presente doc*mento7

&'* O"+ ti)o#


El o$1etivo principal D*e persig*e el tra$a1o es el desarrollo del frame(or) para aplicaciones (e$ de forma gil7 +ara llevar a ca$o este o$1etivo principal" Ca0 otros o$1etivos sec*ndarios a conseg*ir, Desarrollo gil de *na aplicaci8n (e$7 4ompati$le en ma0ora de dispositivos m8viles con *n Gnico desarrollo7 3so de tecnologas dominantes en el mercado la$oral7 4*rva de aprendi/a1e mnima7

&', E#tructur! d l! - -ori!


El presente doc*mento est dividido en varios capt*los" agr*pados de forma l8gica de tal modo D*e a trav!s de s* lect*ra ordenada se consiga *na comprensi8n pa*latina 0 glo$al de la aplicaci8n 0 s* dominio, En el capt*lo '" Introducci(n" se presenta la motivaci8n del tra$a1o" los o$1etivos D*e se pretenden alcan/ar" 0 la estr*ct*ra del presente doc*mento7 En res*men" se pretende dar *na visi8n inicial 0 glo$al del tra$a1o de fin de grado7 En el capt*lo %" E#t!do d l !rt " se presentan 0 anali/an a fondo las tecnologas D*e se *tili/arn en la reali/aci8n del tra$a1o" as como *na 1*stificaci8n de s* *so frente a otras alternativas disponi$les7 En el capt*lo ;" An.li#i# d l #i#t -!" se est*dia detenidamente la f*ncionalidad reD*erida por la aplicaci8n" dando l*gar a los casos de *so 0 a los reD*isitos del sistema" Cerramienta f*ndamental para tener presente Cacia d8nde se pretende llegar con el tra$a1o" 0 D*e servirn tam$i!n a la finali/aci8n del mismo" para verificar D*e el tra$a1o se Ca llevado a ca$o de manera eMitosa7 En el capt*lo <" Di# /o i-0l - nt!ci(n" se define con precisi8n la aplicaci8n a todos los niveles" desde s* arD*itect*ra general" Casta llegar al nivel de detalle de clase" eMponiendo de manera precisa la disposici8n de todos los elementos del sistema 0 la com*nicaci8n entre los mismos7 .e presentan tam$i!n" tanto el diseEo detallado de la $ase de datos *tili/ada" como alg*nos aspectos interesantes del proceso de implementaci8n 0 consideraciones a tener en c*enta7
+gina : de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

En el capt*lo #" E)!lu!ci(n 1 r #ult!do#" se m*estra detalladamente la $atera de pr*e$as reali/ada al sistema en s* totalidad 0 D*e permitir validar los reD*isitos identificados en la fase de anlisis" 0 concl*ir el tra$a1o con !Mito7 En el capt*lo A" E+ -0lo d u#o" se enseEar la aplicaci8n m8vil de e1emplo" mostrando grficamente todas las opciones disponi$les D*e se Can aplicado" 0 eMplicando c8mo Ca0 D*e solicitar *n pres*p*esto de manera satisfactoria en el sistema7 En el capt*lo 9" Pl!ni$ic!ci(n 1 0r #u0u #to" se eMpondr la planificaci8n detallada D*e se seg*ir en el desarrollo del tra$a1o" as como el pres*p*esto" D*e se eMplicar por partes" 1*stificando los costes de personal" Card(are 0 soft(are" e informando del coste total del tra$a1o" incl*0endo $eneficios 0 margen de riesgo7 En el capt*lo :" Conclu#ion # 0 lneas f*t*ras" se recogern las concl*siones posteriores a la reali/aci8n del tra$a1o" as como *na lista de posi$les aspectos amplia$les en versiones posteriores" o lneas de investigaci8n en las D*e se p*ede tra$a1ar para la me1ora constante de la aplicaci8n7 Finalmente" en el capt*lo =" Bi"lio%r!$!" se mostrarn todas las f*entes de informaci8n cons*ltadas d*rante el proceso de desarrollo del tra$a1o7

&'2 3lo#!rio d t4r-ino#


En este apartado se recopilan los acr8nimos ms importantes D*e se Ca0an *tili/ado a lo largo del doc*mento7 T!rmino >TT+ T4+ 3D+ @;4 Descripci8n +rotocolo de transferencia de CiperteMto7 +rotocolo de 4ontrol de Transmisi8n7 +rotocolo de Datagramas de 3s*ario7 El 4onsorcio @orld @ide @e$ es *na com*nidad internacional donde las organi/aciones 5iem$ro" personal a tiempo completo 0 el pG$lico en general tra$a1an con1*ntamente para desarrollar estndares @e$7 Es *n leng*a1e de marcas desarrollado por el @;47 Es *n leng*a1e D*e permite constr*ir eMpresiones D*e recorren 0 procesan *n doc*mento O5 7 5odelo de O$1etos del Doc*mento7 .* responsa$le es @;47 >o1a de Estilos en 4ascada7 Es *n leng*a1e *sado para definir la presentaci8n de *n doc*mento estr*ct*rado escrito en >T5 o O5 7 4apa de coneMi8n seg*ra I.ec*re .oc)ets a0erJ

O5 O+atC DO5 4.. ..

+gina = de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

*' E#t!do d l !rt


*'& 5TTP
El >TT+ I>iperteMt Transfer +rotocol o +rotocolo de Transferencia de >iperteMtoJ es el protocolo *tili/ado en las transacciones de internet7 .* versi8n '7& s*rgi8 en ma0o de '==A" 0 entre s*s caractersticas podemos encontrar, .ig*e *na arD*itect*ra clienteFservidor" lo ms frec*ente es D*e los clientes sean los navegadores de Internet 0 los servidores sean servidores (e$7 F*nciona so$re el protocolo de nivel de transporte T4+ en el p*erto :&7 No s8lo soporta el envo de CiperteMto" tam$i!n tra$a1a con otros rec*rsos (e$ como imgenes7 Es *n sistema orientado a transacciones" 0 cada petici8nPresp*esta va acompaEada de *nas ca$eceras D*e incl*0en metadatos so$re la misma7

Este protocolo va a ser importante para la aplicaci8n (e$ a la Cora de com*nicarse" 0 para ello ser necesario implementar el frame(or) para D*e permita Cacer peticiones >TT+7 .e trata de *n reD*isito imprescindi$le" 0a D*e el cliente para la aplicaci8n (e$ o$tiene toda la informaci8n a trav!s de Internet" 0 todas las acciones D*e se p*eden reali/ar desde la interfa/ reD*ieren llamadas al servidor7 EMisten dos tipos de peticiones necesarias, 3ET, petici8n de la representaci8n de *n rec*rso concreto7 El servidor D*e va a reci$ir las peticiones del dispositivo c*enta con *n A+I por 3R " 0 en las peticiones de
+gina '& de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

este tipo se enc*entran pares claveFvalor separados por B D*e contienen los parmetros7 a ma0or parte de las peticiones de la aplicaci8n se reali/arn con este sistema7 POST, al ig*al D*e con GET" con este tipo de petici8n se p*eden pedir rec*rsos" pero tiene otras f*nciones7 as peticiones +O.T se s*elen emplear para enviar los res*ltados de *n form*lario" 0a D*e no tiene la limitaci8n del tamaEo mMimo por arg*mento D*e tiene GET I%#A caracteresJ 0 adems as no se m*estran en la 3R los datos enviados" 0a D*e van incl*idos en el c*erpo del mensa1e7

*'* 5TML6
>T5 # I>0perTeMt 5ar)*p ang*age" versi8n #J es la D*inta revisi8n importante del leng*a1e $sico de la @orld @ide @e$" >T5 7 >T5 # especifica dos variantes de sintaMis para >T5 , *n QclsicoR >T5 IteMtPCtmlJ" la variante conocida como >T5 # 0 *na variante O>T5 conocida como sintaMis O>T5 # D*e de$er ser servida como O5 IO>T5 J IapplicationPMCtmlSMmlJ7 Esta es la primera ve/ D*e >T5 0 O>T5 se Can desarrollado en paralelo7 Todava se enc*entra en modo eMperimental" lo c*al indica la misma @;4T a*nD*e 0a es *sado por mGltiples desarrolladores (e$ por s*s avances" me1oras 0 venta1as7 '7 Il*straci8n, ogo >T5 # Al no ser reconocido en vie1as versiones de navegadores por s*s n*evas etiD*etas" se le recomienda al *s*ario comGn act*ali/ar a la versi8n ms n*eva" para poder disfr*tar de todo el potencial D*e provee >T5 #7 El desarrollo de este leng*a1e de marcado es reg*lado por el 4onsorcio @;47 Nu )o# l - nto# >T5 # esta$lece *na serie de n*evos elementos 0 atri$*tos D*e refle1an el *so tpico de los sitios (e$ modernos7 Alg*nos de ellos son t!cnicamente similares a las etiD*etas UdivV 0 UspanV" pero tienen *n significado semntico" como por e1emplo UnavV I$loD*e de navegaci8n del sitio (e$J 0 UfooterV7 Otros elementos proporcionan n*evas f*ncionalidades a trav!s de *na interfa/ estandari/ada" como los elementos Ua*dioV 0 UvideoV7 5e1oras en el elemento UcanvasV" capa/ de renderi/ar en los navegadores ms importantes I5o/illa" 4Crome" Opera" .afari e IEJ elementos ;D7 Alg*nos elementos de >T5 <7&' Can D*edado o$soletos" incl*0endo elementos p*ramente de presentaci8n" como UfontV 0 UcenterV" c*0os efectos son mane1ados por el 4..7 Tam$i!n Ca0 *n renovado !nfasis en la importancia del scripting DO5 para el comportamiento de la (e$7 as novedades frente a >T5 <7&' son las sig*ientes, Incorpora etiD*etas Icanvas %D 0 ;D" a*dio" videoJ con codecs para mostrar los contenidos m*ltimedia7 Act*almente Ca0 *na l*cCa entre imponer codecs li$res I@e$5 S -+:J o privados I>7%A<P5+EGF< A-4J7

+gina '' de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

EtiD*etas para mane1ar grandes con1*ntos de datos, Datagrid" Details" 5en* 0 4ommand7 +ermiten generar ta$las dinmicas D*e p*eden filtrar" ordenar 0 oc*ltar contenido en cliente7 5e1oras en los form*larios7 N*evos tipos de datos Ie5ail" n*m$er" *rl" datetime WJ 0 facilidades para validar el contenido sin Javascript7 -isores, 5atC5 If8rm*las matemticasJ 0 .-G Igrficos vectorialesJ7 En general se de1a a$ierto a poder interpretar otros leng*a1es O5 7 Drag B Drop7 N*eva f*ncionalidad para arrastrar o$1etos como imgenes7

*', P5P
+>+ I+>+ >0perteMt +reFprocessorJ es *n leng*a1e de programaci8n interpretado" diseEado en '==< para la creaci8n de pginas (e$ dinmicas7 .iendo m*ltiplataforma 0 teniendo *n gran parecido con los leng*a1es ms com*nes de programaci8n estr*ct*rada permiten D*e el aprendi/a1e sea m*0 corto7 Todo esto 1*nto con la facilidad de instalaci8n Ci/o D*e +>+ cogiera fama m*0 rpidamente7 %7 Il*straci8n, ogo +>+ 4*ando el cliente reali/a *na petici8n al servidor para D*e le enve *na pgina (e$" el servidor e1ec*ta el int!rprete de +>+ procesando el script solicitado 0 generando el contenido de manera dinmica7 as caractersticas ms importantes D*e Cacen D*e +>+ destaD*e entre todas ellas son, eng*a1e m*ltiplataforma7 Orientado al desarrollo de (e$ dinmicas con acceso a informaci8n de $ase de datos7 .oporte con diferentes tipos de servidores de $ases de datos" como por e1emplo 50.? 7 Integraci8n con li$reras eMternas Cace D*e la f*ncionalidad a*mente $astante7 48digo invisi$le al *s*ario D*e lo solicita" programaci8n seg*ra 0 confia$le7 +ermite aplicar t!cnicas de programaci8n orientada a o$1etos7 No reD*iere definici8n de tipos" sino D*e decide en periodo de e1ec*ci8n7 5ane1o de eMcepciones7 3so li$re7

+or todo esto se Ca elegido s* *so como leng*a1e para la programaci8n de las distintas f*nciones 0 procedimientos7 .e Can eMplotado al mMimo las posi$ilidades de este leng*a1e creando *na programaci8n orientada a o$1etos para la gesti8n de la $ase de datos7 De cara al pro0ecto +>+ ser el encargado de e1ec*tar toda la l8gica del programa" siendo el controlador D*e medie entre las vistas 0 el modelo de $ases de datos7

+gina '% de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

*'2 M1S7L
50.? es *n sistema de gesti8n relacional" m*ltiCilo 0 m*lti*s*ario con ms de seis millones de instalaciones7 El o$1etivo de la empresa en el momento de s* creaci8n en '==# f*e seg*ir con el estndar SQL" sin sacrificar la velocidad" fia$ilidad o *sa$ilidad7 A lo largo de los aEos Ca ido convirti!ndose en el gestor ms pop*lar del m*ndo por s* rendimiento" eficiencia 0 facilidad de *so7 .*s caractersticas ms importantes son, Implementaci8n m*ltiCilo7 .oporte en el tipo de datos7 +orta$ilidad entre sistemas7 B*en nivel de seg*ridad7

;7 Il*straci8n, ogo 50.?

.* p*nto f*erte es *na gran aceptaci8n" de$ido a la c*al eMisten infinidad de li$reras para *na gran cantidad de leng*a1es de programaci8n7 En c*anto a la licencia" 50.? es de *so li$re 0 c8digo a$ierto pero Oracle tiene el cop0rigCt so$re ese c8digo7 >a0 varios tipos de gesti8n dentro del propio 50.? " entre los D*e destacan dos" 50I.A5 0 InnoDB7 En el caso de 50I.A5" tecnologa *sada por defecto" se da *na rpida lect*ra al *tili/ar el motor no transaccional 0a D*e no tiene D*e Cacer compro$aciones de integridad referencial ni $loD*ear las ta$las por a*sencia de atomicidad" pero p*ede provocar pro$lemas de integridad en entornos de alta conc*rrencia en la modificaci8n7 En seg*ndo caso" InnoDB" es la tecnologa op*esta" soporta las transacciones tipo A4ID 0 $loD*eo de registros 1*nto con la integridad referencial" ofreciendo *na fia$ilidad 0 consistencia a cam$io de *n rendimiento menor7

+gina '; de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

*'6 REST W " S r)ic #


a Transferencia de Estado Representacional IRepresentational .tate TransferJ o RE.T es *na t!cnica de arD*itect*ra soft(are para sistemas Cipermedia distri$*idos como la @orld @ide @e$7 El t!rmino se origin8 en el aEo %&&&" en *na tesis doctoral so$re la (e$ escrita por Ro0 Fielding" *no de los principales a*tores de la especificaci8n del protocolo >TT+ 0 Ca pasado a ser ampliamente *tili/ado por la com*nidad de desarrollo7 .i $ien el t!rmino RE.T se refera originalmente a *n con1*nto de principios de arD*itect*ra" en la act*alidad se *sa en el sentido ms amplio para descri$ir c*alD*ier interfa/ (e$ simple D*e *tili/a O5 0 >TT+" sin las a$stracciones adicionales de los protocolos $asados en patrones de intercam$io de mensa1es como el protocolo de servicios (e$ .OA+7 Es posi$le diseEar sistemas de servicios (e$ de ac*erdo con el estilo arD*itect*ral RE.T de Fielding 0 tam$i!n es posi$le diseEar interfaces O5 >TT+ de ac*erdo con el estilo de llamada a procedimiento remoto pero sin *sar .OA+7 Estos dos *sos diferentes del t!rmino RE.T ca*san cierta conf*si8n en las disc*siones t!cnicas" a*nD*e R+4 no es *n e1emplo de RE.T7 os sistemas D*e sig*en los principios RE.T se llaman con frec*encia RE.Tf*lT los defensores ms ac!rrimos de RE.T se llaman a s mismos RE.Tafaris7 RE.T afirma D*e la (e$ Ca disfr*tado de escala$ilidad como res*ltado de *na serie de diseEos f*ndamentales clave, 3n protocolo clientePservidor sin estado, cada mensa1e >TT+ contiene toda la informaci8n necesaria para comprender la petici8n7 4omo res*ltado" ni el cliente ni el servidor necesitan recordar ningGn estado de las com*nicaciones entre mensa1es7 .in em$argo" en la prctica" m*cCas aplicaciones $asadas en >TT+ *tili/an coo)ies 0 otros mecanismos para mantener el estado de la sesi8n Ialg*nas de estas prcticas" como la reescrit*ra de 3R s" no son permitidas por RE.TJ7 3n con1*nto de operaciones $ien definidas D*e se aplican a todos los rec*rsos de informaci8n, >TT+ en s define *n con1*nto peD*eEo de operaciones" las ms importantes son +O.T" GET" +3T 0 DE ETE7 4on frec*encia estas operaciones se eD*iparan a las operaciones 4R3D D*e se reD*ieren para la persistencia de datos" a*nD*e +O.T no enca1a eMactamente en este esD*ema7 3na sintaMis *niversal para identificar los rec*rsos, En *n sistema RE.T" cada rec*rso es direcciona$le Gnicamente a trav!s de s* 3RI7 El *so de Cipermedias" tanto para la informaci8n de la aplicaci8n como para las transiciones de estado de la aplicaci8n, la representaci8n de este estado en *n sistema RE.T son tpicamente >T5 o O5 7 4omo res*ltado de esto" es posi$le navegar de *n rec*rso RE.T a m*cCos otros" simplemente sig*iendo enlaces sin reD*erir el *so de registros * otra infraestr*ct*ra adicional7

+gina '< de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

R cur#o# 3n concepto importante en RE.T es la eMistencia de rec*rsos Ielementos de informaci8nJ" D*e p*eden ser accedidos *tili/ando *n identificador glo$al I*n Identificador 3niforme de Rec*rso o 3RI" de s*s siglas en ingl!sJ7 +ara manip*lar estos rec*rsos" los componentes de la red Iclientes 0 servidoresJ se com*nican a trav!s de *na interfa/ estndar I>TT+J e intercam$ian representaciones de estos rec*rsos Ilos ficCeros D*e se descargan 0 se envanJ7 a petici8n p*ede ser tramitada por c*alD*ier nGmero de conectores Ipor e1emplo clientes" servidores" cacC!s" tGneles" etc7J pero cada *no lo Cace sin Hver ms allH de s* propia petici8n Ilo D*e se conoce como separaci8n en capas" otra restricci8n de RE.T" D*e es *n principio comGn con m*cCas otras partes de la arD*itect*ra de redes 0 de la informaci8nJ7 As" *na aplicaci8n p*ede interact*ar con *n rec*rso conociendo el identificador del rec*rso 0 la acci8n reD*erida" no necesitando conocer si eMisten cacC!s" proM0s" cortaf*egos" tGneles o c*alD*ier otra cosa entre ella 0 el servidor D*e g*arda la informaci8n7 a aplicaci8n" sin em$argo" de$e comprender el formato de la informaci8n dev*elta Ila representaci8nJ" D*e es por lo general *n doc*mento >T5 o O5 " a*nD*e tam$i!n p*ede ser *na imagen o c*alD*ier otro contenido7

+gina '# de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

*'8 +7u r1 9 +7u r1 Mo"il


+7u r1 1?*er0 es *na $i$lioteca de Java.cript" creada inicialmente por JoCn Resig" D*e permite simplificar la manera de interact*ar con los doc*mentos >T5 " manip*lar el r$ol DO5" mane1ar eventos" desarrollar <7 Il*straci8n, ogo de 1?*er0 animaciones 0 agregar interacci8n con la t!cnica AJAO a pginas (e$7 F*e presentada el '< de enero de %&&A en el Bar4amp NN47 1?*er0 es soft(are li$re 0 de c8digo a$ierto" posee *n do$le licenciamiento $a1o la icencia 5IT 0 la icencia +G$lica General de GN3 v%" permitiendo s* *so en pro0ectos li$res 0 privativos7 1?*er0" al ig*al D*e otras $i$liotecas" ofrece *na serie de f*ncionalidades $asadas en Java.cript D*e de otra manera reD*eriran de m*cCo ms c8digo" es decir" con las f*nciones propias de esta $i$lioteca se logran grandes res*ltados en menos tiempo 0 espacio7 as empresas 5icrosoft 0 No)ia an*nciaron D*e incl*irn la $i$lioteca en s*s plataformas7 5icrosoft la aEadir en s* IDE -is*al .t*dio 0 la *sar 1*nto con los frame(or)s A.+7NET AJAO 0 A.+7NET 5-4" mientras D*e No)ia los integrar con s* plataforma @e$ R*nFTime7 .*s caractersticas ms importantes son, .elecci8n de elementos DO57 Interactividad 0 modificaciones del r$ol DO5" incl*0endo soporte para 4.. 'F; 0 *n pl*gin $sico de O+atC7 Eventos" manip*laci8n de la Co1a de estilos 4..7 Efectos 0 animaciones7 Animaciones personali/adas7 AJAO7 .oporta eMtensiones7 3tilidades varias como o$tener informaci8n del navegador" operar con o$1etos 0 vectores" f*nciones para r*tinas com*nes" etc7 4ompati$le con los navegadores 5o/illa FirefoM %7&S" Internet EMplorer AS" .afari ;S" Opera '&7AS 0 Google 4Crome :S7

+gina 'A de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

+7u r1 Mo"il 1?*er0 5o$ile es *na li$rera de Javascript optimi/ada para (e$ en m8viles D*e act*almente est siendo desarrollada por el eD*ipo del pro0ecto 1?*er07 El desarrollo se centra en crear *n frame(or) compati$le con el ma0or nGmero de smartpCones o #7 Il*straci8n, ogo de 1?*er0 5o$ile ta$lets de$ido a la gran Ceterogeneidad D*e Ca0 en el mercado de estos dispositivos m8viles7 Es compati$le con otros frame(or)s de aplicaciones para m8vil como +ConeGap" @or)ligCt 0 otros7 .*s caractersticas ms importantes son, 4ompati$le con la ma0ora de las plataformas m8viles como la ma0ora de los navegadores, iO." Android" Blac)$err0" @e$O." .0m$ian" @indo(s +Cone 9" 0 ms7 4onstr*ido so$re el nGcleo 1?*er0" para D*e la c*rva de aprendi/a1e sea mnima para desarrolladores familiari/ados con la sintaMis de 1?*er07 3n frame(or) de temas D*e permite personali/ar *no rpidamente7 Dependencias limitadas 0 ligero D*e optimi/an s* velocidad77 El mismo c8digo de $ase escalar el tamaEo a*tomticamente a c*alD*ier pantalla7 +osi$ilidad de navegaci8n entre pginas por AJAO con animaciones en las transiciones de pgina 3I (idgets optimi/ados para tctil 0 para D*ien descono/ca la plataforma7

+gina '9 de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

*': ;SON
J.ON se corresponde con las siglas JavaScript Object Notation 0 es *n formato ligero para el intercam$io de datos entre distintas partes7 Es *n leng*a1e m*0 sencillo de leer 0 escri$ir por las personas" 0 fcil de ser anali/ado sintcticamente 0 ser generado por mD*inas7 A*nD*e es *n s*$con1*nto de la notaci8n de Java.cript" J.ON es *n formato de teMto completamente independiente de Java.cript o c*alD*ier otro leng*a1e de programaci8n7 os mensa1es J.ON se constr*0en sig*iendo dos estr*ct*ras, 3na colecci8n de pares nom$rePvalor7 En varios leng*a1es" esto eD*ivale a *n object" record" struct" dictionary" hash table" keyed list o associative array7 3na lista de valores ordenados7 En m*cCos leng*a1es" eD*ivale a *n array" vector" list o sequence7

En J.ON" los mensa1es toman la forma de object 0 array respectivamente" 0 se descri$en del sig*iente modo, 3n object es *n con1*nto no ordenado de pares nom$rePvalor7 3n object comien/a con X Illave i/D*ierdaJ 0 termina con Y Illave derecCaJ7 4ada nom$re es seg*ido por , Idos p*ntosJ 0 el par nom$rePvalor separados por " IcomaJ7

A7 Il*straci8n, 4onstr*cci8n de *n J.ON o$1ect 3n array es *na colecci8n ordenada de valores7 3n array empie/a con el carcter Z IcorcCete i/D*ierdoJ 0 termina con [ IcorcCete derecCoJ7 os valores estn separados entre s por " IcomaJ7

97 Il*straci8n, 4onstr*cci8n de *n J.ON arra0

+gina ': de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

os objects 0 arrays necesitan de strings 0 values para contener informaci8n Gtil7 .e forman del sig*iente modo,

:7 Il*straci8n, Formaci8n de *n string en J.ON

3n string es *na colecci8n de cero o ms caracteres 3nicode" env*eltos entre H Icomillas do$lesJ7 3n string de J.ON es m*0 similar a *no de 4 o Java" p*di!ndose *tili/ar escapes de $arra invertida I\J7

+gina '= de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

3n value p*ede ser *n string entre H Icomillas do$lesJ" *n number" true o false o null" *n object o *n array7 Estas estr*ct*ras p*eden anidarse7

=7 Il*straci8n, Opciones vlidas para la formaci8n de *n val*e en J.ON 3n number es m*0 similar a *n nGmero de Java o 4" eMcept*ando D*e el formato octal 0 CeMadecimal no se *tili/an7

'&7 Il*straci8n, Formato de *n n*m$er en J.ON

+gina %& de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

*'< P=on 3!0


+ConeGap Ianteriormente llamado ApacCe 4all$ac)" pero act*almente ApacCe 4ordovaJ es *n frame(or) de desarrollo de c8digo a$ierto para m8vil prod*cido por Nito$i" 0 act*almente comprado por Ado$e .0stems7 +ermite a los programadores de soft(are desarrollar aplicaciones para dispositivos m8viles *sando Java.cript" >T5 # 0 4..;" en ve/ de leng*a1es de $a1o nivel como O$1ectiveF47 as aplicaciones res*ltantes son C$ridos" lo D*e significa D*e ''7 Il*straci8n, ogo no son ni verdaderamente nativa Itodos el renderi/ado de diseEo se de +ConeGap reali/a a trav!s del navegador (e$ de la plataforma nativa de la interfa/ de *s*arioJ ni p*ramente $asado en la (e$ ID*e no son aplicaciones s8lo (e$ pero empaD*etados para la distri$*ci8n de la App.tore" Android o c*alD*ier otra 0 tener acceso a *na parte de las f*nciones del dispositivoJ7

'%7 Il*straci8n, Desarrollo aplicaci8n +ConeGap

+gina %' de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

Pl!t!$or-!# #o0ort!d!#

';7 Il*straci8n, +lataformas soportadas +ConeGap act*almente soporta para desarrollar en sistemas operativos como Apple iO." Google Android" >+ (e$O." 5icrosoft @indo(s +Cone" No)ia .0m$ian O. RI5 Blac)Berr07 .oporta versiones recientes como Blac)Berr0 # 0 A 0 @indo(s +Cone 9" para la c*al est siendo implementado act*almente7 Bada Iel sistema operativo *sado por .ams*ng @ave .:#&&&J tendr soporte m*0 pronto7 a sig*iente ta$la m*estra las caractersticas D*e soporta en cada *no de los sistemas operativos Ilos ms importantesJ,

C!r!ct r#tic!# Aceler8metro 4mara BrG1*la 4ontactos ArcCivo Geolocali/aci8n 5edia Red ;G P @iFi Notificaci8n de alerta Notificaci8n de sonido Notificaci8n de vi$raci8n Almacenamiento Escner Barcode

iP=on ,3S> . . . . . . . . . . . . .

Android &'?> . . . . . . . . . . . . .

Windo@# P=on : . . . . . . . . . . . . NPA

Bl!cAB rr1 B6'C 1 8'?>D . . . . . . NPA . . . . . .

'7 Ta$la, +lataformas m8viles D*e soporta +ConeGap

+gina %% de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

*'E S-!rt1 ,
.mart0 es *n motor de plantillas para +>+" es decir" separa el c8digo +>+" como l8gica de negocios" del c8digo >T5 " como l8gica de presentaci8n" 0 genera contenidos (e$ mediante la colocaci8n de etiD*etas .mart0 en *n doc*mento7 .e enc*entra $a1o '<7 Il*straci8n, ogo de .mart0 la icencia +G$lica General Red*cida de GN37 Es comGn D*e en grandes pro0ectos el rol de diseEador grfico 0 el de programador sean c*$iertos por personas distintas" sin em$argo la programaci8n en +>+ tiene la tendencia de com$inar estas dos la$ores en *na persona 0 dentro del mismo c8digo" lo D*e trae consigo grandes dific*ltades a la Cora de cam$iar alg*na parte del diseEo de la pgina" p*es se tiene D*e escar$ar entre los scripts para modificar la presentaci8n del contenido" .mart0 tiene como o$1etivo sol*cionar este pro$lema7 .*s caractersticas principales son, EMpresiones reg*lares B*cles foreacC" (Cile .entencias condicionales if" elseif" else 5odificadores de varia$les Ipor e1emplo, X]varia$le^nl%$rYJ F*nciones creadas por el *s*ario Eval*aci8n de eMpresiones matemticas en la plantilla

EMisten ms sistemas de plantillas para +>+" pero !ste es de los ms avan/ados 0 con ms frec*encia de desarrollo7 Tam$i!n Ca0 detractores de estas t!cnicas D*e alegan D*e las mismas Cacen en cierta medida *n grado ms comple1o el desarrollo (e$" por la necesidad de aprender *n Ipse*doJ leng*a1e ms7 os detractores de esta idea se $asan en el CecCo de D*e" precisamente" el leng*a1e +>+ naci8 como *n leng*a1e rpido para Cacer desarrollos (e$ a peD*eEa escala7 A medida van s*rgiendo sistemas de separaci8n en capas D*e intentan disciplinar *n poco las metodologas de programaci8n env*eltas en el desarrollo con +>+" pero D*e no Cacen otra cosa D*e acercarse ms 0 ms a otras Cerramientas 0a eMistentes en otros entornos de desarrollo ms comple1os 0 pensados desde s*s orgenes para pro0ectos ms grandes" como p*eden ser J%EE IJavaJ" 7NET I4_J o D1ango I+0tConJ7

+gina %; de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

*'&? ;u#ti$ic!ci(n d t cnolo%!#


De$ido a D*e el principal o$1etivo del tra$a1o es reali/ar *n frame(or) para crear aplicaciones (e$ m*ltiplataforma de forma gil" se Ca optado por elegir *nas tecnologas li$res" de c8digo a$ierto 0 grat*itasT 0 con *na posici8n importante entre s*s alternativas" intentado evitar n*evas tecnologas poco pro$adas 0 poco esta$les" 0 as" conseg*ir *n eD*ipo de desarrolladores m*cCo ms eMperimentados 0 de forma ms fcil para llevar a ca$o c*alD*ier aplicaci8n (e$" minimi/ando as la c*rva de aprendi/a1e7 El protocolo por eMcelencia para reali/ar aplicaciones (e$ desde los inicios de Internet es 5TTP7 4omo novedad" se Ca optado por *sar la D*inta revisi8n de leng*a1e $sico para la (e$" 5TML67 Tras la eMperiencia de >T5 < se Ca aprendido m*cCo 0 se Ca me1orado la eMperiencia de *s*ario Iso$retodo en dispositivos m8vilesJ" a*nD*e aGn est en fase eMperimental 0 no todos los navegadores (e$ implementan todas s*s f*ncionalidades definidas en el estndar7 AGn as" no de1a de ser *na sintaMis m*0 potente" so$retodo a la Cora de reali/ar form*larios (e$" la c*al es *na f*ncionalidad m*0 *sada en la aplicaci8n de e1emplo de este tra$a1o de fin de grado7 a *tili/aci8n de M1S7L como gestor de $ases de datos viene determinada principalmente por ser *n gestor de c8digo a$ierto" li$re 0 grat*ito m*0 potente 0 con *n f*erte soporte detrs 0a D*e es el soft(are ms *sado en el m*ndo en $ases de datos" 0 adems" Ca sido adD*irido recientemente por la empresa m*ltinacional Oracle7 Esto garanti/a D*e a la Cora de desarrollar para la $ase de datos sea fcil encontrar doc*mentaci8n 0 personal adec*ado con gran eMperiencia en el gestor +ara el acceso a los rec*rsos de la aplicaci8n" se Ca optado por REST" 0a D*e el enfoD*e de diseEo es diferente por e1emplo a R+4 Illamadas a procedimientos remotosJ7 En RE.T se focali/a en la diversidad de rec*rsos" a diferencia de R+4 D*e se pone !nfasis en la diversidad de operaciones del protocolo7 +ara el desarrollo de aplicaciones (e$ en dispositivos m8viles Cemos elegido *n frame(or) compati$le con la ma0ora de ellos" de tal forma D*e s8lo sea necesario *n Gnico desarrollo para todos los dispositivos IAndroid" i+Cone" Blac)Berr0777J7 Estas caractersticas las c*mple a la perfecci8n +7u r1 Mo"il " el c*al est $asado en +7u r1 0 c8mo no" es de c8digo a$ierto 0 grat*ito7 De$ido a esta familiari/aci8n con 1?*er0 nos Ca res*ltado me1or opci8n D*e *na alternativa como .encCa To*cC" de esta forma se red*ca *na ve/ ms la c*rva de aprendi/a1e7 Al *sarse dispositivos m8viles" la representaci8n de informaci8n transmitida es *n p*nto importante para red*cir el vol*men de datos de la me1or forma posi$le" 0 por ello" se opt8 por ;SON" en ve/ de" por e1emplo" representaci8n de datos en O5 7 Adems" es m*0 fcil de aprender 0 m*0 relacionado con Javascript7 +ara D*e la aplicaci8n (e$ p*eda ser nativa del tel!fono" 0 adems" se p*eda disponer de f*nciones propias del dispositivo m8vil" se Ca elegido P=on 3!07 3na alternativa sera 5o.0nc7

+gina %< de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

4omo motor de plantillas para +>+ se eligi8 S-!rt1 ," el c*al es de los ms *sados 0 de los ms veteranos7 ?*i/ no es el motor ms rpido de todos" pero en esta ocasi8n se Ca valorado ms s* esta$ilidad 0 s* veterana frente a velocidad de proceso7 Adems" s* sintaMis es m*0 familiar a >T5 o +>+" lo c*al la c*rva de aprendi/a1e es mnima 0 tiene m*cCsimas ms f*nciones 0a definidas" a diferencia de otros motores de plantillas como .avant7

+gina %# de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

,' An.li#i#
A la Cora de reali/ar *n tra$a1o de fin de grado Ca0 D*e tener m*0 presente c*al es el fin de este" as como Ca$er prof*ndi/ado en el dominio so$re el D*e versa7 Estos dos factores son los D*e generan los reD*isitos del sistema" D*e son el comien/o de todo pro0ecto7 +ara comen/ar se presentar *na descripci8n general de la aplicaci8n (e$ diseEada e implementada en este Tra$a1o de Fin de Grado" en la c*al" 0a se esta$lecen los reD*isitos $sicos de la misma" para seg*ir con *na ms detallada7 Estas descripciones son el res*ltado del est*dio reali/ado so$re el dominio e incl*0e las primeras decisiones" restricciones 0 limitaciones tomadas" todas ellas con el fin de definir distintos reD*isitos" lo ms detallados posi$le7 A contin*aci8n se descri$irn de manera formal los reD*isitos de la aplicaci8n" sin olvidar D*e estos 1*egan *n papel m*0 importante en el desarrollo del resto del tra$a1o" p*esto D*e son el p*nto de referencia para alcan/ar de la forma ms satisfactoria posi$le el res*ltado deseado7 Finalmente mencionar D*e en el desarrollo del presente tra$a1o se Ca go/ado de *na gran li$ertad" por lo D*e ciertos reD*erimientos Can s*rgido d*rante fases ms avan/adas del desarrollo del tra$a1o" as como otros se Can visto modificados o Can sido adaptados7

+gina %A de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

,'& D #cri0ci(n % n r!l


El tra$a1o desarrollado tiene por o$1etivo f*ndamental crear aplicaciones (e$ m*ltiplataforma de manera gil so$re tecnologas dominantes para as red*cir el coste de aprendi/a1e de manera nota$le7 De esta forma res*ltar m*cCo ms sencillo poder llevarlo a ca$o en *n periodo de tiempo red*cido7 4omo la aplicaci8n (e$ se va a e1ec*tar en dispositivos m8viles 0 en ordenadores personales" en distintas locali/aciones 0 de forma frec*ente" es necesario D*e la aplicaci8n sea rpida 0 eficiente con los datos7 En el caso de los dispositivos se Car *n esf*er/o ma0or de eficiencia 0a D*e son dispositivos con poca capacidad de almacenamiento 0 de proceso7 Es necesario disponer de *n servidor (e$ el c*al sirva todo el contenido a los distintos dispositivos" 0a sean ordenadores o dispositivos m8viles7 Este servidor dispondr acceso a la $ase de datos 0 contar con los mecanismos necesarios para para reci$ir 0 enviar informaci8n desde 0 Cacia los dispositivos D*e e1ec*ten la aplicaci8n7 En el sig*iente esD*ema se p*ede ver la estr*ct*ra principal del sistema,

'#7 Il*straci8n, Estr*ct*ra principal del sistema

+gina %9 de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

,'* D $inici(n d r Fui#ito#


Este apartado tiene como o$1etivo especificar todas las f*ncionalidades 0 restricciones asociados a la aplicaci8n a desarrollar7 os reD*isitos sern plasmados de modo D*e se complete por cada *no de ellos *na plantilla" comp*esta por los sig*ientes campos, Id nti$ic!dor BIDD, 4adena identificadora Gnica" asociada a *n Gnico reD*isito al c*al Cace referencia *nvocamente7 El ID seg*ir la sig*iente nomenclat*ra" RUtipoVFUnGmeroV" donde, Ti0o: >ace referencia a la clasificaci8n del reD*isito" p*diendo ser este, FU, ReD*isito f*ncional7 NF, ReD*isito no f*ncional7 RE, ReD*isito de restricci8n7 NG- ro, .er *n con1*nto de cifras D*e comen/arn desde el &&&' Casta el D*e sea necesario para identificar a todos los reD*isitos7 D #cri0ci(n, Breve comentario teMt*al D*e define al reD*isito7 N c #id!d, 4ampo D*e indica si el reD*isito es imprescindi$le o no lo es7 Toma *no de los sig*ientes valores, Esencial7 No esencial7 Priorid!d, Indica el nivel de preferencia D*e se le de$e dar al reD*isito d*rante el desarrollo del sistema7 +*ede tomar los sig*ientes valores, Ba1a7 5edia7 Alta7 E#t!"ilid!d, se refiere a la pro$a$ilidad de D*e el reD*isito se vea alterado en *n f*t*ro por el cliente7 Toma los valores, .in cam$ios7 4on cam$ios7 Fu nt , indica el origen del reD*isito7 En el presente doc*mento" todos los reD*isitos tienen como f*ente al HT*torH" HAl*mnoH o KEmpresaL7

+gina %: de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

,'*'& R Fui#ito# $uncion!l #


ID Descripci8n RF3F&&&' El frame(or) de$e implementar geolocali/aci8n tanto en dispositivos m8viles como en navegadores (e$ con coordenadas de latit*d 0 de longit*d7 Esencial 5edia .in cam$ios Empresa %7 Ta$la, ReD*isito f*ncional RF3F&&&' ID Descripci8n RF3F&&&% El frame(or) de$e geolocali/ar con calle" ci*dad" provincia 0 pas al *s*ario en todos los dispositivos en los D*e disponga s*s coordenadas de latit*d 0 longit*d7 Esencial 5edia .in cam$ios Empresa ;7 Ta$la, ReD*isito f*ncional RF3F&&&% ID Descripci8n Necesidad +rioridad Esta$ilidad F*ente RF3F&&&; El frame(or) de$e implementar notificaciones en dispositivo m8vil 0 alertas en navegador (e$7 Esencial 5edia .in cam$ios Al*mno <7 Ta$la, ReD*isito f*ncional RF3F&&&;

Necesidad +rioridad Esta$ilidad F*ente

Necesidad +rioridad Esta$ilidad F*ente

+gina %= de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

ID Descripci8n Necesidad +rioridad Esta$ilidad F*ente

RF3F&&&< El frame(or) de$e implementar dilogos de confirmaci8n en dispositivo m8vil 0 en navegador (e$7 Esencial 5edia .in cam$ios Al*mno #7 Ta$la, ReD*isito f*ncional RF3F&&&<

ID Descripci8n Necesidad +rioridad Esta$ilidad F*ente

RF3F&&&# El frame(or) de$e permitir crear form*larios adaptados a dispositivos m8viles de forma gil7 Esencial Alta .in cam$ios Empresa A7 Ta$la, ReD*isito f*ncional RF3F&&&#

ID Descripci8n

RF3F&&&A El frame(or) de$e implementar validaci8n de datos en los form*larios IteMto" tel!fono" c8digo postal" etc7J a trav!s de la f*ncionalidad del estndar >T5 # 0 Java.cript7 Tam$i!n se validarn estos datos en el servidor7 Esencial Alta .in cam$ios Empresa 97 Ta$la, ReD*isito f*ncional RF3F&&&A

Necesidad +rioridad Esta$ilidad F*ente

+gina ;& de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

ID Descripci8n

RF3F&&&9 El frame(or) de$e permitir almacenamiento interno en los dispositivos" para g*ardar informaci8n del tipo claveFvalor7 E1emplo, correo electr8nico" nGmero de tel!fono" *$icaci8n777 Esencial Alta .in cam$ios Empresa :7 Ta$la, ReD*isito f*ncional RF3F&&&9

Necesidad +rioridad Esta$ilidad F*ente

ID Descripci8n Necesidad +rioridad Esta$ilidad F*ente

RF3F&&&: a aplicaci8n m8vil podr mostrar form*larios de todas las secciones Esencial 5edia .in cam$ios Empresa =7 Ta$la, ReD*isito f*ncional RF3F&&&A

+gina ;' de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

,'*'* R Fui#ito# no $uncion!l #


ID Descripci8n Necesidad +rioridad Esta$ilidad F*ente RNFF&&&' a aplicaci8n Ca de a1*starse a la resol*ci8n por defecto del dispositivo7 Esencial Alta .in cam$ios Al*mno '&7 Ta$la, ReD*isito no f*ncional RNFF&&&' ID Descripci8n RNFF&&&% El frame(or) Ca de estar desarrollado en tecnologas li$res de c8digo a$ierto 0 con gran impacto en s*s competencias con el fin de minimi/ar la c*rva de aprendi/a1e7 Esencial 5edia .in cam$ios Empresa ''7 Ta$la, ReD*isito no f*ncional RNFF&&&% ID Descripci8n Necesidad +rioridad Esta$ilidad F*ente RNFF&&&; El frame(or) Ca de tener *na interfa/ de *s*ario poco cargada 0 fcil de mane1ar" siendo *n aspecto f*ndamental s* alta *sa$ilidad7 Esencial 5edia .in cam$ios Al*mno '%7 Ta$la, ReD*isito no f*ncional RNFF&&&;

Necesidad +rioridad Esta$ilidad F*ente

+gina ;% de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

ID Descripci8n

RNFF&&&< a aplicaci8n m8vil minimi/ar la inserci8n de informaci8n 0a eMistente en el sistema por parte del *s*ario7 4argando las preferencias introd*cidas" rellenando campos con geolocali/aci8n" etc7 Esencial Alta .in cam$ios Empresa ';7 Ta$la, ReD*isito no f*ncional RNFF&&&<

Necesidad +rioridad Esta$ilidad F*ente

,'*', R Fui#ito# d r #tricci(n


ID Descripci8n RREF&&&' a aplicaci8n (e$ de$er e1ec*tarse en dispositivos con *na coneMi8n f*ncional a Internet" para poder reali/ar las com*nicaciones con el servidor7 Esencial Alta .in cam$ios Al*mno '<7 Ta$la, ReD*isito de restricci8n RREF&&&' ID Descripci8n RREF&&&% a aplicaci8n m8vil ser e1ec*ta$le en el sistema operativo Android IS%7%J 0 en el sistema operativo iO. IS<J7 Opcionalmente en otros sistemas operativos como Blac)Berr0 o @indo(s +Cone 97 Esencial Alta .in cam$ios Empresa '#7 Ta$la, ReD*isito de restricci8n RREF&&&%

Necesidad +rioridad Esta$ilidad F*ente

Necesidad +rioridad Esta$ilidad F*ente

+gina ;; de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

ID Descripci8n

RREF&&&; a aplicaci8n (e$ ser f*ncional en los sig*ientes navegadores, Internet EMplorer '&S" Google 4Crome '&S" FirefoM <S" .afari #S 0 Opera ''S7 Esencial 5edia .in cam$ios Empresa 'A7 Ta$la, ReD*isito de restricci8n RREF&&&;

Necesidad +rioridad Esta$ilidad F*ente

+gina ;< de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

2' Di# /o

i-0l - nt!ci(n

2'& ArFuit ctur! d l #i#t -!


4omo la ma0ora de las aplicaciones (e$ de clienteFservidor" el sistema est $asado en el patr8n 5odelo ` -ista ` 4ontrolador siendo compati$le con el ma0or nGmero de dispositivos posi$les Im*ltiplataformaJ teniendo *na estr*ct*ra como la sig*iente il*straci8n representa,

+gina ;# de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

'A7 Il*straci8n, Estr*ct*ra detallada del sistema 4omo se aprecia en la estr*ct*ra" se divide en las sig*ientes partes, PC Bn!) %!dor @ "DH iP=on H AndroidH Bl!cAB rr1 Dispositivos controlados por los *s*arios D*e acceden al sistema 0 reali/an *na petici8n7 Dependiendo de D*! plataforma realice la petici8n" tendr *na resp*esta adaptada a s* dispositivo de forma transparente" de tal forma D*e el *s*ario no tenga D*e informar al sistema c8mo accede al sistema7 En el caso de los dispotivos m8viles" a trav!s del frame(or) +ConeGap" se instala *na aplicaci8n la c*al solicita *n primer contenido al servidor dependiendo de d8nde se localice el *s*ario7 Fr!- @orA El nGcleo del frame(or) D*e tramita la com*nicaci8n con esa petici8n al sistema e instancia los servicios necesarios para poder reali/ar *na resp*esta adec*ada al dispositivo7

+gina ;A de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

No solo se encarga de *na resp*esta adec*ada sino D*e tam$i!n reali/a compro$aciones de seg*ridad" como por e1emplo" D*e el *s*ario tenga permisos para acceder a *n rec*rso concreto o *na acci8n concreta7 En caso de D*e la petici8n sea incorrecta o D*e el *s*ario no disponga de los permisos necesarios" es el frame(or) el encargado de procesar *na resp*esta concreta segGn el error al dispositivo7 +ara este tipo de resp*estas se respeta el estndar >TT+ con los c8digos de resp*esta, ;OO, Redirecciones7 Oc*rre c*ando *na pgina Ca sido movida a otra direcci8n7 +*ede ser de forma temporal Ic8digo ;&%J o de forma permanente Ic8digo ;&'J <OO, Errores del cliente7 Oc*rre c*ando *na pgina no eMiste Ic8digo <&<J" *n m!todo no est permitido 0a D*e se reali/a *n GET a *n rec*rso D*e s8lo permite +O.T Ic8digo <&#JT o D*e al rec*rso en concreto el *s*ario no tenga permisos para acceder Ic8digo <&; 0 <&'J7 #OO, Errores del servidor7 Oc*rre c*ando el servidor tiene *n error interno Ie1, *n error fatal de +>+J7 El frame(or) est programado en leng*a1e +>+7 Control!dor Responde a los eventos 0 a las acciones de los *s*arios" e invoca las peticiones al modelo 0 a la vista7 +ara cada rec*rso o acci8n del sistema Ca0 *n controlador7 El controlador enva la informaci8n necesaria D*e necesita la KvistaL para poder generar *na interfa/ al *s*ario7 Es D*ien decide desde D*! dispositivo se solicita la petici8n" 0 por tanto" c8mo se generar el contenido adec*ado al dispositivo7 Mod lo Representaci8n de la informaci8n del sistema7 .e compone de m*cCos patrones de diseEo, 5odelo, Define las propiedades 0 acciones propias de *n o$1eto en concreto en s7 Factor0, Instancia n*evos o$1etos de *n modelo concreto7 Adems" se Can aEadido m!todos D*e no son estrictamente de creaci8n de o$1etos" como encontrar *n o$1eto mediante s* id Gnico o por e1emplo *na colecci8n de o$1etos D*e c*mplan *nas propiedades concretas7 +ersistence, 4apa de persistencia D*e reali/a las cons*ltas a la $ase de datos7 Na sea para cargar los datos de *n o$1eto concreto" para modificarlo" para crear *no n*evo o para eliminarlo7
+gina ;9 de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

>elper, 4olecci8n de m!todos D*e tienen *na relaci8n directa con el modelo pero no es propio de *na instancia concreta7 +or e1emplo" para cam$iar *n estado de *na colecci8n de o$1etos7

Todos estos patrones de diseEo estn programados en leng*a1e +>+7 B!# d d!to# Donde se almacena la informaci8n de cada o$1eto7 4omo Ca0 m*cCas entidades 0 m*cCa informaci8n almacenada en la aplicaci8n (e$ es necesario disponer de varias $ases de datos para tener *na organi/aci8n 8ptima de todos los datos7 a $ase de datos est $a1o 50.? 7 T #t Na D*e Ca0 m*cCos modelos de o$1etos 0 m*cCas acciones so$re ellos" 0 adems" entre ellos interactGan modificndose *na 0 otra ve/ es importante tener *n entorno de test para poder reali/ar pr*e$as7 Este entorno se compone de pr*e$as *nitarias 0 f*ncionales" donde se evalGa cada m!todo del modelo Iincl*0endo cada patr8n de diseEo como >elper" Factor0" +ersistence" etcJ" cada m!todo del frame(or)" cada controlador 0 cada cons*lta a la $ase de datos7 as pr*e$as f*ncionales estn $asadas en la e1ec*ci8n" revisi8n 0 retroalimentaci8n de las f*ncionalidades previamente diseEadas para el modelo7 as pr*e$as f*ncionales se Cacen mediante el diseEo de pr*e$a D*e $*scan eval*ar cada *na de las opciones con las D*e c*enta el o$1eto7 +or otro lado" las pr*e$as *nitarias son *na forma de pro$ar el correcto f*ncionamiento de *n m!todo de c8digo en concreto7 Esto sirve para aseg*rar D*e cada *no de los m!todos f*ncionen correctamente por separado7 Al estar todo en leng*a1e +>+ se Can reali/ado estos test so$re el frame(or) +>+ 3nit7 Ii#t! 5*estra *na resp*esta en f*nci8n del dispositivo D*e la solicita" 0a sea dispositivo m8vil o *n ordenador personal7 4omo s* nom$re indica" es lo D*e se ve7 Reci$e los datos del controlador 0 KpintaL segGn !stos7 En el caso de *n dispositivo m8vil" pintar el contenido gracias al frame(or) 1?*er0 5o$ile 3I 0 en el caso de *n ordenador personal simplemente ser >T5 7 A*nD*e para am$os casos" se apo0ar en el motor de plantillas .mart0 ;7 En el caso de los form*larios (e$ se Ca diseEado *na plantilla de .mart0 gen!rica para D*e se p*eda o$tener *n form*lario con los elementos necesarios Icampos de teMto" opciones" tipo radio" $otones777J de forma rpida 0 sencilla para minimi/ar el coste
+gina ;: de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

de desarrollo a la Cora de programar7

2'* Di!%r!-! d $lu+o


3n diagrama de fl*1o de *na petici8n >TT+ al sistema se correspondera con este grfico,

'97 Il*straci8n, Diagrama de fl*1o de *na petici8n >TT+ '7 El *s*ario desde s* dispositivo reali/a *na petici8n >TT+" la c*al la procesa 0 la enr*ta el frame(or) al controlador correspondiente" llamando al rec*rso 0 acci8n concreta7 %7 El controlador procesa la acci8n solicitada instanciando los o$1etos necesarios a trav!s del modelo" 0 *na ve/ reali/ada la acci8n" enva la informaci8n a la vista para D*e este la m*estre al *s*ario7 ;7 El modelo reali/a *na cons*lta a la $ase de datos para instanciar el o$1eto
+gina ;= de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

concreto pedido" 0 si no es el caso" instancia *no n*evo7 <7 El controlador dev*elve al frame(or) la vista 0a generada 0 es !ste D*ien se la dev*elve al *s*ario final como resp*esta >TT+7

+gina <& de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

6' E)!lu!ci(n 1 r #ult!do#


D*rante el sig*iente apartado se descri$e c8mo se Ca llevado a ca$o la eval*aci8n del tra$a1o 0 los res*ltados de los mismos7

6'& Entorno d

)!lu!ci(n

os dos entornos en los D*e se Ca tra$a1ado de eval*aci8n del tra$a1o son los sig*ientes, tests de +>+ 3nit 0 *so de la aplicaci8n7

6'&'& T #t# d P5PUnit


El sistema tiene a s* disposici8n *na colecci8n de tests CecCos en P5PUnit los c*ales evalGan *na f*ncionalidad en concreto o m!todo a m!todo de cada modelo I* otro patr8nJ esperando *n res*ltado en concreto7 En el caso de los test f*ncionales" como se Ca eMplicado anteriormente" se trata de pr*e$as D*e estn $asadas en la e1ec*ci8n de las f*ncionalidades previamente diseEadas en el modelo7 +ara reali/ar estas pr*e$as se parte de *na $ase de datos con la estr*ct*ra definida pero sin datos7 A contin*aci8n se instancian los o$1etos D*e sean necesarios 0 con las propiedades adec*adas para 1*sto desp*!s eval*ar D*e la f*ncionalidad sea correcta7 +ara ello se p*eden eval*ar desde cons*ltas a la $ase de datos compro$ando D*e
+gina <' de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

se Can CecCo las modificaciones correctamente" como ig*aldades de propiedades de o$1etos a *n valor concreto7 as pr*e$as f*ncionales tienen la venta1a de D*e todo lo D*e evalGas es del sistema" no s*pones ningGn valor ni se falsea ning*na otra f*ncionalidad7 .on las pr*e$as ms complicadas de programar 0a D*e se evalGa *n proceso comple1o 0 se tiene D*e tener $ien claro el p*nto de partida 0 el res*ltado D*e se Ca de o$tener7 En el caso de las pr*e$as *nitarias se $*sca eval*ar *n m!todo concreto de *n o$1eto7 +ara ello" gracias a la Cerramienta +>+3nit 0 s*s o$1etos K5oc)L se esperan llamadas a o$1etos Kmoc)eadosL7 3n o$1eto Kmoc)eadoL es *n o$1eto D*e interviene en el m!todo I0a sea como arg*mento o noJ 0 se esperan *na serie de llamadas so$re !l7 K5oc)eandoL el o$1eto se consig*e Cacer eMpectaciones so$re m!todos D*e se e1ec*ten so$re s mismo 0 devolver res*ltados for/ados7 De esta forma" evalGas Gnicamente el m!todo D*e se est pro$ando 0 no otros m!todos D*e se s*pone estn pro$ados en otro test" no *na f*ncionalidad completa7 Al ig*al D*e en el las pr*e$as f*ncionales" se p*eden comparar tam$i!n los res*ltados de la pr*e$a con los esperados7 En am$os casos se p*eden reali/ar pr*e$as donde se f*erce *n error7 4omo por e1emplo D*e *n o$1eto no p*eda cam$iar *na propiedad en *n momento dado7 .on casos D*e n*nca de$en oc*rrir en prod*cci8n pero D*e tam$i!n se pr*e$a D*e los errores Ca0an saltado correctamente 0 Ca0an sido Kca/adosL adec*adamente" 0 lo ms importante" no se Ca reali/ado los cam$ios en la propiedad D*e por definici8n no est permitido por s* estado7 De esta forma de eval*aci8n" c*ando se cam$ia algGn modelo de o$1eto la ma0ora de tests D*e tienen relaci8n con este o$1eto Can de ser adaptados al n*evo concepto de modelo7 As" en todo momento" el sistema adD*iere *na seg*ridad ante cam$ios f*t*ros7

6'&'* U#o d l! !0lic!ci(n


Otro forma de eval*aci8n del tra$a1o Ca sido directamente el *so de la aplicaci8n (e$7 4omo la aplicaci8n es m*ltiplataforma se Can reali/ado dos pr*e$as de *so, Desde los navegadores (e$ del ordenador como Internet EMplorer" Google 4Crome o FirefoM Desde la aplicaci8n m8vil mediante *n dispositivo Android7

Adoptando *n rol de *s*ario 0 mediante Cerramientas de desarrollo (e$ a$iertas Iconsola Javascript en el navegador" inspector de elementos >T5 del DO5 de la pgina" anali/ador de trfico >TT+" etc7J como la consola de Google 4Crome o el pl*gFin Fire$*g de FirefoM se Ca podido eval*ar D*e todo f*ncionara correctamente7 En el caso de la aplicaci8n m8vil se vea el comportamiento de la aplicaci8n se Caca a trav!s de la Cerramienta ogcat D*e proporciona Android .Da en Eclipse 0 se Ca compro$ado D*e el comportamiento del sistema sea el esperado7

+gina <% de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

6'* R #ult!do#
+>+3nit reali/a las pr*e$as *na a *na 0 m*estra en c*les Ca ido correctamente los tests" as Casta ms de ;&&& pr*e$as distintas7 En el caso de las pr*e$as f*ncionales" mostrara algGn error de res*ltados inesperados" en cam$io" en las pr*e$as *nitarias mostraras errores de res*ltados inesperados e incl*so de m!todos D*e Can e1ec*tado 0 no se Can esperado" o 1*sto al contrario" m!todos D*e espera$an ser llamados 0 no se Ca dado el caso7 >asta la fecCa" todas las pr*e$as se reali/an con !Mito7 os res*ltados tras el *so de la aplicaci8n Can sido satisfactorios 0 los res*ltados o$tenidos 0 f*ncionamiento del sistema Ca sido el esperado en todo momento7

+gina <; de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

8' E+ -0lo d u#o: A0lic!ci(n -()il


En este apartado se va a mostrar el *so de la aplicaci8n m8vil reali/ado d*rante el pro0ecto fin de grado el c*al *sa el frame(or) m*ltiplataforma7 En este caso" se Ca CecCo so$re *n dispositivo Android7 a estr*ct*ra del apartado es la sig*iente, se irn mostrando capt*ras de pantalla del dispositivo m8vil" 0 de$a1o *na $reve descripci8n para entender el *so de la misma7

+gina << de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

':7 Il*straci8n, +antalla de inicio En primer l*gar aparece esta pantalla Iil*straci8n anteriorJ para preg*ntar al *s*ario desde D*! pas se conecta7 Esta pgina es provisional 0a D*e es la D*e determina a D*! servidor conectarse" si al de KDesarrolloL" al servidor de KEspaEaL o al servidor de K3nited .tatesL7 En este caso" elegimos el servidor de desarrollo7

+gina <# de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

'=7 Il*straci8n, +antalla de menG principal a il*straci8n anterior m*estra c8mo es el menG principal de la aplicaci8n donde se p*ede elegir entre dos opciones, K+ide t* pres*p*estoL D*e sirve para pedir *n pres*p*esto directamente se trate del sector o categora D*e sea7 KB*sca por categorasL D*e sirve para $*scar entre alg*na categora o sector 0 definir con ms detalle D*! es lo D*e necesita el *s*ario7

Arri$a a la derecCa Ca0 *n $ot8n de KOpcionesL" pantalla la c*al se mostrar ms Cacia delante" 0a D*e" es *n $ot8n D*e aparece d*rante casi toda la aplicaci8n para poder editarlas c*ando el *s*ario as lo dese!7

+gina <A de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

.i elegimos la opci8n K+ide t* pres*p*estoL nos aparece el sig*iente form*lario,

%&7 Il*straci8n, +antalla de form*lario H+ide t* pres*p*estoH 4omo se p*ede o$servar en la il*straci8n anterior se pide al *s*ario *na serie de datos para D*e solicite s* pres*p*esto7 Arri$a dispone de dos opciones" o locali/arse mediante s* posici8n de geolocali/aci8n del dispositivo 0 as rellenar varios datos del form*lario o ir Cacia atrs" a la pantalla de inicio7

+gina <9 de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

%'7 Il*straci8n, +antalla con teclado n*m!rico 4ada campo del form*lario es de *n tipo7 En el caso de los campos de tipo n*m!ricos" se ofrece ma0or comodidad al *s*ario mostrando *n teclado n*m!rico7 De esta forma" como se m*estra en la il*straci8n" es ms sencillo 0 fcil insertar *n c8digo postal7

+gina <: de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

%%7 Il*straci8n, Bot8n de opciones

%;7 Il*straci8n, Bot8n de opciones IIIJ

En estas dos il*straciones se p*ede o$servar el f*ncionamiento de *n $ot8n de opciones en el form*lario7

+gina <= de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

%<7 Il*straci8n, Bot8n de opciones IIIIJ 4*ando se eli1a *na provincia" a*tomticamente el dispositivo Car *na cons*lta al servidor 0 cargar las reas correspondientes a esa provincia en el sig*iente $ot8n7 El res*ltado se p*ede o$servar en la anterior il*straci8n7

+gina #& de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

%#7 Il*straci8n, +antalla con teclado de correo electr8nico En el campo KEFmailL Icorreo electr8nicoJ el teclado se adapta poniendo ms accesi$le el carcter bcb" como se p*ede o$servar en la il*straci8n anterior7

+gina #' de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

%A7 Il*straci8n, +antalla de opciones H ocal/ateH

.i el *s*ario p*lsa la opci8n K ocal/ateL anteriormente mostrada" aparece este dilogo D*e se ve en la il*straci8n anterior con las tres opciones, K3sar mis preferenciasL" la c*al carga en el form*lario los datos almacenados en las preferencias de la aplicaci8n" KGeolocali/ar aCoraL" directamente geolocali/a al *s*ario 0 KIr a preferenciasL" el c*al es *n enlace a la pgina de preferencias7

+gina #% de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

.iendo el s*p*esto D*e el *s*ario Ca p*lsado KIr a preferenciasL aparece la sig*iente pantalla,

%97 Il*straci8n, +antalla de preferencias

%:7 Il*straci8n, +antalla de preferencias IIIJ

En ella" p*ede g*ardar s* correo electr8nico personal donde D*iera reci$ir los pres*p*estos" s* nGmero de tel!fono 0 s* *$icaci8n por defecto" para as" no tener D*e geolocali/ar en todo momento el dispositivo I0a D*e es *n proceso algo lentoJ7

+gina #; de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

En el caso de D*erer g*ardar *na locali/aci8n por defecto" el comportamiento es el sig*iente,

;&7 Il*straci8n, +antalla de preferencias IIIIJ

%=7 Il*straci8n, +antalla de preferencias II-J

.e geolocali/a al *s*ario con s*mo detalle 0 se le preg*nta si esa es s* posici8n7 En caso afirmativo rellena el form*lario de las preferencias" en caso negativo desecCa la geolocali/aci8n7 .i el *s*ario desear g*ardar s*s preferencias p*lsa el $ot8n KG*ardarL 0 se le redirige a la pgina de donde procede7

+gina #< de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

.i en ve/ de ir a las preferencias" el *s*ario C*$iera p*lsado K3sar mis preferenciasL los campos del form*lario como la locali/aci8n" el tel!fono 0 el correo se C*$ieran rellenado a*tomticamente Icomo se p*ede o$servar en la il*straci8n sig*iente de la i/D*ierdaJ, F

;%7 Il*straci8n, 3so de K3sar mis preferenciasL

;'7 Il*straci8n, +antalla HForm*lario no vlidoH

Al p*lsar KEnviarL se validan los datos introd*cidos 0 se compr*e$a D*e no falte algGn campo o$ligatorio por rellenar7 En caso de D*e algGn campo no se Ca0a rellenado correctamente o algGn campo o$ligatorio no se Ca0a completado" aparece el aviso de la il*straci8n anterior de la derecCa 0 el dispositivo m8vil vi$ra7

+gina ## de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

.i se elige la opci8n del menG de inicio KB*scar por categoraL aparecera *na lista de sectores donde el *s*ario podra elegir para solicitar pres*p*esto,

;<7 Il*straci8n, +antalla HB*scar por categoraH

;;7 Il*straci8n, BGsD*eda de categora

a lista de categoras tiene ms de :& elementos" por tanto tiene *n $*scador Kal v*eloL para D*e sea m*cCo ms c8moda la elecci8n" como se p*ede apreciar en la il*straci8n anterior de la derecCa7

+gina #A de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

.i el *s*ario elige la opci8n K5*dan/asL aparece el sig*iente form*lario con campos m*cCo ms especficos para la categora" facilitando el servicio posterior a la Cora de reci$ir el pres*p*esto,

;#7 Il*straci8n, +antalla de form*lario de H5*dan/asH

+gina #9 de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

+ara los campos de fecCa" se m*estra *n $ot8n D*e a0*da al *s*ario a introd*cir *na fecCa en concreto" como se p*ede o$servar en las il*straciones sig*ientes,

;A7 Il*straci8n, Form*lario con campo de fecCa

;97 Il*straci8n, Form*lario con campo de fecCa IIIJ

+gina #: de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

+or Gltimo" tras p*lsar KEnviarL I0 D*e los datos sean correctosJ se reci$e el form*lario en el servidor 0 m*estra *na pgina de !Mito como esta,

;:7 Il*straci8n, +antalla de !Mito

+gina #= de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

:' Pl!ni$ic!ci(n 1 0r #u0u #to


:'& Pl!ni$ic!ci(n
En este apartado se detallar la planificaci8n seg*ida para la ela$oraci8n del presente tra$a1o de fin de grado7 A contin*aci8n" en la sig*iente ta$la se p*ede o$servar las actividades reali/adas d*rante el desarrollo del sistema del tra$a1o indicando la fecCa de inicio 0 fin de cada *na 0 la d*raci8n en das de cada actividad7 Actividad '7 Ela$oraci8n reD*isitos %7 .elecci8n de tecnologas ;7 DiseEo de frame(or) <7 Implementaci8n en el servidor #7 Implementaci8n diseEo (e$ A7 Implementaci8n aplicaci8n m8vil 97 Eval*aci8n 0 pr*e$as :7 Ela$oraci8n de la memoria =7 Revisi8n FecCa inicio &'P&9P%&'% &;P&9P%&'% &<P&9P%&'% &9P&9P%&'% ':P&9P%&'% %:P&9P%&'% &<P&:P%&'% '#P&:P%&'% ;'P&:P%&'% D*raci8n % das ' da ; das '& das '& das 9 das '& das '# das % das FecCa fin &%P&9P%&'% &;P&9P%&'% &AP&9P%&'% '9P&9P%&'% %9P&9P%&'% &;P&:P%&'% '<P&:P%&'% ;&P&:P%&'% &'P&=P%&'%

'97 Ta$la, +lanificaci8n del tra$a1o por actividades


+gina A& de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

:'&'& Di!%r!-! d 3!ntt


a planificaci8n del tra$a1o en formato de Diagrama de Gantt Iel nGmero se corresponde con la anterior ta$la de planificaci8n del tra$a1oJ,
?& ;U ?* ;U ?, ;U ?2 ;U ?6 ;U ?8 ;U ?: ;U ?< ;U ?E ;U &? ;U && ;U &* ;U &, ;U &2 ;U &6 ;U &8 ;U

& * , 2 6 8 : < E
&: ;U &< ;U &E ;U *? ;U *& ;U ** ;U *, ;U *2 ;U *6 ;U *8 ;U *: ;U *< ;U *E ;U ,? ;U ,& ;U ?& A3

& * , 2 6 8 : < E
?* A3 ?, A3 ?2 A3 ?6 A3 ?8 A3 ?: A3 ?< A3 ?E A3 &? A3 && A3 &* A3 &, A3 &2 A3 &6 A3 &8 A3 &: A3

& * , 2 6 8 : < E
&< A3 &E A3 *? A3 *& A3 ** A3 *, A3 *2 A3 *6 A3 *8 A3 *: A3 *< A3 *E A3 ,? A3 ,& A3 ?& SE ?* SE

& * , 2 6 8 : < E

+gina A' de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

:'* Pr #u0u #to


En este apartado se va a detallar el pres*p*esto del pro0ecto de fin de grado7 +ara la reali/aci8n de los clc*los de costes se Can tenido en c*enta las sig*ientes consideraciones, El inicio del pro0ecto f*e el ' de 1*lio de %&'% 0 la fecCa de finali/aci8n el ' de septiem$re de %&'%7 +or tanto" la d*raci8n total f*eron dos meses7 Tomando como referencia la d*raci8n de das de las actividades en el apartado de planificaci8n D*eda *n total de 8? d!#7 No se elimina ningGn da por festivo" enfermedad o por otras ra/ones7 a 1ornada la$oral Ca sido varia$le" pero se estima *na media de 9 Coras diarias7 +or tanto" Cace *n total de Coras tra$a1adas de 2*? =or!# IA& das d 9 CorasPdaJ7

:'*'& Co#t # d 0 r#on!l


En este apartado se va a detallar los costes asignados al personal del pro0ecto7 En este caso" la Gnica persona D*e Ca participado en la reali/aci8n del pro0ecto Ca sido el a*tor de este doc*mento7 +or tanto" ser D*ien as*ma todos los roles especificados a contin*aci8n para la reali/aci8n de las actividades antes definidas en la planificaci8n, Actividad Ela$oraci8n reD*isitos .elecci8n de tecnologas DiseEo de frame(or) Implementaci8n en el servidor Implementaci8n diseEo (e$ Implementaci8n aplicaci8n m8vil Eval*aci8n 0 pr*e$as Ela$oraci8n de la memoria Revisi8n TOTAL ':7 Ta$la, 4ostes de personal Rol Analista Analista +rogramador +rogramador +rogramador +rogramador Analista Analista Analista 4oste Ipor CoraJ '# e '# e %# e %& e %# e ;& e %# e %& e %# e NGmero de Coras '< Coras 9 Coras %' Coras 9& Coras 9& Coras <= Coras 9& Coras '&# Coras '< Coras 4oste total %'& e '&# e #%# e '7<&& e '79#& e '7<9& e '79#& e %7'&& e ;#& e E',&? J

+gina A% de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

:'*'* Co#t # d =!rd@!r


En este apartado se detallarn los gastos del pro0ecto so$re elementos Card(are imprescindi$les para la reali/aci8n del mismo7 Estos elementos son el ordenador" los dispositivos m8viles donde se Can reali/ado las pr*e$as del sistema 0 *n servidor donde desplegar el pro0ecto7 +ara calc*lar el coste imp*ta$le se Cace mediante la f8rm*la de amorti/aci8n,
4oste imp*ta$le f IDedicaci8n P +erodo de depreciaci8nJ d 4oste sin I-A d g 3so dedicado

a ta$la de costes de Card(are D*eda as, 4oncepto >T4 Desire . Ordenador Acer e5acCines +antalla Acer '=L 5ini rat8n Acer 8ptico Teclado Acer Aspire i+Cone ;G. :GB Apple 5acBoo) +ro .ervidor dedicado O-> TOTAL '=7 Ta$la, 4ostes de Card(are 4oste sin I-A ;#& e %#& e 9& e 9e <& e %;& e =#& e %'& e g *so +erodo de 4oste Dedicaci8n dedicado depreciaci8n imp*ta$le '&& g '&& g '&& g '&& g '&& g #& g %& g '&& g % meses % meses % meses % meses % meses ' mes ' mes % meses <: meses <: meses <: meses '% meses '% meses <: meses <: meses ; meses '<"#: e '&"<' e %"=' e '"'A e A"AA e %";= e ;"=# e '<& e &<*H?8 J

+gina A; de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

:'*', Co#t # d #o$t@!r


En este aparatado se detallarn los costes de$idos a licencias de soft(are necesario para el desarrollo del pro0ecto7 El pro0ecto se Ca desarrollado so$re las sig*ientes Cerramientas de soft(are" la ma0ora de ellas no tienen coste,

4oncepto icencia de 3$*nt* '%7&< icencia de ApacCe .oft(are icencia de +ConeGap icencia de Eclipse icencia de .mart0 ; icencia de +>+ 3nit icencia iO. Developer +rogram icencia Google +la0 5ar)et TOTAL %&7 Ta$la, 4ostes de soft(are

4oste &"&& e &"&& e &"&& e &"&& e &"&& e &"&& e AA"=# e %'"%& e <<H&6 J

+gina A< de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

:'*'2 Co#t tot!l


Teniendo en c*enta lo anterior" tenemos como pres*p*esto total del pro0ecto la sig*iente ta$la, 4oncepto 4oste de personal 4oste de Card(are 4oste de soft(are Co#t #in IIA B n $icio 6? K M!r% n d ri #%o *6 K IIA B&<KD COSTE TOTAL %'7 Ta$la, 4oste total +ara calc*lar el $eneficio se Ca considerado el adec*ado" 0a D*e Ca0 D*e tener en c*enta D*e la rama de las tecnologas es m*0 sensi$le a cam$ios7 .e Ca calc*lado so$re el coste sin I-A7 En cam$io" para calc*lar el margen de riesgo" se Ca considerado *n %#g por tener cierta eMperiencia en el *so de las Cerramientas con las D*e se Ca llevado a ca$o el pro0ecto 0 red*cen los riesgos de retraso de entrega7 .e Ca calc*lado so$re el coste sin I-A7 El I-A se Ca calc*lado so$re la s*ma del coste sin iva" el $eneficio 0 el margen de riesgo7 El coste total del pro0ecto es de '=79:;"'< e Idiecin*eve mil setecientos ocCenta 0 tres e*ros con catorce c!ntimosJ7 4oste =7;'&"&& e ':%"&A e ::"'# e E'6<?H*& J 2':E?H&& J *',E6H?6 J ,'?&:H:: J &E':<,H&2 J

+gina A# de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

<' Conclu#ion # 1 ln !# $utur!#


En este apartado se descri$irn las concl*siones posteriores a la reali/aci8n del tra$a1o de fin de grado con el fin de revisar los o$1etivos planteados en el apartado de introd*cci8n" para compro$ar el grado de satisfacci8n de cada *no de ellos7 Tras este anlisis" se comentan alg*nas lneas f*t*ras so$re el tra$a1o fin de grado donde se podran seg*ir avan/ando f*ncionalidades del pro0ecto" en este caso" del frame(or)7

<'& Conclu#ion #
En el primer apartado de este doc*mento se descri$en *na serie de o$1etivos D*e se plantearon para la reali/aci8n del tra$a1o de fin de grado" por tanto" a contin*aci8n se eMponen las concl*siones so$re el c*mplimiento de dicCos o$1etivos, .e Ca conseg*ido D*e el desarrollo de *na aplicaci8n (e$ sea gil" 0 D*e no se dediD*e el mnimo de tiempo en las etapas de inicio de *na n*eva aplicaci8n7 Adems" se Ca conseg*ido D*e la ampliaci8n con n*evas pginas o f*ncionalidades de *na aplicaci8n (e$ 0a creada sea tam$i!n desarrollado de forma gil 0 sin afectar a lo anterior 0a desarrollado7 .e Ca conseg*ido D*e las aplicaciones (e$ creadas con el frame(or) del tra$a1o sean compati$le con la ma0ora de dispositivos m8viles desarrollo Gnico para cada *no de ellos7 Adems" las aplicaciones (e$ son compati$les con la ma0ora de

+gina AA de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

navegadores (e$ en los ordenadores personales7 .e Ca conseg*ido llevar a ca$o todos los o$1etivos planteados mediante el *so de tecnologas dominantes en el mercado la$oral7 Facilitando de esta forma el desarrollo de las aplicaciones (e$7 +or Gltimo" gracias a los anteriores o$1etivos planteados 0 al *so de tecnologas dominantes" se consig*e D*e mediante este frame(or) el desarrollo de aprendi/a1e sea gil 0 sencillo" red*ciendo as la c*rva de aprendi/a1e al mnimo7

Tras Ca$er c*mplido los o$1etivos principales planteados en *n principio" se p*ede llegar a la concl*si8n de D*e se Ca alcan/ado satisfactoriamente los o$1etivos del tra$a1o de fin de grado7 Desde *n p*nto de vista personal" el a*tor de este mismo doc*mento Ca podido compro$ar c8mo el tra$a1o Ca llegado a $*en reca*do 0 se va a dar *n *so real en *n f*t*ro m*0 pr8Mimo" sentando *nas $ases importantes de desarrollo para aplicaciones (e$ f*t*ras sin distinci8n de dispositivos7 Tratndose de *n tra$a1o reali/ado dentro de *n entorno empresarial ser posi$le poder ampliar alg*na f*ncionalidad al sistema e incl*so me1orar alg*na de ellas7 Teniendo por tanto la gratit*d de D*e no es *n tra$a1o D*e D*ede en el olvido7 .e o$tendrn fr*tos en *n periodo $reve de tiempo" 0a sean $eneficios econ8micos como $eneficios a la Cora de desarrollar n*evas aplicaciones7

<'* Ln !# $utur!#
En este apartado se van a presentar posi$les lneas de f*t*ro para el tra$a1o" las c*ales con gran pro$a$ilidad sern est*diadas 0 planteadas para desarrollarse7 4oneMi8n seg*ra por .. 7 En el desarrollo para aplicaciones de dispositivo m8vil no se Ca tenido en c*enta el acceso mediante coneMi8n seg*ra .. al servidor7 Almacenamiento seg*ro7 En el desarrollo para aplicaciones (e$ de dispositivo m8vil el almacenamiento no se reali/a de forma seg*ra 0 la informaci8n va en claro7 En *n principio" la informaci8n D*e se almacena act*almente no se considera m*0 sensi$le si llega a ser desc*$ierta" pero s sera importante en *n f*t*ra solventar esta carencia7 5e1ora de la interfa/ grfica7 a act*al interfa/ grfica D*e proporciona el frame(or) para el dispositivo m8vil carece de personalidad 0 es algo complicado desarollar para me1orarla7 +or tanto" me1orando el frame(or) en este aspecto" se podra conseg*ir *na interfa/ ms fleMi$le para s* desarrollo7 .esiones de *s*ario7 +ermitir D*e en las aplicaciones (e$ para dispositivos m8viles se p*eda mantener *na sesi8n de *s*ario con el servidor7 De tal forma D*e p*eda gestionar s* c*enta 0 reali/ar *na serie de acciones en el sistema dependiendo de s*s permisos7 Todo ello" o$viamente" de *na forma seg*ra7

+gina A9 de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

E' Bi"lio%r!$!
'7 J.ON7 Java.cript O$1ect Notation" %&&:, Cttp,PP(((71son7orgP %7 5o.0nc" %&'%, Cttp,PP(((7mos0nc7comP ;7 .encCa To*cC" %&'%, Cttp,PP(((7sencCa7comPprod*ctsPto*cC <7 .avant" %&'%, Cttp,PP(((7pCpsavant7comP #7 +>+ 3nit7 5ain page" %&'%, Cttp,PP(((7pCp*nit7deP A7 +>+ 3nit7 5oc) O$1ects" %&'&, Cttp,PP(((7pCp*nit7dePman*alP;7&PenPmoc)Fo$1ects7Ctml 97 >T5 # Roc)s" %&'%, Cttp,PP(((7Ctml#roc)s7comPenP :7 +>+ Doc*mentation" %&'%,
+gina A: de A=

Tra$a1o fin de Grado

Frame(or) de desarrollo de aplicaciones (e$ m*ltiplataforma

Cttp,PP(((7pCp7netPman*alPenP =7 50.? 7 TCe (orldbs most pop*lar open so*rce data$ase" %&'%, Cttp,PP(((7m0sDl7com '&7 RE.T7 Representational .tate Transfer" septiem$re %&'%, Cttp,PPen7(i)ipedia7orgP(i)iPRepresentational2.tate2Transfer ''7 RE.T7 >o( I eMplained RE.T to m0 (ife" diciem$re %&&<, Cttp,PPtoma0)o7comP(ritingsPrestFtoFm0F(ife '%7 +ConeGap7 ApacCe 4ordova Doc*mentation" agosto %&'%, Cttp,PPdocs7pConegap7comPenP%7&7&PindeM7Ctml ';7 .mart0 ;7 Doc*mentation" agosto %&'%, Cttp,PP(((7smart07netPdocsPenP '<7 >TT+7 ist of >TT+ stat*s codes" agosto %&'%, Cttp,PPen7(i)ipedia7orgP(i)iP ist2of2>TT+2stat*s2codes '#7 1?*er07 Doc*mentation" %&'%, Cttp,PPdocs71D*er07comP5ain2+age 'A7 1?*er0 5o$ile7 Doc*mentation" %&'%, Cttp,PP1D*er0mo$ile7comPdemosP'7'7'P '97 1?*er0 5o$ile7 TCeme Roller" %&'%, Cttp,PP1D*er0mo$ile7comPtCemerollerPindeM7pCp ':7 1?*er0 5o$ile7 And0 5attCe(s7 4reating and *sing c*stom icons" %&'', Cttp,PP(((7and0mattCe(s7netPreadP%&''P&%P';P4reatingFandF*singFc*stomF iconsFinF1?*er0F5o$ile '=7 1?*er0 5o$ile7 DateBoM" %&'%, Cttp,PPdev71tsage7comP1?5FDateBoMP %&7 1?*er07 4*stom Inp*t -alidation Error 5essages" %&'%, Cttps,PPgitC*$7comP1avespiPcivemF1D*er0Fpl*gin %'7 K+ro Javascript TecCniD*es7 RealF(orld Javascript tecCniD*es for tCe modern" professional (e$ developerL7 JoCn Resig" Apress" %&&A %%7 K+ro Javascript Design +atterns7 TCe essentials of o$1ectForiented Javascript programmingL Ross >armes and D*stin Dia/" Apress" %&&:

+gina A= de A=

You might also like