Slide 1

Slide 1 text

Febrero 2013 en Spotify. Desarrollo web

Slide 2

Slide 2 text

@jmperezperez Ingeniero Software - Frontend Web Developer Spotify - Estocolmo José Manuel Pérez Pérez Quién soy?

Slide 3

Slide 3 text

Qué es Spotify Cómo se usan las tecnologías web en Spotify Qué proporcionan Desafíos y consejos De qué voy a hablar

Slide 4

Slide 4 text

Cliente de escritorio

Slide 5

Slide 5 text

Clientes móviles

Slide 6

Slide 6 text

TV

Slide 7

Slide 7 text

20.000.000 usuarios activos. 5.000.000 suscripciones. 20.000.000 tracks 1.000.000.000 playlists Spotify en cifras

Slide 8

Slide 8 text

Dónde se aplica el desarrollo web en Spotify Componentes Web

Slide 9

Slide 9 text

Departamento técnico: Aprox. 250 empleados: Estocolmo, Gotemburgo, San Francisco y New York. Perfiles web: Backend: Python, Java, PHP, C++ Frontend: JavaScript y HTML5 Objetivo: mantener la calidad del servicio y la experiencia de usuario, a medida que vamos creciendo. Desafío tecnológico

Slide 10

Slide 10 text

Equipos de 5 a 10 personas: diferentes perfiles Startups independientes Metodologías ágiles Tests, revisiones de código Hack days / hack week (10% tiempo) Estructura y modo de trabajo

Slide 11

Slide 11 text

Dónde está el desarrollo Web

Slide 12

Slide 12 text

Spotify.com

Slide 13

Slide 13 text

Spotify Play Button

Slide 14

Slide 14 text

Web player

Slide 15

Slide 15 text

Spotify Apps

Slide 16

Slide 16 text

API JS: Buscar contenido, acceder a la biblioteca del usuario API Views: Insertar elementos UI (listas, carátulas con reproductor, botones...) Ejemplos: letras de canciones, noticias, generadores de playlists, juegos de preguntas, reproducción de listas de forma colaborativa... Apps HTML5 Web apps para Spotify Spotify Apps

Slide 17

Slide 17 text

Clientes híbridos: iOS radio

Slide 18

Slide 18 text

Cliente móvil (radio) Cliente de escritorio (novedades, radio, actividad) + Web Player Ciertas funcionalidades están implementadas usando web Nativo + web Desarrollo híbrido

Slide 19

Slide 19 text

Capa que expone servicios de la plataforma en forma de JS API JS común Desarrollo de features Cómo se consigue Nativo + web Desarrollo híbrido

Slide 20

Slide 20 text

Reutilización de código (multiplataforma) Hace más fácil que un equipo puede ser dueño de una funcionalidad Escalabilidad e independencia: Múltiples pequeñas features desarrolladas independientemente Facilidad de despliegue de actualizaciones y correcciones Facilidad de integración de desarrollos de partners (campañas, aplicaciones) Future friendly Por qué utilizar web Por qué

Slide 21

Slide 21 text

Conocer bien la plataforma (necesito librerías?) Separación por capas (i.e. vista personalizada) Responsive Web Design Client feature-detection Optimización Idealmente, el mismo código se puede ejecutar en todas las plataformas Desarrollar web multiplataforma Cómo

Slide 22

Slide 22 text

Web se ejecuta sobre una capa superior (iPhone, Android) Desarrollo nativo tiene, en principio, mejor rendimiento Hechos Again Web vs native

Slide 23

Slide 23 text

Estructuración de funcionalidad en pequeños módulos Prototipar y testear. Estar dispuesto a hacerlo. Cómo abordarlo Web vs native

Slide 24

Slide 24 text

Febrero 2013 @jmperezperez Gracias!

Slide 25

Slide 25 text

Febrero 2013 jobs.spotify.com developer.spotify.com @SpotifyPlatform Más info