FlexJS
360|Flex 2014 Alex Harui Apache Flex PMC Chair May 15, 2014 Agenda
• Who
• Why
• What • Highlights • Demo
• When
• How Who am I?
• Apache Flex Committer and PMC Member
• Apache Flex PMC Chair
• Adobe Employee
• Flex SDK developer for almost 12 years
• 30+ years experience Disclaimer
• Even though I am a full-time Adobe employee and spend my whole day on Apache Flex, everything I say here is just my opinion, and not an official statement on behalf of Adobe Systems Inc., or the Apache Software Foundation, or even the Apache Flex project itself. Why
• Then: • Flash used to be in virtually every browser. • AIR used to run on most computers. • Flex provided excellent developer productivity • IDEs • Code intelligence • Debugger • Write-once run anywhere Why
• Now: • There are browsers that don’t run Flash and devices that AIR cannot target • There are large existing MXML and ActionScript code bases • JavaScript still makes it easy to make hard-to-find mistakes • Some of these JS frameworks makes your code not look like code What == FlexJS
• Use MXML and ActionScript to create either SWFs that run in Flash/AIR or HTML/JS/CSS files that run in browsers (or anywhere HTML/JS/CSS runs) without Flash. • IE8, 9, 10, Chrome, Firefox, Android, IOS • Mobile Apps via Apache Cordova (PhoneGap) • Adobe Common Extensibility Platform (a.k.a. Creative Suite Extensions)
• Bring the advantages of Flex to the JavaScript world Several Approaches
• Emulate Flash Player
• Emulate current Apache Flex SDK
• New framework Emulate Flash Player
• Then you wouldn’t have to change any of your code.
• But that’s a lot of work
• Fidelity/Performance issues • Frame events • Other Flash-isms (embedded fonts, Stage3D)
• But some folks have doing this: • See JooFlash, DartFlash, Shumway Emulate Flex SDK
• Then you’d have to change code wherever you went straight to Flash APIs • useHandCursor, blendModes, filters
• Still some fidelity/performance issues • Weak references, Dictionary, E4x, Embedded Assets
• The existing API has class dependencies that might produce bigger resulting JS files.
• But might be worth a try.