Hyperloop - new frontiers 
c.svensson@cgi.com, @connysvensson 
dev:mobile 22 May 2014 
Conny Svensson 
Managing Architect and Strategist Mobility
Number of developers 
580 000
Number of Cloud API calls 
28 000 000 000
Fortune 100 companies using Titanium 
68% of F100
Appcelerator offerings
Titanium Studio IDE 
• Support for iOS, Android, BlackBerry, Tizen, Denso 
and mobile web with over 5,000 device and mobile OS APIs 
• Single JavaScript codebase 
• On-device debugger, live UI editor, code analyzer 
and performance profiler
Analytics 
• View the live health and availability of all the mobile apps in real-time 
• Real-time activity reporting for mobile projects including 
pre-deployment readiness and post-deployment success 
• Historical rolling timeframe reporting with trend analysis 
• Monitor end-user exceptions and crashes as they happen
API 
• API SDK provides for rapid development of custom APIs to 
mobilize any backend data source 
• Support for SAP, Oracle, Salesforce.com, Microsoft SharePoint 
and Microsoft Dynamics 
• Connectors to popular applications like LinkedIn, Yammer, 
PayPal, DropBox, Google Calendar, Facebook, Twitter, and many others 
• Ready access to common mobile services including push notification, 
photo storage, authentication and key value pair store
What’s next?
Ti.Next (Titanium 4.0) 
•Significant re-architecture of Titanium 
•(Mostly) same API 
•Incredible performance boost and reduction in app size 
•Improved Extensibility 
•Windows support
Ti.Next Foundation 
•Foundation of Ti.Next is a new compiler, built from the 
ground up for performance, extensibility 
•Open Source under Apache Public License v2 
•http://github.com/appcelerator/hyperloop 
•Over a year of R&D already on Hyperloop (4th generation 
compiler under development)
Hyperloop integrations 
•Titanium traditional (all-in) 
•Titanium in Native 
•Native in Titanium 
•Titanium in other frameworks (PhoneGap, Xamarin) 
•Pure Native (Hyperloop only)
What is Hyperloop? 
•Hyperloop turns JS code into native code by mapping the 
native APIs into JS syntax 
•Hyperloop will be (mainly) used by Titanium platform 
developers to build Titanium APIs or modules 
•A more traditional compiler architecture: 
– Front-end (parse and transform JS AST) 
– Back-end (generate native, platform specific code) 
– +Metabase (metadata about target platform)
Hyperloop iOS example 
! 
! 
@import('Foundation'); 
@import('UIKit'); 
! 
var 
view 
= 
new 
UIView(CGRectMake(100,100,50,50)); 
view.backgroundColor 
= 
UIColor.redColor(); 
var 
window 
= 
new 
UIWindow(); 
window.addSubview(view); 
window.makeKeyAndVisible()
Hyperloop Front-end 
•Front-end uses UglifyJS to turn JS code into an AST and 
then perform transformations on the code to make it more 
suitable for native generation
Example of Front-end translations 
! 
Foo.bar 
= 
1 
Foo_set_bar(1) 
! 
Foo.bar() 
Foo_bar() 
! 
var 
foo 
= 
new 
Bar() 
Bar_constructor() 
! 
foo.bar(1) 
Bar_bar(foo, 
1)
Hyperloop Back-end 
•Back-end generates C/C++ code for target platform 
•~90% of the back-end code is reusable for all platforms 
supported 
•10% is basically specific syntax for things like calling 
methods, properties, etc. and other platform specific 
nuances (differences in file extensions, etc.)
Hyperloop Metabase 
•Defined platform APIs in JSON format 
•Automatically generate for all platforms supported 
•Large tree of all supported APIs (classes, functions, types, etc.) 
•Supports both C and platform specific languages (Objective-C, 
Java, etc.) 
•Uses Clang (+platform specific tools) to generate 
•Rich metadata about the platform
Hyperloop Metabase iOS example
Hyperloop Metabase Android example
Hyperloop JS engine 
•Unified JS engine for all platforms based on 
JavaScriptCore 
– iOS 7.0+ comes with engine installed 
– Port for Windows and Android 
! 
•Performance testing showed JSC was basically native 
speed
Hyperloop code rewriting 
•Huge blocks of code will be optimized into pure native 
code generation 
•No penalty for “JS bridge” like in current Titanium 
•JS engine runs on main UI Thread: 
– No thread context switching / creation overhead 
– Will provide background worker for asynchronous non-blocking 
tasks
The proof is in the pudding! 
DEMO
Ti.Next 
•Titanium APIs are being re-written using Hyperloop JS 
syntax and compiled using Hyperloop compiler 
•Titanium APIs (and native APIs) will be first class JS objects 
•Goal is to generate API interfaces, test cases from API 
documentation 
•Full Node.js require implementation 
•Will likely deprecate platform specific APIs and provide a 
compatibility module 
•Likely will reduce size of overall API 
•Titanium APIs will use module design
Ti.Next modules 
•Migration path for modules (still trying to determine) 
•Packaging likely will change and modules will be 
expressed in Hyperloop syntax 
•Possibility of a module compatibility shim
Welcome aboard! 
c.svensson@cgi.com, @connysvensson

Hyperloop

  • 1.
    Hyperloop - newfrontiers c.svensson@cgi.com, @connysvensson dev:mobile 22 May 2014 Conny Svensson Managing Architect and Strategist Mobility
  • 3.
  • 4.
    Number of CloudAPI calls 28 000 000 000
  • 5.
    Fortune 100 companiesusing Titanium 68% of F100
  • 6.
  • 7.
    Titanium Studio IDE • Support for iOS, Android, BlackBerry, Tizen, Denso and mobile web with over 5,000 device and mobile OS APIs • Single JavaScript codebase • On-device debugger, live UI editor, code analyzer and performance profiler
  • 8.
    Analytics • Viewthe live health and availability of all the mobile apps in real-time • Real-time activity reporting for mobile projects including pre-deployment readiness and post-deployment success • Historical rolling timeframe reporting with trend analysis • Monitor end-user exceptions and crashes as they happen
  • 9.
    API • APISDK provides for rapid development of custom APIs to mobilize any backend data source • Support for SAP, Oracle, Salesforce.com, Microsoft SharePoint and Microsoft Dynamics • Connectors to popular applications like LinkedIn, Yammer, PayPal, DropBox, Google Calendar, Facebook, Twitter, and many others • Ready access to common mobile services including push notification, photo storage, authentication and key value pair store
  • 10.
  • 11.
    Ti.Next (Titanium 4.0) •Significant re-architecture of Titanium •(Mostly) same API •Incredible performance boost and reduction in app size •Improved Extensibility •Windows support
  • 12.
    Ti.Next Foundation •Foundationof Ti.Next is a new compiler, built from the ground up for performance, extensibility •Open Source under Apache Public License v2 •http://github.com/appcelerator/hyperloop •Over a year of R&D already on Hyperloop (4th generation compiler under development)
  • 13.
    Hyperloop integrations •Titaniumtraditional (all-in) •Titanium in Native •Native in Titanium •Titanium in other frameworks (PhoneGap, Xamarin) •Pure Native (Hyperloop only)
  • 14.
    What is Hyperloop? •Hyperloop turns JS code into native code by mapping the native APIs into JS syntax •Hyperloop will be (mainly) used by Titanium platform developers to build Titanium APIs or modules •A more traditional compiler architecture: – Front-end (parse and transform JS AST) – Back-end (generate native, platform specific code) – +Metabase (metadata about target platform)
  • 15.
    Hyperloop iOS example ! ! @import('Foundation'); @import('UIKit'); ! var view = new UIView(CGRectMake(100,100,50,50)); view.backgroundColor = UIColor.redColor(); var window = new UIWindow(); window.addSubview(view); window.makeKeyAndVisible()
  • 16.
    Hyperloop Front-end •Front-enduses UglifyJS to turn JS code into an AST and then perform transformations on the code to make it more suitable for native generation
  • 17.
    Example of Front-endtranslations ! Foo.bar = 1 Foo_set_bar(1) ! Foo.bar() Foo_bar() ! var foo = new Bar() Bar_constructor() ! foo.bar(1) Bar_bar(foo, 1)
  • 18.
    Hyperloop Back-end •Back-endgenerates C/C++ code for target platform •~90% of the back-end code is reusable for all platforms supported •10% is basically specific syntax for things like calling methods, properties, etc. and other platform specific nuances (differences in file extensions, etc.)
  • 19.
    Hyperloop Metabase •Definedplatform APIs in JSON format •Automatically generate for all platforms supported •Large tree of all supported APIs (classes, functions, types, etc.) •Supports both C and platform specific languages (Objective-C, Java, etc.) •Uses Clang (+platform specific tools) to generate •Rich metadata about the platform
  • 20.
  • 21.
  • 22.
    Hyperloop JS engine •Unified JS engine for all platforms based on JavaScriptCore – iOS 7.0+ comes with engine installed – Port for Windows and Android ! •Performance testing showed JSC was basically native speed
  • 23.
    Hyperloop code rewriting •Huge blocks of code will be optimized into pure native code generation •No penalty for “JS bridge” like in current Titanium •JS engine runs on main UI Thread: – No thread context switching / creation overhead – Will provide background worker for asynchronous non-blocking tasks
  • 24.
    The proof isin the pudding! DEMO
  • 25.
    Ti.Next •Titanium APIsare being re-written using Hyperloop JS syntax and compiled using Hyperloop compiler •Titanium APIs (and native APIs) will be first class JS objects •Goal is to generate API interfaces, test cases from API documentation •Full Node.js require implementation •Will likely deprecate platform specific APIs and provide a compatibility module •Likely will reduce size of overall API •Titanium APIs will use module design
  • 26.
    Ti.Next modules •Migrationpath for modules (still trying to determine) •Packaging likely will change and modules will be expressed in Hyperloop syntax •Possibility of a module compatibility shim
  • 27.