You are on page 1of 47

TiConf

Bangalore

NEERAJ GUPTA

Sr. VP, Product and Engineering, Appcelerator


ngupta@appcelerator.com

About Me

!
!

Responsible for Product, Engineering and IT


Operations
Ran Product and Engineering at Particle Code before
its acquisition by Appcelerator.
Particle Code product folded into Titanium SDK
Architected and managed enterprise grade middle-
tier products at Oracle for over a decade

We cant build it alone

The Titanium Community


A FORCE FOR GOOD

TITANIUM IS GROWING UP

NUMBER OF UNIQUE MOBILE DEVICES

230,000,000

NUMBER OF REGISTERED TITANIUM DEVELOPERS

610,000
in 185 countries

NUMBER OF CLOUD API CALLS

30,000,000,000

FORTUNE 100 COMPANIES USING TITANIUM

70%+ of F100

The Appcelerator Platform Update

Appcelerator Platform 2.0 (Just Released)


!
!
!
!
!
!
!
!
!
!

Titanium SDK 3.3.0


Alloy 1.4.0
Native SDK 1.0.0
CLI 3.3.0
Studio 3.3.0
Appcelerator Dashboard 2.0.0
Appcelerator Insights 2.0.0
Pre-built and Custom Cloud API 1.1.3
API Builder 1.0.0
Private Cloud

Titanium SDK 3.3.0

!
!
!
!
!
!
!

AppCompat library support (Android)


CoreMotion module (iOS)
New HTTP library based on NSURLConnection (iOS)
SSL Certicate Pinning (Enterprise only)
View Clipping and View Shadows (iOS)
Windows Hybrid Platform
Full-text search of documentation

Alloy 1.4.0

Custom TSS queries




'#textLabel[if=Alloy.Globals.foo]': {

color: 'green',
}

Declaratively annotate maps



<Module id="map" module="ti.map>

<Annotation title="Appcelerator HQ" latitude="37.389569"
longitude="-122.050212" />

</Module>

ActionBar properties on Menu elements

Alloy 1.4.0 (Continued)

!
!

Themes support for Alloy widgets


Keyboard and return key type shortcuts

<TextField id="txt" keyboardType="DECIMAL_PAD" returnKeyType="DONE"/>

"#txt": {

keyboardType: "DECIMAL_PAD",

returnKeyType: "DONE
}

Demo: Alloy
CUSTOM TSS QUERIES

Custom TSS 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'
}

Native SDK 1.0.0


!

!
!

Launched native SDK to make Appcelerator Platform features


available to native application developers
! Get up and running with few lines of code
! Real time analytics
! Pre-built cloud services
! Custom cloud services
! Performance and crash management
! Automated functional testing
iOS and Android platforms initially
Use Dashboard to manage native apps

Demo: Native SDK

CLI 3.3.0

!
!
!
!
!
!
!

Ocial Genymotion support (includes debugging)


Windows Hybrid support
Project templates
Consolidated module projects
Push to multiple devices simultaneously
Deploy to device is default now (iTunes not default now)
Display iOS logging when running app on device

Studio 3.3.0
!

Improved Alloy project support for increased productivity


!
!
!

Content Assist improvements


!
!
!

!
!
!

Navigate from event handler declaration in XML le to corresponding controller code


Easily create new event handlers and TSS styles from XML views
Create new view and style les from the right-click context menu
Methods that take constants as arguments
Proxy properties for XML elements in Alloy projects
Hovers for XML elements, XML attributes and TSS attributes

Genymotion emulator support


Push to device is default (no iTunes sync)
New Windows installer

Automation and Testing

ti-mocha
!
!
!

tio2
!

!
!

Framework for running Mocha-based unit tests in Titanium


Beta stage
https://github.com/tonylukasavage/ti-mocha

Framework for running Ti-mocha tests on emulators and devices


and reporting results
Alpha stage
https://github.com/appcelerator/tio2

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

Appcelerator Dashboard 2.0.0


!
!
!
!
!
!

New user interface, simplied navigation and notication system


API Builder
Manage native iOS and Android apps
Custom cloud API management and team collaboration
Improved security through 2-factor authentication using SMS
View Apps, APIs and Analytics across virtual private cloud (VPC)
environments
Improved Event Funnels

Demo: Appcelerator Dashboard

Appcelerator Insights 2.0.0

!
!
!
!
!

A cross platform Titanium application


Available on iOS and Android platforms
Event funnels support
Native apps support
Improved contextual help and user guides

Demo: Insights

Pre-built and Custom Cloud APIs 1.1.3

!
!
!
!
!
!
!

API management and team collaboration


Support for ImageMagick and PhantomJS packages
Location based push notications
SSL support for File and Photo objects
Prettify JSON response output
Query likes by user
Create a File object using a remote URL

Appcelerator API Builder


!

Elegant Dashboard UI to build custom cloud APIs


! Pull data from your enterprise backend(s)
! Apply transformations and validations
! Expose backend data to apps in mobile optimized format
Client SDK is generated and made available in Appcelerator
Studio automatically for newly created custom cloud API
! Handles HTTP requests, authentication, data retrieval
and updates

Demo: API Builder

Appcelerator Platform Deployment Options

!
!
!

Public Cloud
Virtual Private Cloud (VPC)
Private Cloud (rst release based on VMware)

That was the rst half (H1) of 2014.


How about H2 or H6?

Ti.Next

!
!
!
!
!
!

Next major release of Titanium (aka 4.0)


Signicant re-architecture of Titanium
(Mostly) same API
Huge performance boost and reduction in app size
Improved extensibility
Windows support

Ti.Next Foundation

A new compiler, built from the grounds up for


performance and 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 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 specic code)
! Metabase (metadata about target platform)

Hyperloop JavaScript engine

Unied JavaScript 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 Experimentation

!
!
!
!

git clone
https://github.com/appcelerator/hyperloop.git
git checkout v2.0.0
./setup.sh
cd hyperloop-cli
sudo npm link

Ti.Next
!

Titanium APIs are being implemented using Hyperloop and


compiled using Hyperloop compiler
! Titanium APIs (and native APIs) will be rst-class JS objects
! Goal is to generate API interfaces, test cases from API
documentation
! Full Node.js require implementation
! Will likely deprecate platform specic APIs and provide a
compatibility module
! Likely will reduce size of overall API

Ti.Next Modules

!
!

Migration path for modules (to be determined)


Packaging will change likely and modules will be
expressed in Hyperloop syntax
Possibility of a module compatibility shim

Hyperloop in Ti.Current

Hyperloop is already being used in Ti.Current!


! URLSession API in Titanium 3.2
! CoreMotion API in Titanium 3.3
! https://github.com/appcelerator/hyperloop/wiki/
Using-Hyperloop-code-in-Ti.Current-SDK
! Our compatibility layer (so API will be same to
developer, implementation dierent)

Timeline?

Gen6 compiler close to release


! Progress on all 3 major backends (iOS, Android and
Windows) so Ti.Next API framework design can
now start
! Likely 6+ months from this point
! Target is beta by the end of yearcould be sooner
! Likely Windows Developer Preview Release rst

iOS 8
!

Similar approach to iOS 7


! Pre-releases track public betas
In planning stage now. Gathering feedback on areas of
interest.
!
!
!
!
!

Capability of adding interactive widgets to the notications area


Health Kit / Home Kit
Adding Extensions to the Share Sheet
Multiple keyboards
Camera APIs / Touch API

TO NEW ADVENTURES

Thank You
NEERAJ GUPTA

ngupta@appcelerator.com

You might also like