Estadísticas de lectura en el perfil, y un perfil que el usuario puede ordenar #18
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "HBB/rocinante_android:feat/profile-stats"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Esta rama convierte el perfil en un resumen de la propia lectura. Nada de esto añade
peticiones a la instancia: todo se calcula con lo que la aplicación ya tiene en caché
—la estantería «Leídos» y los datos enriquecidos— así que abrir el perfil cuesta lo mismo
que antes. Me pareció importante teniendo en cuenta Anubis.
Qué se ve
páginas acumuladas, con un gráfico de barras de libros por año dibujado con Canvas (sin
añadir ninguna dependencia de gráficos).
hoy, y cuántos días se tarda en leer un libro, este año y en total.
formatos, en barras horizontales.
arrastrarlos para cambiar su orden. La cabecera —avatar, nombre y seguidores— queda
fuera a propósito: es la identidad del perfil.
Decisiones que conviene conocer al revisar
Las cifras dicen sobre qué están calculadas. En una estantería real, BookWyrm no trae
todos los datos: de mis 37 libros leídos, solo 24 traen páginas y únicamente 5 tienen fecha
de inicio y de fin. Cada tarjeta indica cuántos libros quedan fuera en lugar de presentar
un total que parecería completo y no lo sería.
Los autores llegan en un solo texto separado por comas, y esa coma es ambigua. En datos
reales conviven «Linus Torvalds, David Diamond» (dos personas) y «Henry, Ford» (una sola,
con el apellido primero). Solo se separa cuando todas las partes parecen un nombre completo;
agrupar de más nunca inventa a alguien que no existe, separar de más sí.
Los idiomas se agrupan por bandera y no por su texto, porque una misma estantería mezcla
«Danish» y «Dansk» y por texto se contarían como dos idiomas distintos.
El formato ya venía en el .json de la estantería (
physicalFormat, en el mismo Editionque las páginas y los idiomas) y se estaba descartando; basta con recogerlo.
La disposición del perfil está preparada para el futuro. Se guarda como los ids separados
por comas; al leerla, un id desconocido se ignora y los bloques que la versión conoce pero no
estaban guardados se añaden al final, visibles. Sin eso, un bloque nuevo no aparecería a quien
ya tuviera su propia disposición. Hay una prueba que falla si alguien renombra un id, porque
invalidaría las disposiciones ya guardadas en los dispositivos.
Un error aparte, en su propio commit
fix: la caché de la estantería guardaba solo la primera páginano tiene que ver con lasestadísticas y se puede revisar por separado: la estantería se recorre entera pero en la
caché solo se escribía la primera página, así que sin conexión se veía truncada a diez libros.
Comprobado
(
ReadingStats,ReadingGoalPace,ProfileLayout), y el ritmo del reto recibe la fechacomo parámetro para poder comprobarse.
todos, con las reglas de plural propias de cada lengua (one/few/many en polaco y ucraniano,
one/few/other en checo y rumano) y comprobando que ningún idioma pierde un especificador de
formato. Aviso honesto: no las ha revisado un hablante nativo de cada idioma, así que alguna
expresión puede mejorarse, sobre todo en las lenguas eslavas y en griego, finés y rumano.
Detalle a tener en cuenta al probarlo
Las tarjetas no aparecen hasta que se ha abierto la estantería «Leídos» al menos una vez, que
es cuando se llenan esos datos. Y el reparto de formatos necesita además una carga de la
estantería con esta versión, porque las estanterías ya cacheadas no guardaban ese campo.
Un apunte personal: se me acaba el periodo de vacaciones, así que a partir de ahora
voy a estar bastante menos activo y puede que tarde en responder a los comentarios de
revisión.
Si hay algo que quieras cambiar de este PR o del de las notificaciones, siéntete libre
de ajustarlo tú mismo, dividirlo o quedarte solo con la parte que te encaje — prefiero
eso a que se quede parado esperándome. Y si algo no te convence, ciérralo sin problema.
Gracias por la paciencia con tantos PRs seguidos y por lo bien que se trabaja sobre
este proyecto. Volveré cuando pueda.
Muchísimas gracias por todo lo aportado. Gracias a ti, este proyecto está creciendo de forma acelerada. Me parece muy interesante estos cambios, los veo y los añado.
Yo también estoy muy liado con el trabajo y por eso ahora estoy menos tiempo con el proyecto, por eso te agradezco de corazón tus aportes
Pull request closed