forge - devcon 2016: implementing rich applications in the browser

51
Sebastian Dunkel Software Engineer Implementing Rich Applications in the Browser

Upload: autodesk

Post on 15-Apr-2017

108 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Forge - DevCon 2016: Implementing Rich Applications in the Browser

Sebastian Dunkel

Software Engineer

Implementing Rich Applications in the Browser

Page 2: Forge - DevCon 2016: Implementing Rich Applications in the Browser

Rich Cloud-Based Web Applications

• The next wave of software for a connected world is coming

• Applications

• Experiences

• Platforms

• Accessible, integrated, collaborative, professional and disruptive

Page 3: Forge - DevCon 2016: Implementing Rich Applications in the Browser

Gmail's home page as it looked on March 31, 2004, shortly before the service launched

Page 4: Forge - DevCon 2016: Implementing Rich Applications in the Browser
Page 5: Forge - DevCon 2016: Implementing Rich Applications in the Browser

maps.google.com

Page 6: Forge - DevCon 2016: Implementing Rich Applications in the Browser

Sketchfab.com

Page 7: Forge - DevCon 2016: Implementing Rich Applications in the Browser

Tinkercad.com

Page 8: Forge - DevCon 2016: Implementing Rich Applications in the Browser

beta.projectleopard.com

Page 9: Forge - DevCon 2016: Implementing Rich Applications in the Browser

sway.com

Page 10: Forge - DevCon 2016: Implementing Rich Applications in the Browser

Why in the Cloud?

• Scalability

• Collaboration• data at the center

Page 11: Forge - DevCon 2016: Implementing Rich Applications in the Browser

Why in the Browser?

• Device and operating system independent• just a browser

• Easy deployment and sharing• no installation, no updates

• just a link

Page 12: Forge - DevCon 2016: Implementing Rich Applications in the Browser

redmonk.com

Programming Language Ranking

# projects on Github

# tags on

Stack Overflo

w

Page 13: Forge - DevCon 2016: Implementing Rich Applications in the Browser

Programming Language Ranking

# projects on Github

# tags on

Stack Overflo

w

redmonk.com

Page 14: Forge - DevCon 2016: Implementing Rich Applications in the Browser

JavaScript Domination

# projects on Github

# tags on

Stack Overflo

w

redmonk.com

Page 15: Forge - DevCon 2016: Implementing Rich Applications in the Browser

Challenges: Platform

Limitations of the browser platform

• JavaScript / HTML only

• limited access to host system

• diverse behavior across browsers

Page 16: Forge - DevCon 2016: Implementing Rich Applications in the Browser

Challenges: Technology

Where does the client technology come from?

• legacy code is• Java, C++, C#, …

• often locked in desktop applications

Page 17: Forge - DevCon 2016: Implementing Rich Applications in the Browser

Challenges: Technology

Where does the client technology come from?

• legacy code is• Java, C++, C#, …

• often locked in desktop applications

• Libraries and Frameworks might not be available• there is no Qt, geometry engine, ...

Page 18: Forge - DevCon 2016: Implementing Rich Applications in the Browser

Challenges: Distributed Compute

How to distribute work between browser and

cloud?

• latency and bandwidth

• cost and scalability

• synchronization

Page 19: Forge - DevCon 2016: Implementing Rich Applications in the Browser

Challenges: Development

Development is different

• Communication is asynchronous and unreliable

• JavaScript is not strongly typed• developing large applications can be tricky

Page 20: Forge - DevCon 2016: Implementing Rich Applications in the Browser

Easy Solutions ?

Why not simply employ desktop virtualization?• You will miss a lot of the value!

Page 21: Forge - DevCon 2016: Implementing Rich Applications in the Browser

Easy Solutions ?

Why not simply employ desktop virtualization?• You will miss a lot of the value!

Embrace the web, accept the challenge!

Page 22: Forge - DevCon 2016: Implementing Rich Applications in the Browser

Thick Clients and Thin Services

• User experience and interactivity

• Costs for service provider

• Client hardware is available and capable

Page 23: Forge - DevCon 2016: Implementing Rich Applications in the Browser

Thick Clients and Thin Services

• Services with discrete tasks

• Better reusability

• Think platform!

Page 24: Forge - DevCon 2016: Implementing Rich Applications in the Browser

Project Lynx IDX

Create amazing apps, services, and product experiences using Autodesk Technologies

Create

new App

Design the

Experience

Add

Services

Inspect

Code

Publish

Your App

Page 25: Forge - DevCon 2016: Implementing Rich Applications in the Browser

Project Lynx IDX: Design and manufacture

Page 26: Forge - DevCon 2016: Implementing Rich Applications in the Browser

Project Lynx IDX: Simulation Services

Page 27: Forge - DevCon 2016: Implementing Rich Applications in the Browser

Project Lynx IDX: Configurators

Page 28: Forge - DevCon 2016: Implementing Rich Applications in the Browser

Project Lynx IDX: Configurators

Page 29: Forge - DevCon 2016: Implementing Rich Applications in the Browser

Project Leopard: Fusion 360 in the Browser

• Fully-fledged CAD in the browser• with real-time collaboration

Page 30: Forge - DevCon 2016: Implementing Rich Applications in the Browser

Project Leopard: Fusion 360 in the Browser

• Fully-fledged CAD in the browser• with real-time collaboration

• Built upon Forge platform• technology components

Page 31: Forge - DevCon 2016: Implementing Rich Applications in the Browser

Project Leopard: Fusion 360 in the Browser

• Fully-fledged CAD in the browser• with real-time collaboration

• Built upon Forge platform• technology components

• Features hybrid compute• client and cloud side

Page 32: Forge - DevCon 2016: Implementing Rich Applications in the Browser

Project Leopard: Client vs Server

Combine client side...• sketching• assemblies• visualization

...with server side compute• photo realistic rendering• geometry processing

Page 33: Forge - DevCon 2016: Implementing Rich Applications in the Browser

Project Leopard: Client vs Server

Combine client side...• sketching• assemblies• visualization

...with server side compute• photo realistic rendering• geometry processing

Client is not just the UI of some server!

Page 34: Forge - DevCon 2016: Implementing Rich Applications in the Browser

© 2016 Autodesk

Project Leopard videoapprox. 2 min

Project Leopard: Fusion 360 in the Browser

Page 35: Forge - DevCon 2016: Implementing Rich Applications in the Browser

Project Leopard: Client vs Server

• Browser clients and cloud servers jointly operate on the same data

Page 36: Forge - DevCon 2016: Implementing Rich Applications in the Browser

Project Lynx IDX & Leopard: Collaborative Design

Page 37: Forge - DevCon 2016: Implementing Rich Applications in the Browser

Lessons learned...

… while implementing rich applications in the

browser

Building large scale applications is challenging, but possible and worth the effort

Page 38: Forge - DevCon 2016: Implementing Rich Applications in the Browser

Technology Stack: Don’t reinvent the wheel

• Pick from the web’s vibrant ecosystem

Page 39: Forge - DevCon 2016: Implementing Rich Applications in the Browser

Coding Best Practices

• Strict commenting including types

• JavaScript is your friend• native browser support (development, debugging)• transcompiler is no silver bullet

• Write JavaScript like C++ code!• object-oriented design• performance matters

Page 40: Forge - DevCon 2016: Implementing Rich Applications in the Browser

Project Leopard: Performance Optimization

• Heavy profiling• JavaScript is fast [in most cases]

• Reduce pressure on garbage collector• Object pooling and preallocation

Page 41: Forge - DevCon 2016: Implementing Rich Applications in the Browser

Project Leopard: Performance Optimization

• Help the JIT compiler • Understand how your code gets optimized

• Direct canvas rendering• Avoid slow DOM/CSS

Page 42: Forge - DevCon 2016: Implementing Rich Applications in the Browser

Reality Check

Your application has all ingredients for success• Great idea

• Compelling design

• Attractive business model

• State of the art technology

But do users really love it?

Page 43: Forge - DevCon 2016: Implementing Rich Applications in the Browser

User feedback

Always subjective, selective and not representative!

Page 44: Forge - DevCon 2016: Implementing Rich Applications in the Browser

Analytics

• measure user experience and usage

• better understand the user

• from the landing page to logout screen

Page 45: Forge - DevCon 2016: Implementing Rich Applications in the Browser

Analytics

• Event history

and statistics

• Cohort analysis

• AB testingA B

24% 76%

Page 46: Forge - DevCon 2016: Implementing Rich Applications in the Browser

Conclusion

• Professional applications in the browser are possible with today’s technology

• Cloud/web is not a feature, it is a paradigm

Page 47: Forge - DevCon 2016: Implementing Rich Applications in the Browser

Conclusion

• The browser does more than UI• hybrid client + server side compute

• Use analytics and iterate• steadily improve the product based on user data

Page 48: Forge - DevCon 2016: Implementing Rich Applications in the Browser

Conclusion

Page 49: Forge - DevCon 2016: Implementing Rich Applications in the Browser

Conclusion

Embrace webJavaScript is capable!

the browser is the new OS

Page 50: Forge - DevCon 2016: Implementing Rich Applications in the Browser

Project Lynx Team @ Forge DevCon Expo

Meet us at our expo table

Page 51: Forge - DevCon 2016: Implementing Rich Applications in the Browser