SlideShare ist ein Scribd-Unternehmen logo
1 von 54
TiConf EU Amsterdam
INGO MUSCHENETZ
Sr. Director of Platform and Tooling, Appcelerator
@bingomar
About Me
Currently responsible for all “Client” products
Led design of Aptana, an open-sourceWeb IDE
Aptana acquired by Appcelerator. Aptana folded into
Titanium Studio
10+ years fostering vibrant open source communities
Architected web-based framework for secure DoD
healthcare applications (acquired by Humana)
We can’t build it alone…
TheTitanium Community
A FORCE FORGOOD
TITANIUM IS GROWING UP
NUMBER OF UNIQUE MOBILE DEVICES
250,000,000
NUMBER OF REGISTEREDTITANIUM DEVELOPERS
604,000
NUMBER OF CLOUD API REQUESTS
30,000,000,000
FORTUNE 100 COMPANIES USINGTITANIUM
68% of F100
The road ahead
UpcomingTitanium Release
3.3.0 – targeted for mid-July
800+ issues addressed (50% bugs, 50% features)
Continued performance & parity improvements
Ti.include()
[gone!]
*
*deprecated in 3.3.0.Will go away in 3.4.0
Alloy
CustomTSS queries
<Annotation> tag support in maps, plus data-binding for
annotation generation
Widget themes
Customizing the Android ActionBar using the <Menu>
tag
Creating Date/Time pickers
Keyboard and returnkey type shortcuts
Demo: Alloy
CUSTOM TSS QUERIES
CustomTSS Queries
'#boydlee': {
image: '/boydlee.jpg',
width: '75%',
top: 10,
borderWidth: 3
}
/* CUSTOM TSS QUERIES */
'#boydlee[if=Alloy.Globals.isTalliPhone]': {
image: '/boydlee0.jpg',
borderColor: '#4682b4'
}
'#boydlee[if=Alloy.Globals.isGalaxyS5]': {
image: '/boydlee1.jpg',
borderColor: '#70a050'
}
CLI
Windows Hybrid
Project templates
Consolidated module projects
deploy.json is baked into the APK
No more version number formatting for iOS and Android
Display iOS logging when running app on device
Genymotion officially supported (includes debugging)
SDK
NSURLConnection
AppCompat library
CoreMotion module
View Clipping/View Shadows
Full-text search of documentation
BlackBerry updates
Studio
Push to device is default (no iTunes sync)
Improved Studio Packaging (smaller, more robust)
Configuring Studio proxy configures CLI proxy
Alloy productivity features:
Jump to event/class/id definitions from controller class
Create event/class /id definitions from controller class
Create new view and style files through context menu
Active Committers
• Opened up Appcelerator
Community
• Reduced active PRs backlog
by 50%
• Invited Open-Source module
committers
• Move wiki guides public and
invite comments
• Prettify public spaces
Automation andTesting
ti-mocha
Framework for running Mocha-based unit tests inTitanium
Beta stage
https://github.com/tonylukasavage/ti-mocha
tio2
Framework for runningTi-mocha tests on emulators and devices
and reporting results
Alpha stage
https://github.com/appcelerator/tio2
That was the first half (H1) of 2014.
How about H2…or H6?
Ti.Next
Next major release ofTitanium (aka 4.0)
Significant re-architecture ofTitanium
(Mostly) same API
Huge performance boost and reduction in app size
Improved extensibility
Windows support
Ti.Next Foundation
Foundation ofTi.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 (6th
generation compiler under development)
Hyperloop fundamentally changes game
Hyperloop will allow mixed modes of integration:
Titanium traditional (all-in)
Titanium in Native
Native inTitanium
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 byTitanium platform
developers to buildTitanium 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
“use hyperloop”
var view = new UIView(CGRectMake(100,100,50,50));
view.backgroundColor = UIColor.redColor();
var window = new UIWindow();
window.addSubview(view);
window.makeKeyAndVisible()
Need to revist (dn’t pollute the global namespace)
Hyperloop Front-end
Front-end turns JS code into an AST and then
performs transformations on the code to make it
more suitable for native generation.
JavaScript to Native
Ti.Current
app.js
Titanium
SDK (JS)
Titanium
SDK
(Native)
Ti.Next (Dev-Time)
app.js
Titanium
SDK (JS)
Ti.SDK (Native)
Ti.Next (Runtime)
Ti.SDK (Native)
app.js (JS)
app.js (Native)
Ti.SDK (JS)
Example Generation
app.js:
var b = 1;
HL_jscode.mm:
// variable:12
auto b = JSValueMakeNumber(ctx,1);
auto var13 = JSStringCreateWithUTF8CString("b");
JSObjectSetProperty(ctx,object,var13,b,0,exception);
CHECK_EXCEPTION(exception);
JavaScript to Native Compilation
Ti.Current Future
Improved Heuristics
Hyperloop
(H1)
Hyperloop
(H6)
JavaScript
Native
JavaScriptCore
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 generated for all platforms supported
Complete tree of a platform’s public API (classes,
functions, types, etc.)
Supports C and platform-specific languages (Objective-
C, Java, etc.)
Uses Clang (+platform specific tools) to generate
Rich metadata about the platform
Hyperloop Android Metabase example
"java.lang.String": {
"package": "java.lang",
"interfaces": [
"java.io.Serializable",
"java.lang.Comparable",
"java.lang.CharSequence"
],
"superClass": "java.lang.Object",
"attributes": [
"final",
"public"
],
"metatype": "class",
"methods": {
"<init>": [
{
"exceptions": [],
"args": [],
"name": "<init>",
"attributes": [
"public"
Hyperloop iOS Metabase example
"NSString": {
"metatype": "interface",
"framework": "Foundation",
"superClass": "NSObject",
"protocols": [
"NSCopying",
"NSMutableCopying",
"NSSecureCoding"
],
"name": "NSString",
"methods": {
"length": [
{
"name": "length",
"metatype": "method",
"instance": true,
"selector": "length",
"returnType": "unsigned int",
"returnSubtype": "NSUInteger",
"requiresSentinel": false,
"args": []
HyperloopWindows Metabase example
"Platform.String": {
"methods": {
".ctor": [
{
"attributes": [
"public",
"hidebysig",
"specialname",
"rtspecialname",
"instance",
"runtime",
"managed"
],
"returnType": "void",
"name": ".ctor",
"args": []
}
],
"modopt": [
{
"attributes": [
Hyperloop JS engine
Unified JS engine for all platforms based on
JavaScriptCore
iOS 7.0+ comes with engine installed
Port forWindows and Android
Performance testing showed JSC was basically native
speed
Hyperloop code re-writing
Huge blocks of code are optimized into pure native
code generation
No penalty for “JS bridge” like inTi.current
JS engine runs on main UI thread:
No thread context switching / creation overhead
Will provide background worker for asynchronous
non-blocking tasks
Hyperloop Experimentation
git clone
https://github.com/appcelerator/hyperloop.git
git checkout v2.0.0
./setup.sh
cd hyperloop-cli
sudo npm link
Hyperloop Run (iOS)
cd <project directory>
hyperloop clean library compile package
launch --src=. --arch=i386
Interesting options:
--dump-ir
.hyperloop file, add { "obfuscate": false }
Demo: Hyperloop On Android
GENERATION 6 COMPILER (H6)
Demo: Hyperloop OnWindows
GENERATION 6 COMPILER (H6)
Ti.Next
Titanium APIs are being implemented using Hyperloop 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
Hyperloop inTi.Current
Hyperloop is already being used inTi.Current!
URLSession API inTitanium 3.2
CoreMotion API inTitanium 3.3
https://github.com/appcelerator/hyperloop/wiki/Us
ing-Hyperloop-code-in-Ti.Current-SDK
Probably our compatibility layer (so API will be
same to developer, implementation different)
When?
Gen6 compiler close to release:
Almost have enough completed for all 3 major
backends (iOS, Android,Windows) beforeTi.Next
API framework design can start
Likely 6+ months from this point
Target is beta before end of year…could be sooner
Likely Windows Developer Preview Release first
iOS 8
Similar approach to iOS 7. Pre-releases track public betas
In planning stages now. Gathering feedback on areas of
interest
Capability of adding interactive widgets to the notifications area
Health Kit / Home Kit
Adding Extensions to the Share Sheet
Multiple keyboards
Camera APIs /Touch API
TO NEW ADVENTURES
ThankYou
INGO MUSCHENETZ
@bingomar
TiConf EU 2014

Weitere ähnliche Inhalte

Was ist angesagt?

Mobile Test Automation - Appium
Mobile Test Automation - AppiumMobile Test Automation - Appium
Mobile Test Automation - AppiumMaria Machlowska
 
Appium basics
Appium basicsAppium basics
Appium basicsSyam Sasi
 
Automation testing on ios platform using appium
Automation testing on ios platform using appiumAutomation testing on ios platform using appium
Automation testing on ios platform using appiumAmbreen Khan
 
Appium - test automation for mobile apps
Appium - test automation for mobile appsAppium - test automation for mobile apps
Appium - test automation for mobile appsAleksejs Trescalins
 
Mobile automation – should I use robotium or calabash or appium?
Mobile automation – should I use robotium or calabash or appium?Mobile automation – should I use robotium or calabash or appium?
Mobile automation – should I use robotium or calabash or appium?Zado Technologies
 
Using Selenium to Test Native Apps (Wait, you can do that?)
Using Selenium to Test Native Apps (Wait, you can do that?)Using Selenium to Test Native Apps (Wait, you can do that?)
Using Selenium to Test Native Apps (Wait, you can do that?)Sauce Labs
 
Appium Interview Questions and Answers | Edureka
Appium Interview Questions and Answers | EdurekaAppium Interview Questions and Answers | Edureka
Appium Interview Questions and Answers | EdurekaEdureka!
 
Appium@Work at PAYBACK
Appium@Work at PAYBACKAppium@Work at PAYBACK
Appium@Work at PAYBACKMarcel Gehlen
 
Testing Android App Bundle with Appium
Testing Android App Bundle with AppiumTesting Android App Bundle with Appium
Testing Android App Bundle with AppiumMasayuki Wakizaka
 
Appium overview (Selenium Israel #2, Feb. 2014)
Appium overview (Selenium Israel #2, Feb. 2014)Appium overview (Selenium Israel #2, Feb. 2014)
Appium overview (Selenium Israel #2, Feb. 2014)danielputerman
 
Parallel Test Runs with Appium on Real Mobile Devices – Hands-on Webinar
Parallel Test Runs with Appium on Real Mobile Devices – Hands-on WebinarParallel Test Runs with Appium on Real Mobile Devices – Hands-on Webinar
Parallel Test Runs with Appium on Real Mobile Devices – Hands-on WebinarBitbar
 
Appcelerator Titanium Intro
Appcelerator Titanium IntroAppcelerator Titanium Intro
Appcelerator Titanium IntroNicholas Jansma
 
Android & iOS Automation Using Appium
Android & iOS Automation Using AppiumAndroid & iOS Automation Using Appium
Android & iOS Automation Using AppiumMindfire Solutions
 
Cross Platform Appium Tests: How To
Cross Platform Appium Tests: How ToCross Platform Appium Tests: How To
Cross Platform Appium Tests: How ToGlobalLogic Ukraine
 
Getting started with appium
Getting started with appiumGetting started with appium
Getting started with appiumPratik Patel
 
Titanium Appcelerator - Beginners
Titanium Appcelerator - BeginnersTitanium Appcelerator - Beginners
Titanium Appcelerator - BeginnersAmbarish Hazarnis
 

Was ist angesagt? (20)

Mobile Test Automation - Appium
Mobile Test Automation - AppiumMobile Test Automation - Appium
Mobile Test Automation - Appium
 
Appium basics
Appium basicsAppium basics
Appium basics
 
Automation testing on ios platform using appium
Automation testing on ios platform using appiumAutomation testing on ios platform using appium
Automation testing on ios platform using appium
 
Appium - test automation for mobile apps
Appium - test automation for mobile appsAppium - test automation for mobile apps
Appium - test automation for mobile apps
 
Appium solution
Appium solutionAppium solution
Appium solution
 
Appium overview
Appium overviewAppium overview
Appium overview
 
Mobile automation – should I use robotium or calabash or appium?
Mobile automation – should I use robotium or calabash or appium?Mobile automation – should I use robotium or calabash or appium?
Mobile automation – should I use robotium or calabash or appium?
 
Using Selenium to Test Native Apps (Wait, you can do that?)
Using Selenium to Test Native Apps (Wait, you can do that?)Using Selenium to Test Native Apps (Wait, you can do that?)
Using Selenium to Test Native Apps (Wait, you can do that?)
 
Appium Interview Questions and Answers | Edureka
Appium Interview Questions and Answers | EdurekaAppium Interview Questions and Answers | Edureka
Appium Interview Questions and Answers | Edureka
 
Appium@Work at PAYBACK
Appium@Work at PAYBACKAppium@Work at PAYBACK
Appium@Work at PAYBACK
 
Testing Android App Bundle with Appium
Testing Android App Bundle with AppiumTesting Android App Bundle with Appium
Testing Android App Bundle with Appium
 
Appium overview (Selenium Israel #2, Feb. 2014)
Appium overview (Selenium Israel #2, Feb. 2014)Appium overview (Selenium Israel #2, Feb. 2014)
Appium overview (Selenium Israel #2, Feb. 2014)
 
Parallel Test Runs with Appium on Real Mobile Devices – Hands-on Webinar
Parallel Test Runs with Appium on Real Mobile Devices – Hands-on WebinarParallel Test Runs with Appium on Real Mobile Devices – Hands-on Webinar
Parallel Test Runs with Appium on Real Mobile Devices – Hands-on Webinar
 
Appcelerator Titanium Intro
Appcelerator Titanium IntroAppcelerator Titanium Intro
Appcelerator Titanium Intro
 
Automated UI Testing Frameworks
Automated UI Testing FrameworksAutomated UI Testing Frameworks
Automated UI Testing Frameworks
 
Android & iOS Automation Using Appium
Android & iOS Automation Using AppiumAndroid & iOS Automation Using Appium
Android & iOS Automation Using Appium
 
Cross Platform Appium Tests: How To
Cross Platform Appium Tests: How ToCross Platform Appium Tests: How To
Cross Platform Appium Tests: How To
 
Getting started with appium
Getting started with appiumGetting started with appium
Getting started with appium
 
Titanium Appcelerator - Beginners
Titanium Appcelerator - BeginnersTitanium Appcelerator - Beginners
Titanium Appcelerator - Beginners
 
Appium ppt
Appium pptAppium ppt
Appium ppt
 

Ähnlich wie TiConf EU 2014

Native Mobile Application Using Open Source
Native Mobile Application Using Open SourceNative Mobile Application Using Open Source
Native Mobile Application Using Open SourceAxway Appcelerator
 
OSCON Titanium Tutorial
OSCON Titanium TutorialOSCON Titanium Tutorial
OSCON Titanium TutorialKevin Whinnery
 
Titanium Meetup Deck
Titanium Meetup DeckTitanium Meetup Deck
Titanium Meetup Decksschwarzhoff
 
Appcelerator: iOS 10, Titanium SDK & Hyperloop
Appcelerator: iOS 10, Titanium SDK & HyperloopAppcelerator: iOS 10, Titanium SDK & Hyperloop
Appcelerator: iOS 10, Titanium SDK & HyperloopHans Knoechel
 
“Khronos Standard APIs for Accelerating Vision and Inferencing,” a Presentati...
“Khronos Standard APIs for Accelerating Vision and Inferencing,” a Presentati...“Khronos Standard APIs for Accelerating Vision and Inferencing,” a Presentati...
“Khronos Standard APIs for Accelerating Vision and Inferencing,” a Presentati...Edge AI and Vision Alliance
 
Titanium Alloy Framework
Titanium Alloy FrameworkTitanium Alloy Framework
Titanium Alloy FrameworkTechday7
 
Kubecon SIG Apps December 2017 Update
Kubecon SIG Apps December 2017 UpdateKubecon SIG Apps December 2017 Update
Kubecon SIG Apps December 2017 UpdateMatthew Farina
 
NYC Titanium User's Group - tiConf US Revisited
NYC Titanium User's Group - tiConf US RevisitedNYC Titanium User's Group - tiConf US Revisited
NYC Titanium User's Group - tiConf US RevisitedJohn Oliva
 
iPhone/iPad Development with Titanium
iPhone/iPad Development with TitaniumiPhone/iPad Development with Titanium
iPhone/iPad Development with TitaniumAxway Appcelerator
 
Appcelerator iPhone/iPad Dev Con 2010 San Diego, CA
Appcelerator iPhone/iPad Dev Con 2010 San Diego, CAAppcelerator iPhone/iPad Dev Con 2010 San Diego, CA
Appcelerator iPhone/iPad Dev Con 2010 San Diego, CAJeff Haynie
 
State ofappdevelopment
State ofappdevelopmentState ofappdevelopment
State ofappdevelopmentgillygize
 
Introduction to building multi platform mobile applications with javascript u...
Introduction to building multi platform mobile applications with javascript u...Introduction to building multi platform mobile applications with javascript u...
Introduction to building multi platform mobile applications with javascript u...Shoukry Kattan
 
.NET Innovations and Improvements
.NET Innovations and Improvements.NET Innovations and Improvements
.NET Innovations and ImprovementsJeff Chu
 
Appcelerator Titanium - An Introduction to the Titanium Ecosystem
Appcelerator Titanium - An Introduction to the Titanium EcosystemAppcelerator Titanium - An Introduction to the Titanium Ecosystem
Appcelerator Titanium - An Introduction to the Titanium EcosystemBoydlee Pollentine
 
Titanium appcelerator my first app
Titanium appcelerator my first appTitanium appcelerator my first app
Titanium appcelerator my first appAlessio Ricco
 
TiConf Australia 2013
TiConf Australia 2013TiConf Australia 2013
TiConf Australia 2013Jeff Haynie
 

Ähnlich wie TiConf EU 2014 (20)

TiConf NYC 2014
TiConf NYC 2014TiConf NYC 2014
TiConf NYC 2014
 
Native Mobile Application Using Open Source
Native Mobile Application Using Open SourceNative Mobile Application Using Open Source
Native Mobile Application Using Open Source
 
OSCON Titanium Tutorial
OSCON Titanium TutorialOSCON Titanium Tutorial
OSCON Titanium Tutorial
 
Hyperloop
HyperloopHyperloop
Hyperloop
 
Hyperloop
HyperloopHyperloop
Hyperloop
 
Titanium Meetup Deck
Titanium Meetup DeckTitanium Meetup Deck
Titanium Meetup Deck
 
Appcelerator: iOS 10, Titanium SDK & Hyperloop
Appcelerator: iOS 10, Titanium SDK & HyperloopAppcelerator: iOS 10, Titanium SDK & Hyperloop
Appcelerator: iOS 10, Titanium SDK & Hyperloop
 
Getting Started with Titanium
Getting Started with TitaniumGetting Started with Titanium
Getting Started with Titanium
 
“Khronos Standard APIs for Accelerating Vision and Inferencing,” a Presentati...
“Khronos Standard APIs for Accelerating Vision and Inferencing,” a Presentati...“Khronos Standard APIs for Accelerating Vision and Inferencing,” a Presentati...
“Khronos Standard APIs for Accelerating Vision and Inferencing,” a Presentati...
 
Titanium Alloy Framework
Titanium Alloy FrameworkTitanium Alloy Framework
Titanium Alloy Framework
 
Kubecon SIG Apps December 2017 Update
Kubecon SIG Apps December 2017 UpdateKubecon SIG Apps December 2017 Update
Kubecon SIG Apps December 2017 Update
 
NYC Titanium User's Group - tiConf US Revisited
NYC Titanium User's Group - tiConf US RevisitedNYC Titanium User's Group - tiConf US Revisited
NYC Titanium User's Group - tiConf US Revisited
 
iPhone/iPad Development with Titanium
iPhone/iPad Development with TitaniumiPhone/iPad Development with Titanium
iPhone/iPad Development with Titanium
 
Appcelerator iPhone/iPad Dev Con 2010 San Diego, CA
Appcelerator iPhone/iPad Dev Con 2010 San Diego, CAAppcelerator iPhone/iPad Dev Con 2010 San Diego, CA
Appcelerator iPhone/iPad Dev Con 2010 San Diego, CA
 
State ofappdevelopment
State ofappdevelopmentState ofappdevelopment
State ofappdevelopment
 
Introduction to building multi platform mobile applications with javascript u...
Introduction to building multi platform mobile applications with javascript u...Introduction to building multi platform mobile applications with javascript u...
Introduction to building multi platform mobile applications with javascript u...
 
.NET Innovations and Improvements
.NET Innovations and Improvements.NET Innovations and Improvements
.NET Innovations and Improvements
 
Appcelerator Titanium - An Introduction to the Titanium Ecosystem
Appcelerator Titanium - An Introduction to the Titanium EcosystemAppcelerator Titanium - An Introduction to the Titanium Ecosystem
Appcelerator Titanium - An Introduction to the Titanium Ecosystem
 
Titanium appcelerator my first app
Titanium appcelerator my first appTitanium appcelerator my first app
Titanium appcelerator my first app
 
TiConf Australia 2013
TiConf Australia 2013TiConf Australia 2013
TiConf Australia 2013
 

Kürzlich hochgeladen

(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 

Kürzlich hochgeladen (20)

(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 

TiConf EU 2014

  • 1. TiConf EU Amsterdam INGO MUSCHENETZ Sr. Director of Platform and Tooling, Appcelerator @bingomar
  • 2. About Me Currently responsible for all “Client” products Led design of Aptana, an open-sourceWeb IDE Aptana acquired by Appcelerator. Aptana folded into Titanium Studio 10+ years fostering vibrant open source communities Architected web-based framework for secure DoD healthcare applications (acquired by Humana)
  • 3. We can’t build it alone…
  • 6. NUMBER OF UNIQUE MOBILE DEVICES 250,000,000
  • 7. NUMBER OF REGISTEREDTITANIUM DEVELOPERS 604,000
  • 8. NUMBER OF CLOUD API REQUESTS 30,000,000,000
  • 9. FORTUNE 100 COMPANIES USINGTITANIUM 68% of F100
  • 10.
  • 12. UpcomingTitanium Release 3.3.0 – targeted for mid-July 800+ issues addressed (50% bugs, 50% features) Continued performance & parity improvements
  • 14. Alloy CustomTSS queries <Annotation> tag support in maps, plus data-binding for annotation generation Widget themes Customizing the Android ActionBar using the <Menu> tag Creating Date/Time pickers Keyboard and returnkey type shortcuts
  • 16. CustomTSS Queries '#boydlee': { image: '/boydlee.jpg', width: '75%', top: 10, borderWidth: 3 } /* CUSTOM TSS QUERIES */ '#boydlee[if=Alloy.Globals.isTalliPhone]': { image: '/boydlee0.jpg', borderColor: '#4682b4' } '#boydlee[if=Alloy.Globals.isGalaxyS5]': { image: '/boydlee1.jpg', borderColor: '#70a050' }
  • 17.
  • 18. CLI Windows Hybrid Project templates Consolidated module projects deploy.json is baked into the APK No more version number formatting for iOS and Android Display iOS logging when running app on device Genymotion officially supported (includes debugging)
  • 19. SDK NSURLConnection AppCompat library CoreMotion module View Clipping/View Shadows Full-text search of documentation BlackBerry updates
  • 20. Studio Push to device is default (no iTunes sync) Improved Studio Packaging (smaller, more robust) Configuring Studio proxy configures CLI proxy Alloy productivity features: Jump to event/class/id definitions from controller class Create event/class /id definitions from controller class Create new view and style files through context menu
  • 21. Active Committers • Opened up Appcelerator Community • Reduced active PRs backlog by 50% • Invited Open-Source module committers • Move wiki guides public and invite comments • Prettify public spaces
  • 22. Automation andTesting ti-mocha Framework for running Mocha-based unit tests inTitanium Beta stage https://github.com/tonylukasavage/ti-mocha tio2 Framework for runningTi-mocha tests on emulators and devices and reporting results Alpha stage https://github.com/appcelerator/tio2
  • 23. That was the first half (H1) of 2014. How about H2…or H6?
  • 24. Ti.Next Next major release ofTitanium (aka 4.0) Significant re-architecture ofTitanium (Mostly) same API Huge performance boost and reduction in app size Improved extensibility Windows support
  • 25.
  • 26. Ti.Next Foundation Foundation ofTi.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 (6th generation compiler under development)
  • 27. Hyperloop fundamentally changes game Hyperloop will allow mixed modes of integration: Titanium traditional (all-in) Titanium in Native Native inTitanium Titanium in other frameworks (Phonegap, Xamarin) Pure Native (Hyperloop only)
  • 28. What is Hyperloop? Hyperloop turns JS code into native code by mapping the native APIs into JS syntax Hyperloop will be (mainly) used byTitanium platform developers to buildTitanium 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)
  • 29. Hyperloop iOS Example “use hyperloop” var view = new UIView(CGRectMake(100,100,50,50)); view.backgroundColor = UIColor.redColor(); var window = new UIWindow(); window.addSubview(view); window.makeKeyAndVisible() Need to revist (dn’t pollute the global namespace)
  • 30. Hyperloop Front-end Front-end turns JS code into an AST and then performs transformations on the code to make it more suitable for native generation.
  • 31. JavaScript to Native Ti.Current app.js Titanium SDK (JS) Titanium SDK (Native) Ti.Next (Dev-Time) app.js Titanium SDK (JS) Ti.SDK (Native) Ti.Next (Runtime) Ti.SDK (Native) app.js (JS) app.js (Native) Ti.SDK (JS)
  • 32. Example Generation app.js: var b = 1; HL_jscode.mm: // variable:12 auto b = JSValueMakeNumber(ctx,1); auto var13 = JSStringCreateWithUTF8CString("b"); JSObjectSetProperty(ctx,object,var13,b,0,exception); CHECK_EXCEPTION(exception);
  • 33. JavaScript to Native Compilation Ti.Current Future Improved Heuristics Hyperloop (H1) Hyperloop (H6) JavaScript Native JavaScriptCore
  • 34. 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.)
  • 35. Hyperloop Metabase Defined platform APIs in JSON format Automatically generated for all platforms supported Complete tree of a platform’s public API (classes, functions, types, etc.) Supports C and platform-specific languages (Objective- C, Java, etc.) Uses Clang (+platform specific tools) to generate Rich metadata about the platform
  • 36. Hyperloop Android Metabase example "java.lang.String": { "package": "java.lang", "interfaces": [ "java.io.Serializable", "java.lang.Comparable", "java.lang.CharSequence" ], "superClass": "java.lang.Object", "attributes": [ "final", "public" ], "metatype": "class", "methods": { "<init>": [ { "exceptions": [], "args": [], "name": "<init>", "attributes": [ "public"
  • 37. Hyperloop iOS Metabase example "NSString": { "metatype": "interface", "framework": "Foundation", "superClass": "NSObject", "protocols": [ "NSCopying", "NSMutableCopying", "NSSecureCoding" ], "name": "NSString", "methods": { "length": [ { "name": "length", "metatype": "method", "instance": true, "selector": "length", "returnType": "unsigned int", "returnSubtype": "NSUInteger", "requiresSentinel": false, "args": []
  • 38. HyperloopWindows Metabase example "Platform.String": { "methods": { ".ctor": [ { "attributes": [ "public", "hidebysig", "specialname", "rtspecialname", "instance", "runtime", "managed" ], "returnType": "void", "name": ".ctor", "args": [] } ], "modopt": [ { "attributes": [
  • 39. Hyperloop JS engine Unified JS engine for all platforms based on JavaScriptCore iOS 7.0+ comes with engine installed Port forWindows and Android Performance testing showed JSC was basically native speed
  • 40. Hyperloop code re-writing Huge blocks of code are optimized into pure native code generation No penalty for “JS bridge” like inTi.current JS engine runs on main UI thread: No thread context switching / creation overhead Will provide background worker for asynchronous non-blocking tasks
  • 41. Hyperloop Experimentation git clone https://github.com/appcelerator/hyperloop.git git checkout v2.0.0 ./setup.sh cd hyperloop-cli sudo npm link
  • 42. Hyperloop Run (iOS) cd <project directory> hyperloop clean library compile package launch --src=. --arch=i386 Interesting options: --dump-ir .hyperloop file, add { "obfuscate": false }
  • 43. Demo: Hyperloop On Android GENERATION 6 COMPILER (H6)
  • 44.
  • 46.
  • 47. Ti.Next Titanium APIs are being implemented using Hyperloop 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
  • 48. 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
  • 49. Hyperloop inTi.Current Hyperloop is already being used inTi.Current! URLSession API inTitanium 3.2 CoreMotion API inTitanium 3.3 https://github.com/appcelerator/hyperloop/wiki/Us ing-Hyperloop-code-in-Ti.Current-SDK Probably our compatibility layer (so API will be same to developer, implementation different)
  • 50. When? Gen6 compiler close to release: Almost have enough completed for all 3 major backends (iOS, Android,Windows) beforeTi.Next API framework design can start Likely 6+ months from this point Target is beta before end of year…could be sooner Likely Windows Developer Preview Release first
  • 51. iOS 8 Similar approach to iOS 7. Pre-releases track public betas In planning stages now. Gathering feedback on areas of interest Capability of adding interactive widgets to the notifications area Health Kit / Home Kit Adding Extensions to the Share Sheet Multiple keyboards Camera APIs /Touch API

Hinweis der Redaktion

  1. Have to change the layout! Too many books!
  2. Not a boring release! 3.2 came out in December….moving to 6-month release cycles. Talk about 3.2 features and how those continue in 3.3.0 Build out CLI. Developers use their own tooling
  3. Custom TSS queries <Annotation> tag support in maps, plus data-binding for annotation generation: ALOY-800 Widget themes: ALOY-387 Customizing the Android ActionBar using the <Menu> tag: ALOY-784 Creating Date/Time pickers: ALOY-263 Keyboard and returnkey type shortcuts: ALOY-927 <TextField id="txt" keyboardType="DECIMAL_PAD" returnKeyType="DONE"/> "#txt": {   keyboardType: "DECIMAL_PAD",   returnKeyType: "DONE" }
  4. deploy.json is baked into the APK (no more need for an SD card) No more version number formatting for iOS and Android, uses exactly what’s in the tiapp.xml (except CFBundleShortVersionString is truncated to 3 digits) Genymotion officially supported (includes Debugging) Debug Android apps in Genymotion emulator Intelligent prompting Push to multiple devices simultaneously
  5. Invest in R & D. Dogfood it ourselves. Alloy command model. Refactored repository. Compiler pipeline. Decoupled. DP1: Front-end, backend. Now: Mutliple backends. Want to engage the community on how to beuild ti.next.
  6. Titanium in native: Drag in a hyperloop-created piece into your native application
  7. DP1: Non-standard kewords. Now pure ECMAScript 5 syntax
  8. 100% standard ECMAScript Removal of .hjs file type Disambiguation done automatically wherever possible
  9. Note reliance on “Auto” here
  10. Now using C++ 11 Can use "auto" everywhere
  11. Point clang to custom framework, add to metabase, then link in library as part of build process
  12. Why JavaScriptCore over V8? V8 is less secure—you can’t turn off jitting. Things that you can’t move to native code are the things that you can’t JIT JavaScriptCore and V8 basically comparable in speeds. Time not spent in the JavaScript engine. If there were a hotspot (i.e. OpenCL, OpenGLShaders, just write a native extension and reference it)
  13. In Ti.Next, you’ll be able to treat objects like actual JS objects
  14. Application code will be compiled via javascript Example of conditionals Check out transformed JavaScript (run on example)