



¿No sabes qué comer? Tira el dado.
Producto propio · 2026Yummy es una app de Android que construí para mis propias necesidades — porque lo más difícil de salir con amigos es ponerse de acuerdo en el dónde. Marcas las condiciones: tipo de cocina, rango de precios, valoración mínima, radio y si el local tiene que estar abierto ahora — y luego tiras el dado. La app sortea un sitio entre los que cumplen los criterios y muestra al instante por qué ese: valoración, horario, tiempo en coche y navegación con un solo toque. En lugar de media hora de discusión en la que a cada uno le apetece otra cosa, decide la tirada — y todos lo aceptan. Diseñé y programé todo desde cero en Kotlin y Jetpack Compose.
- 2026
- Diseño y Desarrollo (producto propio)
- Product design
- App para Android
- Integraciones de Google
- Gráficos 3D
¿Dónde vamos? es una pregunta que puede llevar más tiempo que la propia comida. A uno le apetece pizza, a otro una hamburguesa, el tercero no quiere andar mucho, y los mapas muestran cien locales ordenados de tal forma que igualmente hay que revisarlos uno a uno. El problema no es la falta de información — hay demasiada, y nadie quiere cargar con la decisión. Quería darle la vuelta: en lugar de otro buscador con lista de resultados, una herramienta que elija una opción entre las razonables y quite al grupo el peso de decidir. Eso sí, el sorteo tenía que ser honesto: el resultado debe encajar en las condiciones acordadas antes, para que nadie sienta que el dado eligió algo que nunca estuvo sobre la mesa.
El núcleo del producto es un ritual, no un buscador: primero fijáis juntos los límites — cocina, rango de precios, valoración mínima, radio y abierto ahora — y solo después tiráis. El dado es real: una escena 3D en three.js incrustada en un WebView, con la librería y los modelos integrados en los assets de la app y servidos por WebViewAssetLoader (los módulos ES no cargan desde file://, así que hacía falta un host https virtual). No se descarga nada, así que la tirada se ve igual en casa que en un aparcamiento subterráneo. Los datos de los locales vienen de la Places API (searchByText, autocompletado de direcciones, fotos), la posición de play-services-location, y las distancias de la Routes API por REST — por carretera y no en línea recta, porque al elegir restaurante cuenta el tiempo de trayecto, no el hueco en el mapa. El sitio sorteado recibe una sección de por qué este que enumera los criterios que cumple — eso es lo que convierte un sorteo en una decisión que el grupo acepta. En el código me quedé deliberadamente en lo simple: toda la app es un ViewModel con un único UiState en un StateFlow, las pantallas son puramente presentacionales y tres repositorios se inyectan con un contenedor DI escrito a mano — a esta escala Hilt sería puro sobrecoste. Favoritos, valoraciones, filtros e historial de tiradas viven en DataStore, así que la app recuerda los ajustes y dónde habéis estado ya. Además, cuatro pestañas en un único NavHost: dado, lista, mapa con estilo oscuro y sitios guardados.
Una salida empieza ahora con una tirada y no con un debate — y funciona, porque la decisión viene de fuera y a la vez cabe dentro de lo que todos acordaron antes. En lugar de recorrer una lista, obtienes un sitio, el motivo por el que encaja y la navegación con un toque. Es un producto propio, escrito para mi propio uso nocturno: Compose nativo, todo desde Android 8.0 en adelante, publicado como App Bundle con splits y R8, en polaco e inglés.
Cuéntame brevemente tu proyecto — respondo personalmente, normalmente en 24 horas.
hello@alphacreative.pl