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

AngularJS chez Deezer

AngularJS chez Deezer

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