2. Who we are?
Name
• Wuaki TV, S.L.
Founded
• July 2009
• Service Launched 2011
HQ
• Barcelona, Spain
Employees
• 65 (10 nationalities)
Description
• Premium TVOD y SVOD
• Multiplatform Service (TV,
PC, Tablets, consoles, etc.)
Contents
Partners
• Walt Disney, Warner
Bros, Paramount, Sony
Pictures, NBC-Universal, 20
Th Century Fox etc..
Some Data
Hollywood Studios Partners
• Registered users: 900K
• Available Titles: 10,000
Hardware Manufacturers Partners
2
3. From Barcelona to the world!
HQ en Barcelona
International Expansion 2013-2015
3
5. Wuaki.tv: Smart TV typical stack
The typical Wuaki.tv app for a Smart TV consists of:
1.
2.
3.
4.
5.
6.
HTML
JS
CSS
Player with DRM Support
Keyboard Mapping
Integration with Wuaki.tv API
So why is it SO difficult?
5
9. Wuaki.tv Approach
• We started creating 1 app for each manufacturer. We ended up with 7 apps to
maintain.
• We learned the hard way. The apps work, but need a different solution.
• We had to reduce development cost, maintenance cost and time to market. Each
year SDKs change.
• We decided to create our “GENERIC APP”
• We know that there are parts of the app we control and other we do not.
9
12. Wuaki.tv: Testing, building and deploying our app
To ensure quality in applications is necessary to pass them for a process of testing.
This process consists in three types of testing:
1. Unit testing to design robust software components (Jasmine)
1. Automated Integration Tests to detect regressions (things that used to work
but have stopped unexpectedly). (Karma)
1. Manual tests to find failures (things dont work as expected).
12
13. Wuaki.tv: Testing, building and deploying our app
In order to build the app we use Jenkins. Karma can easily be integrated with it. We
follow CI methodology.
We deploy our app using capistrano.
We Check Code Quality with CodeClimate (as of 24th October 2013)
13
We want to use MVC and Backbone and AngularJS allows us to do so, but in different manners.jQuery5 to manage the elements on the page and also Ajax. RequireJS6 because allows downloading javascript files asynchronously avoiding the rest of the page content is blocked until the js loaded finish. It also optimizes files joining them into one so are needed fewer requests to the server. Marionette7 to simplify the construction of the application scaling it with modular event driven architecture. This allows us an easy way to modify the application being so flexible as we need. Also gives nested views and layouts within visual regions and much more benefits. Handlebars8 because let us build semantic templates effectively with no frustration so we save many lines of code. Lodash9 as an alternative to underscore because gives customs builds and additional features. Grunt10 to automate repetitive tasks as compilation, unit testing…
Tribble was launched to have LG on the UK working. We are now certifying the app.On the image is shown how was the application modularized following the MCV architecture and also our structure proposed at the beginning of the document to have the differences between devices separated from the common code. So, on packages we’ll find the specific from LG and on future the rest of devices.