Tengo una aplicación de productividad en la que estoy trabajando actualmente que requiere un panel de análisis de usuarios que registra cuánto tiempo han estudiado, incluido cuánto tiempo dedicaron a la navegación de la aplicación, cuánto tiempo dedicaron mientras el temporizador está funcionando, cuánto tiempo dedicaron mientras el temporizador está en pausa, etc...
Creé la aplicación en React Native y configuré servidores escritos en python para el procesamiento de back-end. Mi modelo actual es que cada interacción del usuario se registra en una matriz, por ejemplo,
[{"data": {"screen": "Settings", "type": "6"}, "date": 1650558805913}, {"data": {"screen": "Home", "type": "6"}, "date": 1650558808312}, {"data": {"screen": "Spaced Repetition", "type": "6"}, "date": 1650558809615}]
donde tipo corresponde al tipo de evento y fecha es la marca de tiempo. En este momento, planeo enviar estos datos al backend. El backend hará un bucle en la matriz y cada vez que llegue a un elemento definido específico, como navegar a una pantalla específica, creará un objeto que corresponde a esa pantalla. Todos los elementos que vienen después de la creación del objeto serán procesados y registrados en consecuencia en ese objeto hasta llegar a otro elemento predefinido en la matriz.
Descubrí que esto es una forma muy rudimentaria de hacerlo y no es tan escalable como yo quiero que sea.