Desarrollador Android Senior: Motor de Visualizador de Audio Premiu...
Description
Busco un experto en Android (Kotlin) con dominio avanzado de Jetpack Compose y gráficos (Canvas/DrawScope) para desarrollar un componente visualizador de audio altamente fluido.
Ya cuento con un prototipo funcional en HTML5 Canvas/JS que tiene el comportamiento orgánico y estético exacto que busco. El objetivo es replicar ese "finesse" visual en código nativo de Android. La implementación actual en nuestra app "tiembla" bruscamente con el audio; necesito que "fluya" y "respire".
Contexto de uso (Muy importante):
El componente se integrará en una pantalla de reproducción de vídeos pregrabados. El objetivo es que el anillo reaccione a la pista de audio de ese vídeo: debe permanecer en un estado 'base' (apagado o tamaño mínimo) mientras haya silencio o no haya voz, y expandirse/contraerse con total fluidez siguiendo los picos de volumen del locutor. Es vital que la transición entre el silencio y la voz sea suave (fade-in/fade-out de escala y brillo), evitando cualquier parpadeo.
Requisitos Técnicos Obligatorios:
1. Componente "Plug-and-Play" (Para integración cero fricción): Necesito la entrega de un único archivo.kt (Composable) limpio, aislado e independiente. Mi desarrollador principal (que gestiona el reproductor de vídeo) se encargará de integrarlo. Tu código debe ser una "caja negra" perfecta: él solo le pasará el número del volumen, y tu código se encarga de toda la magia gráfica.
2. Parámetros Configurables (Integración con Menú):
El componente debe exponer las siguientes variables para que Francisco (mi desarrollador principal) pueda controlarlo fácilmente desde nuestro menú de ajustes externo:
• amplitude: Float (La entrada del volumen del vídeo en tiempo real).
• RingColor: Color (Para cambiar el color del neón).
• GlowIntensity: Float o Dp (Para controlar el radio del desenfoque/brillo).
• StrokeThickness: Float o Dp (Para el grosor de los anillos).
3. Fluidez Orgánica (El núcleo del problema actual): Uso obligatorio de Interpolación Lineal (Lerp) con un factor de suavizado (ej. 0.15f). La escala y el brillo del círculo deben "perseguir" el ritmo de forma elástica, con inercia. No debe haber saltos instantáneos de tamaño, incluso si el audio sube o baja de golpe.
4. Estética Neón (Glow): * Dibujo de 3 anillos concéntricos con opacidades decrecientes.
• Efecto de resplandor mediante BlurMaskFilter o RenderEffect en el Canvas.
• Sincronización total: el brillo (Alpha) debe subir y bajar junto con la escala al ritmo del sonido.
5. Rendimiento: El componente debe redibujarse a 60 FPS estables sin saturar el hilo principal. No quiero animaciones de sistema estándar, quiero dibujo directo en Canvas.
Lo que voy a evaluar para contratar:
• Capacidad para leer la lógica matemática de mi código simple de js/html y traducirla a kotlin.
• Entender la diferencia entre animar una vista genérica y renderizar un "Game Loop" para visualizadores de audio.
•Necesito ver los resultados de cómo se vería en la app.
Adjuntos al proyecto:
• Video del prototipo html y código html.
.
por favor, abstenerse de postular si:
• piensas usar lottie, gifs o animaciones pre-renderizadas (el componente debe reaccionar a datos de audio en tiempo real).
• Tu solución pasa por usar xml, animaciones de sistema básicas o componentes ui estándar en lugar de renderizado puro en canvas/drawscope.
• Vas a pedirme acceso al reproductor de vídeo o intentar modificar la arquitectura de mi app (solo necesito el archivo.kt aislado).
• No tienes experiencia demostrable en matemáticas de animación (Interpolación, Game Loops, control de FPS).
Por favor, responde a esto en tu propuesta:
¿Cómo lograrías matemáticamente que el círculo vuelva a su tamaño mínimo de forma elástica y suave durante un silencio repentino en el vídeo, sin que la animación se vea cortada o a saltos?
Category: IT & Programming Subcategory: Apps programming. Android, iOS and others What is the scope of the project?: Create a new app
Skills
Want AI to find more roles like this?
Upload your CV once. Get matched to relevant assignments automatically.