scieee Science in your language
[es] (orig)

Desarrollo de una aplicación móvil para el seguimiento eficiente de movimientos en bolsa

Author: Fernández Cotán, Diego José
Year: 2025
Source: https://idus.us.es/bitstreams/41647a92-9646-4a8b-9cbd-631c09f626d0/download
Equa ion Chap e 1 Sec ion 1
T abajo Fin de G ado
G ado en Ingenie ía de las Tecnologías de
Telecomunicación
Desa ollo de una aplicación mó il pa a el
seguimien o e icien e de mo imien os en bolsa
Au o : Diego José Fe nández Co án
Tu o : F ancisco Ja ie Muñoz Calle
Dp o. de Ingenie ía Telemá ica
Escuela Técnica Supe io de Ingenie ía
Uni e sidad de Se illa
Se illa, 2025
T abajo Fin de G ado
G ado en Ingenie ía de las Tecnologías de Telecomunicación
Desa ollo de una aplicación mó il pa a el
seguimien o e icien e de mo imien os en bolsa
Au o :
Diego José Fe nández Co án
Tu o :
F ancisco Ja ie Muñoz Calle
P o eso Colabo ado
Dp o. de Ingenie ía Telemá ica
Escuela Técnica Supe io de Ingenie ía
Uni e sidad de Se illa
Se illa, 2025
T abajo Fin de G ado: Desa ollo de una aplicación mó il pa a el seguimien o e icien e de mo imien os en
bolsa
Au o :
Diego José Fe nández Co án
Tu o :
F ancisco Ja ie Muñoz Calle
El ibunal nomb ado pa a juzga el P oyec o a iba indicado, compues o po los siguien es miemb os:
P esiden e:
Vocales:
Sec e a io:
Acue dan o o ga le la cali icación de:
Se illa, 2025
El Sec e a io del T ibunal

A mi amilia.
Ag adecimien os
Quedan a ás unos años en el que he comple ado pa e de aquel camino que un día elegí. Años de sinsabo es y
des en u as, pe o ambién de ap endizaje y ecompensa. Un eco ido que, aunque no siemp e ue ácil, me ha
pe mi ido c ece y a on a un ho izon e eple o de nue os desa íos.
Quisie a ag adece a odos aquellos que, de un modo u o o, es u ie on a mi lado du an e es a odisea y que con
su consejo y buen hace con ibuye on a mi c ecimien o pe sonal y académico.
Ag adezco p o undamen e el incansable apoyo de mis pad es, a quienes les debo más de lo que las palab as
pueden exp esa . Siemp e u ie on una palab a de alien o en los momen os du os y emplanza y mesu a pa a
acompaña me y guia me a lo la go de es a ida. Han sido, son y se án pa a mí ejemplo de o aleza y
pe se e ancia. Po odo lo que habéis hecho po mí, g acias.
Diego José Fe nández Co án
Se illa, 2025
6.2 Blog 121
6.2.1 Pos s 121
6.2.2 Videos 121
6.2.3 A chi os 122
6.3 Cha de Consul as 122
6.3.1 Cha de consul as 122
6.3.2 Ges ión de con e saciones 123
6.4 Pe il y con igu ación 123
6.4.1 Pe il 123
6.4.2 Con igu ación del semá o o 124
6.4.3 Ges ión de usua ios 124
7 Conclusiones y líneas de a ance 125
7.1 Conclusiones 125
7.2 Líneas de a ance 127
Anexo A: Ins alación y Pues a en Ma cha 128
Reposi o ios 128
iOS 128
And oid 129
Se ido 130
Anexo B: API Twel eDa a 132
Anexo C: Inicialización de Base de Da os 135
Anexo D: Con igu ación de Docke 138
Re e encias 141

Índice de Tablas
Tabla 1 - CU-01 Inicio de sesión 41
Tabla 2 - CU-02 Regis o de usua ios 42
Tabla 3 – CU-03 Añadi alo a a o i os 43
Tabla 4 - CU-04 Consul a en ada de Blog 44
Tabla 5 - CU-05 En ia mensaje en el cha de Consul as 45
Tabla 6 - CU-06 Modi ica da os de usua io o con aseña 46
Tabla 7 - CU-07 Ce a sesión 47
Tabla 8 - CU-08 Añadi nue o alo a seguimien o 48
Tabla 9 - CU-09 Con igu a lími es pa a el cálculo del Es ado de In e sión 49
Tabla 10 - CU-10 Elimina acción o c ip omoneda 50
Tabla 11 - CU-11 Añadi nue a en ada de Blog 51
Tabla 12 - CU-12 Modi ica en ada de Blog 52
Tabla 13 - CU-13 Elimina en ada de Blog 53
Tabla 14 - CU-14 Ges iona con e saciones en el Cha de Consul as 54
Tabla 15 - CU-15 Con igu a indicado de Es ado de In e sión 55
Tabla 16 - CU-16 Elimina usua io 56
Tabla 17 - CU-17 C ea nue a cuen a de adminis ado 57
Tabla 18 - Ru as pa a Inicio de Sesión y Regis o 104
Tabla 19 - Ru as de In o mación de Usua io 104
Tabla 20 - Ru as de In o mación de Acciones y C ip omonedas 106
Tabla 21 - Ru as de Blog 107
Tabla 22 - Ru as de Cha de Consul as 108
Tabla 23 - Tabla Usua ios de la base de da os 110
Tabla 24 - Tabla Valo es y Valo esRe de la base de da os 111
Tabla 25 - Tabla Fa o i os de la base de da os 111
Tabla 26 - Tabla Limi es y Limi esRe de la base de da os 112
Tabla 27 - Tabla Blog de la base de da os 113
Tabla 28 - Tabla Cha de la base de da os 113
Tabla 29 - Tabla Semá o o de la base de da os 114
Índice de Figu as
Figu a 1 - E olución his ó ica de Bi coin 23
Figu a 2 - A qui ec u a de la aplicación 26
Figu a 3 - Funcionamien o de Reac Na i e 30
Figu a 4 - Funcionamien o WSGI 31
Figu a 5 -Expo Push No i ica ion API. h ps://docs.expo.de /push-no i ica ions/sending-no i ica ions/ 32
Figu a 6 - Con enedo es Docke . Compa a i a con MVs 33
Figu a 7 - Funcionamien o SSL/TLS. h ps://lea n.mic oso .com/es-es/azu e/pos g esql/ lexible-
se e /concep s-ne wo king-ssl- ls 35
Figu a 8 - Funcionamien o JWT 36
Figu a 9 - In e az Webull 37
Figu a 10 - CU-01 Inicio de sesión 40
Figu a 11 - CU-02 Regis o de usua ios 41
Figu a 12 - CU-03 Añadi alo a a o i os 42
Figu a 13 - CU-04 Consul a en ada de Blog 43
Figu a 14 - CU-05 En ia mensaje en el cha de Consul as 44
Figu a 15 - CU-06 Modi ica da os de usua io o con aseña 45
Figu a 16 - CU-07 Ce a sesión 46
Figu a 17 – CU-08 Añadi nue o alo a seguimien o 47
Figu a 18 – CU-09 Con igu a lími es pa a el cálculo del Es ado de In e sión 48
Figu a 19 – CU-10 Elimina acción o c ip omoneda 49
Figu a 20 - CU-11 Añadi nue a en ada de Blog 50
Figu a 21 - CU-12 Modi ica en ada de Blog 51
Figu a 22 - CU-13 Elimina en ada de Blog 52
Figu a 23 - CU-14 Ges iona con e saciones en el Cha de Consul as 53
Figu a 24 - CU-15 Con igu a indicado de Es ado de In e sión 54
Figu a 25 - CU-16 Elimina usua io 55
Figu a 26 - CU-17 C ea nue a cuen a de adminis ado 56
Figu a 27 - Es ados y lími es del algo i mo de cálculo de in e sión 57
Figu a 28 - Cambio de es ados 58
Figu a 29 - Comunicación en e los componen es de la aplicación 60
Figu a 30 - Pe iciones del on end al se ido 61
Figu a 31 - Ac ualización de la in o mación de seguimien o y en ío de no i icaciones 62
Figu a 32 - Es uc u a de di ec o ios del desa ollo Reac Na i e 63
Figu a 33 - In e elación de los componen es del código on end 64
Figu a 34 - Bo ones como componen es pe sonalizados 65
Figu a 35 - En ada de ex o como componen es pe sonalizados 65
Figu a 36 - En ada de ex o con bo ón pa a cha de consul as 65
Figu a 37 - Globo de cha de consul as 66
Figu a 38 - Bo ón de "Fa o i os" ma cado 66
Figu a 39 - Bo ón de "Fa o i os" sin ma ca 66
Figu a 40 - Indicado de Es ado de In e sión 67
Figu a 41 - Selec o de icono sin imagen seleccionada 67
Figu a 42 - Selec o de icono con imagen seleccionada 68
Figu a 43 - Icono de acción o c ip omoneda en el de alle de la pan alla de Seguimien o 68
Figu a 44 - Bo om Tabs Na iga o 71
Figu a 45 - Vis a gene al de pan allas pa a usua ios no au en icados 75
Figu a 46 - Pan alla de inicio de sesión 75
Figu a 47 - Mensajes de e o en Inicio de Sesión 76
Figu a 48 - Pan alla de egis o 77
Figu a 49 - E o en o mula io de egis o 77
Figu a 50 - E o al c ea cuen a 78
Figu a 51 - Cuen a c eada co ec amen e 78
Figu a 52 - Vis a gene al de pan allas de usua io 79
Figu a 53 - Pan alla de Seguimien o 80
Figu a 54 - De alle de un alo en la pan alla de Seguimien o 80
Figu a 55 - In o mación del código de colo es 81
Figu a 56 - Pan alla de Seguimien o gene al, il ando po acciones o c ip omonedas 82
Figu a 57 - Blog, sección de Pos s 83
Figu a 58 - Blog, sección de ídeo 84
Figu a 59 - Blog, sección de a chi os 85
Figu a 60 - Visualización de a chi os en And oid 86
Figu a 61 - Visualización de a chi os en iOS 86
Figu a 62 - Cha de consul as 87
Figu a 63 - Pan alla de Pe il 88
Figu a 64 - Modi ica da os de usua io 89
Figu a 65 - Modi ica con aseña 89
Figu a 66 - Pan alla de cie e de sesión 90
Figu a 67 - Vis a gene al de las pan allas de adminis ado 90
Figu a 68 - Pan alla de seguimien o pa a adminis ado 91
Figu a 69 - Con igu ación de lími es del Algo i mo de Es ado de In e sión 92
Figu a 70 - E o en el o ma o de da os de con igu ación de lími es 92
Figu a 71 - Añadi a seguimien o 93
Figu a 72 - Añadi nue o Pos 94
Figu a 73 - Añadi nue o Vídeo 94
Figu a 74 - Añadi nue o A chi o 95
Figu a 75 - Modi ica Pos s, Vídeos y A chi os 95
Figu a 76 - Pan alla de consul as pa a adminis ado es 96
Figu a 77 - Clasi icación de con e saciones 97
Figu a 78 - Pan alla de Con igu ación pa a adminis ado es 97
Figu a 79 - Con igu a e e encias 98
Figu a 80 - Con igu ación de semá o o 99
Figu a 81 - Con igu ación de usua ios 99
Figu a 82 - Modi ica pa áme os de usua io 100
Figu a 83 - C ea nue o pe il de adminis ado 100
Figu a 84 - Pe il pa a adminis ado 101
Figu a 85 - In e elación de los componen es del código backend 102
Figu a 86 - Componen es que in e ienen du an e la ejecución del se ido 103
Figu a 87 - Relaciones de la base de da os 109
Figu a 88 - Componen es que in e ienen du an e la ejecución del módulo 'Engine' 115
Figu a 89 - Panel de seguimien o en And oid 119
Figu a 90 - Panel de seguimien o de iOS 119
Figu a 91 - Con igu ación de e e encias en And oid 120
Figu a 92 - Con igu ación de e e encias en iOS 120
Figu a 93 - No i icaciones en And oid 120
Figu a 94 - No i icaciones en iOS 120
Figu a 95 - Pos s en And oid 121
Figu a 96 - Pos s en iOS 121
Figu a 97 - Vídeos en And oid 121
Figu a 98 - Vídeos en iOS 121
Figu a 99 - A chi os en And oid 122
Figu a 100 - A chi os en iOS 122
Figu a 101 - Cha de consul as en And oid 122
Figu a 102 - Cha de consul as en iOS 122
Figu a 103 - Ges ión de con e saciones en And oid 123
Figu a 104 - Ges ión de con e saciones en iOS 123
Figu a 105 - Pe il en And oid 123
Figu a 106 - Pe il en iOS 123
Figu a 107 - Con igu ación de semá o o en And oid 124
Figu a 108 - Con igu ación de semá o o en iOS 124
Figu a 109 - Ges ión de usua ios en And oid 124
Figu a 110 - Ges ión de usua ios en iOS 124
Figu a 111 - Ejecución de la aplicación con npm s a 128
Figu a 112 - Menú de Expo Go 129
Figu a 113 - Pan alla de inicio de la aplicación en iOS 129

1 INTRODUCCIÓN
l me cado de alo es b inda un pun o de encuen o en e indi iduos y emp esas que buscan hace c ece
su capi al y maximiza sus opo unidades inancie as. Conoce el uncionamien o de es e sis ema y o ma
pa e de él median e la comp a y en a de acciones, puede supone un g an po encial de in e sión. Sin
emba go, ambién puede conlle a iesgos, especialmen e pa a quienes buscan una mane a ápida de gene a
ing esos sin es a amilia izado con su complejidad.
1.1 Con ex o
Desde sus o ígenes, la bolsa ha es ado ligada a pe sonas con al o pode adquisi i o y conocimien os inancie os
a anzados. Los alo es y p oduc os inancie os e an manejados po indi iduos o ins i uciones con g an
capacidad económica y acceso a in o mación p i ilegiada. Sin emba go, en las úl imas décadas, con la apa ición
de nume osas webs y aplicaciones que acili an es e p oceso, la in e sión en bolsa se ha democ a izado
conside ablemen e a ayendo a un público mucho más amplio.
Uno de los pun os de in lexión de es a endencia se dio a inales del año 2020, cuando Bi coin, una de las
c ip omonedas más popula es, expe imen ó un no able inc emen o de su alo . En ese momen o, pe sonas que
habían decidido apos a po es a ecnología años an es ie on cómo en muchos casos sus pequeñas in e siones
se ans o maban en e dade as o unas, con i iéndolos en millona ios de la noche a la mañana.
Figu a 1 - E olución his ó ica de Bi coin
Es e enómeno e olucionó la pe cepción que la sociedad enía de las in e siones inancie as, a ayendo a
in e so es de odo ipo, desde aquellos con expe iencia has a aquellos que nunca habían enido con ac o p e io
con el mundo de la in e sión. El a ac i o de es as his o ias de éxi o no pasó desape cibido y ue on muchos los
que decidie on suma se a es a ola, mo i ados po la posibilidad de ob ene cuan iosas ganancias al aden a se en
el me cado inancie o.
E
In oducción
24
La popula idad de las c ip omonedas p opició la apa ición de nume osas pla a o mas de in e sión y cu sos de
ading que, a a és de ag esi as campañas de ma ke ing, consolida on en muchos la c eencia de que in e i
es sencillo y que es la cla e pa a en iquece se ápidamen e.
Sin emba go, la expe iencia demues a que es a pe cepción suele se inco ec a. La in e sión en bolsa es un
p oceso complejo que exige un conocimien o p o undo del uncionamien o del me cado, además de la capacidad
de ges iona el iesgo y la ola ilidad. Igno a es os aspec os o subes ima su impo ancia puede lle a a esul ado
des a o ables.
No exis e un solo mé odo de in e sión, y cada in e so necesi a plan ea di e en es es a egias que se adap en a
sus obje i os, ni el de iesgo y ho izon e empo al. Es as pueden es a basadas en indicado es inancie os,
índices de e e encia e incluso con ianza en el me cado, lo que implica que la bolsa no solo esponde a da os
obje i os, lo que añade un componen e adicional de complejidad.
En es e con ex o nace es e p oyec o, cen ado en la c eación y desa ollo de una aplicación mul ipla a o ma,
accesible an o pa a usua ios de And oid como iOS, que sea in ui i a y e icien e, diseñada pa a o ece una
al e na i a accesible y con iable a los in e so es con menos expe iencia.
Su p opósi o es doble: po un lado, p esen a un mé odo de in e sión con el que lo usua ios pod án in e i en
base a las ecomendaciones gene adas po un algo i mo, undamen ado en los índices RSI y STOCH, que calcula
el momen o de in e sión en el que se encuen a un de e minado alo . Po o o lado, su obje i o es omen a el
ap endizaje en el ámbi o de la in e sión, p opo cionando a los usua ios una he amien a que les pe mi a adqui i
conocimien os sólidos sob e cómo in e i y man ene se in o mado de la ac ualidad del me cado bu sá il.
Además, la in eg ación del cha di ec o con los adminis ado es pe mi e que el usua io pueda plan ea
di ec amen e sus dudas y ecibi sopo e en iempo eal. Es e sopo e humano guía en cada paso del p oceso,
asegu ando una expe iencia de in e sión esponsable y pe sonalizada.
1.2 Obje i os
A ni el écnico, los obje i os que pe sigue la aplicación son:
1. Inicio de sesión y egis o de usua ios
Es e sis ema pe mi e la c eación de pe iles de usua io, pe mi iendo que cada usua io pueda ene una cuen a
pe sonalizada pa a ges iona sus p e e encias den o de la aplicación.
Recoge median e un o mula io el nomb e comple o, co eo elec ónico y con aseña, y los almacena en la base
de da os. Es a in o mación se u iliza pa a la au en icación del usua io, man eniendo un acceso p i ado a sus
da os e in e acciones.
2. Pla a o ma de o mación
a. Ges ión de con enidos
Pe mi e a los adminis ado es pone a disposición de los usua ios ma e ial o ma i o en dis in os ipos de
o ma os, ales como:
- A ículos, combinando imagen y ex o.
- Vídeos.
- Documen os.
25
Desa ollo de una aplicación mó il pa a el seguimien o e icien e de mo imien os en bolsa
b. Cha de consul as
Se icio de mensaje ía en iempo eal en e usua ios y adminis ado es pa a aslada p egun as sob e emas
inancie os o uso de la aplicación.
3. Seguimien o de acciones
a. Panel de acciones y c ip omonedas
El usua io puede consul a una abla con las acciones o c ip omonedas disponibles, con p ecios y da os
ac ualizados en iempo eal.
b. Sis ema de no i icación
i. A iso elemá ico: En ío de no i icación en iempo eal al disposi i o del usua io
ale ando de que uno o a ios de los alo es a los que es á susc i o ha cambiado de
es ado. Puede ac i a se o desac i a se desde el cen o de con igu ación de
no i icaciones del disposi i o.
ii. Código de colo es: Sis ema isual disponible en el panel de seguimien o que in o ma
al usua io del es ado de in e sión de la acción o c ip omoneda. Puede se con igu ado
po los adminis ado es pa a cada uno de los es ados que con empla el algo i mo.
c. Con igu ación
i. Adminis ado
o Ges iona la lis a de acciones y c ip omonedas sopo adas en la aplicación.
o De ine los lími es gene ales y especí icos de cada acción o c ip omoneda, que
es ablecen los umb ales que e alua á el algo i mo de cálculo del momen o óp imo
de in e sión.
ii. Usua io
o Ges iona una lis a pe sonal de acciones y c ip omonedas pa a el seguimien o
pe sonal. Puede selecciona es os alo es de en e las que el adminis ado haya
pues o a disposición de los usua ios.
o Sis ema de ale a median e no i icación al disposi i o al p oduci se un cambio de
es ado en la lis a pe sonal de seguimien o.
Es e p oyec o, po an o, iene como obje i o p opo ciona una pla a o ma accesible que, además de o ece una
he amien a p ác ica de in e sión, p omue a el ap endizaje y comp esión del me cado inancie o.
Análisis de Requisi os y Recu sos
32
2.2.4 Expo Push No i ica ion API
Ges iona las no i icaciones push es un p oceso complejo, que se maneja de mane a di e en e en And oid e iOS.
La API de Expo pa a no i icaciones push u ilizada en es e p oyec o acili a es e desa ollo, uni icando la mane a
en la que se en ían es as no i icaciones pa a ambos sis emas ope a i os.
La lib e ía expo-no i ica ion p o ee de oda la uncionalidad en el lado de clien e necesa ia pa a u iliza
no i icaciones push en una aplicación mul ipla a o ma. Además, el equipo y la comunidad de Expo se han
enca gado de c ean backends que ges ionen es e p oceso pa a dis in os lenguajes de p og amación, en e ellos
Py hon, que es el que se u iliza en es e p oyec o pa a el se ido .
La mane a en que ges ionan las no i icaciones es la siguien e: El se ido de Expo ecibe el mensaje que
que amos mos a en la aplicación, acompañado de un oken, ExpoPushToken, gene ado en el disposi i o de un
usua io, que iden i ica dicho disposi i o. Dependiendo de su sis ema ope a i o, Expo emi e es as no i icaciones
a Fi ebase Cloud Messaging (FCM), pa a And oid, y Apple Push No i ica ions (APN), pa a iOS, y es os
se icios a su ez lo en ían a los e minales.
Fi ebase Cloud Messaging y Apple Push No i ica ions son se icios de en ío de no i icaciones push, de Google
y Apple espec i amen e. Pa a aplicaciones na i as desa olladas especí icamen e pa a cada pla a o ma, es
necesa io con igu a es os se icios especí icamen e. Si bien la u ilización del se icio Expo Push No i ica ions
acili a es e p oceso.
En el siguien e esquema se mues a el uncionamien o.
Figu a 5 -Expo Push No i ica ion API. h ps://docs.expo.de /push-no i ica ions/sending-no i ica ions/

33
Desa ollo de una aplicación mó il pa a el seguimien o e icien e de mo imien os en bolsa
2.2.5 Docke
Docke es una pla a o ma pa a desa olla , en ia y ejecu a aplicaciones [8]. Pe mi e empaque a y ejecu a
aplicaciones en un en o no llamado Con enedo , que iene odo lo necesa io pa a hace unciona las aplicaciones
sin depende de lo que es é ins alado en el hos .
Los con enedo es son p ocesos aislados pa a cada uno de los componen es de una aplicación:
- Au ónomo. Cada con enedo iene odo lo que necesi a pa a unciona , sin depende de
ninguna dependencia p eins alada en el hos .
- Aislado. Lo con enedo es se ejecu an de o ma aislada, po lo que iene una in luencia
mínima en el hos y en o os con enedo es.
- Independien e. Cada con enedo se adminis a de mane a independien e. Elimina un
con enedo no a ec a a los o os, a menos que es én con igu ados pa a ello.
- Po á il. Los con enedo es pueden ejecu a se en cualquie luga . El con enedo que se
ejecu a en una máquina de desa ollo unciona de la misma mane a en un cen o de da os
o en la nube.
A di e encia de las máquinas i uales [9], que cuen an con sis ema ope a i o comple o con su p opio núcleo,
con olado es de ha dwa e, p og amas y aplicaciones, un con enedo es simplemen e un p oceso con odos los
a chi os que necesi a pa a ejecu a se. Si se ejecu an a ios con enedo es, odos ellos compa en el mismo núcleo,
lo que pe mi e ejecu a más aplicaciones en menos in aes uc u a.
Figu a 6 - Con enedo es Docke . Compa a i a con MVs
U iliza Docke ayuda a la escalabilidad de la aplicación y acili a el despliegue del se ido en cualquie
máquina, así como la in eg ación con la base de da os.
2.3 Red
Pa a la comunicación en e la aplicación, como clien e, y el se ido se pueden u iliza di e en es mé odos, cuya
elección depende de las necesidades especí icas del p oyec o, como la ans e encia de da os en iempo eal o la
ecuencia de solici udes. Los mé odos más u ilizados incluyen el uso de pe iciones HTTP y WebSocke s, pa a
conexiones bidi eccionales en iempo eal.
Análisis de Requisi os y Recu sos
34
2.3.1 HTTP
Las pe iciones HTTP se u ilizan especialmen e pa a ope aciones que no equie en in e acciones cons an es o en
iempo eal. Es as solici udes se en ían a a és de URLs que ac úan como pun os de acceso a los ecu sos del
se ido .
En es a aplicación undamen almen e se u ilizan los mé odos GET y POST. GET, pa a ope aciones de lec u a y
POST, pa a las solici udes que equie an en ia alguna in o mación adicional al se ido .
2.3.2 WebSocke s
Es e p o ocolo pe mi e es ablece un canal de comunicación bidi eccional en e un clien e y un se ido ,
pe mi iendo el en ío y ecepción de mensajes en iempo eal.
El obje i o de es a ecnología es p opo ciona un mecanismo pa a aplicaciones que equie en una comunicación
bidi eccional con el se ido , e i ando ab i múl iples conexiones HTTP.
2.3.3 Fo ma o de da os: JSON
JSON (Ja aSc ip Objec No a ion) es un o ma o de ex o pa a el in e cambio de da os. De ine un conjun o de
eglas de o ma o pa a la ep esen ación de da os es uc u ados [10].
Es ampliamen e u ilizado en aplicaciones web pa a la comunicación en e clien e y se ido , y es el o ma o
u ilizado ambién en es e p oyec o.
Ejemplos de es e o ma o se puede encon a en el Anexo B de es e documen o.
2.4 Segu idad
La segu idad es un aspec o undamen al en cualquie web o aplicación mó il. Pa a es e p oyec o se implemen an
undamen almen e dos ecnologías que pe mi en un uso más segu o de la aplicación, además del inicio de sesión
y egis o de usua ios: Ci ado de las comunicaciones con SSL/TLS y uso de JSON Web Token en las pe iciones.
2.4.1 HTTPS y WSS
La comunicación en e el se ido y la aplicación es án ci adas median e el uso de HTTPS (Hype Tex T ans e
P o ocol Secu e) o WSS (Secu e Web Socke ), en el caso de WebSocke s.
• HTTPS u iliza el p o ocolo HTTP combinado con TLS (T anspo Laye Secu i y) o su p edeceso SSL
(Secu e Socke s Laye ).
• Una u a WSS indica que el á ico sob e esa conexión es á p o egido con TLS [11].
El p o ocolo de ci ado SSL/TLS unciona con un mecanismo de cla e pública y p i ada combinado con cla es
simé icas pa a ci a los mensajes.
La cla e pública es p opo cionada po el se ido a la aplicación, lo que pe mi e ci a da os que solo el se ido
puede desci a u ilizando su cla e p i ada, la cual es á p o egida y no se compa e. Una ez es ablecida una
cla e de sesión compa ida, es a se u iliza pa a ci a y desci a los mensajes en ambas di ecciones.
35
Desa ollo de una aplicación mó il pa a el seguimien o e icien e de mo imien os en bolsa
Figu a 7 - Funcionamien o SSL/TLS. h ps://lea n.mic oso .com/es-es/azu e/pos g esql/ lexible-
se e /concep s-ne wo king-ssl- ls
El uso de HTTPS p o ege la p i acidad de los da os y p e iene de a aques Man in he Middle.
Pa a implemen a es a ecnología es necesa io con a con un ce i icado SSL/TLS. En es e p oyec o se hace uso
de ce i icados de Le ’s Enc yp , que es una pla a o ma g a ui a pa a la expedición de ce i icados digi ales.
2.4.1.1 Le ’s Enc yp
Le ’s Enc yp es una Au o idad de Ce i icación g a ui a, au oma izada y abie a, que pe mi e ob ene
ce i icados SSL/TLS pa a un se ido .
Pa a ob ene un ce i icado pa a un dominio web de Le ’s Enc yp es necesa io demos a con ol sob e ese
dominio, lo cual se comp ueba con el p o ocolo ACME (RFC 8555).
Se ha u ilizado en es e p oyec o en el se ido , como al e na i a a los ce i icados au o i mados, pa a posibili a
el ci ado SSL en las comunicaciones en e es e y la aplicación mó il.
Los ce i icados au o i mados, si bien pueden se ú iles en muchas ocasiones, sob e odo en páginas web, donde
los na egado es dan la opción de con ia en el ce i icado manualmen e, la na u aleza de las aplicaciones mó iles
no pe mi e su uso. Se equie e ce i icados de una Au o idad de Ce i icación como Le ’s Enc yp .
2.4.2 JWT Token
El o o aspec o de segu idad que implemen a la aplicación son los JSON Web Token o JWT, que es una mane a
segu a de in e cambio de in o mación en e dos o más pa es u ilizando o ma o JSON [12].
Análisis de Requisi os y Recu sos
36
Su uncionamien o es el siguien e: después de habe supe ado con éxi o la au en icación de usua io, es e ecibe
un oken de acceso y un oken de e esco. El oken de acceso se en ía en la cabece a Au ho iza ion de cada
pe ición que equie a au en icación.
El oken de acceso iene un iempo de ida con igu able, que en gene al suele co o, pa a que un a acan e no lo
pueda u iliza du an e mucho iempo. Una ez que el oken de acceso expi a, debe solici a se uno nue o
u ilizando el oken de e esco.
En la siguien e igu a se mues a un ejemplo de uncionamien o:
Figu a 8 - Funcionamien o JWT
La u ilización de JWT e i a que alguien ajeno a la aplicación acceda a ecu sos p o egidos del se ido , ya que
equie e un oken álido gene ado du an e el p oceso de au en icación. Es o con ibuye a p e eni a aques de
suplan ación de iden idad y manipulación de da os.
2.5 Ob ención de da os de bolsa
Uno de los obje i os undamen ales de es e p oyec o es pode con a con da os del me cado de alo es,
p incipalmen e de la Bolsa de Nue a Yo k, ac ualizados en iempo eal.
2.5.1 Web Sc aping
A in de ob ene in o mación ac ualizada del me cado de alo es, en un p ime momen o, se plan eó la
posibilidad de ob ene es os da os di ec amen e de la web “Webull”, c eando una API que accedie a a la página
y ob u ie a es os da os. Es a web pe mi e la consul a de da os inancie os y de me cado de alo es a a és una
in e az de usua io, mos ada en la Figu a 9, que se ac ualiza dinámicamen e en iempo eal.
37
Desa ollo de una aplicación mó il pa a el seguimien o e icien e de mo imien os en bolsa
Figu a 9 - In e az Webull
Pa a ob ene es os da os es necesa io emplea écnicas de Web Sc aping, que consis e ex ae in o mación de
una web median e un p og ama que, en es e caso, accede ía al código HTML de la página y ob end ía el p ecio
de la acción y los índices RSI y STOCH.
Los da os bolsa son bas an e codiciados y en la mayo ía de los casos la mane a pa a accede a ellos es pagando.
Webull pe mi e la consul a g a ui a a a és de la web, pe o in en a e i a , al igual que o as webs simila es, que
sus da os sean ex aídos di ec amen e pa a p ocesa los en o o p og ama.
Si bien, y aunque du an e un iempo explo é es a opción llegando a desa olla bas an e código, conside é que
ex ae la in o mación de Webull no e a una buena opción pa a el p opósi o que le que ía da .
No obs an e, me gus a ía mos a el p oceso seguido:
Pa a au oma iza el p oceso es u e u ilizando Selenium, que es una lib e ía que pe mi e au oma iza p uebas en
na egado es web simulando un compo amien o humano, y que a menudo se u iliza pa a el web sc aping.
La mane a de accede a los elemen os de la página es haciendo e e encia a iden i icado es o a ibu os HTML
de es os. Sin emba go, p obando di e en es mane as de pode accede a ellos, pude comp oba que no había una
mane a uni icada de hace lo.
En el HTML de la página los elemen os no ienen un iden i icado in a iable. La única mane a de e e encia los
desde el sc ip , po ejemplo, pa a hace click en el icono de los indicado es y selecciona RSI y S och, es po el
a ibu o class, si bien el alo de es e a ibu o a ía cada ez que se accede a la página.
En es e caso, iendo el compo amien o de la web, llegué a pensa que el alo de class a iaba sob e unos
alo es aco ados, lo que me es aba pe mi iendo accede eniendo en cuen a es a casuís ica. Sin emba go, as un
iempo de p uebas, comp obé que a iaba de mane a alea o ia, p obablemen e pa a e i a la u ilización de es e
ipo de écnicas, y, de es e modo, el sc ip deja de ene alidez p ác icamen e de una ejecución a o a.
Po o o lado, los alo es numé icos que necesi aba ex ae se encon aban den o de un elemen o Can as, que
no e leja dichos alo es di ec amen e en el HTML, p obablemen e una ez más pa a e i a el web sc aping.
T as habe es ado in es igando, la única mane a que pa ece que pudie a es median e el econocimien o de
imágenes con una biblio eca de Py hon, aunque, además de los o os p oblemas, no había ga an ías de que
unciona a de una mane a iable.

Análisis de Requisi os y Recu sos
38
La u ilización del so wa e de au oma ización, además, hacía que la web de ec a a un compo amien o ex año
y pudie a llega a bloquea el acceso po IP. Es e pun o pod ía se c í ico pa a la aplicación si se pe die a acceso
du an e un iempo.
Asimismo, al u iliza el Web Sc aping, en gene al, ambién se pod ían es a incumpliendo los é minos de
se icio de los si ios de los que se ex aiga la in o mación.
Po odo ello, conside é que ex ae la in o mación de Webull no e a una buena opción pa a es e p opósi o en
conc e o. Pa a con inua con el desa ollo es u e in es igando o as opciones:
- Pa a ene una API 'p opia', el Web Sc aping es p ác icamen e la única opción iable, pese
a lo que comen aba de los é minos de uso, que depende ía de cada web. La o a o ma
pa a ob ene los da os en iempo eal es ene acceso a uen es p ima ias, que son
p ác icamen e inaccesibles si no es a a és de acue dos come ciales con los p o eedo es.
- La o a opción, es u iliza algunas de las API come ciales que ya exis en. La mayo ía o ece
planes g a ui os, con uncionalidades muy limi adas, pe o su icien es pa a ene una demo
de la aplicación. Si se quisie a u iliza la aplicación en el u u o con ines come ciales, se
pod ía cambia a un plan de pago adqui iendo un APIKEY.
Después de es a in es igación, es a úl ima, suponía la opción más azonable, ya que pe mi e la consul a de
p ecios e índices, an o de acciones como de c ip omonedas en iempo eal y con la ga an ía de que la
in o mación es a á disponible sin pone en iesgo la expe iencia del usua io. Algunas opciones popula es son
Twel eDa a, AlphaVan age o Polygon.
2.5.2 Twel eDa a API
Twel eDa a es una pla a o ma digi al que o ece da os del me cado inancie o a a és de consul as a una API.
Dispone de da os en iempo eal e his ó icos, así como de in o mación gene al de las acciones, p ecios o
indicado es conc e os
Exis en nume osas pla a o mas que o ecen da os inancie os pa a su uso en aplicaciones come ciales o
simplemen e pa a el es udio pe sonal del me cado. El uncionamien o de odas ellas es bas an e simila , si bien
exis en di e encias signi ica i as en el p ecio y en las condiciones de uso.
Pa a el p opósi o de la aplicación se eligió la API de Twel eDa a, que o ece ex ensa documen ación y un plan
g a ui o su icien e pa a pode dispone y abaja con los da os du an e el desa ollo y p uebas de la aplicación.
Es a pla a o ma o ece los da os en o ma o JSON o, al e na i amen e, en CSV median e pe iciones a su API.
En el p oyec o se u ilizan da os en o ma o JSON.
2.5.2.1 Pe iciones
Los enpoin s de la API empiezan po el p e ijo: h ps://api. wel eda a.com seguido de los pa áme os de consul a
[13].
Pa a el p opósi o de la aplicación se consul an an o pa a acciones y c ip omonedas las siguien es pe iciones:
39
Desa ollo de una aplicación mó il pa a el seguimien o e icien e de mo imien os en bolsa
- In o mación gene al:
o h ps://api. wel eda a.com/quo e?symbol=AAPL&apikey=you _api_key
- P ecio en iempo eal:
o h ps://api. wel eda a.com/p ice?symbol=AAPL&apikey=you _api_key
- Indicado RSI en in e alo de 1 minu o y 5 minu os:
o h ps://api. wel eda a.com/ si?symbol=AAPL&in e al=1min&ou pu size=1&a
pikey=you _api_key
- Indicado STOCH en in e alo de 1 minu o y 5 minu os:
o h ps://api. wel eda a.com/s och?symbol=AAPL&in e al=1min&ou pu size=1
&apikey=you _api_key
El campo ‘symbol’ de la pe ición se debe ajus a dependiendo de la acción o c ip omoneda eque ida en cada
caso.
El esul ado de las pe iciones indicadas, siguiendo la acción de ejemplo ‘AAPL, Apple’ se puede consul a en
el Anexo B.
Diseño de la Aplicación
40
3 DISEÑO DE LA APLICACIÓN
n es e capí ulo se abo da án en de alle aspec os elacionados con el diseño de la aplicación. Se
desc ibi án los casos de uso [14], indicando las in e acciones en e los usua ios y el sis ema. Asimismo,
se inclui án diag amas de casos de uso y diag amas de secuencia pa a ep esen a el uncionamien o y
es uc u a del sis ema.
3.1 Casos de uso
3.1.1 Inicio de sesión
Figu a 10 - CU-01 Inicio de sesión
E
41
Desa ollo de una aplicación mó il pa a el seguimien o e icien e de mo imien os en bolsa
CU-01
Inicio de sesión
P econdición
El usua io debe es a egis ado en la aplicación y no debe habe iniciado sesión.
Desc ipción
Es e caso de uso desc ibe el p oceso de inicio de sesión de un usua io en la aplicación.
Secuencia
Paso
Acción
1
In oduce el usua io y la con aseña en los campos del o mula io.
2
Pulsa el bo ón ‘Inicia sesión’
Pos condición
El usua io inicia sesión en la aplicación y ob iene acceso al con enido.
Excepciones
Paso
Acción
2
Si el usua io no es á egis ado en la aplicación
E.1
Se mos a á un mensaje de e o solici ando de nue o los da os y
pe maneciendo en la pan alla de inicio de sesión.
Tabla 1 - CU-01 Inicio de sesión
3.1.2 Regis o de usua ios
Figu a 11 - CU-02 Regis o de usua ios
Diseño de la Aplicación
48
CU-08
Añadi nue a acción o c ip omoneda a seguimien o
P econdición
El adminis ado debe es a au en icado en la aplicación y habe seleccionado la pan alla
de Seguimien o en la ba a de na egación.
Desc ipción
Es e caso de uso desc ibe las acciones pa a añadi un nue o alo a seguimien o.
Secuencia
Paso
Acción
1
Pulsa bo ón ‘Añadi a seguimien o’
2
In oduci símbolo y nomb e del nue o alo .
3
Pulsa el bo ón ‘Acción/C yp o’ pa a selecciona si es acción o c ip omoneda.
4
Pulsa icono pa a añadi una imagen ep esen a i a del alo .
5
Pulsa el bo ón ‘Añadi ’.
Pos condición
Se hab á añadido un nue o alo y es a á disponible pa a los usua ios de la aplicación.
Excepciones
Paso
Acción
5
Si el símbolo in oducido no exis e o el campo es á acío o el campo de
nomb e es á acío o no se ha seleccionado se es acción o c ip omoneda o no
se ha seleccionado una imagen.
E.1
Mues a un mensaje de e o indicando la in o mación que al a.
Comen a ios
Ninguno.
Tabla 8 - CU-08 Añadi nue o alo a seguimien o
3.1.9 Con igu a lími es pa a el algo i mo de Es ado de In e sión
Figu a 18 – CU-09 Con igu a lími es pa a el cálculo del Es ado de In e sión

49
Desa ollo de una aplicación mó il pa a el seguimien o e icien e de mo imien os en bolsa
CU-09
Con igu a lími es pa a el cálculo del Es ado de In e sión
P econdición
El adminis ado debe es a au en icado en la aplicación y habe seleccionado la pan alla
de Seguimien o en la ba a de na egación.
Desc ipción
Es e caso de uso desc ibe las acciones con igu a los lími es pa a el cálculo del Es ado
de In e sión de un alo .
Secuencia
Paso
Acción
1
Pulsa sob e un alo de la lis a de seguimien o.
2
Modi ica los campos necesa ios.
3
Pulsa el bo ón ‘Gua da cambios’
Pos condición
Se hab án gua dado los lími es asociados al alo seleccionado.
Excepciones
Paso
Acción
2
Si alguno de los campos es á ació o con iene ca ac e es no numé icos.
E.1
Se esal a el campo a ec ado en colo ojo indicando un e o .
3
Si se in en a gua da con campos e óneos.
E.1
Se mues a un mensaje de e o y se uel e a solici a los da os.
Comen a ios
Es e caso de uso ambién aplica pa a con igu a las e e encias en la pan alla de
con igu ación.
Tabla 9 - CU-09 Con igu a lími es pa a el cálculo del Es ado de In e sión
3.1.10 Elimina acción o c ip omoneda
Figu a 19 – CU-10 Elimina acción o c ip omoneda
Diseño de la Aplicación
50
CU-10
Elimina acción o c ip omoneda
P econdición
El adminis ado debe es a au en icado en la aplicación y habe seleccionado la pan alla
de Seguimien o en la ba a de na egación.
Desc ipción
Es e caso de uso desc ibe las acciones elimina un de e minado alo .
Secuencia
Paso
Acción
1
Deja pulsado un alo de la lis a de seguimien o.
2
Pulsa el bo ón ‘Elimina ’
Pos condición
Se hab án eliminado el alo seleccionado.
Excepciones
Ninguna.
Comen a ios
Ninguno.
Tabla 10 - CU-10 Elimina acción o c ip omoneda
3.1.11 Añadi nue a en ada de Blog
Figu a 20 - CU-11 Añadi nue a en ada de Blog
51
Desa ollo de una aplicación mó il pa a el seguimien o e icien e de mo imien os en bolsa
CU-11
Añadi nue a en ada de Blog
P econdición
El adminis ado debe es a au en icado en la aplicación y habe seleccionado la pan alla
de Blog en la ba a de na egación.
Desc ipción
Es e caso de uso desc ibe las acciones añadi una nue a en ada de Blog.
Secuencia
Paso
Acción
1
El adminis ado pulsa uno de los apa ados disponibles en el Blog: Pos s,
Vídeos o A chi os.
2
Pulsa el bo ón ‘Añadi nue a publicación’
3
Esc ibe los í ulos o ex os eque idos.
4
Pulsa el bo ón ‘Añadi imagen’, ‘Añadi ídeo o ‘Añadi a chi o’ según
co esponda y se selecciona el a chi o.
5
Pulsa el bo ón ‘Publica ’
Pos condición
Se hab á añadido una nue a en ada al Blog.
Excepciones
Paso
Acción
5
Si al a algún campo po ellena o no se ha seleccionado el a chi o eque ido.
E.1
Se mues a un mensaje de e o y se uel e a solici a los da os.
Comen a ios
Ninguno.
Tabla 11 - CU-11 Añadi nue a en ada de Blog
3.1.12 Modi ica en ada de Blog
Figu a 21 - CU-12 Modi ica en ada de Blog
Diseño de la Aplicación
52
CU-12
Modi ica en ada de Blog
P econdición
El adminis ado debe es a au en icado en la aplicación, habe seleccionado la pan alla
de Blog en la ba a de na egación.
Desc ipción
Es e caso de uso desc ibe las acciones pa a modi ica una en ada de Blog ya exis en e.
Secuencia
Paso
Acción
1
El adminis ado pulsa uno de los apa ados disponibles en el Blog: Pos s,
Vídeos o A chi os.
2
Deja pulsado sob e una publicación que se quie a modi ica .
3
Modi ica los campos necesa ios.
4
Pulsa el bo ón ‘Gua da cambios’.
Pos condición
Se hab á añadido modi icado la en ada de Blog seleccionada.
Excepciones
Paso
Acción
4
Si al a algún campo po ellena o no se ha seleccionado el a chi o eque ido.
E.1
Se mues a un mensaje de e o y se uel e a solici a los da os.
Comen a ios
Ninguno.
Tabla 12 - CU-12 Modi ica en ada de Blog
3.1.13 Elimina en ada de Blog
Figu a 22 - CU-13 Elimina en ada de Blog
53
Desa ollo de una aplicación mó il pa a el seguimien o e icien e de mo imien os en bolsa
CU-13
Elimina en ada de Blog
P econdición
El adminis ado debe es a au en icado en la aplicación, habe seleccionado la pan alla
de Blog en la ba a de na egación.
Desc ipción
Es e caso de uso desc ibe las acciones pa a elimina una en ada de Blog.
Secuencia
Paso
Acción
1
El adminis ado pulsa uno de los apa ados disponibles en el Blog: Pos s,
Vídeos o A chi os.
2
Deja pulsado sob e una publicación que se quie a modi ica .
3
Pulsa el bo ón ‘Elimina ’.
Pos condición
Se hab á añadido eliminado la en ada de Blog seleccionada.
Excepciones
Ninguna.
Comen a ios
Ninguno.
Tabla 13 - CU-13 Elimina en ada de Blog
3.1.14 Ges iona con e saciones del Cha de Consul as
Figu a 23 - CU-14 Ges iona con e saciones en el Cha de Consul as

Diseño de la Aplicación
54
CU-14
Ges iona con e saciones en el cha de Consul as
P econdición
El adminis ado debe es a au en icado en la aplicación, habe seleccionado la pan alla
de Consul as en la ba a de na egación.
Desc ipción
Es e caso de uso desc ibe las acciones pa a la ges ión de cha s po el adminis ado .
Secuencia
Paso
Acción
1
El adminis ado pulsa uno de los apa ados disponibles en el Blog: Todos,
Pendien es o A chi ados.
2
Deja pulsado sob e un usua io de la lis a pa a ab i menú desplegable.
3
Pulsa el bo ón ‘Ma ca como espondido’, ‘Ma ca como pendien e’ o
‘Elimina ’.
Pos condición
La con e sación se hab á clasi icada como espondida o pendien e o se hab á
eliminado, según co esponda.
Excepciones
Ninguna.
Comen a ios
Ninguno.
Tabla 14 - CU-14 Ges iona con e saciones en el Cha de Consul as
3.1.15 Con igu a indica de Es ado de In e sión
Figu a 24 - CU-15 Con igu a indicado de Es ado de In e sión
55
Desa ollo de una aplicación mó il pa a el seguimien o e icien e de mo imien os en bolsa
CU-15
Con igu a indicado de Es ado de In e sión
P econdición
El adminis ado debe es a au en icado en la aplicación y habe seleccionado la pan alla
de Con igu ación en la ba a de na egación.
Desc ipción
Es e caso de uso desc ibe las acciones con igu a el colo que indica el Es ado de
In e sión.
Secuencia
Paso
Acción
1
Pulsa el bo ón ‘Con igu ación de semá o o’.
2
Pulsa uno de los bo ones que indican los es ados.
3
Con igu a y selecciona colo .
4
Pulsa el bo ón ‘Acep a .
5
Pulsa el bo ón ‘Gua da cambios’.
Pos condición
Se hab án gua dado los colo es asociados a los di e en es es ados.
Excepciones
Ninguna.
Comen a ios
Ninguno.
Tabla 15 - CU-15 Con igu a indicado de Es ado de In e sión
3.1.16 Elimina usua io
Figu a 25 - CU-16 Elimina usua io
Diseño de la Aplicación
56
CU-16
Elimina usua io
P econdición
El adminis ado debe es a au en icado en la aplicación, habe seleccionado la pan alla
de Con igu ación en la ba a de na egación.
Desc ipción
Es e caso de uso desc ibe las acciones pa a elimina usua ios.
Secuencia
Paso
Acción
1
Pulsa el bo ón ‘Ges ión de usua ios’.
2
Pulsa sob e un usua io de la lis a pa a ab i in o mación.
3
Pulsa el bo ón ‘Elimina ’
Pos condición
Se hab á eliminado el usua io seleccionado.
Excepciones
Ninguna.
Comen a ios
Ninguno.
Tabla 16 - CU-16 Elimina usua io
3.1.17 C ea nue a cuen a de adminis ado
Figu a 26 - CU-17 C ea nue a cuen a de adminis ado
57
Desa ollo de una aplicación mó il pa a el seguimien o e icien e de mo imien os en bolsa
CU-17
C ea nue as cuen as de adminis ado
P econdición
El adminis ado debe es a au en icado en la aplicación, habe seleccionado la pan alla
de Con igu ación en la ba a de na egación.
Desc ipción
Es e caso de uso desc ibe las acciones pa a c ea nue as cuen as de adminis ado .
Secuencia
Paso
Acción
1
Pulsa el bo ón ‘C ea adminis ado ’.
2
In oduce los da os solici ados en el o mula io: alias, nomb e, apellidos,
co eo elec ónico y con aseña.
3
Pulsa el bo ón ‘C ea cuen a’.
Pos condición
El usua io queda á egis ado en la aplicación y se á de uel o a la pan alla de Inicio de
Sesión pa a que pueda inicia sesión.
Excepciones
Paso
Acción
3
Si el alias o co eo elec ónico especi icado ya es aban egis ados en la
aplicación.
E.1
De ol e á un mensaje de e o y ol e á a solici a los da os.
Tabla 17 - CU-17 C ea nue a cuen a de adminis ado
3.2 Algo i mo de Cálculo de In e sión
Uno de los pila es de es a aplicación es el cálculo del momen o óp imo de in e sión. Pa a ello se p opone un
algo i mo basado en los indicado es inancie os RSI y STOCH.
Es e algo i mo di e encia sie e es ados posibles en los que una de e minada acción o c ip omoneda puede es a ,
indicando el momen o de in e sión de ese de e minado alo . En la Figu a 27 se ecogen es os es ados:
Figu a 27 - Es ados y lími es del algo i mo de cálculo de in e sión
Desa ollo F on end
64
64
El pun o de inicio de la aplicación se encuen a en el iche o App.js. Las dis in as pan allas que mues a la
aplicación se o ganizan den o del di ec o io sc eens. Cada pan alla se desa olla en un iche o sepa ado, en el
que se de ine el código necesa io pa a su uncionamien o.
Pa a mos a las di e en es is as, se u iliza la biblio eca Reac Na iga ion, que pe mi e la ansición en e
pan allas y ges iona el his o ial de na egación [16].
La aplicación ambién u iliza con ex os [12] pa a man ene los da os ela i os a la sesión accesibles desde odas
las pan allas y componen es. Es os da os globales se ges ionan median e un P o ide , que ac úa como un
con enedo de da os, dis ibuyendo es a in o mación a a és de los dis in os componen es.
En la siguien e igu a se mues a una is a gene alizada de los componen es del código on end y cómo es os
se elacionan en e sí:
Figu a 33 - In e elación de los componen es del código on end
4.1.1 Vis as y Componen es
Tan o en el desa ollo en And oid como en iOS, los elemen os básicos de una in e az de usua io son las “ is as”
[17]. Es as pe mi en mos a ex o, imágenes, o esponde a las in e acciones de los usua ios. Con Reac Na i e
se pueden in oca es as is as con Ja aSc ip median e componen es de Reac .
Reac Na i e incluye una se ie de componen es p ede inidos, como View, Tes , Image, Sc ollView o Tex Inpu ,
que se espaldan en los componen es na i os de cada pla a o ma y que ienen apa iencia na i a al ejecu a se la
aplicación And oid o iOS.
Además de inclui es os componen es, Reac Na i e ambién pe mi e c ea componen es pe sonalizados y hace
uso de ellos en dis in as pa es del código. Pa a es a aplicación se han desa ollados a ios componen es
pe sonalizados.
4.1.1.1 Bo ones
Es os bo ones combinan los componen es de Reac Na i e TouchableOpaci y, que pe mi e pulsa sob e el

65
Desa ollo de una aplicación mó il pa a el seguimien o e icien e de mo imien os en bolsa
componen e y ejecu a unciones, y Tex , que pe mi e in oduci un ex o en es e.
El diseño en cuan o a o ma, colo es y dimensiones se ija en la de inición del p opio componen e, omando
como pa áme os modi icables el ex o del bo ón y la unción a ejecu a al se pulsado. Es o pe mi e man ene
un es ilo uni o me en oda la aplicación.
Figu a 34 - Bo ones como componen es pe sonalizados
4.1.1.2 En adas de ex o
Es e componen e es á basado en Tex Inpu de Reac Na i e, pe mi iendo como pa áme os modi icables el
Placeholde y la a iable des ino del ex o in oducido.
Al igual que con los bo ones, con es e componen e se busca man ene un es ilo uni o me en oda la aplicación.
Figu a 35 - En ada de ex o como componen es pe sonalizados
4.1.1.3 En ada de ex o pa a Cha de Consul as
Es e componen e se u iliza en el Cha de Consul as de la aplicación y cons a de una en ada de ex o pa a esc ibi
un mensaje y un bo ón pa a en ia lo. Po se una combinación de los componen es an e io es, se u ilizan los
mismos componen es de Reac Na i e ya mencionados: Tex Inpu , TouchableOpaci y y Tex .
Figu a 36 - En ada de ex o con bo ón pa a cha de consul as
4.1.1.4 Globos de Cha de Consul as
También en la pan alla del Cha de Consul as, pa a isualiza los mensajes compa idos en la con e sación, se
u iliza es e componen e pe sonalizado que cons a de TouchableOpaci y y Tex .
En es e componen e se ha desa ollado una lógica que dependiendo del usua io que esc ibió el mensaje mues a
un es ilo u o o.
Si el mensaje ha sido esc i o po un adminis ado , es e se mos a á en alineado en lado izquie do de la pan alla
y con colo g is. En caso de que el mensaje haya sido esc i o po un usua io, es e se mos a á alineado a la
de echa y en colo azul. Un ejemplo se puede e en la siguien e igu a:
Desa ollo F on end
66
66
Figu a 37 - Globo de cha de consul as
4.1.1.5 Bo ón de “Fa o i os”
Es e bo ón con o ma de es ella se ha desa ollado pa a pe mi i ma ca como a o i os las acciones o
c ip omonedas que el usua io quie a segui de mane a especí ica. El componen e se compone de
TouchableOpaci y, pa a pe mi i ejecu a una unción al se pulsado, y un componen e Image.
Al pulsa el bo ón se en ía una pe ición al se ido indicando que el usua io ha ma cado o eliminado como
a o i o una de e minada acción o c ip omoneda, almacenándolo o eliminándolo en la base de da os.
Mien as el usua io enga ma cado un alo como a o i o la es ella se mos a á en g is oscu o, como se puede
e en la Figu a 38. En caso con a io, se mos a á en blanco con el con o no en g is oscu o, como apa ece en la
Figu a 39.
Figu a 38 - Bo ón de "Fa o i os" ma cado
Figu a 39 - Bo ón de "Fa o i os" sin ma ca
4.1.1.6 Indicado de Es ado de In e sión
En la pan alla de Seguimien o, jun o al p ecio de la acción o c ip omoneda, apa ece un cuad o con un colo que
puede i a iando en unción del es ado de in e sión en el que es é dicho alo . Es e componen e es á compues o
de un TouchableOpaci y con las dimensiones y o mas que se pueden e en la Figu a 40.
Como pa áme o, es e componen e ecibe el colo , que se ecibe desde el se ido según co esponda y que
p e iamen e ha debido se con igu ado po el adminis ado en la pan alla de con igu ación.
67
Desa ollo de una aplicación mó il pa a el seguimien o e icien e de mo imien os en bolsa
Figu a 40 - Indicado de Es ado de In e sión
4.1.1.7 Selec o de icono pa a Acciones y C ip omonedas
Al añadi el adminis ado una nue a acción o c ip omoneda pa a seguimien o se equie e una imagen o icono
de dicho alo pa a se mos ada en el de alle de es e. Es e componen e es á compues o de TouchableOpaci y y
el componen e de la biblio eca Ionicons, pa a mos a iconos.
Pa a ello se ha desa ollado es e componen e, que mues a un símbolo ojo con icono mien as no haya ninguna
imagen seleccionada, como se puede e en la Figu a 41.
Figu a 41 - Selec o de icono sin imagen seleccionada
Al pulsa sob e dicho componen e se ab i á el explo ado de a chi os pa a selecciona una imagen. Si selecciona
alguna imagen el componen e cambia á a colo e de y es a es a á ca gada en el o mula io pa a en ia la al
se ido .
Desa ollo F on end
68
68
Figu a 42 - Selec o de icono con imagen seleccionada
4.1.1.8 Viso de icono pa a Acciones y C ip omonedas
Una ez se haya alidado el o mula io an e io y se haya añadido una nue a acción c ip omoneda, al pulsa
sob e el alo en la pan alla de Seguimien o se ab i á un de alle de dicho alo mos ando la imagen que
p e iamen e ue seleccionada.
Es e componen e es á o mado po View, ac uando de con enedo , y WebView pa a ca ga la imagen.
Figu a 43 - Icono de acción o c ip omoneda en el de alle de la pan alla de Seguimien o
4.1.2 Pan allas
El código co espondien e a cada pan alla es á de inido en iche os, los cuales compa en una es uc u a simila .
A con inuación, se mues a el código en una e sión simpli icada del co espondien e a la pan alla de Inicio de
Sesión de es a aplicación, que pe mi e explica es a es uc u a.
69
Desa ollo de una aplicación mó il pa a el seguimien o e icien e de mo imien os en bolsa
En p ime luga , se impo an las biblio ecas y componen es que se án u ilizados en es a pan alla, an o los
p opo cionados po Reac Na i e, como los componen es pe sonalizados, que se impo an desde la ca pe a
impo Reac , { useS a e } om ' eac ';
impo { S yleShee , Tex , View } om ' eac -na i e';
impo Tex Inpu App om '../componen s/Tex Inpu App';
impo Bu onApp om '../componen s/Bu onApp';
cons Login = () => {
cons { login } = useAu h();
cons [use , se Use ] = useS a e('')
cons [passwo d, se Passwo d] = useS a e('')
cons handle eques = () => {
i (use !='' && passwo d!=''){
login(use , passwo d)
}
}
e u n(
<View s yle={s yles.con aine }>
<Tex s yle={s yles. ex }>¡Bien enido!</Tex >
<Tex Inpu App ph='Usua io' al={use } se Val={se Use }/>
<Tex Inpu App ph='Cons aseña' al={passwo d} se Val={se Passwo d}/>
<Bu onApp i le={'Inicia sesión'} onP ess={() => handle eques ()}/>
</View>
);
};
expo de aul Login;
cons s yles = S yleShee .c ea e({
con aine : {
lex: 1,
backg oundColo : '# ',
},
ex : {
ma ginTop: 40,
alignSel : 'cen e ',
}
});

Desa ollo F on end
70
70
componen s.
Desde el di ec o io asse s ambién es posible impo a o os ecu sos, como las imágenes u ilizadas pa a el
logo ipo de la aplicación.
Cabe des aca el uso de Hooks, que es una he amien a que pe mi e u iliza es ados y o as uncionalidades de
Reac [18]. Conc e amen e son unciones que pe mi en accede al es ado y ciclo de ida de Reac desde los
componen es de una unción. P incipalmen e se ha hecho uso de useS a e y de useE ec :
• useS a e se llama den o de un componen e pa a ag ega le un es ado local, que se conse a á en nue as
ende izaciones. De uel e el alo del es ado ac ual y unción pa a ac ualiza lo. En el siguien e ejemplo
enemos la a iable num inicializada a 0 y la unción se Num, que asigna á nue os alo es a num, po
ejemplo con se Num(num + 1), que inc emen a ía la a iable en 1.
• useE ec pe mi e ejecu a código du an e el ciclo de ida de un componen e, gene almen e al ende iza
po p ime a ez una pan alla. En es a aplicación se u iliza, po ejemplo, pa a hace una pe ición al
se ido pa a inicializa da os en una pan alla. Es a unción es decla ada den o de los componen es, po
lo que ienen acceso a las p opiedades y es ados de es e.
A con inuación de las impo aciones se decla a el componen e, que de ine la pan alla. Al inicio de es e se
decla an los Hooks, pa a maneja es ados y ejecu a el código necesa io al mon a la pan alla.
También se decla an en es e pun o unciones, que pe mi an maneja las in e acciones del usua io con la pan alla,
haciendo pe iciones al se ido o cambiando es ados.
La in e az se de ine o ganizando los elemen os je á quicamen e den o de un con enedo p incipal View. Den o
de es e con enedo an o os componen es, ya sean p opios de Reac Na i e o pe sonalizados, dis ibuidos según
el diseño que se quie a ene en es a pan alla.
En el código de ejemplo se añade una línea de ex o, dos campos de en ada de ex o y un bo ón.
Po úl imo, se de ine una hoja de es ilos, simila a cómo se hace en CSS, pa a da o ma o a los componen es de
la pan alla. Es os es ilos se de inen u ilizando S yleShee y se asignan a cada componen e con la p opiedad s yle.
El uso de es a hoja de es ilos pe mi e modi ica ca ac e ís icas de los componen es como posición, dimensiones,
bo des, colo es o alineación.
4.1.3 Na egación
Pa a la na egación en e las dis in as pan allas, como ya se ha indicado an e io men e, se ha u ilizado la
biblio eca Reac Na iga ion. En es a aplicación se hace uso de S ack Na iga o y de Bo oms Tabs Na iga o .
• S ack Na iga o es una o ma de i cambiando de pan alla, de mane a que cada nue a pan alla se
posiciona en la pa e supe io de una pila, siendo es a pan alla, la que es á en la pa e supe io , la que es
cons [num, se Num] = useS a e(0)
71
Desa ollo de una aplicación mó il pa a el seguimien o e icien e de mo imien os en bolsa
isible pa a el usua io [19]. Al ol e a ás, la úl ima pan alla se qui a de la pila, dejando isible la que
es aba inmedia amen e po debajo.
La ansición en e pan allas se hace po de ec o con la con igu ación na i a de la pla a o ma, sea
And oid o iOS.
• Bo om Tabs Na iga o consis e en una ba a de pes añas en la pa e in e io de la pan alla que pe mi e
i cambiando en e di e en es u as de la aplicación [20]. En la siguien e igu a se mues a el Bo om
Tab Na iga o implemen ado en es e p oyec o.
Los componen es de las pan allas no se mon an has a que el usua io le asigna el oco, es deci , has a
que selecciona la pes aña co espondien e.
Figu a 44 - Bo om Tabs Na iga o
Es e na egado se ha pe sonalizado pa a inclui iconos ep esen a i os u ilizando la biblio eca Ionicons,
así como los colo es pa a adap a lo al es ilo de la aplicación. Es a con igu ación eemplaza el o ma o
p ede e minado que p opo ciona Reac Na iga ion.
Toda la lógica que con o ma la na egación de la aplicación es á implemen ada en el iche o index.js den o del
di ec o io na iga o s.
Mien as el usua io no es é au en icado, solo iene acceso a la en ana de Inicio de Sesión y Regis o. En el
momen o en el que es e inicia sesión pod á ene acceso al es o de pan allas. Asimismo, se hace una dis inción
en e usua ios y adminis ado es, donde es os úl imos ienen acceso a pan allas con uncionalidades especí icas
pa a adminis a la aplicación.
4.1.4 Red
La comunicación con el se ido se es ablece median e pe iciones HTTPS y median e WebSocke s.
4.1.4.1 HTTPS
Pa a las ealiza pe iciones HTTPS se u iliza la API Fe ch de Reac Na i e. Es a he amien a pe mi e en ia
solici udes indicando la URL a la que se quie e accede [21]. También pe mi e indica el mé odo, GET o POST
en el caso de es a aplicación, así como cabece as adicionales y cue po del mensaje, en caso de pe iciones POST.
Un ejemplo de uso se puede e a con inuación con la pe ición pa a ob ene los alo es a o i os de seguimien o
de un usua io.
Desa ollo F on end
72
72
En es e ejemplo, se especi ica la u a del se ido indicando que se a a de una pe ición POST. La di ección IP
del se ido es á de inida en un a chi o de con igu ación y se oma como pa áme o.
Además, se añaden las cabece as Au ho iza ion, indicando el JWT Token pa a pode accede a los ecu sos, y
Con en -Type, especi icando el ipo de da os que con iene la pe ición.
En el cue po de la solici ud incluye el campo ‘alias’ en o ma o JSON, que indica el nomb e del usua io.
En la pan alla de Blog, las Imágenes y Documen os son ende izados u ilizando el componen e WebView, de la
biblio eca eac -na i e-web iew. Los ideos son ende izados u ilizando el componen e Video de la biblio eca
expo-a . En ambos casos, la URL del se ido se indica en el a ibu o sou ce de es os componen es, como se
puede e a con inuación.
4.1.4.2 Websocke s
Pa a la comunicación median e WebSocke s se u iliza la biblio eca socke .io-clien .
En el con ex o de la aplicación se inician dos conexiones, una pa a el ob ene los da os ela i os al seguimien o
de los alo es y o o pa a el cha . A a és del P o ide se dispond á de es as conexiones en las pan allas
co espondien es.
cons esponse = awai e ch('h ps://'+ip+'/ge Fa ou i es', {
me hod: 'POST',
heade s: {
'Au ho iza ion': `Bea e ${jw Token}`,
'Con en -Type': 'applica ion/json',
},
body: JSON.s ingi y({
alias: au hS a e.use name,
}),
});
<WebView sou ce={{u i: 'h ps://'+ip+'/ge BlogImage/'+i em[0],
heade s: {'Au ho iza ion': `Bea e ${jw Token}`} }}/>
<Video sou ce={{u i: 'h ps://'+ip+'/ge BlogVideo/'+i em[0],
heade s: {'Au ho iza ion': `Bea e ${jw Token}`}
}}
useNa i eCon ols
esizeMode="con ain"
s yle={s yles.imageblog} />
cons ws = io('wss://'+ip+'/s ocks')
cons wsCha = io('wss://'+ip+'/cha ')
73
Desa ollo de una aplicación mó il pa a el seguimien o e icien e de mo imien os en bolsa
Tan o en la pan alla de Seguimien o como en la de Cha , se de inen unciones pa a ges iona los e en os de es as
conexiones, undamen almen e pa a la ecepción de mensajes.
Cada ez que se eciba un mensaje se ejecu a el código que haya de inido den o de la unción, ac ualizando las
a iables que almacenan el p ecio o es ado de un alo , en la pan alla de Seguimien o, o ac ualizando la lis a de
mensajes en la pan alla de Consul as.
4.1.5 No i icaciones push
La ges ión de las no i icaciones push se hace con la lib e ía expo-no i ica ions, implemen ando las unciones
necesa ias pa a maneja las no i icaciones y con igu ando c edenciales pa a And oid e iOS [22].
Pa a con igu a las no i icaciones en el disposi i o se u iliza la siguien e unción:
async unc ion egis e Fo PushNo i ica ionsAsync() {
le oken;
cons {s a us: exis ingS a us} = awai
No i ica ions.ge Pe missionsAsync();
le inalS a us = exis ingS a us;
i (exis ingS a us !== 'g an ed') {
cons {s a us} = awai No i ica ions. eques Pe missionsAsync();
inalS a us = s a us;
}
i ( inalS a us !== 'g an ed') {
ale ('E o al ac i a las no i icaciones');
e u n;
}
//P ojec Id ob enido de Expo al c ea nue o p oyec o
cons p ojec Id = Cons an s?.expoCon ig?.ex a?.eas?.p ojec Id ??
Cons an s?.easCon ig?.p ojec Id;
i (!p ojec Id) {
console.log('P ojec ID no ound');
}
oken = (awai No i ica ions.ge ExpoPushTokenAsync({
p ojec Id
ws.on('message', (da a) => {
// Código de la unción
});
Desa ollo F on end
80
80
Figu a 53 - Pan alla de Seguimien o
Al pulsa sob e una ila se ab i á un de alle de ese alo , como se mues a en la Figu a 54, en el que se mues a
in o mación adicional: echa de cambio, cambio 1 minu o y po cen aje de cambio 1 minu o. También se mues a
un icono ep esen a i o de ese de e minado alo , que el adminis ado con igu ó p e iamen e.
Figu a 54 - De alle de un alo en la pan alla de Seguimien o

81
Desa ollo de una aplicación mó il pa a el seguimien o e icien e de mo imien os en bolsa
En la ba a supe io se implemen a ambién un bo ón de in o mación que al pulsa lo despliega una pan alla, la
mos ada a con inuación, indicando qué es ado de in e sión se co esponde con cada colo mos ado.
Figu a 55 - In o mación del código de colo es
En la pa e in e io de la pan alla, haciendo e e encia a la Figu a 53, se mues a un bo ón “Mos a odo”, que
al pulsa lo mues a la o alidad de alo es que la aplicación pone a disposición del usua io pa a seguimien o.
El diseño de es a pan alla, mos ado en la Figu a 56, es simila a la an e io , sin emba go, en es e caso se es a á
mos ando an o los alo es a o i os, como los que no. Si el usua io quisie a añadi o o alo a seguimien o an
solo end ía que pulsa el bo ón con o ma de es ella pa a hace lo.
En es a pan alla, p e isiblemen e, hab á un g an núme o de alo es. Pa a acili a la consul a de es os se incluye
un bo ón pa a il a po acciones o c ip omonedas.
El bo ón “Mos a odo” indica que se es án mos ando odos los alo es sin il a . Al pulsa lo una ez,
únicamen e se mos a án las acciones y al pulsa lo nue amen e, se mos a án únicamen e las c ip omonedas. Si
se uel e a pulsa ol e á al es ado inicial.
Desa ollo F on end
82
82
Figu a 56 - Pan alla de Seguimien o gene al, il ando po acciones o c ip omonedas
Pa a ob ene el p ecio y el es ado de in e sión en iempo eal se es ablece una conexión con el se ido u ilizando
WebSocke s. Se hace uso de la biblio eca socke .io-clien .
4.2.2.2 Blog
A a és de la ba a in e io de na egación, se accede a la pan alla de Blog. En es a se dis inguen es secciones,
Pos s, Videos y A chi os, en e las que es posible cambia median e el selec o que apa ece en las siguien es
igu as.
A di e encia de la ba a de na egación in e io de Reac Na iga ion, es e selec o es á implemen ado de mane a
que ende iza una u o a is a en unción de lo que se seleccione den o de la misma pan alla, sin hace cambios
en la pila de na egación.
Po de ec o se ab e la sección de Pos s, como se mues a en la Figu a 57. El diseño de es a is a es á hecho con
un bloque Fla Lis , que con iene un componen e Tex a modo de í ulo y o o a modo de cue po de la publicación,
y un componen e WebView pa a mos a la imagen, odo ello den o de un TouchableOpaci y como con enedo .
La u ilización de Fla Lis , en luga de o o componen e simila como Sc ollView, esponde a una cues ión de
e iciencia. Fla Lis ende iza los elemen os a medida que se an mos ando po pan alla, mien as que Sc ollView
ende iza odos los elemen os al ab i la pan alla.
83
Desa ollo de una aplicación mó il pa a el seguimien o e icien e de mo imien os en bolsa
Figu a 57 - Blog, sección de Pos s
Al selecciona la sección de Vídeos, mos ada en la siguien e Figu a, ob enemos una is a simila a la an e io
en la que se sup imido el ex o. En es e caso, den o de Fla Lis enemos un componen e Video de la biblio eca
expo-a . Es e componen e ende iza el ideo y o ece con oles pa a ges iona la ep oducción.
Desa ollo F on end
84
84
Figu a 58 - Blog, sección de ídeo
Po úl imo, en la sección de A chi os, mos ada en la Figu a 59, den o del Fla Lis se ienen con enedo es
TouchableOpaci y compues os a su ez po un icono de Ionicons y un componen e Tex indicando el nomb e
del a chi o.
Pa a isualiza el a chi o se despliega una en ana Modal en la que se ende iza el a chi o den o de un
componen e WebView. U iliza WebView es la solución más ex endida pa a la isualización de a chi os en Reac
Na i e, sin emba go, su compo amien o di ie e de iOS a And oid. En iOS el a chi o se isualiza en la p opia
pan alla de la aplicación, mien as que en And oid el a chi o se desca ga en el disposi i o y se pod á isualiza
con el ges o de documen os del p opio disposi i o.
85
Desa ollo de una aplicación mó il pa a el seguimien o e icien e de mo imien os en bolsa
Figu a 59 - Blog, sección de a chi os
Po ello, an es de ab i la pan alla, al pulsa en uno de los elemen os de la lis a se ab e una en ana eme gen e
indicando que se a a desca ga el a chi o. Si el usua io decide con inua se mos a á el a chi o o se desca ga á
dependiendo de la pla a o ma.

Desa ollo F on end
86
86
Figu a 60 - Visualización de a chi os en And oid
Figu a 61 - Visualización de a chi os en iOS
87
Desa ollo de una aplicación mó il pa a el seguimien o e icien e de mo imien os en bolsa
4.2.2.3 Consul as
El cha de consul as es á pensado pa a que el usua io pueda ene un medio de comunicación con los
adminis ado es de la aplicación.
Al ab i la pan alla se desca gan del se ido los mensajes asociados a la con e sación del usua io o denados
empo almen e y se ende izan de a iba hacia abajo, donde los mensajes que es á más a iba son más an iguos.
Pa a mos a los mensajes se uel e a u iliza Fla Lis , haciendo uso de los componen es pe sonalizados que se
menciona on en un pun o an e io . Los globos que con ienen los mensajes se mues an en azul y alineados hacia
la de echa si el mensaje es del usua io y se mues an en g is y alineados hacia la izquie da si el mensaje es del
adminis ado . Pa a esc ibi y en ia mensajes se u iliza ambién un componen e pe sonalizado, que combina
una en ada de ex o y un bo ón de en ío.
Pa a en ia y ecibi los mensajes en iempo eal se es ablece una conexión con el se ido u ilizando
WebSocke s. Se hace uso de la biblio eca socke .io-clien .
Figu a 62 - Cha de consul as
Desa ollo F on end
88
88
4.2.2.4 Pe il
Al ab i la úl ima pan alla, la de Pe il, encon amos el logo ipo de la aplicación seguido del nomb e y apellidos
del usua io y de su alias, como se puede e en la siguien e igu a:
Figu a 63 - Pan alla de Pe il
Además, es a pan alla dispone de bo ones que al pulsa los ab i án o a pan alla pa a modi ica los da os de
usua io, mos ado en la Figu a 64, y la con aseña, mos ada en la Figu a 65.
89
Desa ollo de una aplicación mó il pa a el seguimien o e icien e de mo imien os en bolsa
Figu a 64 - Modi ica da os de usua io
Figu a 65 - Modi ica con aseña
Asimismo, en es a pan alla se implemen a ambién un bo ón pa a ce a sesión. Es e cie e de sesión se hace
modi icando en el es ado global de la sesión el campo au hen ica ed a alse. Al es a es e campo en a alse el
componen e de na egación nos de ol e á a la pan alla de inicio de sesión.
Desa ollo F on end
96
96
4.2.3.3 Consul as
En la pan alla de Consul as, los adminis ado es deben ene la posibilidad de ges iona con e saciones con
múl iples usua ios. Po ello al ab i es a pan alla se mues a una lis a con odos los usua ios que ienen alguna
con e sación abie a, como se mues a en la siguien e igu a. Al selecciona una de las con e saciones, se ab i á
un cha simila al u ilizado pa a los usua ios.
Figu a 76 - Pan alla de consul as pa a adminis ado es
Adicionalmen e, se implemen a la posibilidad de il a los cha s median e un selec o en la pa e supe io de la
pan alla, de mane a simila a como se ges ionaban las dis in as secciones en la pes aña de Blog.
Pa a clasi ica los cha s hay que deja pulsado una de las con e saciones. Es o desplega á una pan alla Modal,
con la opción de ma ca como espondido o pendien e. También se da la opción de bo a la con e sación. En
la Figu a 77 se mues a es a uncionalidad.

97
Desa ollo de una aplicación mó il pa a el seguimien o e icien e de mo imien os en bolsa
Figu a 77 - Clasi icación de con e saciones
4.2.3.4 Con igu ación
En la pan alla de Con igu ación encon amos una se ie de bo ones que pe mi e modi ica algunos pa áme os de
la aplicación.
Figu a 78 - Pan alla de Con igu ación pa a adminis ado es
Desa ollo F on end
98
98
En p ime luga , es á el bo ón de ‘Con igu a e e encias’, que pe mi e modi ica los lími es u ilizados en el
algo i mo de Cálculo del Es ado de In e sión pa a los índices de e e encia, que son NASDAQ y Bi coin.
Figu a 79 - Con igu a e e encias
Debajo es á el bo ón de ‘Con igu ación de Semá o o’, que pe mi e modi ica el colo del indicado de Es ado
de In e sión pa a cada es ado. Al pulsa el bo ón se ab i á una pan alla con o a se ie de bo ones, como se
mues a en la Figu a 80, cada uno con un es ado di e en e. Al pulsa en alguno de los es ados se desplega á un
Modal con un selec o de colo es de la lib e ía eac -na i e-colo -picke . Pa a selecciona el colo es necesa io
desplaza el selec o po la ci cun e encia ex e io . Al pulsa el bo ón “Acep a ” se almacena á el código del
colo en una a iable y se ol e á a la pan alla an e io .
Una ez que se hayan seleccionado los nue os colo es se deben alida los cambios pulsando sob e el bo ón
de ‘Gua da cambios’.
99
Desa ollo de una aplicación mó il pa a el seguimien o e icien e de mo imien os en bolsa
Figu a 80 - Con igu ación de semá o o
El siguien e bo ón de la con igu ación es pa a la ges ión de usua ios. Al pulsa lo se ab i á un lis ado de los
usua ios egis ados en la aplicación, como se puede e en la Figu a 81.
Figu a 81 - Con igu ación de usua ios
Desa ollo F on end
100
100
Al selecciona alguno de los usua ios de la lis a, end emos acceso a nue a pan alla con los da os de dicho
usua io, como se mues a en la Figu a 82. Desde es a pan alla se pueden modi ica es os da os si uese necesa io
o bo a la cuen a asociada a es e usua io.
Figu a 82 - Modi ica pa áme os de usua io
Debajo de la ges ión de usua ios, es á el bo ón pa a ag ega un nue o adminis ado . Al pulsa el bo ón se ab i á
un o mula io simila al de egis o de usua ios que hay en la pan alla inicial, como apa ece en la Figu a 83. Sin
emba go, el usua io añadido desde aquí se á almacenado en la base de da os como adminis ado .
Figu a 83 - C ea nue o pe il de adminis ado
101
Desa ollo de una aplicación mó il pa a el seguimien o e icien e de mo imien os en bolsa
Después, es á el bo ón de Pe il, que ab e una pan alla pa a ges iona los da os del p opio adminis ado . Es a
pan alla es simila a la u ilizada pa a los usua ios, como se mues a en la siguien e igu a.
Figu a 84 - Pe il pa a adminis ado
Po úl imo, es á el bo ón de “Ce a sesión” que iene una uncionalidad simila a la indicada en las is as de
usua ios.

Desa ollo Backend
102
102
5 DESARROLLO BACKEND
n es e capí ulo se abo da á en de alle el desa ollo backend de la aplicación, explicando el
uncionamien o de los di e en es módulos que con o man el se ido , así como de los se icios
ex e nos u ilizados po es os.
Asimismo, se de alla á el p oceso y con igu ación de es os módulos pa a su despliegue u ilizando Docke .
El código del backend se encuen a disponible en el eposi o io h ps://gi hub.com/d dez/ odeose e
5.1 Aspec os gene ales
El backend de la aplicación se compone de es módulos docke izados:
• Se ido Py hon Flask, que con iene las u as.
• Base de Da os Pos g eSQL, pa a pe sis i in o mación.
• Módulo ‘Engine’, que ges iona el cálculo del momen o de in e sión y la no i icación a usua ios.
En la siguien e igu a se mues a una is a gene alizada de los componen es del código backend y cómo es os
se elacionan en e sí:
Figu a 85 - In e elación de los componen es del código backend
E
103
Desa ollo de una aplicación mó il pa a el seguimien o e icien e de mo imien os en bolsa
5.1.1 da abase_api.py
Tan o el Se ido Py hon Flask como el módulo ‘Engine’ deben pode accede a la base de da os y ene la
capacidad de ealiza ope aciones CRUD sob e ella. Pa a ene una mane a uni icada y o denada de hace lo se
ha implemen ado es a API.
La API se conec an a la base de da os y ejecu an sen encias SQL de lec u a (SELECT), inse ción (INSERT),
ac ualización (UPDATE) o bo ado (DELETE) de da os, dependiendo de la unción.
Pa a es a implemen ación se ha u ilizado Psycopg2, que es una lib e ía ampliamen e u ilizada pa a la conexión
de aplicaciones Py hon y bases de da os Pos g eSQL.
5.2 Se ido
El código p incipal del se ido se encuen a en el a chi o se e .py. Es e a chi o es ablece las URI o u as que
de ine como esponde á el se ido a las solici udes HTTP. Además, de ine los pun os donde se conec a án los
Web Socke s. Cómo se indicó en el apa ado de segu idad, las solici udes al se ido es án ci adas y pa a accede
a los ecu sos del se ido se equie e un oken JWT.
En la siguien e igu a se mues a un de alle de los componen es que in e ienen en la ejecución de es e módulo:
Figu a 86 - Componen es que in e ienen du an e la ejecución del se ido
Las URI de inidas en el se ido se pueden di idi en a ios bloques en unción de su inalidad.
Desa ollo Backend
104
104
5.2.1 Inicio de Sesión y Regis o
URI
Mé odo
Desc ipción
/login
POST
Recibe un nomb e de usua io y una con aseña, y comp ueba
que exis e en la base de da os y si es adminis ado .
Si es á egis ado de uel e un oken de acceso JWT y, si
además es adminis ado , de ol e á el pa áme o admin.
/signup
POST
Recibe alias, nomb e, apellido, co eo elec ónico y
con aseña y lo almacena en la base de da os como un nue o
usua io.
Si ya exis ie a un usua io con el mismo alias o co eo
elec ónico, de ol e ía un e o .
/signupAdmin
POST
Recibe alias, nomb e, apellido, co eo elec ónico y
con aseña y lo almacena en la base de da os como un nue o
adminis ado .
/se PushNo i ica ionToken
POST
Almacena en la base de da os el oken pa a las no i icaciones
push.
/ge PushNo i ica ionToken
GET
Recupe a de la base de da os el oken pa a las no i icaciones
push.
Tabla 18 - Ru as pa a Inicio de Sesión y Regis o
5.2.2 Usua ios
URI
Mé odo
Desc ipción
/ge AllUse
GET
De uel e el alias de odos los usua ios.
/ge Use In o
POST
Recibe el alias de un usua io y de uel e la in o mación
asociada a es e alias.
/dele eUse
POST
Recibe el alias de un usua io y elimina la in o mación
asociada a es e alias.
/changePasswo d
POST
Recibe un alias y una con aseña, y modi ica la con aseña
asociada a ese alias.
/changeUse Da a
POST
Recibe un alias, nomb e, apellidos y co eo elec ónico, y
modi ica los da os asociados a ese alias.
Tabla 19 - Ru as de In o mación de Usua io
105
Desa ollo de una aplicación mó il pa a el seguimien o e icien e de mo imien os en bolsa
5.2.3 Acciones y c ip omonedas
URI
Mé odo
Desc ipción
/ge S ocks
GET
De uel e odos los alo es de la base de da os.
/ ge S ocksFa
POST
Recibe un alias y de uel e odos los alo es de la base de
da os, indicando los a o i os pa a ese alias.
/ ge S ocksFa S ocks
POST
Recibe un alias y de uel e odas las acciones de la base de
da os, indicando los a o i os pa a ese alias.
/ ge S ocksFa C yp o
POST
Recibe un alias y de uel e odas las c ip omonedas de la
base de da os, indicando las a o i as pa a ese alias.
/ ge Fa ou i es
POST
Recibe un alias y de uel e odos los alo es a o i os pa a
ese alias.
/se Fa ou i e
POST
Recibe un alias y el símbolo de un alo y almacena es e pa
en la base de da os como a o i o.
/dele eFa ou i e
POST
Recibe un alias y el símbolo de un alo y elimina es e pa
en la base de da os como a o i o.
/ e i ySymbol
POST
Recibe el símbolo de una acción o c ip omoneda y e i ica
que es co ec o.
/newS ock
POST
Añade una nue a acción o c ip omoneda a la base de da os.
/newIconS ock
POST
Recibe un icono de una de e minada acción o c ip omoneda
y la almacena en el sis ema de iche os del se ido
nomb ándola con el símbolo de es e alo .
/ge IconS ock/<name>
GET
Recibe el símbolo de un alo y de uel e la imagen o icono
asociado a es e alo pa a mos a lo en el de alle de la
pan alla de Seguimien o.
/dele eS ock
POST
Recibe el símbolo de un alo y elimina la in o mación
asociada a es e símbolo.
/ge Limi s
POST
Recibe el símbolo de un alo y de uel e los lími es pa a el
cálculo del Es ado de In e sión asociado a ese símbolo.
/se Limi s
POST
Recibe el símbolo de un alo y los lími es pa a el cálculo
del Es ado de In e sión asociado a ese símbolo, y los
almacena en la base de da os.
/ge Limi sRe
POST
Recibe el símbolo de una de las e e encias y de uel e los
lími es pa a el cálculo del Es ado de In e sión asociado a ese
símbolo.
/se Limi sRe
POST
Recibe el símbolo de una de las e e encias y los lími es pa a
el cálculo del Es ado de In e sión asociado a ese símbolo, y
los almacena en la base de da os.
Desa ollo Backend
112
112
5.3.4 Lími es y Lími esRe
La elación Lími es almacena los lími es RSI, S och y P ecio de cada alo en seguimien o pa a e alua es ado
de in e sión.
Limi esRe iene la misma es uc u a que Limi es, pe o almacena únicamen e los alo es u ilizados como
e e encia pa a el algo i mo de Cálculo de In e sión, NASDAQ y Bi coin.
A ibu o
Tipo
Desc ipción
Símbolo
VARCHAR(25)
Ca ac e es que iden i ican a una
acción o c ip omoneda
e_apx_ si_min
NUMERIC
Valo mínimo RSI pa a es ado
En ada Ap oximación
e_apx_ si_max
NUMERIC
Valo máximo RSI pa a es ado
En ada Ap oximación
e_apx_s och_min
NUMERIC
Valo mínimo S och pa a es ado
En ada Ap oximación
e_apx_s och_max
NUMERIC
Valo máximo S och pa a es ado
En ada Ap oximación
e_en _ si_min
NUMERIC
Valo mínimo RSI pa a es ado
En ada
e_en _ si_max
NUMERIC
Valo máximo RSI pa a es ado
En ada
e_en _s och_min
NUMERIC
Valo mínimo S och pa a es ado
En ada
e_en _s och_max
NUMERIC
Valo máximo S och pa a es ado
En ada
s p_apx_s och_min
NUMERIC
Valo mínimo S och pa a es ado
Salida ‘Take P o i ’ Ap oximación
s p_apx_s och_max
NUMERIC
Valo máximo S och pa a es ado
Salida ‘Take P o i ’ Ap oximación
s p_sal_s och_min
NUMERIC
Valo mínimo S och pa a es ado
Salida ‘Take P o i ’
ssl_apx_ alue_min
NUMERIC
P ecio mínimo pa a es ado Salida
‘S op Loss’ Ap oximación
ssl_apx_ alue_max
NUMERIC
P ecio máximo pa a es ado Salida
‘S op Loss’ Ap oximación
Tabla 26 - Tabla Limi es y Limi esRe de la base de da os

113
Desa ollo de una aplicación mó il pa a el seguimien o e icien e de mo imien os en bolsa
5.3.5 Blog
Es a elación almacena in o mación de las publicaciones del Blog. Los a chi os mul imedia son almacenados
en el sis ema de iche os del se ido , si bien, como nomb e pa a iden i ica es os a chi os se u iliza el í ulo de
la publicación.
A ibu o
Tipo
Desc ipción
Tí ulo
VARCHAR(50)
Tí ulo de una publicación
A ículo
TEXT
Tex o de una publicación ipo
‘Pos ’
Fecha
TIMESTAMP
Fecha de publicación pa a o den
empo al
Tipo
VARCHAR(10)
Indica el ipo de publicación:
Pos , Video o A chi o
Tabla 27 - Tabla Blog de la base de da os
5.3.6 Cha
En es a elación se almacenan las con e saciones del cha de consul as.
A ibu o
Tipo
Desc ipción
Alias
VARCHAR
Usua io al que es án asociados
los mensajes de la con e sación
Usua io
VARCHAR
Iden i ica si el mensaje es del
usua io o del adminis ado
Mensaje
TEXT
Tex o que con o ma el mensaje
Fecha
TIMESTAMP
Fecha de en ío del mensaje pa a
o den empo al
Es ado
VARCHAR
Indica el es ado en el que se
encuen a la con e sación:
Pendien e (0) o Respondida (1)
Tabla 28 - Tabla Cha de la base de da os
Desa ollo Backend
114
114
5.3.7 Semá o o
Es a elación almacena el código de los colo es asociados a cada es ado. Po de ec o es a abla se inicializa con
odos los es ados en blanco (# ), si bien el adminis ados puede cambia es os colo es en el apa ado de
con igu ación de semá o o.
A ibu o
Tipo
Desc ipción
neu al
VARCHAR(15)
Código de colo asociado al
es ado Neu al
en _apx
VARCHAR(15)
Código de colo asociado al
es ado En ada Ap oximación
en _en
VARCHAR(15)
Código de colo asociado al
es ado En ada
sal_ p_apx
VARCHAR(15)
Código de colo asociado al
es ado Salida ‘Take P o i ’
Ap oximación
sal_ p_sal
VARCHAR(15)
Código de colo asociado al
es ado Salida ‘Take P o i ’
sal_sl_apx
VARCHAR(15)
Código de colo asociado al
es ado Salida ‘S op Loss’
Ap oximación
sal_sl_sal
VARCHAR(15)
Código de colo asociado al
es ado Salida ‘S op Loss’
Tabla 29 - Tabla Semá o o de la base de da os
5.4 Módulo ‘Engine’
El módulo ‘Engine’ se enca ga de ejecu a el algo i mo de Es ado de In e sión, ealizando pe iciones a la API
de Twel eDa a pa a ob ene in o mación del me cado bu sá il en iempo eal. Además, no i ica a los usua ios
sob e los cambios de es ado de los alo es, ac ualizando el código de colo es en el panel de seguimien o de la
aplicación, así como en iando no i icaciones push, median e Expo Push No i ica ion Se ice.
En la siguien e igu a se mues an los componen es que in e ienen du an e la ejecución del módulo ‘Engine’:
115
Desa ollo de una aplicación mó il pa a el seguimien o e icien e de mo imien os en bolsa
Figu a 88 - Componen es que in e ienen du an e la ejecución del módulo 'Engine'
5.4.1 engine.py
El código p incipal de es e módulo se encuen a en el a chi o engine.py.
En p ime luga , ealiza una consul a a la API Twel eDa a pa a ob ene los alo es RSI y S och 1 minu o y 5
minu os de los alo es de e e encia NASDAQ y Bi coin. Es os da os se pasan a la unción checkRe Limi s y
comp ueba que es os alo es se encuen an den o de los lími es de inidos en la base de da os.
Es a unción de uel e ‘ENT’ si es á en es ado de En ada, ‘ENTAPX’ si es á en es ado de En ada Ap oximación
o ‘0’ en o o caso.
A con inuación, se ob ienen odos los alo es almacenados en la base de da os y po cada alo se ealiza una
pe ición a la API de Twel eDa a pa a ob ene los alo es RSI y S och 1 minu o y 5 minu os, así como el p ecio,
la echa de cambio, el cambio y el po cen aje de cambio. Es os da os se pasan a la unción checkLimi s y
comp ueba que es os alo es se encuen an den o de los lími es de inidos en la base de da os.
Es a unción de uel e:
• ‘0’, si es á en es ado Neu o.
• ‘ENTAPX’, si es á en es ado de En ada Ap oximación.
• ‘ENT’, si es á en es ado de En ada.
• ‘STPAPX’, si es á en es ado de Salida ‘Take P o i ’ Ap oximación
• ‘STP’, si es á en es ado de Salida ‘Take P o i ’
Desa ollo Backend
116
116
• ‘SSLAPX’, si es á en es ado de Salida ‘S op Loss’ Ap oximación
• ‘SSL’, si es á en es ado de Salida ‘S op Loss’
• ‘00’, si es á en iempo de espe a pa a nue o comienzo.
Los alo es mencionados son almacenados en la base de da os al p oduci se un cambio de es ado y es es e alo
almacenado el que se en ía a la in e az pe iódicamen e pa a man ene el es ado ac ualizado. Mien as no se
p oduzca o o cambio de es ado se es a á en iando el mismo, que se mos a á en el panel de seguimien o de la
aplicación median e un código de colo es.
Además, cuando se p oduce un cambio de es ado, la unción de uel e el nue o es ado, que se u iliza pa a la
no i icación al usua io median e no i icaciones push.
Es os esul ados se p esen an en o ma o JSON median e el uso de las unciones jsonMake y jsonMake F on ,
Los esul ados ob enidos se en ían po un lado a la in e az, median e Web Socke s, y po o o a la unción que
ges iona las no i icaciones push.
El esul ado de es as unciones se a almacenando en un dicciona io en el que las cla es son los símbolos de
cada acción o c ip omoneda.
de jsonMake (p ice, s a e):
esponse = {
"p ice": p ice,
"s a e": s a e
}
e u n esponse
de jsonMake F on (p ice, s a e, da e ime, change, pe cen _change):
esponse = {
"p ice": p ice,
"s a e": s a e,
"da e ime": da e ime,
"change": change,
"pe cen _change": pe cen _change,
}
e u n esponse
117
Desa ollo de una aplicación mó il pa a el seguimien o e icien e de mo imien os en bolsa
5.4.2 no i ica ionManage .py
Es e a chi o con iene una unción homónima que ecibe como pa áme o el dicciona io an e io men e
mencionado. Es e dicciona io solo con iene los alo es que hayan cambiado de es ado.
Se comp ueban qué usua ios es án susc i os a los alo es que con iene el dicciona io y se le en ía una
no i icación haciendo uso de la unción send_push_message, de la lib e ía exponen _se e _sdk. La no i icación
iene como í ulo el es ado de in e sión y como cue po el símbolo de la acción.
La unción send_push_message ecibe el oken que iden i ica el disposi i o del usua io y el mensaje a en ia .
También pe mi e con igu a el sonido de la no i icación, que se ha indicado el que es é po de ec o en el sis ema.
Es a unción en ía es os pa áme os al Expo Push No i ica ion Se e que ges iona el en ío de la no i icación,
cómo se indicó en el apa ado 2.2.4 de es e documen o.
5.5 Docke
Pa a el despliegue de es os módulos del backend se ha u ilizado Docke , sepa ando cada uno en un con enedo
independien e. Es o pe mi e mayo modula idad y acili a el man enimien o del sis ema.
Cada componen e se ejecu a de mane a aislada den o de su con enedo . La comunicación en e ellos se ealiza
a a és de la ed in e na de Docke , con igu ada en el a chi o de con igu ación docke -compose.yml. El
con enido de es e a chi o se puede consul a en el Anexo D.
5.5.1 Docke ile
Un Docke ile es un a chi o de ex o que con iene ins ucciones pa a cons ui la imagen de un con enedo [24].
En el Anexo D de es e documen o se encuen an los Docke iles u ilizados.
En el caso del se ido y el módulo ‘Engine’ se u iliza como base la imagen py hon:3.9-slim, que p opo ciona
un en o no inicial con Py hon p eins alado. Pa a la base de da os se u iliza la imagen pos g esql:17.0-alpine3.20,
una e sión de Pos g eSQL basada en Alpine Linux.
Una ez de inida la imagen base, se copian los a chi os del p oyec o a cada con enedo , se ins alan las
dependencias necesa ias y se indica el comando que se ejecu a á al inicia el con enedo , con la o den CMD.
En el caso del se ido , el comando u ilizando inicia el se ido Flask u ilizando Gunico n como se ido WSGI.
También se con igu a el wo ke e en le pa a habili a sopo e de WebSocke s. Además, el comando indica el
a chi o de ce i icado SSL y su cla e p i ada u ilizado pa a habili a HTTPS.
Pa a la base de da os, se incluye en el con enedo el a chi o con las ó denes SQL indicado en el Anexo C, que
con iene las ó denes pa a c ea las ablas eque idas po la aplicación. Es e a chi o se ejecu a au omá icamen e
la p ime a ez que se inicia el con enedo , con igu ando la base de da os.
5.5.2 Docke -compose
El a chi o docke -compose.yml eúne la con igu ación necesa ia pa a inicia los con enedo es, asignando a cada
uno un nomb e e indicando la imagen asociada.

Desa ollo Backend
118
118
En el caso del se ido es impo an e des aca que se mapea el pue o 5000 del con enedo , que es donde es á el
se ido , al pue o 443 del hos que es a dónde i án di igidas las pe iciones ex e nas.
También se con igu an los olúmenes asociados a la base de da os y al gua dado de a chi os mul imedia del
se ido . El uso de olúmenes pe mi e pe sis i la in o mación incluso si el con enedo se bo a o se de iene.
5.5.3 Red
La comunicación en e los di e en es módulos se hace a a és de la ed de Docke [25], acili ando la que los
se icios se conec en en e sí u ilizando nomb es de se icios en luga de di ecciones IP.
Los nomb es de los se icios de inidos en el a chi o docke -compose, se con ie en en el nomb e de los hos s
accesibles den o de la ed. Docke incluye un sis ema DNS que esuel e los nomb es de los se icios a sus
di ecciones IP.
En cuan o a la con igu ación de pue os, cada con enedo puede expone los pue os necesa ios pa a ene
isibilidad den o de la ed in e na de Docke . En el caso del se ido , se expond ía el pue o 5000, mien as que
la base de da os expond ía el pue o 5432.
119
Desa ollo de una aplicación mó il pa a el seguimien o e icien e de mo imien os en bolsa
6 PRUEBAS DE FUNCIONAMIENTO
i bien g an pa e de las uncionalidades de la aplicación se han mos ado en el apa ado de ‘Desa ollo
F on end’, en es e pun o se ha á un epaso de las p incipales uncionalidades pa a el usua io y
adminis ado , mos ando la disponibilidad en And oid y iOS.
6.1 Seguimien o
6.1.1 Panel de seguimien o
Figu a 89 - Panel de seguimien o en And oid
Figu a 90 - Panel de seguimien o de iOS
S
P uebas de Funcionamien o
120
120
6.1.2 Con igu ación de e e encias
Figu a 91 - Con igu ación de e e encias en And oid
Figu a 92 - Con igu ación de e e encias en iOS
6.1.3 No i icación de cambio de Es ado de In e sión
Figu a 93 - No i icaciones en And oid
Figu a 94 - No i icaciones en iOS
121
Desa ollo de una aplicación mó il pa a el seguimien o e icien e de mo imien os en bolsa
6.2 Blog
6.2.1 Pos s
Figu a 95 - Pos s en And oid
Figu a 96 - Pos s en iOS
6.2.2 Videos
Figu a 97 - Vídeos en And oid
Figu a 98 - Vídeos en iOS
Anexo A: Ins alación y Pues a en Ma cha
128
128
ANEXO A: INSTALACIÓN Y PUESTA EN MARCHA
En es e pun o se explican los pasos pa a la ins alación y p uebas de la aplicación, an o en disposi i os And oid
como iOS. También se explica án los pasos pa a el despliegue del se ido .
Reposi o ios
El código de es e p oyec o se encuen a disponible en los siguien es eposi o ios:
• F on end: h ps://gi hub.com/d dez/ odeo
• Backend: h ps://gi hub.com/d dez/ odeose e
iOS
Du an e el desa ollo del p oyec o, pa a la ins alación y p uebas de la aplicación, se ha es ado u ilizando la
aplicación Expo Go en un disposi i o Apple iPhone con sis ema ope a i o iOS 17.
El p ime paso pa a p oba la aplicación es ab i el di ec o io donde es á el código de la aplicación y a anca el
se ido de desa ollo de Expo con el comando npm s a . Es o mues a la siguien e salida:
Figu a 111 - Ejecución de la aplicación con npm s a

129
Desa ollo de una aplicación mó il pa a el seguimien o e icien e de mo imien os en bolsa
Escaneando el código QR con el disposi i o, se ab i á la aplicación Expo Go, que p e iamen e ha debido se
ins alada, mos ando la aplicación desa ollada en el p oyec o y pudiendo accede a oda su uncionalidad.
Figu a 112 - Menú de Expo Go
Figu a 113 - Pan alla de inicio de la aplicación en
iOS
Expo Go puede eque i adicionalmen e, pa a su u ilización en disposi i os ísicos, ene ac ualizada la úl ima
e sión del SDK en el p oyec o. Si la e sión del SDK del p oyec o es más an igua, pa a u iliza la aplicación
con Expo Go se á necesa io u iliza un emulado de disposi i o iOS y la e sión de Expo Go compa ible con el
SDK.
And oid
Pa a las p uebas se ha es ado u ilizando el Emulado de And oid con un disposi i o Pixel 5, haciendo uso
igualmen e de la aplicación Expo Go. Si bien, ambién se ha gene ado un APK de la aplicación pa a pode
compa i la.
Pa a gene a el APK se hace uso de EAS Build, un se icio de Expo pa a gene a bina ios de los p oyec os Expo
y Reac Na i e, pe mi iendo en ia la aplicación a Google Play o a la App S o e, o como es el caso de es e
p oyec o, ins ala la aplicación di ec amen e en un disposi i o ísico o emulado And oid.
Pa a ello, en el di ec o io del p oyec o hay que ins ala la úl ima e sión de EAS CLI con el comando npm ins all
-g eas-cli. Una ez hecho es o, con el comando eas login hay que inicia sesión en la cuen a de Expo, que ha
debido se p e iamen e c eada.
Pa a con igu a el p oyec o se ejecu a el comando eas build:con igu e. Es o c ea el iche o eas.json que debe
indica que la compilación c ea á un apk, den o de build > p e iew > And oid > buildType.
Anexo A: Ins alación y Pues a en Ma cha
130
130
{
"cli": {
" e sion": ">= 12.6.2",
"appVe sionSou ce": " emo e"
},
"build": {
"de elopmen ": {
"de elopmen Clien ": ue,
"dis ibu ion": "in e nal"
},
"p e iew": {
"and oid": {
"buildType": "apk"
}
},
"p oduc ion": {}
},
"submi ": {
"p oduc ion": {}
}
}
Una ez con igu ado el an e io a chi o, se debe ejecu a el comando eas build -p and oid --p o ile p e iew, que
inicia á la compilación en el se ido de Expo.
Cuando la compilación inaliza, el a chi o .APK es á disponible pa a su desca ga e ins alación. El a chi o es á
disponible desde un enlace acili ado al e mina la compilación o bien desde la web de Expo au en icándose
con el usua io.
Se ido
Du an e el desa ollo del p oyec o las p uebas del se ido se han hecho en un en o no de desa ollo en local.
Una ez inalizado el desa ollo se ha desplegado u ilizando Docke en un equipo del Labo a o io de Telemá ica,
con un sis ema ope a i o Ubun u 18.04.
Pa a la compilación del se ido se u ilizan el sc ip make.sh, cuyo con enido es el mos ado a con inuación.
#! /bin/bash
m - ../expo s
mkdi -p ../expo s/
mkdi -p ../expo s/docke Images
docke build - " odeo_se e " - "Docke /Se e /Docke ile" ../
docke build - " odeo_engine" - "Docke /Engine/Docke ile" ../
docke sa e -o "../expo s/docke Images/se e " " odeo_se e "
docke sa e -o "../expo s/docke Images/engine" " odeo_engine"
131
Desa ollo de una aplicación mó il pa a el seguimien o e icien e de mo imien os en bolsa
cp - ../code/Da abase ../expo s
cp ins all.sh ../expo s/
cp docke -compose.yml ../expo s/
mkdi -p ../ins all/
a -c z ../ins all/ odeose e . a .gz ../expo s/*
Es e sc ip c ea las imágenes u ilizando los Docke ile y las gua da en la ca pe a expo s, donde además se
gua dan odos los a chi os necesa ios pa a la ins alación.
Den o de la ca pe a expo s se encuen a el sc ip ins all.sh, que ca ga las imágenes e inicia los se icios con
docke compose up -d. Tan solo hay que ejecu a es e sc ip pa a pone en ma cha el se ido .
#! /bin/bash
docke image load -i docke Images/engine
docke image load -i docke Images/se e
docke compose up -d
Pa a pode desplega el se ido es necesa io ene ins alado Docke en el equipo, an o en el que se ealice la
compilación como en el que se ealice el despliegue. Pa a ello se sigue los pasos indicados en la web de Docke .
Anexo B: API Twel eDa a
132
132
ANEXO B: API TWELVEDATA
El esul ado de las pe iciones ealizadas a la API Twel eDa a, siguiendo la acción de ejemplo ‘AAPL, Apple’
son:
- Indicado RSI en in e alo de 1 minu o y 5 minu os:
{
"me a":{
"symbol": "AAPL",
"in e al": "1min",
"cu ency": "USD",
"exchange_ imezone": "Ame ica/New_Yo k",
"exchange": "NYSE",
"mic_code": "XNYS",
" ype": "Common S ock",
"indica o ": {
"name": "RSI - Rela i e S eng h Index",
"se ies_ ype": "close",
" ime_pe iod": 14
}
},
" alues":[
{
"da e ime":"2019-08-09 15:59:00",
" si":"16.57887"
}
],
"s a us":"ok"
}
133
Desa ollo de una aplicación mó il pa a el seguimien o e icien e de mo imien os en bolsa
- Indicado STOCH en in e alo de 1 minu o y 5 minu os:
- P ecio en iempo eal:
{
"me a":{
"symbol": "AAPL",
"in e al": "1min",
"cu ency": "USD",
"exchange_ imezone": "Ame ica/New_Yo k",
"exchange": "NYSE",
"mic_code": "XNYS",
" ype": "Common S ock",
"indica o ": {
"name": "STOCH - S ochas ic Oscilla o ",
" as _k_pe iod": 14,
"slow_d_pe iod": 3,
"slow_dma_ ype": "SMA",
"slow_k_pe iod": 1,
"slow_kma_ ype": "SMA"
}
},
" alues":[
{
"da e ime":"2019-08-09 15:59:00",
"slow_k":"11.35168",
"slow_d":"7.5293"
}
],
"s a us":"ok"
}
{
"p ice": "200.99001"
}

Anexo B: API Twel eDa a
134
134
- In o mación gene al:
{
"symbol": "AAPL",
"name": "Apple Inc",
"exchange": "NASDAQ",
"mic_code": "XNAS",
"cu ency": "USD",
"da e ime": "2021-09-16",
" imes amp": 1631772000,
"open": "148.44000",
"high": "148.96840",
"low": "147.22099",
"close": "148.85001",
" olume": "67903927",
"p e ious_close": "149.09000",
"change": "-0.23999",
"pe cen _change": "-0.16097",
"a e age_ olume": "83571571",
" olling_1d_change": "123.123",
" olling_7d_change": "123.123",
" olling_pe iod_change": "123.123"
"is_ma ke _open": alse,
" i y_ wo_week": {
"low": "103.10000",
"high": "157.25999",
"low_change": "45.75001",
"high_change": "-8.40999",
"low_change_pe cen ": "44.37440",
"high_change_pe cen ": "-5.34782",
" ange": "103.099998 - 157.259995"
},
"ex ended_change": "0.09",
"ex ended_pe cen _change": "0.05",
"ex ended_p ice": "125.22",
"ex ended_ imes amp": 1649845281
}
135
Desa ollo de una aplicación mó il pa a el seguimien o e icien e de mo imien os en bolsa
ANEXO C: INICIALIZACIÓN DE BASE DE DATOS
CREATE TABLE USUARIOS (
Alias VARCHAR(20) NOT NULL UNIQUE,
Con asenia VARCHAR(20) NOT NULL,
Nomb e VARCHAR(20) NOT NULL,
Apellido VARCHAR(20) NOT NULL,
Email VARCHAR(25) NOT NULL UNIQUE,
Admin BOOLEAN DEFAULT FALSE,
No i ica ionToken TEXT,
PRIMARY KEY(Alias)
);
CREATE TABLE VALORES (
Simbolo VARCHAR(25) NOT NULL,
Nomb e VARCHAR(25) NOT NULL,
AC VARCHAR(5) NOT NULL,
Es ado VARCHAR(10) NOT NULL DEFAULT '0',
Valo En ada NUMERIC NOT NULL DEFAULT 0,
TiempoSalida NUMERIC NOT NULL DEFAULT 0,
PRIMARY KEY(Simbolo)
);
CREATE TABLE VALORESREF (
Simbolo VARCHAR(25) NOT NULL,
Nomb e VARCHAR(25) NOT NULL,
AC VARCHAR(5) NOT NULL,
Es ado VARCHAR(10) NOT NULL DEFAULT '0',
Valo En ada NUMERIC NOT NULL DEFAULT 0,
TiempoSalida NUMERIC NOT NULL DEFAULT 0,
PRIMARY KEY(Simbolo)
);
CREATE TABLE FAVORITOS (
Simbolo VARCHAR(25) NOT NULL,
Alias VARCHAR(20) NOT NULL
);
Anexo C: Inicialización de Base de Da os
136
136
CREATE TABLE LIMITES (
Simbolo VARCHAR(25) NOT NULL,
e_apx_ si_min NUMERIC NOT NULL DEFAULT 0,
e_apx_ si_max NUMERIC NOT NULL DEFAULT 0,
e_apx_s och_min NUMERIC NOT NULL DEFAULT 0,
e_apx_s och_max NUMERIC NOT NULL DEFAULT 0,
e_en _ si_min NUMERIC NOT NULL DEFAULT 0,
e_en _ si_max NUMERIC NOT NULL DEFAULT 0,
e_en _s och_min NUMERIC NOT NULL DEFAULT 0,
e_en _s och_max NUMERIC NOT NULL DEFAULT 0,
s p_apx_s och_min NUMERIC NOT NULL DEFAULT 0,
s p_apx_s och_max NUMERIC NOT NULL DEFAULT 0,
s p_sal_s och_min NUMERIC NOT NULL DEFAULT 0,
ssl_apx_ alue_min NUMERIC NOT NULL DEFAULT 0,
ssl_apx_ alue_max NUMERIC NOT NULL DEFAULT 0,
ssl_sal_ alue_min NUMERIC NOT NULL DEFAULT 0,
PRIMARY KEY(Simbolo)
);
CREATE TABLE LIMITESREF (
Simbolo VARCHAR(25) NOT NULL,
e_apx_ si_min NUMERIC NOT NULL DEFAULT 0,
e_apx_ si_max NUMERIC NOT NULL DEFAULT 0,
e_apx_s och_min NUMERIC NOT NULL DEFAULT 0,
e_apx_s och_max NUMERIC NOT NULL DEFAULT 0,
e_en _ si_min NUMERIC NOT NULL DEFAULT 0,
e_en _ si_max NUMERIC NOT NULL DEFAULT 0,
e_en _s och_min NUMERIC NOT NULL DEFAULT 0,
e_en _s och_max NUMERIC NOT NULL DEFAULT 0,
s p_apx_s och_min NUMERIC NOT NULL DEFAULT 0,
s p_apx_s och_max NUMERIC NOT NULL DEFAULT 0,
s p_sal_s och_min NUMERIC NOT NULL DEFAULT 0,
ssl_apx_ alue_min NUMERIC NOT NULL DEFAULT 0,
ssl_apx_ alue_max NUMERIC NOT NULL DEFAULT 0,
ssl_sal_ alue_min NUMERIC NOT NULL DEFAULT 0,
PRIMARY KEY(Simbolo)
);
CREATE TABLE BLOG (
Ti ulo VARCHAR(50) NOT NULL,
A iculo TEXT,
Fecha TIMESTAMP,
Tipo VARCHAR(10) NOT NULL DEFAULT 'pos ',
PRIMARY KEY(Ti ulo)
);
137
Desa ollo de una aplicación mó il pa a el seguimien o e icien e de mo imien os en bolsa
CREATE TABLE CHAT (
Alias VARCHAR(15) NOT NULL,
Usua io VARCHAR(10) NOT NULL,
Mensaje TEXT NOT NULL,
Fecha TIMESTAMP,
Es ado VARCHAR(10) NOT NULL DEFAULT '0'
);
CREATE TABLE SEMAFORO (
neu al VARCHAR(15) NOT NULL,
en _apx VARCHAR(15) NOT NULL,
en _en VARCHAR(15) NOT NULL,
sal_ p_apx VARCHAR(15) NOT NULL,
sal_ p_sal VARCHAR(15) NOT NULL,
sal_sl_apx VARCHAR(15) NOT NULL,
sal_sl_sal VARCHAR(15) NOT NULL
);
INSERT INTO SEMAFORO (neu al, en _apx, en _en , sal_ p_apx, sal_ p_sal,
sal_sl_apx, sal_sl_sal)
VALUES ('# ', '# ', '# ', '# ', '# ', '# ', '# ');
INSERT INTO USUARIOS (Alias, Con asenia, Nomb e, Apellido, Email, Admin) VALUES
('admin', 'admin', 'admin', 'admin', '[email protected]', TRUE);
INSERT INTO VALORESREF (Simbolo, Nomb e, Es ado, AC) VALUES ('NDAQ', 'NASDAQ',
DEFAULT, 'A');
INSERT INTO VALORESREF (Simbolo, Nomb e, Es ado, AC) VALUES ('BTC', 'Bi coin',
DEFAULT, 'C');
INSERT INTO LIMITESREF (Simbolo) VALUES ('NDAQ');
INSERT INTO LIMITESREF (Simbolo) VALUES ('BTC');