scrivx /
java-mobile-app
Desarrollo de una aplicación móvil con Android Studio implementado con lenguaje Java
55/100 healthLoading repository data…
camaleonica / repository
Aplicacion mobile de juego para practicar la atencion y reaccion desarrollado con java y kotlin en android studio.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
Primer proyecto mobile en Android Studio — Materia: Desarrollo de APIs
Candela Rico · 2026
Re-Acción es un juego de tiempo de reacción para Android. La idea es simple: aparece un estímulo en pantalla (un color, un número, o una palabra), y el jugador tiene que presionar el botón lo más rápido posible. Cuanto antes reacciones, más puntos ganás.
El juego tiene 3 niveles que se van complicando: en cada nivel el tiempo máximo para reaccionar se reduce, así que lo que funcionó antes deja de alcanzar. Al final de la partida se muestran las estadísticas de esa sesión y se guardan en una base de datos local para poder comparar con partidas anteriores.
Requisitos:
Pasos:
git clone https://github.com/camaleonica/re-accion.git
File → Open → seleccionar la carpeta del proyectoRunNota: si el celular ya tenía instalada una versión anterior de la app, desinstalarla antes de volver a instalar para que los permisos se apliquen correctamente.
app/src/main/
├── java/com/desafio/reaccion/
│ ├── ConfigActivity.java ← pantalla de inicio y configuración
│ ├── GameActivity.java ← pantalla del juego en sí
│ ├── ResultActivity.java ← pantalla de resultados
│ ├── StatsActivity.java ← historial de partidas
│ ├── adapter/
│ │ └── ResultadoAdapter.java ← adaptador para la lista de estadísticas
│ └── db/
│ ├── AppDatabase.java ← instancia singleton de la base de datos
│ ├── ResultadoDAO.java ← consultas SQL (Room)
│ └── ResultadoPartida.java ← modelo de datos de una partida
├── res/
│ ├── layout/ ← archivos XML de cada pantalla
│ ├── drawable/ ← píldoras de estado (OK, GAME OVER, etc.)
│ ├── font/ ← tipografías (Unbounded, DM Mono, Playfair)
│ ├── values/ ← colores, strings, temas
│ └── anim/ ← animaciones de transición entre pantallas
└── AndroidManifest.xml ← configuración general de la app
Es lo primero que ve el jugador. Acá se configura la partida antes de empezar.
Tiene cuatro campos:
SharedPreferences para que la próxima vez que abras la app ya esté escrito.Cuando se presiona JUGAR, esta activity arma un Intent con todos los datos configurados y se los pasa a GameActivity como extras.
Es el corazón de la app. Acá pasan todas las cosas.
Cómo funciona el flujo:
Los estímulos son de tres tipos:
Los niveles aumentan la dificultad así:
El puntaje se calcula así:
puntos = ((tiempo_max - tiempo_reaccion) / tiempo_max * 100) * numero_de_nivel
Cuanto más rápido reaccionás y más avanzado está el nivel, más puntos ganás.
Game Over ocurre cuando:
En modo Entrenamiento no hay game over: si cometés un error, la ronda simplemente se reinicia sin penalización.
La barra de tiempo en la parte superior de la pantalla va achicándose a medida que pasa el tiempo. Cambia de color para avisar:
Aparece al terminar la partida (ya sea por game over o por completar los 3 niveles).
Muestra:
✕ GAME OVER, ★ GANASTE, etc.En modo Entrenamiento los puntos no se muestran ni se guardan. Sí se guardan en los modos puntuados (Fácil, Medio, Difícil).
Desde acá se puede ir a ver las estadísticas generales o volver a configurar una nueva partida.
Muestra el historial de partidas guardadas en la base de datos, ordenadas por puntaje de mayor a menor.
Tiene dos filtros:
También tiene un botón para borrar todas las estadísticas (con confirmación previa).
Si no hay ninguna partida guardada todavía, muestra un mensaje vacío.
La app usa Room, que es la librería de persistencia local de Android. Room funciona como una capa sobre SQLite: vos definís clases Java y anotaciones, y Room se encarga de generar las consultas en SQL automáticamente.
La tabla resultados tiene estos campos:
| Campo | Tipo | Descripción |
|---|---|---|
id | int (auto) | Clave primaria autoincremental |
jugador | String | Nombre del jugador |
puntos | int | Puntaje total de la partida |
tiempoPromedio | long | Promedio de tiempos de reacción en ms |
modo | String | Modo de juego (Facil, Medio, Dificil) |
nivelAlcanzado | int | Hasta qué nivel llegó el jugador |
fecha | long | Timestamp de cuándo se jugó (epoch ms) |
Las consultas disponibles (ResultadoDAO):
// Insertar una partida nueva
void insertar(ResultadoPartida resultado);
// Mejor resultado de cada jugador (para el ranking global)
List<ResultadoPartida> obtenerMejoresPorJugador();
// Todos los resultados de un jugador específico
List<ResultadoPartida> obtenerPorJugador(String nombre);
// El mejor puntaje de un jugador en un modo (para detectar récords)
Integer getMejorPuntaje(String jugador, String modo);
// Borrar todo
void eliminarTodos();
Como las operaciones de base de datos no se pueden hacer en el hilo principal de Android (bloquearían la UI), se ejecutan en un hilo aparte usando Executors.newSingleThreadExecutor(). Cuando terminan, los resultados se devuelven al hilo principal con runOnUiThread().
Declaradas en app/build.gradle:
| Librería | Para qué se usa |
|---|---|
androidx.appcompat | Base de las Activities, compatibilidad con versiones viejas de Android |
com.google.android.material | Componentes visuales: botones, sliders, cards, progress indicators |
androidx.constraintlayout | Sistema de layouts para posicionar vistas con relaciones entre ellas |
androidx.recyclerview | Lista eficiente para mostrar las estadísticas |
androidx.room | Base de datos local con SQLite |
androidx.activity | Manejo del botón atrás con OnBackPressedCallback |
El diseño sigue un tema propio llamado Acid Lava definido en res/values/colors.xml:
| Nombre | Hex | Uso |
|---|---|---|
bg_dark | #0F0D0A | Fondo general de la app |
surface | #1A1712 | Fondo de tarjetas y elementos secundarios |
primary | #D4FF00 | Amarillo lima — color principal, botones, puntos |
secondary | #A855F7 | Violeta — nivel, modo entrenamiento |
correct | #4ADE80 | Verde — reacción correcta, barra de tiempo normal |
error_color | #FB923C | Naranja — game over, tiempo bajo |
text_primary | #F5EED8 | Crema — texto principal |
text_secondary | #99F5EED8 | Crema al 60% — texto secundario |
Guardadas en res/font/, descargadas de Google Fonts:
unbounded.ttf): fuente variable, usada en las píldoras de estado y el botón de reaccionar.unbounded_black.ttf): peso 900, usada en títulos grandes y valores numéricos destacados.dm_mono.ttf): monoespaciada, usada en etiquetas, puntos, rondas y datos técnicos.playfair_display.ttf): serif variable, usada en elementos decorativos como el label "puntos".ConfigActivity
│
│ Intent con: nombre, modo, tiempo_max, iteraciones
▼
GameActivity
│ 3 niveles × N rondas
│ CountDownTimer cada 50ms → actualiza barra de tiempo
│ Al reaccionar → calcula puntos → siguiente ronda
│ Al completar nivel → reduce tiempo máximo → siguiente nivel
│ Al fallar o agotar tiempo → Game Over
│
│ Intent con: puntos, tiempos, nivel_alcanzado, completado
▼
ResultActivity
│ Guarda en Room (hilo separado)
│ Compara con récord anterior
│
│ → "JUGAR DE NUEVO" vuelve a ConfigActivity
│ → "Ver estadísticas" va a StatsActivity
▼
StatsActivity
│ Lee de Room (hilo separado)
│ Muestra ranking con RecyclerView
└─────────────────────────────────────────
Selected from shared topics, language and repository description—not editorial ratings.
scrivx /
Desarrollo de una aplicación móvil con Android Studio implementado con lenguaje Java
55/100 healthG10-ISPC /
Este repositorio contiene el código fuente del frontend móvil de Ricco Burgers App, una aplicación de gestión y compra de hamburguesas para dispositivos Android. La aplicación está desarrollada utilizando Java/Kotlin en Android Studio y proporciona una interfaz de usuario interactiva y optimizada para la experiencia móvil.
51/100 healthgrupoA7ISPC /
Aplicación mobile Android para la administración de socios y clases de un gimnasio. Desarrollada para el proyecto integrador de la TSDWAD del ISPC, 2023. WEB: https://github.com/grupoA7ISPC/ProyectoISPCGrupo55
Camilocostas /
Aplicación movil para búsqueda y filtrado de restaurantes por presupuesto, ubicación y preferencias gastronómicas en la ciudad de Popayan. Kotlin + Java - Android Studio
62/100 healthAngelRosas08 /
Una aplicación de agenda de contactos escrita en Java es una herramienta que permite a los usuarios mantener un registro organizado de sus contactos. Incluye características como campos de contacto personalizados
27/100 healthCarlos4775 /
Aplicación Mobile creada en Java, utilizando el api de huawei console para notificaciones push
27/100 health