Aplicación Android nativa para consulta de precios en tiendas retail. Diseñada para funcionar en modo kiosko sobre dispositivos Zebra CC5000 con pantalla de 43 pulgadas.
El cliente escanea el código de barras de un producto y la app muestra el precio, descuentos disponibles y stock en tiempo real.
Pendiente: agregar capturas de pantalla de la app en funcionamiento.
- Lectura de código de barras con escáner físico integrado (Zebra CC5000)
- Consulta de precios en tiempo real contra Odoo 17 vía XML-RPC
- Motor de descuentos: evalúa todas las listas de precios activas (por producto, categoría o marca)
- Visualización de precio original vs. precio con descuento
- Consulta de stock disponible por sucursal
- Slideshow de banners promocionales con actualización automática cada 30 minutos
- Selector de sucursal/empresa desde configuración
- Inicio automático al encender el dispositivo (modo kiosko)
- Interfaz en pantalla completa, optimizada para 43"
| Componente | Tecnología |
|---|---|
| Lenguaje | Java 11 |
| Plataforma | Android nativo |
| Min SDK | API 21 (Android 5.0) |
| Target SDK | API 35 (Android 15) |
| Build System | Gradle 8.9 + AGP 8.9.2 |
| Backend / ERP | Odoo 17 (XML-RPC) |
| Comunicación | Apache XML-RPC Client 3.1.3 |
| Carga de imágenes | Picasso 2.71828 |
| UI Components | AndroidX AppCompat, Material Design, ConstraintLayout |
| Seguridad | HTTPS obligatorio, certificado Let's Encrypt embebido |
app/src/main/java/com/desstenee/pricechecker/
├── MainActivity.java # Pantalla principal: escaneo, precios, slideshow
├── SettingsActivity.java # Configuración de sucursal
└── BootReceiver.java # Inicio automático al encender dispositivo
- Android Studio Hedgehog o superior
- JDK 11+
- Dispositivo Android con API 21+ (optimizado para Zebra CC5000)
-
Clonar el repositorio:
git clone https://github.com/ankcas/price-checker.git cd price-checker -
Crear el archivo
credentials.propertiesen la raíz del proyecto:ODOO_USERNAME=tu_usuario ODOO_PASSWORD=tu_contraseña
Este archivo está en
.gitignorey no se sube al repositorio. -
Abrir el proyecto en Android Studio y sincronizar Gradle.
-
Compilar y ejecutar en el dispositivo.
- Threading: Todas las operaciones de red se ejecutan en hilos secundarios; la UI se actualiza con
runOnUiThread(). - Autenticación: Sesión XML-RPC con login sincronizado para evitar condiciones de carrera.
- Credenciales: Inyectadas en tiempo de compilación vía
BuildConfigdesdecredentials.properties. - Estado de pantalla: Máquina de estados (esperando → producto → error) con retorno automático por timeout.
Uso privado — Desstenee. Todos los derechos reservados.