Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AngularJS chez Deezer

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

AngularJS chez Deezer

Avatar for Vladimir Kosmala

Vladimir Kosmala

November 26, 2013
Tweet

Other Decks in Programming

Transcript

  1. ♫ Deezer ? • 30 millions de titres • 1

    Pétaoctet de musique • Servis grâce à 4 points de présence … via l’API
  2. ♫ API sur 3 niveaux • Interne (accès total) •

    Partenaire (stream mp3) • Publique (DRM)
  3. ♫ API - clients Deezer REST API Search / Track

    / Artist / User / Albums / History / Playlist / Editorial / Fans / Followers / Genre Android SDK Javascript SDK iOS SDK
  4. ♫ API Publique developers.deezer.com • Accès à toutes les données

    • Accès aux players • Via le standard REST sur HTTP & HTTPS DZ.api(“/album/42”, function(r){ // musiques, artistes, image DZ.player.playTracks([...]); });
  5. ♫ AngularJS MVC $scope.songs = [ {artist: “U2”, title: “New

    Year’s Day”}, ... ]; <ul><li ng-repeat=”song in songs”> {{song.title}} - {{song.artist}} </li><ul>
  6. ♫ Deezer Light - AngularJS DZ.Event.subscribe('current_track', function(e) { $scope.current_track =

    e.track; $scope.$apply(); DZ.api('/track/' + e.track.id, function(response) { $scope.current_album = response.album; $scope.$apply(); }); });
  7. ♫ Deezer Light - jQ / Ng $('#cover').attr('src', response.album.cover); VS

    $scope.current_album = response.album; • Plusieurs vues depuis cette données: • Background blur en CSS3 • Favicon via un service • Modulaire, maintenable, bref MVC :-)
  8. ♫ Deezer Light - AngularJS // 92 secondes -> 1:32

    angapp.filter('humain_time', function() { return function(time) { if (time && time > 0.0) { var sec = parseInt(time % 60); return parseInt(time / 60) + ':' + (sec < 10 ? '0' + sec : sec); } else return '0:00'; }; });
  9. ♫ Plan ➔ Introduction API ➔ Deezer Light “jQuery” ➔

    Conversion à AngularJS ➔ Allez plus loin
  10. ♫ AngularJS • HTML5 Application • Chromium • NodeJS avec

    Deezer Lib C++ => Application Desktop HTML5