CompanyRemote

Desarrollador Android Senior: Motor de Visualizador de Audio Premiu...

Project-Based

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

Jetpack ComposeJavaComputer GraphicsiOSAndroidHTMLKotlin

Want AI to find more roles like this?

Upload your CV once. Get matched to relevant assignments automatically.

Try personalized matching