Hyperloop is not only a super cool high speed tube drive train by Elon Musk. It’s also a new exciting compiler from Appcelerator. Appcelerator is known for their cross-platform product Titanium. Hyperloop lets you write your apps in JavaScript and compiles it into optimized native code, you can even call native SDKs on the supported platforms (Android, iOS, Windows 8 and Windows Phone 8). This makes it conceptually close to Xamarin but the additional benefit of having Titanium’s cross-platform API on top of it so you can write cross-platform UI code. The compiler is part of Ti.Next the complete re-envisioning of the Titanium platform. But you can already start playing with this new cool technology as Hyperloop is open sourced on github. Com and hear more about it and see it in action!
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
• 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
9. 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
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
•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)
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-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
17. 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)
18. 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.)
19. 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
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
25. 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
26. 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