ITIOX | Desarrollo de aplicaciones móviles: Iniciar un servicio Android después del Boot
Caching technics: http://www.yiiframework.com/doc/guide/1.1/en/topics.performance
23.9.13
10.9.13
Soccer Center
Descripción básica
Soccer Center es una aplicación para el sistema operativo Android (a partir de la versión 2.2) que permite el seguimiento de los diferentes torneos de fútbol de todo el planeta.
En función del torneo se dispone de mayor o menor nivel de detalle en la información. Pasamos desde los eventos menos conocidos de los que se dispone de goles, tarjetas rojas y una comparativa 'head to head', hasta los más populares en los que se llega a nivel de evaluación estadística de cada jugador en sus diferentes facetas defensiva, ofensiva y asociativa durante el encuentro.
Actualmente cubre en profundidad la Bundesliga alemana, la Serie A italiana, la Serie A brasileña, la League 1 de Francia, Eredivise holandesa, la Premier League inglesa, la Premier League rusa, la Liga española, la segunda división inglesa y la MLS de norteamérica. Además de los principales torneos internacionales: UEFA Champions League, UEFA Europa League, Copa Confederaciones, Mundial, Eurocopa, Copa de Africa, etc... Así como partidos destacados, encuentros oficiales o amistosos entre las selecciones nacionales más importantes, clásicos, finales, etc...
Y por otro lado el resto de torneos del mundo con diferentes niveles de detalle (la primera división argentina, la liga turca, la griega, la noruega, la ucraniana, la japonesa, etc... estarían en el siguiente escalón).
La aplicación parte de cuatro secciones principales:
Características destacadas
Servidor principal
Como base para la aplicación se ha configurado un servidor donde funcionan los principales procesos de sincronización de datos y donde reside la API que interacciona con la aplicación.
Esquema
En el esquema actual se han configurado varios servidores proxy auxiliares que conectan de manera permanente con el servidor principal mediante SSH, estableciendo túneles seguros en ambos sentidos.
Entre ellos, los servidores proxy con IP dinámica se encargan de recabar la información más pesada, menos frecuente o más prescindible, actualizándola en la base de datos principal.
El servidor central mediante una API escrita en php envía información en formato JSON según solicita la aplicación del móvil o tablet.
Conclusión
El mayor logro técnico de Soccer Center es el establecimiento automatizado de un vínculo directo y la sincronización de los datos de varias importantes webs (en cuanto a estadísticas de fútbol mundial se refiere).
Este proyecto supone mi primera experiencia de programación en Android. Actualmente, tras 5 meses meses publicada, dispone de cerca de 1250 usuarios activos y 5300 descargas.
Soccer Center es una aplicación para el sistema operativo Android (a partir de la versión 2.2) que permite el seguimiento de los diferentes torneos de fútbol de todo el planeta.
En función del torneo se dispone de mayor o menor nivel de detalle en la información. Pasamos desde los eventos menos conocidos de los que se dispone de goles, tarjetas rojas y una comparativa 'head to head', hasta los más populares en los que se llega a nivel de evaluación estadística de cada jugador en sus diferentes facetas defensiva, ofensiva y asociativa durante el encuentro.
Actualmente cubre en profundidad la Bundesliga alemana, la Serie A italiana, la Serie A brasileña, la League 1 de Francia, Eredivise holandesa, la Premier League inglesa, la Premier League rusa, la Liga española, la segunda división inglesa y la MLS de norteamérica. Además de los principales torneos internacionales: UEFA Champions League, UEFA Europa League, Copa Confederaciones, Mundial, Eurocopa, Copa de Africa, etc... Así como partidos destacados, encuentros oficiales o amistosos entre las selecciones nacionales más importantes, clásicos, finales, etc...
Y por otro lado el resto de torneos del mundo con diferentes niveles de detalle (la primera división argentina, la liga turca, la griega, la noruega, la ucraniana, la japonesa, etc... estarían en el siguiente escalón).
La aplicación parte de cuatro secciones principales:
- Directo: Vista en vivo del panorama futbolístico de los torneos visibles del usuario, con un listado de los partidos, su estado y sus resultados.
- Torneos: Consulta de los torneos accesibles desde la aplicación.
- Seguimiento: Enlace rápido a los jugadores/equipos/torneos seleccionados por el usuario y la opción de búsqueda de jugadores en la base de datos.
- Noticias: Sección de noticias de diferentes fuentes internacionales.
Características destacadas
- Información de partidos y clasificaciones actualizada en vivo.
- Calendarios completos mostrando fechas en hora local.
- Detección automática del torneo regular local.
- Alineaciones con detalle de eventos incluidos y evaluación del jugador en vivo.
- Eventos con información adicional.
- Head to head en cada partido con clasificación en vivo y pronóstico medio según hasta 16 casas de apuestas.
- Sumario en vivo con evaluación del equipo, posesión, precisión de pase, penaltis, faltas, corners, ocasiones de gol, tiros al palo, balones recuperados, etc...
- Detalle pormenorizado por jugador al final del encuentro.
- Rankings de goleadores, sanciones, faltas recibidas, regateadores, valor estadístico, pases, peso, altura...
- Acceso directo a los de datos de más de 20.000 futbolistas.
- Enlaces rápidos a torneos, equipos y jugadores.
Servidor principal
Como base para la aplicación se ha configurado un servidor donde funcionan los principales procesos de sincronización de datos y donde reside la API que interacciona con la aplicación.
- Configuración de un VPS sin DNS via SSH corriendo Ubuntu 12.04 Server.
- Servidores instalados y configurados: Apache 2.2, MySQL 5.5 y Squid 3 funcionando como proxy transparente y gestor de la caché para quitar carga al servidor web.
- Generación de scripts en bash y php para la sincronización de la información principal de las diferentes fuentes con la base de datos, y cronificación.
- Generación de scripts en bash y php para el cálculo de informes adicionales, y revisión de los datos sincronizados y otros procesos periódicos.
- Implementación de un sistema propio para el control de múltiples servidores proxy, que permite la monitorización remota, el balanceo en caso de desconexión, la gestión de los intentos de reconexión y la notificación de incidencias.
- Backoffice (PHP + Ajax) para la administración (cuya única tarea es la activación/desactivación manual de torneos).
- Sistema de backup de datos y fuentes.
Esquema
En el esquema actual se han configurado varios servidores proxy auxiliares que conectan de manera permanente con el servidor principal mediante SSH, estableciendo túneles seguros en ambos sentidos.
Entre ellos, los servidores proxy con IP dinámica se encargan de recabar la información más pesada, menos frecuente o más prescindible, actualizándola en la base de datos principal.
El servidor central mediante una API escrita en php envía información en formato JSON según solicita la aplicación del móvil o tablet.
Conclusión
El mayor logro técnico de Soccer Center es el establecimiento automatizado de un vínculo directo y la sincronización de los datos de varias importantes webs (en cuanto a estadísticas de fútbol mundial se refiere).
Este proyecto supone mi primera experiencia de programación en Android. Actualmente, tras 5 meses meses publicada, dispone de cerca de 1250 usuarios activos y 5300 descargas.
Subscriure's a:
Missatges (Atom)
-
►
2024
(1)
- ► d’octubre 2024 (1)
-
►
2023
(4)
- ► de juliol 2023 (1)
- ► de juny 2023 (1)
- ► d’abril 2023 (1)
- ► de gener 2023 (1)
-
►
2022
(1)
- ► d’abril 2022 (1)
-
►
2021
(12)
- ► de desembre 2021 (1)
- ► de novembre 2021 (1)
- ► d’octubre 2021 (2)
- ► de juliol 2021 (1)
- ► de juny 2021 (2)
- ► d’abril 2021 (1)
- ► de març 2021 (1)
- ► de febrer 2021 (1)
- ► de gener 2021 (2)
-
►
2020
(6)
- ► de desembre 2020 (2)
- ► de novembre 2020 (1)
- ► de juny 2020 (1)
- ► de maig 2020 (1)
- ► de març 2020 (1)
-
►
2019
(8)
- ► de desembre 2019 (1)
- ► de novembre 2019 (2)
- ► d’octubre 2019 (2)
- ► de setembre 2019 (1)
- ► de febrer 2019 (1)
- ► de gener 2019 (1)
-
►
2018
(8)
- ► de desembre 2018 (2)
- ► de setembre 2018 (3)
- ► d’abril 2018 (1)
- ► de gener 2018 (2)
-
►
2017
(18)
- ► de desembre 2017 (3)
- ► de novembre 2017 (5)
- ► de setembre 2017 (3)
- ► d’agost 2017 (2)
- ► d’abril 2017 (1)
- ► de març 2017 (2)
- ► de febrer 2017 (2)
-
►
2016
(16)
- ► d’octubre 2016 (2)
- ► de setembre 2016 (1)
- ► de juliol 2016 (1)
- ► de maig 2016 (4)
- ► d’abril 2016 (2)
- ► de març 2016 (3)
- ► de febrer 2016 (2)
- ► de gener 2016 (1)
-
►
2015
(9)
- ► de novembre 2015 (2)
- ► de setembre 2015 (1)
- ► de juny 2015 (5)
- ► de maig 2015 (1)
-
►
2014
(8)
- ► de desembre 2014 (1)
- ► de novembre 2014 (2)
- ► d’octubre 2014 (1)
- ► d’agost 2014 (1)
- ► de maig 2014 (1)
- ► de març 2014 (2)
-
▼
2013
(5)
- ► de febrer 2013 (1)
- ► de gener 2013 (2)
-
►
2012
(22)
- ► de desembre 2012 (1)
- ► d’agost 2012 (1)
- ► de juny 2012 (2)
- ► de maig 2012 (3)
- ► d’abril 2012 (2)
- ► de març 2012 (5)
- ► de febrer 2012 (2)
- ► de gener 2012 (6)
-
►
2011
(46)
- ► de desembre 2011 (1)
- ► de novembre 2011 (5)
- ► d’octubre 2011 (5)
- ► de setembre 2011 (2)
- ► d’agost 2011 (17)
- ► de juliol 2011 (1)
- ► de juny 2011 (7)
- ► de maig 2011 (6)
- ► d’abril 2011 (1)
- ► de març 2011 (1)
-
►
2010
(11)
- ► de juliol 2010 (2)
- ► de juny 2010 (9)