Charlando sobre Desarrollo Web en Spotify - HTML5Spain

José M. Pérez

José M. Pérez / February 07, 2013

40 min read346 views

El pasado 7 de febrero hablé sobre Desarrollo Web en Spotify en un hangout con los compañeros de HTML5Spain. Aquí está la presentación:

Vídeo y transcripción

Enrique Quintano: Hoy contamos con la presencia de José Manuel Pérez, frontend developer en Spotify. José Manuel, muchísimas gracias.

Yo: Hola, muchas gracias a vosotros.

Enrique: ¿Qué tal todo? ¿Qué tal por allí? ¿Hace frío hoy allí?

Yo: Nevado, que no es raro en febrero. Está nevando practicante todos los días, pero se está bien. Cero grados, ni frío ni calor.

Enrique: Pues nada cuéntanos cuéntanos un poquillo. Nos resulta bastante interesante conocer tu experiencia yéndote fuera. Como frontend developer, ganarse la vida por ahí fuera tiene mérito. ¿Tiene futuro esto?

Yo: La verdad es que tenemos bastante suerte. Yo creo que este sector tiene ahora bastante pegada y junto al desarrollo de aplicaciones nativas para móviles, yo creo que el desarrollo web está bastante en alza. La verdad es que son puestos que estan bastante solicitados.

Enrique: ¿Cómo has llegado tú hasta allí? Cuál ha sido tu camino desde España?

Yo: Yo estaba trabajando en Tuenti como desarrollador web en el equipo del sitio web móvil. Quería salir de mi zona de confort y dije "pues voy a probar a irme fuera". Todavía soy joven, no tengo muchas responsabilidades. Siempre es bueno ver las cosas a traves de otros ojos e intentar también mejorar el idioma... Una temporadita no está nada mal.

Enrique: ¿Cómo os tratan en Spotify? En una empresa con tanto renombre, todos podemos esperar maravillas. ¿Cuál es la cultura de empresa y cómo os organizáis? ¿Cómo es el día a dia de ir a la oficina y desarrollar para una gran compañía?

Yo: Bien, la empresa está creciendo bastante. En este último año han contratado muchísimos desarrolladores web. Al principio no había prácticamente nada web, era todo un cliente de escritorio nativo. Está creciendo bastante y está habiendo muchas reestructuras de equipos. Básicamente trabajamos en equipos pequeños y tenemos tanto gente de backend, de frontend, QA, diseñadores...

En el trabajo diario seguimos una metodología ágil. Tenemos una serie de tareas durante el sprint, las vamos haciendo y actualizando a los compañeros, explicando cómo va todo y notificando si hay algún problema. Un scrum típico.

Enrique: Pues pues nada de todo tuyo para que nos enseñes la presentación y ver cómo es desarrollar en Spotify.

Yo: Vale, pues voy a hablar del desarrollo Web. Como estamos en HTML5 Spain estamos interesados en la parte web de estas empresas.

Bueno, ya me habéis presentado. Tenéis mi Twitter y trabajo como frontend developer en Estocolmo. Es la oficina más grande de Spotify en cuanto a número de desarrolladores.

Voy a hablar un poco de qué es Spotify, aunque muchos lo conoceréis ya. Cómo se utilizan las tecnologías web en el Spotify, qué proporciona a hacer determinadas implementaciones utilizando tecnologías web y también los desafíos con los que nos estamos encontrando, así como algunos consejos y conclusiones que estamos sacando.

Cuando hablamos de Spotify, practicamente a todo el mundo la primera imagen que le viene es la aplicación de escritorio. Fue el primer cliente que hubo y es el más conocido.

Pero aparte también tenemos clientes móviles para iPad, para iPhone, Android, Windows Mobile, Windows Phone, BlackBerry y hasta TV. Esto es una captura de una Samsung SmartTV y esto también está desarrollado utilizando Web.

Spotify es bastante grande. Tiene 20 millones de usuarios activos, de los cuales 5 millones de usuarios tienen una suscripción de pago. Tenemos 20 millones de canciones y 1.000 millones de playlists. Al final el reto ya no es ser el que más canciones tiene en el catálogo y prácticamente todas las empresas se están centrando en mejorar el descubrimiento de canciones e intentar ajustarse a los gustos de cada usuario. Intentar explorar el catálogo tan enorme que tienen.

Bueno, el principal desafío tecnológico que tienes Spotify es mantener la calidad del servicio y la experiencia del usuario. Al vamos creciendo, se van abriendo el producto, no mercados. Y tal como van apareciendo nuevos dispositivos, nuevas plataformas, etc. El departamento técnico. Somos unos 250 empleados.

Como ya he dicho, la mayoría estamos en Estocolmo, pero hay también oficinas en Goteborg, a quien suecia y San Francisco y Nueva York en Esto, Estados Unidos.

Y luego el desarrollo web. En concreto, la parte de Backend se utiliza Python, Java y Php. Es un poco variado. Luego cada equipo elige qué tecnología prefiere utilizar para implementar su funcionalidad.

Pero estas son las que se procura utilizar y luego la parte de frontend, el típico Jav ascri Cetme nada nuevo aquí y un poquillo cómo se estructura los equipos en Spotify. Son equipos de cinco a 10 personas y se intenta que estos equipos tengan un poco todo lo que hace falta para desarrollar cualquier funcionalidad funcionamos como pequeñas Startups nosotros desarrollamos funcionalidades monitorizamos que esta funcionalidad está funcionando bien, se hacen ajustes, se hacen en despliegues y cada equipo es propietario de un área de una funcionalidad.

Y luego se utilizan metodologías ágiles la dependiendo de cada equipo, pues puedes Rizar Scrap cambian Hay empleados que son I, il coach que son personas dedicadas sólo a mejorar el desarrollo ágil de cada equipo y están ahí para ayudar a cada equipo a intentar ver cuál es la metodología que mejor funciona. Animar un poco, asperezas en el modo de trabajo, pues está bastante bien tener gente dedicada sólo a esto, son poco psicólogos y y luego bueno test hacemos desde practicamente todo el código y todos los cambios que hacemos de código. Luego lo revisa un compañero y a ellaantes de subirlo todos. Todos los cambios pasan por antes la revisión de otro compañero y luego un poco a la google. Esto del 20 % de tu tiempo para desarrollar proyectos propios.

Aquí tenemos un 10 % y bueno, suelen ser en forma de hack days, que son días aislados en los que tu equipo normalmente desarrolla algo que al final puede tener utilidad para el producto final o incluso chadwick, de hecho, al mimo vamos a tener una semana que va a ser toda la empresa va a estar desarrollando proyectos un poco alternativos, pero estos proyectos, los protagonistas entre todos tres meses antes o tal o hay alguna bolsa de ideas, algo así luego las trabajáis, Sí, tenemos una bolsa de ideas cada hay gente que sí que tiene ideas claras y entonces propone ideas pero igual no tiene los recursos, por ejemplo, a gente no son desarrolladores y dicen oye a quizás hacer esto para mejorar, no sé, una campaña de marketing, pero no ha sido desarrollado. Puede haber algún desarrollador que al final diga Me gusta esa idea, voy a colaborar contigo o al contrario, puede ser un desarrollador que no sé no tienes tampoco ninguna idea que está ahí lo que proponen los demás y me apunto algo está bastante bien a ver, a ver qué proyectos salen de ahí y luego ya hablando sobre lo que son las partes que están desarrolladas en web en Spotify, pues bueno, principalmente por supuesto, el sitio web que además se ha lo hemos cambiado hace poquito y esto es un poco formación de producto, información, perfil de usuario, toda la parte de pagos. Luego tenemos el Spotify Play button esto es un control que se en cualquier página. Es un finy, pues puede reproducir canciones, álbumes o Playlists pero necesitas tener el cliente de Spotify instalado. Es como un puente se comunica con la aplicación de escritorio es un botón que a la reproducción luego tenemos el reproductor esto es bastante nuevo, todavía está en en Veda limitada y está saliendo poco a poco lo estamos sacando para ver qué tal la reacción funciona y bueno, estamos ahí está desarrollado completamente en todo Web y luego tenemos aplicaciones las que llamamos Spotify Apps que son aplicaciones que se ejecutan en perro del cliente de escritorio para desarrollar estas aplicaciones se utiliza bueno, tenemos como una librería que permite acceso a búsqueda de contenido búsqueda de artistas de canciones en álbumes o federal biblioteca del usuario Si está suscrito a una Playlist, pues lo tienes en tu biblioteca a través de esta api está escrita en javascript pues a eraely luego pues tenemos la parte de pistas que puedes incluir pues elementos de interfaz usuario, listas de canciones carátulas con un botón de Play botones para hacer su rición de las, etc y bueno, pues de aquí salen de un montón de aplicaciones para, pues, noticias, análisis de nuevos álbumes Playlist que se generan sea teniendo en cuenta cuáles son tus preferencias las canciones que tú tienes guardadas en tu biblioteca juego de preguntas y respuestas aplicaciones en las que cada uno, por ejemplo, está con compañeros de trabajo y cada uno, pues pone canciones que le gustaría escuchar luego los demás la votan y son las que van sonando para que todo el mundo esté feliz y no se escuche siempre lo que uno quiere se pase un poquito todo de hecho voy a Voy a enseñaros un poquito de pinta tener vale esta la aplicacion de Spotify y aquí hay tenemos un buscador de aplicaciones que bueno, es un estado de las aplicaciones que luego cuando las añades, pues aparecen aquí a la izquierda y pues aquí todo aplicaciones, aplicaciones que eso vas arrestando aquí canciones y te generan Playlists aplicaciones de te estás escuchando una canción y te van saliendo las letras de la canción pues puede montarte un cara oque enseguida un poco de todo y todo esto es su desarrollo mencio nomal y corriente nada especial se añade un fichero manifest las open web aps de firefox o es hasta que nos quede carlos a nosotros tenemos acceso a estas apis para desarrollar aplicaciones, sí tú el único requisito es que tengas una cuenta, luego accedes al sitio de developer Spotify Com y puedes activar un tu cuenta como desarrollador, que es básicamente pues aceptado nos terminos de uso y ya está utilizando tu cliente normal de escritorio puede desarrollar aplicaciones tienes Puedo enseñar también un poquito la pinta que tiene una aplicación así ejemplo es vagina página Achetemele normal con unos ceses que son para un poco tener mantener el estilo el estilo general de todos los componentes de manuel puede subir un Vale, bueno, manifest es un fichero manifes pues esta mi aplicación tiene este nombre tiene esta descripción tan utiliza esta versión de api todo esto está documentado en el sitio desarrollador pero básicamente esto va a abrir, luego un index Html y tú ahí haces lo que quieras Aquí está incluyendo un fichero Javascript, un man está la parte de api forma de insertar, incluir la librería de Spotify Luego está lo de ser los modelos, que es lo que representaba una canción, un álbum, una Playlist o artista o su los modelos y Vi son los componentes de interfaz de usuario entonces pues aquí están incluyendo un reproductor y una lista de hecho lo podemos abrir y así somos un poco como queda españa a ver, compartir el Vale, pues mira titi titi esta aplicación se amago La aplicación se guarda dentro de una carpeta de jamás Spotify que está dentro en este caso de Tu Hometuls y esto una carátula compuesta por varias caratulas porque esto se corresponde con una lista de reproducción to es aquí hay canciones de varios álbumes y luego esto es una vista de una lista de canciones así que tenemos una Playlist y tenemos aquí Yo puedo darle aquí y se reproduce vale?

O le pueda aquí es un componente ya desarrollado por vosotros que yo puedo incorporar Sí, pasate que bueno es csi esto se ejecuta dentro del dentro del cliente Spotify esto no lo puedes sacar a fuera a una página e es una hueva que tienes tú que se ejecuta dentro del dentro del cliente o usuario de y es brutal el número de aplicaciones vamos que desde que salió esto el número de aplicaciones que te puedes encontrar en Spotify pero impresionante si hay luego de la hora de publicarlo tuvo eliges también el país donde que publicar puedes traducirlo a varios idiomas dependiendo del país pues hay unas aplicaciones u otras pero prácticamente tienes más de 100 en cada país que restricciones tiene a ti al igual que, por ejemplo, objetosteacostumbrada trabajar con los mapas de El, por ejemplo, que tienen una limitación en no hacer más derecho de peticiones tenéis vosotros pago una restricción olelanadocumentación oficial pero no te des comentariosimagenes principio que yo sepa no hay no hay ningún tipo de limitación en cuanto a este tipo de desarrollo tu haces tu aplicación, tienes ahí tus botones si el usuario tiene cuenta ilimitada o cuenta premium, pues no tendrá ningún límite Podrá estar escuchando cualquier tantas canciones como quieras utilizando tu aplicación si tienes un límite de 20 h, pues es el límite se aplica a una cuenta Free es el límite se aplica a lo que tu haya reproducido a lo largo de todo el cliente un límite para ti como desarrollador tu po poner ahí los usuarios por un mar tantas veces como quieran ofrecéis algún tipo de información de luego de imagínate que yo desarrollo una aplicación para Spotify y luego quiero saber cuánta gente se la ha instalado, cuánta gente ha escuchado qué tema vecesaplicación para no reinventar un poco la rueda? Pues puedes insertar un código puedes insertar un doble analitik, un tracking code de ugel analytics y con eso practicamente tienes todo cubierto luego tener cuenta que luego puedes estar haciendo trading de eventos tu es tú dices por cada vez que el usario haga esto yo lo quiero guardar igual que cuando insertas cuelanalítics en tu página y quieres ver nos en cuanto a veces la gente de reproducción video o yo que sé lo que quieras y una última pregunta tema por ejemplo de política de privacidad, por ejemplo, hay gente también que cuando trabaja con la Api de Facebook y a una aplicación o sea, tiene una limitación que bueno, cambia siempre de un mes para otro pero de lo que yo recuerdo cuando hicimos experimentos con eso en la agencia de publicidad en la que estaba tú tienes que sólo puedes tener 24 H esos datos esta esos datos luego no los deberías almacenar o del día que pedir algún tipo de permiso especial tenéis algún tipo de política de privacidad en ese sentido? Si hay unos términos y condiciones esto ya es un poco parte legal yo conozco bastante la parte técnica, luego la parte legal todas estas aplicaciones antes de ser ser publicadas, pasan un proceso de envío y de aceptación entonces pues ellos Luego hay un equipo que evalúa si tú estás recogiendo determinados datos o cualquier cosa que pueda estar que vamos que no este acorde con los términos y condiciones. No sé exactamente que pero sé que hay una serie de temidos igual que hay algunas guiar de diseño de estilo y se procura también mantener un poco el mismo estilo si el botón de Play está en una carátula abajo a la derecha o en el centro pues intenta mantener una consistencia es un poco tipo apolo el Play Store de Over se mediaenluego una parte de control lo desarrolla, pero luego hay una parte de envío y tiene que Valer, pero vamos Amente, no hay ningún problema no sé que estás haciendo. Hay algo muy chungo y podrías podrías recomendarnos alguna Hay alguien que haya publicado, pues en gira algún proyecto de alguna aplicación de Spotify que estuviera interesante que a vosotros ya os haya parecido interesante.

Nosotros tenemos una aplicación tutorial vamos si busca esta en la face del sitio desarrolladores o puede buscar tutorial y di es una aplicación que te explica un poquito cómo hacer las cosas básicas tienes unos snipers de código que puedes utilizar para para insertar reproductores listas los controles son poco más comunes y luego estamos pensando también en intentar sacar como aplicaciones poco backbone que tú prácticamente tengas la estructura y cambiando a unas cositas y añadiendo a la información específica de tu aplicación pues puedes generar una aplicación más o menos mantenible así, con un poco en poco se separado todo y con las mejores pláticas que pensamos nosotros, que se deben seguir Sí, si tienes aplicación de hay una aplicación de tutorial que puede seguir un poquito pues vamos a ver, vamos a ver porque está ampliando yo por aquí por Twitter la gente es un poco tímida, se atreve seguro que tiene un montón de preguntas lo que hemos comentado antes of Life, que parece que muchas veces los españoles somos muy tímidos a la hora de preguntar ya tenemos alguna tris titia un conocido pero esperamos o seguimos con la presentación. No hemos visto la prestación y le estamos aquí fundiendo preguntas nos tiene que vamos, lo queremos saber todo.

Dejamos continuar lo que de vosotros tengo todavía más. Más. Pues sigue si hay unas transparencias por a eso nos estamos adelantando a cabo y seguimos ya con las compreguntas. Vale, pues esto era señal código macho y tal. Pues qué quieres que hagamos?

A ver, somos desarrolladores al final. Queremos ver el código tampoco papo, quiero utilizar esto para vender un poco. O quiero quiero explicar un poco cómo están las cosas, cómo se hacen este tipo de aplicaciones. Sí, sí. No creo que nadie la entienda.

Que nadie entiende de esa manera. No, Spotify no paga a ti. Sí, porque eres empleado. Nosotros no nos interesa. Bueno, y esta quizás es la parte me está gustando es desarrollar clientes híbridos aplicaciones híbridas que tengan una parte nativa y otra parte desarrollada en web.

En este caso, la funcionalidad de radio, tanto en la aplicación de ipad como la de iphone está escrito en Entonces está muy bien, porque está completamente integrado, como no tiene el usuario no se da cuenta de que eso es web y esto lo siguen bastantes aplicaciones nativas que siempre tienen una parte web, luego aplicar un poco la ventaja de tener cierta funcionalidad escrito en web. Así que nada esto, si no sabéis es una página web esa parte, entonces pues eso algunas funcionalidades están escritas. Utilizan web, como esta parte de radio o en el cliente escritorio hay una página de novedades, la principal página que se ve cuando se abre. Eso es todo. También la radio, que también tiene una funcionaria de radio en la aplicación de de escritorio también es web y venera actividad, que es una columna que hay a la derecha con lo que están escuchando tus amigos tambien ves cómo se pueden hacer partes en web.

Partes nativas esto estan cómo se consigue básicamente, todas estas partes desarrolladas en web? Están utilizando al final la misma api que estaba enseñando antes. Al final nosotros nos comemos un poco lo que hacemos y es la mejor forma de ver si lo estamos haciendo bien o no. Sobre esa capa de javascript, pues se desarrollan estas estas funcionalidades, tenemos esa capa, es común para todas las plataformas. Y luego sobre esa capa, pues cada equipo va haciendo su funcionaria.

Así que tenemos, independientemente de si es un iphone, android, lo que sea. Siempre hay una pequeña capa que convierte un poco llamadas las trae de lo que hay por debajo arquitectura y expone en forma de java scrip una serie de servicios sobre los que tu puedes desarrollar. Pues cuál es la razón de hacer esto? Web? Porque no lo hacemos todo nativo y chimpunes.

Bueno, como tenemos tantos dispositivos en lo que ejecutarse.

Lo bueno es que tú puedes hacer, en teoría, ojalá puedas hacer un código web que se pueda ejecutar en cualquier plataforma. Ese es un poco la panacea y lo que todo el mundo en esta comunidad de tener de cinco y siempre en estas discusiones de web nativa desarrollo nativo o desarrollo web se presta a estas cosas. Luego si si se utiliza tecnologías web para implementar una cierta funcionalidad en múltiples plataformas, eso hace más fácil que un equipo puede ser propietario de esa funcionalidad porque ellos saben mejor que nadie cuál es su código y puede mejorarlo. Pueden hacer cambios que afectan a muchas plataformas. Esto es así porque dependiendo de la empresa, no puede tener un equipo desarrollo, por ejemplo, Iphone es otro equipo de Android o de otra arquitectura.

Y al final, tú quieres tener una determinada funcionalidad implementada y te toca hablar con montón equipos. Cada equipo tiene sus roadmap y es un poco final difícil tener una funcionalidad implementada en torno plataformas. Si esto cambia y se hace que un equipo sea dueño de esa funcionalidad, pues al final resulta mucho más fácil saber que se haya un problema con esa funcionalidad. Es el equipo es el que tiene propiedad de ese código.

Luego hace que esto sea ayuda a la escalabilidad y a la independencia. Cada equipo está desarrollando una funcionalidad de forma independiente, sin pelearse unos con otros ni ni tener ahí muchas dependencias entre equipos y luego, bueno, al ser web, tú puedes desplegar esto y puedes actualizarlo cuando quieras y todos los clientes se actualizan. No tienes que estar esperando a lanzar una nueva versión, a que pase la aprobación de las tiendas de aplicaciones, a que tus usuarios si quieren, y pueden actualicen a la última versión sus aplicaciones, lo que ya sabemos, que proporciona la web y bueno, luego, en el caso de spotify además, al hacerlo, web es una plataforma para que los panes, para que otras empresas puedan desarrollar también sus propias experiencias, sus aplicaciones en nuestra plataforma. Eso con código nativo sería prácticamente impensable. No se me ocurriría hacer una aplicación una spotify up, utilizando temas más siendo yo una persona de fuera de spotify que quiere, no sé, darse dar a conocer su marca a sus contenidos y bueno, pues al hacerlo en web, en todos los dispositivos que que vayan apareciendo o si ahora tenemos firefox o es nokia, también está desarrollando su sistema operativo escrito en web para smartphones en todos estos casos.

Pues prácticamente te aseguras de que tu desarrollo va a funcionar.

Vale, pues idealmente tu código, pues se ejecutará en todas las plataformas.

Bien, a ver, vale, un consejo que creo yo que es conveniente es que debes conocer bien la plataforma en el caso de las Spotify Apps. Esto funciona utilizando un un Chromium, un c F. Es una especie de cromo que están bebidos dentro de aplicación, pero en este caso tenemos un webkit, pues hay mucha gente que tiene un poco el vicio de utilizar librerías o por utilizarlas, pues a veces tenía que parar un poco y decir a ver, igual no necesito una librería igual. Esto es un webkit de esta versión. Se que soporta todo el Ao o igual tampoco meter una capa.

Son a finales más tamaño de la aplicación, más líneas de código que ejecutar igual una aplicación de escritorio no importa tanto. Pero cuando intentas hacer esto en otros dispositivos menos potentes, ya empieza a ser un problema.

Luego, en cualquier caso, siempre que se hace cualquier desarrollo, hay que intentar separarlos los roles al intentar hacer seguir un patrón mvc o similar para poder utilizar la parte de código que es común a, por ejemplo, imaginamos que tú tienes tu aplicación. Quieres adaptarla para determinado dispositivo. Igual puedes escribir la lista y ya esta y reutilizar luego toda la lógica que ya tenías hecha.

Vale? Y luego los mismos principios que conocemos de responsive Web Design también se aplica aquí. Yo puedo tener la aplicación de escritorio, pues maximizada a toda pantalla. O puedo cambiar el tamaño hacia la más pequeña. Y mi aplicación, pues también se debería adaptar al tamaño que ha disponible.

También debería utilizar detección de características de lado al cliente. Siempre comprobar a ver si hay soporte, pues no determina la funcionalidad de Java Scrip o lo que necesita mi aplicación. Y siempre optimizar optimizar unos edificados estáticos imágenes css javascript al final esto no deja no deja de ser desarrollo web.

Aunque estás haciendo una web Up, estos principios se aplican, vale? Y luego algunos hechos en esta guerra, un poco de web contra nativo por puerto por deagracia en plataformas como Iphone y Android. Pues todo el código web se va a ejecutar sobre una capa superior, una capa que es la aplicación en sí no es eso hace difícil competir en performance como código nativo. El código nativo en principio va a tener mejor rendimiento.

No soy desarrollador nativo. También se podrá hacer barbaridades super mal hechas con código nativo o no nativo. No tiene por que ser mejor sólo porque sea nativo. Pero partimos en una situación en la que tal y como está en este tipo de plataformas, pues hay que hacer un pequeño esfuerzo en el lower, pues cómo abordarlo? Cómo lo estamos abordando nosotros?

Lo primero es tus aplicaciones. Intentar modularizarlas tener pequeños componentes. Igual que la aplicación de escritorio tiene un componente por la columna estada derecha de la actividad o puede tener páginas de artistas o de álbumes. Todos esos pueden ser diferentes módulos y tú luego puedes recibir si ese módulo, lo que es implementar código nativo o en código web. Y para eso hay que prototipar y testear.

Y no hay otra otra? No, a mí me gusta mucho Age Menecio ojalá llegue muy lejos, pero a veces para algunas funcionalidades quizá o en determinados dispositivos quizás al final tienes que implementarlo en nativo porque no hay otra, pero quizás otras funcionalidades sí que lo puedes implementar utilizando web, pues al final hay que probarlo hacer pruebas de usuario, pruebas de rendimiento, ver en, ver qué pinta tiene al final. La web proporciona muchas ventajas, pero hay que tener en cuenta esto si luego las periencias usuarios al ver afectadas, pues los hombres igual tienes que parar y decir No vea seguir manteniendo estos nativos hasta que los dispositivos o los navegadores sus motores de Javascript lo que desea y nada un poquito es que no tengáis miedo de de experimentar con che tenen de aplicaciones híbridas aunque sea así entrando poquito a poco en en desarrollo en cinco para todos estos dispositivos y nada, pues estamos ahí desarrollando todo esto intentando portar bastantes cosas a a web para reutilizar un poco mayor contenido, el mayor código posible y por ahora está funcionando bastante bien y que más vale información. Hay una laja ahí para trabajos, puestos de trabajo. Estamos buscando mucha gente sitio desarrolladores ahí está toda la información de las apis que disponemos y o información de como desarrollar vuestras propias aplicaciones.

Y Spotify Platform es la cuenta de Twitter del equipo Platform, que es el que se encarga un poco de toda la plataforma para oladosun de entrada para la gente interesada en desarrollar cosas para Spotify y nada un poquito era yo creo que bastante interesante. Bastante interesante el tema, una opinión tal como monserrado el tema con la cuenta de Jos dos se buscan trabajo. Hay cierta controversia, no sé, yo lo pinto muy bien. Las cosas parece que pintan bien y hay mucha gente que esto le causa desconcierto. Cómo lo ves tú en cuanto qué perfil realmente se busca, qué perfil está demandando el mercado?

Es decir, un maquetador está en un punto en el que vaya a saco otra a responsive y haches o a que tienes que necesitar para llegar a Spotify, por ejemplo, podemos traducir a otros y no podemos traducir a otros perfiles. Cada uno se tiene que adaptar un poco a la situación actual. Un maquetador hay gente que hace sus diseños utilizando fotos con un ancho fijo de pantalla. Eso está muy bien, pero cómo se va a ver eso con un movóvilcómo? Se va a ver con una tableta de siete pulgadas o un móvil de estos de cinco pulgadas.

Al final, un maquetado, por ejemplo, tiene que empezar a pensar sus diseños en base a diferentes resoluciones, a ver cuál es el contenido principal, que es secundario, cómo se va moviendo las columnas y el contenido, dependiendo del de tamaño la pantalla, la verdad se ma quedado al mismo, sobre todo si has estado así. Se estado haciendo diseños así fijos es un reto bastante grande. Es pasivamente cambiar fotos por un navegador, intentar hacer diseños en con ese y hacer pruebas de todo con navegador y cambiando el tamaño. Yo en mi caso, como fronte, pues nada que te guste Jav. Ascri que no sé que tengas cierto interés también.

No sólo una librería y hasta no sólo decir Uso Jquery y le meto un plan no sea algo más ver lo que se está ejecutando por debajo intentar intentar directamente aprender javascript básico porque meter una librería ya te genera una dependencia y he visto cosas escritas con dos o tres librerías juntas al final dice a final ha cogido alguien plain de que otra cosa de motus y otra cosa ah sí, la dependencia de Jiqueri, por ejemplo se hablará de ellos se empezará a hablar dentro de muy poco porque han sacado no la versión de Ari a ver, que empezar a hacer muchos arreglillo y correcciones porque hay métodos que dejan de ser soportados o que se implementan o se llaman de otra manera y seamos un ejemplo casarte hoy con algo no y apostar por ello a muerte lo puedes hacer sobre todo en determinadas plataformas si tú quieres que lo tuyo funcione con Dieseis o con cualquier navegador si no sabes lo que te va a venir pues puede valer la pena meter una capa de estación pero también hay que estructurar un poco tu aplicación web o tu sitio web tal forma es que tú puedas cambiar esa librería por otra y no se rompa tampoco hay que evitar un poco el código espagueti tener módulo sentiente que lo puedas testear y tú puedas cambiar uno de los componentes sin necesidad de tener que rescribir todo lo demás pues eso eso es difícil Lotocuando empiezas así no? Esto es una cosa pequeñita y esa cosa pequeña empieza a crecer y al final te encuentras que tienes que refactorizar Ya estamos viendo cosas como Barbo estamos viendo un montón de freno que intenta intenta mantener esa separación Te oído mencionar caro evidentemente no sé, con tantos desarrollos bi siempre tan grande el espectro de dispositivos y pantallas a los a los que está enfocado Spotify nos has enseñado web dispositivos, televisión vinoun poco lilo no sé como plantear Terra la pregunta vaya me he quedado bloqueado tema el tema de usa librería si tú sabes que vas a hacer una aplicación para dentro de Spotify tu si te apañas con webkit y sabes básico pues puedes no utilizar ninguna librería y hasta Vale, ya lo recupera y lo recuperado o modelo vista controlador está muy de moda lo has mencionado ahora mismo Backbone vosotros trabajáis con este tipo de arquitectura yo entiendo que eso al ser tan grande por vosotros tengáis esa necesidad de ceñiros digamos a un plan donde se separen todas las piezas del proyecto pero también hay cierta controversia Ahora voy leyendo artículos en los que recomiendan un poco de mesura a la gente Es decir, es que a lo mejor Backbone no está hecho para tu proyecto Ya no intentes meterlo con como utilizar now leyes para todo lo que está o no a ver, hay un montón de librerías, un montón de frenos al final tienes que comparar un poquito y ver lo que necesitas no puedes coger y meter allí los porque todo el mundo está hablando de eso quizás sí quizás cumple su función para lo que tú necesitas. Pero al final necesitas conocer un poco el jabaspigay por debajo y entender que te proporcionan todas estas librerías. Tenemos ahí una preguntilla por suitemiami guion bajo mg nos pregunta cómo hacéis en vuestro equipo para ver las diferencias en cuanto a rendimiento barraques de cierto módulo web versus aplicación alternativa. Entiendo que es cómo me dicen la performance y cuanto perdéis si hacéis nativo y cuanto perdéis si lo hacéis hibrido pues siempre se hacen se hacen prototipos, siempre lo implementas nativo.

Normalmente se están introduciendo partes web en elementos que ya estaban implementados de forma nativa pero ya sabes, un poco cuál es el modelo de referencia en cualquier caso? Pues implementando tecnologías al no tenga muy claro determinar funcionalidad igual sobra con con web y no vale la pena meterse en nativo. Pero a menudo necesitar las dos y compararlo no sabemos si tienes que implementar algo que utilice listas de canciones. Pues vas a intentar cargar aquella lista de canciones que tiene por 10000 canciones y a ver cómo funciona eso. Y haz un scroll crol con el dedo, ver cómo mira.

Ve si eso tiene rendimiento. Si se está colocando al final lo tienes que probar en un dispositivo. Por mucho que tenga simuladores al final, todo este tipo, todas estas empresas tienen siempre su batería de móviles con los que probar notables al final desarrollado pruébalo ahí directamente, como lo probaría un usuario final utiliza también acondicionadores de de red simula que tú estás en un entorno si es un desarrollo móvil simula que tú estás, pues con tres o con o con una conexión más baja con jeferson que se el caso bueno, de que tu Ornador está ahí enchufado a una red superbuena y el caso extremo de que el usuario está, pues en el metro tu desarrollo tiene que seguir funcionando. Pero al final necesitas hacerlo implementarlo un prototipo que tampoco sea una cosa super pulida, pero algo se cita. Garantizas realmente eso que la experiencia del usuario va a ser tal cual, lo que también igual.

A veces se va muy mal de tiempo. No hay tiempo para hacer estas cosas y directamente se apuesta por una de las dos.

Es normal. Todos hemos trabajado en bajo presión y a nadie se le ocurría igual por dedicar una semana a prototipar algo, no se, a la larga yo creo que sí que va de la pena, pero bueno, eso ya son prioridades de producto. Mira, tenemos otra pregunta también de fernando de mozilla hispano que títeres stripe y preguntaba bueno, esto a lo mejor te pone en un compromiso. O sea que tú si quieres di pasa palabra y ya está, te dice Tengo curiosidad de cómo contraelacoso de los usuarios a la música. No creo que sea de Petric.

Se ha cortado un poco la repito. Sí, sí, repítelo, por favor. Si dice que tiene curiosidad de controlarse el acceso a la música para de los usuarios plataforma no me es atendemos. Debe ser muy comprometida la pregunta por qué la escuchado? Bien, no haber una cosa que diferencia spotify es el la forma que tiene para reproducir música y para el tema del tráfico de las canciones.

Utiliza un modelo Pedo Spe. Las canciones las estar descargando a través de la red de clientes cercanos que tengan esa canción. Esa forma no te tienes que descargar siempre de ceden directamente. Es es un pipi. Luego cómo se guarda eso?

Se guarda de forma irritada, no es luego a la hora de desencritarlo pues sí que era un formato reproducido de pero no, no existen los mep etres como tales en tu coro. Aunque tengas una cache. Esa cache es tan gritado también cuando sincroniza esta música, cuando un alto yo también solo el código de Poteeeeeeeencia música metapetición desencriptado total de traca no tengo el lo sabe. No tengo el traje local y lo reproduzco, sino que se produce el mismo el mismo resultado que si tuviera sólo la mitad de la canción y estuviera escuchándola y no la tuviera sincronizada sí. A ver, todas las canciones que vengan de Spotify, todas están se fueran gritada tú luego en el cliente puedes tener también control sobre tu biblioteca de canciones que tengas tu entrenador, que por supuesto, están en Petresano.

Se va a crear otra copia en Cace nnas tu fichero de tus canciones y hasta el modelo de Spotify se guardan. Hay una cache porque tú al final te conviertes también en otro dentro de esta red. Perorelegadastienes una cache de canciones recientes y tú también estás subiendo. Está compartiendo lo que tú has estado escuchando esas canciones con otras personas que están solicitando escuchar esa canción. Bueno, tenemos otra pregunta de el mismo usuario de bajo de Maneje, la verdad que le está abriendo el mundo al hilo de las pruebas que hemos comentado.

Vale, nos pregunta cómo simulá is los distintos anchos de banda? Yo puedo dar una recomendación. También hay una aplicación que se llama Slow que te permite hacerlo en el escritorio, pero supuestamente vosotros tendréis algún sistema bastante más complejo. Bueno, tengo una componente que viene con Xcode para Mac, que es un panel de preferencias Sea Network panel así Network conditioner es un componente que viene dentro de Scope, que es el el ide para desarrollar para para Mac y con eso, pues vamos, puedes condicionarlo y afecta a todo el tráfico del equipo.

También hay otras formas hay en Linux y también se que como hay comandos también para ejecutarlo y sin mirarlo, estar limitar de forma artificial, creo hay uno, pero no sé si servirá para la prueba, pero es trisquel. Triskel te permite limitar por aplicación el ancho de banda que consume.

Yo lo veo como no para este caso, desarrollar para un móvil apueste Netamen tu página web y querer comprobar cómo se va a comportar, sobre todo si tu página web es un sitio móvil, por ejemplo, que vaya a utilizarse con dispositivos que estén que estén utilizando conexiones en alambre y ca genos aunque hoy en día puedes tener también tu portátil con un pincho de estos tres y también estará sufriendo un poco Yo creo que es algo bueno para para comprobar un poco la perfumado desarrollo Cómo vaisalael? Tema de porque es bastante importante en el tema de cuando estás cambiando a lo mejor estás conectado a directamente a lo mejor a un punto de acceso en Wifi, luego te cambias a otro y para no perder esa experiencia estáis haciendo experimentos para hacerte sincero, no lo sé se me escapa un poquito esas cosas, no no lo sé A ver, creo que tenemos que había alguna pregunta por aquí más? Sí, sí, creo que había una más Lo tenía yo por aquí Vale, si no nos dicen Ferreras, qué tipo de base de datos se utiliza para almacenar el catálogo de canciones de Spotify? Oye, me parece que tenemos muchos piratillas por aquí Pira Tilo?

Muchas piratillas oye, poema estás totalmente autorizado a pasar la pregunta que te queremos meter en ningún compromiso tampoco no? A ver lo que pasa que también yo trabajo en un sector un poco frontespo No me entero de lo que pasa por debajo Es un poco la magia de desarrollar ahí Tus Weas no tienes por que saben un poco lo que hay por debajo casi que hay mucha hay equipos enteros que se dedican a eso y hacen sus sus pruebas de rendimiento también y utilizan sus tecnologías no sabría decir dadaismo exactamente qué tecnologías utilizan ellos que tipo de base de datos vamos intenta retomarlo porque estamos tirando mucho también de back más que de como desarrollador frontend Duque, que seguramente estés ahí bastante al tanto de la evolución de las distintas sipianos podría este si estáis haciendo algún experimento con alguna concreta de web audio que por ejemplo, en la parte de Crom está bastante avanzada Habéis hecho algún experimen tillo? Sí, ahí hay compañeros que han estado trasteando un poquito porque además también se puede hacer una especie de poste utilizando algunas tecnologías de vamos que están prácticamente en la versión canary de Krom Habilitando a un flag un poco poco condido y todavía muy experimental pero sí, sí que recuerdo por lo menos dos compañeros que han estado haciendo cosillas con el lápiz de audio y tú decías José Manuel, no se si te entendido bien nos hablabas a la hora de desarrollar vosotros como que tenéis una capa todos en Javascript Qué es? Es un poco desde la que empezáis otro a tirar desarrollos con componentes y esto, no?

Sí, es lo mismo que se utiliza para desarrollar las aplicaciones spotify Apps Pues tú utilizas una librería que ha dejado a escribe para poder acceder al contenido de spotify interno, para desarrollar, para coger ya componentes, para coger métodos o lanzar piensa un diagrama un poco de capas tienes la capa más baja que es el dispositivo en sí cada dispositivo tiene una capa por encima pues escrito si es iphone buena tecnología si la otra yéticamásojaba lo que cada uno sea y eso expone, pues una serie de funcionalidades para acceder a bajo nivel a cada quitectura. Por encima de eso hay una capa de javascript que es la que luego nosotros por encima utilizamos todo vamos a ti como desarrollador, no? Sabes tu aplicación, la misma aplicación se puede estar ejecutando dentro del cliente, de escritorio o de una aplicación móvil.

Es tener es un api que se expone, pero es el api es practicamente la misma que el que hay pública para hacer tus aplicaciones. Hay hay algunas otras cosas que no se pone en la pública, pero es bastante similar.

Y tú sabes, yo te debo lanzar la pregunta. Bueno, al menos una de las relaciones está confirmada entre grandes empresas. Veíamos, esta semana trabajarán a la gente de Google y de Mozilla conjuntamente para hacer una misma imprementación en weber tec dice una demostración de este vídeo no ha sido asi.

Pues vosotros spotify es evidente la relación que tiene con Facebook se han sentado ingenieros codo con codo. Hay por ahí otros proyectos, más gente por la oficina o no, yo no puedo decir nada de esta cosa.

Y bien? Estar ya comprometida nada. Yo creo que para despedirte, tio. Agradecer.

Pues nada agradecerte otra vez tu tiempo, tío. Yo creo que ha quedado bastante interesante. Nos hemos entretenido, nos hemos divertido un ratillo, así que Bueno, esperamos compartir experiencia otra vez, orientado a otro tema o con lo que tú manejas el tema móvil nos cuentes. Hay truquillos para desarrollar nuestras aplicaciones?

Te propongo te propongo una José Manuel estaba hablando antes de lo de Wiki y de las distintas implementaciones de webkit que un día nos cuente. Es un poco tu experiencia infernal con algunas cosas de We Kiva para escribir libros.

Vale, pero vamos que smith que hablábamos también son las tablas. O, canascomo estas tablaje te vale que lo que no soporta este navegador final polifilo polifilo se nos ha caído. Adelante. Lo recuperamos. Oye quique has comentado no al principio los eventos que teníamos o no?

Sí, sí, sí, sí.

Arte. Un curso no dirigido a diseñadores, gente que tenga poca experiencia. Es un poco de solarte, la oportunidad en contacto con la tecnología, con la Centerfiel plano, un poco creativo. Cómo podéis entrar? Tema video, audio no sé, una charla o un poco de introducción.

Perdonarnos aquellos que les hayamos dado la patada en la lista de reservas, pero entendíamos que su perfil era era ya un poquillo elevado.

Bueno, que creamos conveniente que había de dejar paso a otra gente del grupo que está recién iniciándose en esto. Qué más? El día javascript mi hardware con Julio Galardón. Montón de demos. Cómo se puede combinar el tema de Rasberry?

En fin, un montón de cosas. Y el viernes 15 te ves y des web aio en el mismo día. Todo el mismo día. Vale, hay más en Barcelona, la final de los Premios del Infolocales. Vale, en la que estaremos presente en la final con una aplicación tenemos aquí otra vez.

Yo me siento identificado. Yo me he caído muchas veces en los fan out macho que nada, Jose Manuel, que muchísimas gracias de verdad por por tu tiempo, por compartir esta experiencia. Porque creo que hay mucha gente que ahora a lo mejor se está planteando pues eso a lo mejor salir de españa porque no ves a mucha alternativa y tal y viendo a la gente como tú que se te ve que estás ahí super agusto y tal, pues seguramente le sirva de inspiración para decir No, mejor nosotros nos encantaría que la gente se quedara aquí. Eso creemos que es una tragedia lo que hay ahora? O sea que tanto talento que hay aquí español lo estén explotando otros países, pero al final las circunstancias de cada uno al final pues si no puedes hacer lo que quieres es a veces yo quiero matizar una cosa y es que hay muchas veces o sea, yo sé que la gente también fuera no está por castigo, es decir, que es un reconocimiento a su trabajo, a sus conocimientos en este sector es el balance.

Este balance está más equilibrado que ningún otro, eso seguro, eso yo creo, pero eso pero supone una oportunidad. O sea, el hecho de compartir con Jose Manuel hoy un poquillo su experiencia tales, tenes la oportunidad de escribirle twits preguntarle de todo cómo se vive, cómo no se vive? Y porque sois a oportunidad es una oportunidad. Yo amo a todo el mundo a ver que lo piense. Lo valore por si es una posibilidad, hay que valorarla por si no se si a alguien se le cruza los cables y quiere salir fuera es una experiencia también al final no tienes por qué quedarte aquí toda la vida.

Es un poco aprender y luego puede volver y puede volver con nuevas ideas, así de hacer algo al final eres español y también echa de menos un poco la tierra y quieres que hay valla. Todo bien allí también? Por supuesto.

Bueno, pues posada, chicos, cerramos con estas reflexiones tan profundas, poner pantalla otra vez el twitter de José Manuel para que lo vea todo el mundo. O, si quiere hacerle alguna preguntilla el tuiteromatriarcado y tal y le surgen preguntas e? Pérez, pérez, pérez, pérez.

Por ahí le tenéis por twitter. Bueno, pues lo dicho un placer haber compartido este este ratillo contigo. O, peleo mucho. Bueno, nos vemos en otra. Muy bien.

Otros a la vista. Hasta la próxima.