SlideShare una empresa de Scribd logo
1 de 77
Descargar para leer sin conexión
embedjs
                            dojoconf 2011


                              Nikolai Onken
                                 uxebu



Friday, September 16, 11
@nonken



Friday, September 16, 11
Friday, September 16, 11
We open the mobile web.




Friday, September 16, 11
How you totally should write code




Friday, September 16, 11
Lets look at




Friday, September 16, 11
Lets look at




                   1. embedjs




Friday, September 16, 11
Lets look at




                   1. embedjs
                   2. embedjs features




Friday, September 16, 11
embedjs




Friday, September 16, 11
History




Friday, September 16, 11
Friday, September 16, 11
Objective-C




Friday, September 16, 11
Objective-C   Symbian C




Friday, September 16, 11
Objective-C   Symbian C   Java




Friday, September 16, 11
Objective-C          Symbian C   Java




                           Java


Friday, September 16, 11
Objective-C          Symbian C   Java




                           Java     .NET


Friday, September 16, 11
Objective-C          Symbian C   Java




                           Java     .NET      ...
Friday, September 16, 11
Friday, September 16, 11
Friday, September 16, 11
Friday, September 16, 11
Friday, September 16, 11
Friday, September 16, 11
Friday, September 16, 11
Friday, September 16, 11
Friday, September 16, 11
Friday, September 16, 11
http://www.flickr.com/photos/tacoekkel/25538919/

Friday, September 16, 11
http://www.flickr.com/photos/hugo90/3916794427/

Friday, September 16, 11
Friday, September 16, 11
Friday, September 16, 11
Friday, September 16, 11
Friday, September 16, 11
Friday, September 16, 11
At Runtime
                           At Build Time




Friday, September 16, 11
Shrink and customize your API




Friday, September 16, 11
Shrink and customize your API




                           25kB


Friday, September 16, 11
Shrink and customize your API




                           25kB


Friday, September 16, 11
Shrink and customize your API




                           25kB                   8kB


Friday, September 16, 11
Simple queries > simple library function
                                Only ".class" and "#id" queries




                                           vs.




Friday, September 16, 11
Simple queries > simple library function
                                Only ".class" and "#id" queries




                                           vs.

       Full fledged queries > Full blown library function



Friday, September 16, 11
13 LOC
                     Simple queries > simple library function
                                Only ".class" and "#id" queries




                                           vs.

       Full fledged queries > Full blown library function
                           ~200 LOC


Friday, September 16, 11
Friday, September 16, 11
dojo-blackberry.js




Friday, September 16, 11
dojo-blackberry.js

                           dojo-blackberry46.js




Friday, September 16, 11
dojo-blackberry.js

                           dojo-blackberry46.js

                           dojo-nokia-wrt.js




Friday, September 16, 11
dojo-blackberry.js

                           dojo-blackberry46.js

                           dojo-nokia-wrt.js

                           dojo-opera.js




Friday, September 16, 11
dojo-blackberry.js

                           dojo-blackberry46.js

                           dojo-nokia-wrt.js

                           dojo-opera.js

                           dojo-webkit-mobile.js




Friday, September 16, 11
dojo-blackberry.js

                           dojo-blackberry46.js

                           dojo-nokia-wrt.js

                           dojo-opera.js

                           dojo-webkit-mobile.js

                           dojo-windows-mobile.js


Friday, September 16, 11
Perfect for when you




                 • Know the platform you are targeting
                 • Are developing apps using PhoneGap




Friday, September 16, 11
embedjs features




Friday, September 16, 11
Embedjs builds vs. feature detection
                                    -
                             mwuahahaha


                 • We need: AMD compatible modules
                 • We need: has.js (Peters talk)
                 • We need: require ‘feature’ plugin



Friday, September 16, 11
Meet embedjs ‘features’
                           building cross device apps




Friday, September 16, 11
Work with features and consistent APIs
                              Don’t branch your code




Friday, September 16, 11
Not cool




Friday, September 16, 11
Not cool




Friday, September 16, 11
Works:




Friday, September 16, 11
Works:




Friday, September 16, 11
Works:




Friday, September 16, 11
Works:




Friday, September 16, 11
vs




Friday, September 16, 11
Friday, September 16, 11
Implementing features is simple:




Friday, September 16, 11
Defining features is super simple:




Friday, September 16, 11
Requiring features is even simpler:




Friday, September 16, 11
Two ways you can run a build




                 • Ship everything and do feature tests at
                           runtime
                 • Make targeted builds using specific
                           implementations




Friday, September 16, 11
Runtime detection:




                           ./buildj.sh name=../../src/js/main out=../../debug/js/main.js baseUrl=../../src/js/
                            paths.implementations=implementations/dynamic paths.feature=lib/feature



Friday, September 16, 11
Targeted build:




                           ./buildj.sh name=../../src/js/main out=../../debug/js/main.js baseUrl=../../src/js/
                             paths.implementations=implementations/touch paths.feature=lib/feature



Friday, September 16, 11
Lets see this in the browser




Friday, September 16, 11
Does it work in real life?




                 • EmbedJS in publishing




Friday, September 16, 11
Where to get it




                 • http://embedjs.org
                 • http://github.com/uxebu/embedjs (AMD branch)




Friday, September 16, 11
The future of embedjs



                 • Lots of highly optimized CommonJS
                           compatible modules
                 • Mobile optimized features (components)
                 • Development patterns / paradigms for
                           cross device development



Friday, September 16, 11
Friday, September 16, 11
Friday, September 16, 11
Friday, September 16, 11
Dojo.beer tonight




Friday, September 16, 11
Questions?




Friday, September 16, 11
@nonken


                           http://uxebu.com - @uxebu




Friday, September 16, 11

Más contenido relacionado

Similar a Embedjs

PyJS intro
PyJS introPyJS intro
PyJS introDemix
 
我为何使用
我为何使用我为何使用
我为何使用Gump Law
 
Managing Databases In A DevOps Environment
Managing Databases In A DevOps EnvironmentManaging Databases In A DevOps Environment
Managing Databases In A DevOps EnvironmentRobert Treat
 
Slaying Bugs with Gradle and Jenkins
Slaying Bugs with Gradle and JenkinsSlaying Bugs with Gradle and Jenkins
Slaying Bugs with Gradle and JenkinsDavid Kay
 
Cross platform design
Cross platform designCross platform design
Cross platform designrainer3
 
Calabash - Karl and Jonas
Calabash - Karl and JonasCalabash - Karl and Jonas
Calabash - Karl and JonasXamarin
 
Architecture: ember.js and AngularJS
Architecture: ember.js and AngularJSArchitecture: ember.js and AngularJS
Architecture: ember.js and AngularJSlrdesign
 
Enterprise rails hosting 3 ways to scale - 2011-10
Enterprise rails hosting   3 ways to scale - 2011-10 Enterprise rails hosting   3 ways to scale - 2011-10
Enterprise rails hosting 3 ways to scale - 2011-10 Avarteq
 
Vladimir Oane
Vladimir OaneVladimir Oane
Vladimir Oaneevensys
 
Some simple tips for front-end performance in WordPress
Some simple tips for front-end performance in WordPressSome simple tips for front-end performance in WordPress
Some simple tips for front-end performance in WordPressiparr
 
Fast & Furious: Speed in the Opera browser
Fast & Furious: Speed in the Opera browserFast & Furious: Speed in the Opera browser
Fast & Furious: Speed in the Opera browserAndreas Bovens
 
Dancing App Stores - Android Open 2011
Dancing App Stores - Android Open 2011Dancing App Stores - Android Open 2011
Dancing App Stores - Android Open 2011Jesse Vincent
 
Collaborating, Presenting and Publishing in your classroom - New Pedagogy
Collaborating, Presenting and Publishing in your classroom - New Pedagogy Collaborating, Presenting and Publishing in your classroom - New Pedagogy
Collaborating, Presenting and Publishing in your classroom - New Pedagogy Mark Woolley
 
Designing and Building for the Mobile Web (2011)
Designing and Building for the Mobile Web (2011)Designing and Building for the Mobile Web (2011)
Designing and Building for the Mobile Web (2011)Domain7
 
Multiplatform, Promises and HTML5
Multiplatform, Promises and HTML5Multiplatform, Promises and HTML5
Multiplatform, Promises and HTML5C4Media
 
Breaking the Mobile Web with HTML5
Breaking the Mobile Web with HTML5 Breaking the Mobile Web with HTML5
Breaking the Mobile Web with HTML5 Maximiliano Firtman
 

Similar a Embedjs (20)

PyJS intro
PyJS introPyJS intro
PyJS intro
 
我为何使用
我为何使用我为何使用
我为何使用
 
Managing Databases In A DevOps Environment
Managing Databases In A DevOps EnvironmentManaging Databases In A DevOps Environment
Managing Databases In A DevOps Environment
 
Slaying Bugs with Gradle and Jenkins
Slaying Bugs with Gradle and JenkinsSlaying Bugs with Gradle and Jenkins
Slaying Bugs with Gradle and Jenkins
 
Cross platform design
Cross platform designCross platform design
Cross platform design
 
Calabash - Karl and Jonas
Calabash - Karl and JonasCalabash - Karl and Jonas
Calabash - Karl and Jonas
 
Community Works! Pfcongres 2011
Community Works! Pfcongres 2011Community Works! Pfcongres 2011
Community Works! Pfcongres 2011
 
Cartoset
CartosetCartoset
Cartoset
 
Introducing Mulberry
Introducing MulberryIntroducing Mulberry
Introducing Mulberry
 
Architecture: ember.js and AngularJS
Architecture: ember.js and AngularJSArchitecture: ember.js and AngularJS
Architecture: ember.js and AngularJS
 
Enterprise rails hosting 3 ways to scale - 2011-10
Enterprise rails hosting   3 ways to scale - 2011-10 Enterprise rails hosting   3 ways to scale - 2011-10
Enterprise rails hosting 3 ways to scale - 2011-10
 
Vladimir Oane
Vladimir OaneVladimir Oane
Vladimir Oane
 
Some simple tips for front-end performance in WordPress
Some simple tips for front-end performance in WordPressSome simple tips for front-end performance in WordPress
Some simple tips for front-end performance in WordPress
 
Fast & Furious: Speed in the Opera browser
Fast & Furious: Speed in the Opera browserFast & Furious: Speed in the Opera browser
Fast & Furious: Speed in the Opera browser
 
Ruby off Rails
Ruby off RailsRuby off Rails
Ruby off Rails
 
Dancing App Stores - Android Open 2011
Dancing App Stores - Android Open 2011Dancing App Stores - Android Open 2011
Dancing App Stores - Android Open 2011
 
Collaborating, Presenting and Publishing in your classroom - New Pedagogy
Collaborating, Presenting and Publishing in your classroom - New Pedagogy Collaborating, Presenting and Publishing in your classroom - New Pedagogy
Collaborating, Presenting and Publishing in your classroom - New Pedagogy
 
Designing and Building for the Mobile Web (2011)
Designing and Building for the Mobile Web (2011)Designing and Building for the Mobile Web (2011)
Designing and Building for the Mobile Web (2011)
 
Multiplatform, Promises and HTML5
Multiplatform, Promises and HTML5Multiplatform, Promises and HTML5
Multiplatform, Promises and HTML5
 
Breaking the Mobile Web with HTML5
Breaking the Mobile Web with HTML5 Breaking the Mobile Web with HTML5
Breaking the Mobile Web with HTML5
 

Más de Nikolai Onken

Running a cloud-based developer platform
Running a cloud-based developer platformRunning a cloud-based developer platform
Running a cloud-based developer platformNikolai Onken
 
The Art Of Practicing - WebSummit 2014
The Art Of Practicing - WebSummit 2014The Art Of Practicing - WebSummit 2014
The Art Of Practicing - WebSummit 2014Nikolai Onken
 
The Hitchhiker's guide to mobile development
The Hitchhiker's guide to mobile developmentThe Hitchhiker's guide to mobile development
The Hitchhiker's guide to mobile developmentNikolai Onken
 
Human APIs - expanding the mobile web or are robots coming to JavaScript?
Human APIs - expanding the mobile web or are robots coming to JavaScript? Human APIs - expanding the mobile web or are robots coming to JavaScript?
Human APIs - expanding the mobile web or are robots coming to JavaScript? Nikolai Onken
 
Human APIs, the future of mobile
Human APIs, the future of mobileHuman APIs, the future of mobile
Human APIs, the future of mobileNikolai Onken
 
Mobile JavaScript Development - QCon 2010
Mobile JavaScript Development - QCon 2010Mobile JavaScript Development - QCon 2010
Mobile JavaScript Development - QCon 2010Nikolai Onken
 
Mobile cross platform development with Dojo
Mobile cross platform development with DojoMobile cross platform development with Dojo
Mobile cross platform development with DojoNikolai Onken
 
Dojo, from scratch to result
Dojo, from scratch to resultDojo, from scratch to result
Dojo, from scratch to resultNikolai Onken
 
EventNinja, Dojo and mobile
EventNinja, Dojo and mobileEventNinja, Dojo and mobile
EventNinja, Dojo and mobileNikolai Onken
 
RIA/UI development with Dojo
RIA/UI development with DojoRIA/UI development with Dojo
RIA/UI development with DojoNikolai Onken
 

Más de Nikolai Onken (16)

Running a cloud-based developer platform
Running a cloud-based developer platformRunning a cloud-based developer platform
Running a cloud-based developer platform
 
The Art Of Practicing - WebSummit 2014
The Art Of Practicing - WebSummit 2014The Art Of Practicing - WebSummit 2014
The Art Of Practicing - WebSummit 2014
 
The Hitchhiker's guide to mobile development
The Hitchhiker's guide to mobile developmentThe Hitchhiker's guide to mobile development
The Hitchhiker's guide to mobile development
 
Human APIs
Human APIsHuman APIs
Human APIs
 
Html5 Development
Html5 DevelopmentHtml5 Development
Html5 Development
 
Html5 Apps
Html5 AppsHtml5 Apps
Html5 Apps
 
Human APIs - expanding the mobile web or are robots coming to JavaScript?
Human APIs - expanding the mobile web or are robots coming to JavaScript? Human APIs - expanding the mobile web or are robots coming to JavaScript?
Human APIs - expanding the mobile web or are robots coming to JavaScript?
 
Robotic JavaScript
Robotic JavaScriptRobotic JavaScript
Robotic JavaScript
 
Human APIs, the future of mobile
Human APIs, the future of mobileHuman APIs, the future of mobile
Human APIs, the future of mobile
 
Mobile JavaScript Development - QCon 2010
Mobile JavaScript Development - QCon 2010Mobile JavaScript Development - QCon 2010
Mobile JavaScript Development - QCon 2010
 
Mobile cross platform development with Dojo
Mobile cross platform development with DojoMobile cross platform development with Dojo
Mobile cross platform development with Dojo
 
Dojo, from scratch to result
Dojo, from scratch to resultDojo, from scratch to result
Dojo, from scratch to result
 
EventNinja, Dojo and mobile
EventNinja, Dojo and mobileEventNinja, Dojo and mobile
EventNinja, Dojo and mobile
 
Dojo Introduction
Dojo IntroductionDojo Introduction
Dojo Introduction
 
Dojo and Adobe AIR
Dojo and Adobe AIRDojo and Adobe AIR
Dojo and Adobe AIR
 
RIA/UI development with Dojo
RIA/UI development with DojoRIA/UI development with Dojo
RIA/UI development with Dojo
 

Último

TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 

Último (20)

TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 

Embedjs