SlideShare a Scribd company logo
1 of 19
Cross platform Native Development with Titanium
Stephen Feather, @stephenfeather
Cross Platform Native
Development with
Appcelerator Titanium
DevNexus 2015
Atlanta, Georgia
Cross platform Native Development with Titanium
Stephen Feather, @stephenfeather
Stephen Feather
• Founder, Feather Direct
• Author, Technical Editor
• Appcelerator Titan, Expert
• OS Contributor
• @stephenfeather
• stephenfeather.com
Cross platform Native Development with Titanium
Stephen Feather, @stephenfeather
iOS Objective-C
Android Java
Mobile web HTML 5
Blackberry Java
Windows 8 Mobile .NET (C#)
Mobile Languages
Cross platform Native Development with Titanium
Stephen Feather, @stephenfeather
Native Button
Cross platform Native Development with Titanium
Stephen Feather, @stephenfeather
“…the process of formulating generalized ideas
or concepts by extracting common qualities from
specific examples…”
Abstraction Layers
Cross platform Native Development with Titanium
Stephen Feather, @stephenfeather
Abstraction Advantages
• Quicker Development
• Re-use of existing knowledge/libraries
• Less training/re-training
• Simpler maintenance
Cross platform Native Development with Titanium
Stephen Feather, @stephenfeather
Appcelerator
• Open Source - available on github
• Code in JavaScript
• It is not ‘like PhoneGap’ (not run in a webview)
• It is not a generator or transpiler
• JavaScript to Bridge (Kroll) to Native
• Ti.Next (hyperloop/HAL)
Cross platform Native Development with Titanium
Stephen Feather, @stephenfeather
Titanium
Classic
Alloy
Cross platform Native Development with Titanium
Stephen Feather, @stephenfeather
Cross platform Native Development with Titanium
Stephen Feather, @stephenfeather
Cross platform Native Development with Titanium
Stephen Feather, @stephenfeather
Advantages
• Write Once, Edit
• Deploy all over
• Native Interface Controls
• Reduce Maintenance
• Simplify deployment to new
platforms
• Utilize existing JavaScript skills
Cross platform Native Development with Titanium
Stephen Feather, @stephenfeather
Disadvantages
• Modify often
• New feature delays
• Bug fix delays
Cross platform Native Development with Titanium
Stephen Feather, @stephenfeather
Code Reuse?
• 100% of non-UI code is reusable
• 50% of UI code (classic) is reusable
• 80-85% of UI code (alloy) is reusable
• The better the coder, the more reuse (experience
and patterns)
Cross platform Native Development with Titanium
Stephen Feather, @stephenfeather
Installing Titanium
• Visit appcelerator.com
• Create an Appcelerator Account
• Download Titanium Studio
• Use the Guide for reference
http://bit.ly/Setup_Titanium_Studio
• Studio will attempt to walk you through installing the
prerequisites (node, Java, xCode, Android Tooling)
Cross platform Native Development with Titanium
Stephen Feather, @stephenfeather
Installation for the Rebellious
• Install node (v.10.x recommended)
• Install xCode (required for iOS on OSX)
• Install Android Tooling
• Set path for android tooling
• (be a true rebel, install Genymotion and throw Google Apps on a VM)
• Ensure you have the correct jdk installed (note: 6, 32 bit on windows)
• [sudo] npm -g install titanium
• [sudo] npm -g install alloy
• titanium setup (quick setup)
• titanium sdk install latest
• [sudo] npm install -g tishadow (tishadow.yydigital.com, great utility)
Cross platform Native Development with Titanium
Stephen Feather, @stephenfeather
Movies
https://github.com/appcelerator/movies
Cross platform Native Development with Titanium
Stephen Feather, @stephenfeather
Additional Resources
• Docs - Official API Documentation, Guides
(http://docs.appcelerator.com)
• Q&A - Community Forum
(http://developer.appcelerator.com/questions)
• gitt.io - Search github for Modules/Widgets
• Twitter Short List
(http://bit.ly/Titanium-Short-List)
Cross platform Native Development with Titanium
Stephen Feather, @stephenfeather
Question
&
Answers
Cross platform Native Development with Titanium
Stephen Feather, @stephenfeather
Security
• Before choosing a framework, be sure to rip apart
the production/distribution package and see if
your code is being protected!

More Related Content

What's hot

Extreme Testing with Selenium - @hugs at Jenkins User Conference 2011
Extreme Testing with Selenium - @hugs at Jenkins User Conference 2011Extreme Testing with Selenium - @hugs at Jenkins User Conference 2011
Extreme Testing with Selenium - @hugs at Jenkins User Conference 2011hugs
 
Who let the robot out? - Building high quality software with Continuous Integ...
Who let the robot out? - Building high quality software with Continuous Integ...Who let the robot out? - Building high quality software with Continuous Integ...
Who let the robot out? - Building high quality software with Continuous Integ...Timo Stollenwerk
 
Android developer's toolbox
Android developer's toolboxAndroid developer's toolbox
Android developer's toolboxAlex Verdyan
 
Selenium IDE and Beyond
Selenium IDE and BeyondSelenium IDE and Beyond
Selenium IDE and BeyondSamit Badle
 
Robot framework - Lord of the Rings
Robot framework - Lord of the RingsRobot framework - Lord of the Rings
Robot framework - Lord of the RingsAsheesh Mehdiratta
 
Introduction To Appium With Robotframework
Introduction To Appium With RobotframeworkIntroduction To Appium With Robotframework
Introduction To Appium With RobotframeworkSyam Sasi
 
IntelliJ IDEA Architecture and Performance
IntelliJ IDEA Architecture and PerformanceIntelliJ IDEA Architecture and Performance
IntelliJ IDEA Architecture and Performanceintelliyole
 
Future of Mobile Automation, Appium Steals it
Future of Mobile Automation, Appium Steals itFuture of Mobile Automation, Appium Steals it
Future of Mobile Automation, Appium Steals itSrinivasan Sekar
 
Selenium IDE Introduction, Installation and Working
Selenium IDE Introduction, Installation and WorkingSelenium IDE Introduction, Installation and Working
Selenium IDE Introduction, Installation and WorkingDisha Srivastava
 
Live Panel: Appium Core Committers Answer Your Questions
Live Panel: Appium Core Committers Answer Your Questions		Live Panel: Appium Core Committers Answer Your Questions
Live Panel: Appium Core Committers Answer Your Questions Sauce Labs
 
Mobile Development integration tests
Mobile Development integration testsMobile Development integration tests
Mobile Development integration testsKenneth Poon
 
Ios driver presentation copy
Ios driver presentation copyIos driver presentation copy
Ios driver presentation copyDavid O'Dowd
 
Write Better JavaScript
Write Better JavaScriptWrite Better JavaScript
Write Better JavaScriptKevin Whinnery
 
How to Use Selenium, Successfully
How to Use Selenium, SuccessfullyHow to Use Selenium, Successfully
How to Use Selenium, SuccessfullySauce Labs
 
Selenium testing IDE 101
Selenium testing IDE 101Selenium testing IDE 101
Selenium testing IDE 101Adam Culp
 
How to Get Started with Cypress
How to Get Started with CypressHow to Get Started with Cypress
How to Get Started with CypressApplitools
 
Android Functional UI Testing at Amplify
Android Functional UI Testing at AmplifyAndroid Functional UI Testing at Amplify
Android Functional UI Testing at Amplifyjdlloyd1
 
RapidDev - Develop Titanium apps at the speed of the web!
RapidDev - Develop Titanium apps  at the speed of the web!RapidDev - Develop Titanium apps  at the speed of the web!
RapidDev - Develop Titanium apps at the speed of the web!Matt Apperson
 
Awesome Test Automation Made Simple w/ Dave Haeffner
Awesome Test Automation Made Simple w/ Dave HaeffnerAwesome Test Automation Made Simple w/ Dave Haeffner
Awesome Test Automation Made Simple w/ Dave HaeffnerSauce Labs
 

What's hot (20)

Extreme Testing with Selenium - @hugs at Jenkins User Conference 2011
Extreme Testing with Selenium - @hugs at Jenkins User Conference 2011Extreme Testing with Selenium - @hugs at Jenkins User Conference 2011
Extreme Testing with Selenium - @hugs at Jenkins User Conference 2011
 
Who let the robot out? - Building high quality software with Continuous Integ...
Who let the robot out? - Building high quality software with Continuous Integ...Who let the robot out? - Building high quality software with Continuous Integ...
Who let the robot out? - Building high quality software with Continuous Integ...
 
TiConf EU 2014
TiConf EU 2014TiConf EU 2014
TiConf EU 2014
 
Android developer's toolbox
Android developer's toolboxAndroid developer's toolbox
Android developer's toolbox
 
Selenium IDE and Beyond
Selenium IDE and BeyondSelenium IDE and Beyond
Selenium IDE and Beyond
 
Robot framework - Lord of the Rings
Robot framework - Lord of the RingsRobot framework - Lord of the Rings
Robot framework - Lord of the Rings
 
Introduction To Appium With Robotframework
Introduction To Appium With RobotframeworkIntroduction To Appium With Robotframework
Introduction To Appium With Robotframework
 
IntelliJ IDEA Architecture and Performance
IntelliJ IDEA Architecture and PerformanceIntelliJ IDEA Architecture and Performance
IntelliJ IDEA Architecture and Performance
 
Future of Mobile Automation, Appium Steals it
Future of Mobile Automation, Appium Steals itFuture of Mobile Automation, Appium Steals it
Future of Mobile Automation, Appium Steals it
 
Selenium IDE Introduction, Installation and Working
Selenium IDE Introduction, Installation and WorkingSelenium IDE Introduction, Installation and Working
Selenium IDE Introduction, Installation and Working
 
Live Panel: Appium Core Committers Answer Your Questions
Live Panel: Appium Core Committers Answer Your Questions		Live Panel: Appium Core Committers Answer Your Questions
Live Panel: Appium Core Committers Answer Your Questions
 
Mobile Development integration tests
Mobile Development integration testsMobile Development integration tests
Mobile Development integration tests
 
Ios driver presentation copy
Ios driver presentation copyIos driver presentation copy
Ios driver presentation copy
 
Write Better JavaScript
Write Better JavaScriptWrite Better JavaScript
Write Better JavaScript
 
How to Use Selenium, Successfully
How to Use Selenium, SuccessfullyHow to Use Selenium, Successfully
How to Use Selenium, Successfully
 
Selenium testing IDE 101
Selenium testing IDE 101Selenium testing IDE 101
Selenium testing IDE 101
 
How to Get Started with Cypress
How to Get Started with CypressHow to Get Started with Cypress
How to Get Started with Cypress
 
Android Functional UI Testing at Amplify
Android Functional UI Testing at AmplifyAndroid Functional UI Testing at Amplify
Android Functional UI Testing at Amplify
 
RapidDev - Develop Titanium apps at the speed of the web!
RapidDev - Develop Titanium apps  at the speed of the web!RapidDev - Develop Titanium apps  at the speed of the web!
RapidDev - Develop Titanium apps at the speed of the web!
 
Awesome Test Automation Made Simple w/ Dave Haeffner
Awesome Test Automation Made Simple w/ Dave HaeffnerAwesome Test Automation Made Simple w/ Dave Haeffner
Awesome Test Automation Made Simple w/ Dave Haeffner
 

Similar to Cross platform Native Development with Titanium

Intro to Appcelerator Titanium - Code for Fort Lauderdale 2015
Intro to Appcelerator Titanium - Code for Fort Lauderdale 2015Intro to Appcelerator Titanium - Code for Fort Lauderdale 2015
Intro to Appcelerator Titanium - Code for Fort Lauderdale 2015Adam Paxton
 
Appcelerator Titanium Intro
Appcelerator Titanium IntroAppcelerator Titanium Intro
Appcelerator Titanium IntroNicholas Jansma
 
The Big Easy: Native Mobile App Development with Appcelerator Titanium and Ja...
The Big Easy: Native Mobile App Development with Appcelerator Titanium and Ja...The Big Easy: Native Mobile App Development with Appcelerator Titanium and Ja...
The Big Easy: Native Mobile App Development with Appcelerator Titanium and Ja...Adam Paxton
 
Desktop Apps with PHP and Titanium
Desktop Apps with PHP and TitaniumDesktop Apps with PHP and Titanium
Desktop Apps with PHP and TitaniumBen Ramsey
 
Mobile Development Options
Mobile Development OptionsMobile Development Options
Mobile Development OptionsGreat Wide Open
 
Getting started with Appcelerator Titanium
Getting started with Appcelerator TitaniumGetting started with Appcelerator Titanium
Getting started with Appcelerator TitaniumTechday7
 
Introduction to Appcelerator Titanium
Introduction to Appcelerator TitaniumIntroduction to Appcelerator Titanium
Introduction to Appcelerator TitaniumAdam Paxton
 
Getting started with titanium
Getting started with titaniumGetting started with titanium
Getting started with titaniumNaga Harish M
 
SDLC in Blockchain - Ethereum edition
SDLC in Blockchain - Ethereum editionSDLC in Blockchain - Ethereum edition
SDLC in Blockchain - Ethereum editionBeier Cai
 
WappZapp Pitch Node JS Meetup
WappZapp Pitch Node JS MeetupWappZapp Pitch Node JS Meetup
WappZapp Pitch Node JS MeetupWienke Giezeman
 
Building Your App SDK with Swift
Building Your App SDK with SwiftBuilding Your App SDK with Swift
Building Your App SDK with SwiftJordan Yaker
 
Appcelerator Titanium Intro (2014)
Appcelerator Titanium Intro (2014)Appcelerator Titanium Intro (2014)
Appcelerator Titanium Intro (2014)Nicholas Jansma
 
Using JavaScript for Mobile Development
Using JavaScript for Mobile DevelopmentUsing JavaScript for Mobile Development
Using JavaScript for Mobile DevelopmentStephen G
 
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
 

Similar to Cross platform Native Development with Titanium (20)

Intro to Appcelerator Titanium - Code for Fort Lauderdale 2015
Intro to Appcelerator Titanium - Code for Fort Lauderdale 2015Intro to Appcelerator Titanium - Code for Fort Lauderdale 2015
Intro to Appcelerator Titanium - Code for Fort Lauderdale 2015
 
Appcelerator Titanium Intro
Appcelerator Titanium IntroAppcelerator Titanium Intro
Appcelerator Titanium Intro
 
The Big Easy: Native Mobile App Development with Appcelerator Titanium and Ja...
The Big Easy: Native Mobile App Development with Appcelerator Titanium and Ja...The Big Easy: Native Mobile App Development with Appcelerator Titanium and Ja...
The Big Easy: Native Mobile App Development with Appcelerator Titanium and Ja...
 
Titanium Mobile
Titanium MobileTitanium Mobile
Titanium Mobile
 
Desktop Apps with PHP and Titanium
Desktop Apps with PHP and TitaniumDesktop Apps with PHP and Titanium
Desktop Apps with PHP and Titanium
 
Mobile Development Options
Mobile Development OptionsMobile Development Options
Mobile Development Options
 
Getting started with Appcelerator Titanium
Getting started with Appcelerator TitaniumGetting started with Appcelerator Titanium
Getting started with Appcelerator Titanium
 
Introduction to Appcelerator Titanium
Introduction to Appcelerator TitaniumIntroduction to Appcelerator Titanium
Introduction to Appcelerator Titanium
 
Hyperloop
HyperloopHyperloop
Hyperloop
 
Hyperloop
HyperloopHyperloop
Hyperloop
 
Getting started with titanium
Getting started with titaniumGetting started with titanium
Getting started with titanium
 
State of angular ecosystem
State of angular ecosystemState of angular ecosystem
State of angular ecosystem
 
SDLC in Blockchain - Ethereum edition
SDLC in Blockchain - Ethereum editionSDLC in Blockchain - Ethereum edition
SDLC in Blockchain - Ethereum edition
 
WappZapp Pitch Node JS Meetup
WappZapp Pitch Node JS MeetupWappZapp Pitch Node JS Meetup
WappZapp Pitch Node JS Meetup
 
Introduction to Robot Framework
Introduction to Robot FrameworkIntroduction to Robot Framework
Introduction to Robot Framework
 
Building Your App SDK with Swift
Building Your App SDK with SwiftBuilding Your App SDK with Swift
Building Your App SDK with Swift
 
Appcelerator Titanium Intro (2014)
Appcelerator Titanium Intro (2014)Appcelerator Titanium Intro (2014)
Appcelerator Titanium Intro (2014)
 
Using JavaScript for Mobile Development
Using JavaScript for Mobile DevelopmentUsing JavaScript for Mobile Development
Using JavaScript for Mobile Development
 
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
 

Cross platform Native Development with Titanium

  • 1. Cross platform Native Development with Titanium Stephen Feather, @stephenfeather Cross Platform Native Development with Appcelerator Titanium DevNexus 2015 Atlanta, Georgia
  • 2. Cross platform Native Development with Titanium Stephen Feather, @stephenfeather Stephen Feather • Founder, Feather Direct • Author, Technical Editor • Appcelerator Titan, Expert • OS Contributor • @stephenfeather • stephenfeather.com
  • 3. Cross platform Native Development with Titanium Stephen Feather, @stephenfeather iOS Objective-C Android Java Mobile web HTML 5 Blackberry Java Windows 8 Mobile .NET (C#) Mobile Languages
  • 4. Cross platform Native Development with Titanium Stephen Feather, @stephenfeather Native Button
  • 5. Cross platform Native Development with Titanium Stephen Feather, @stephenfeather “…the process of formulating generalized ideas or concepts by extracting common qualities from specific examples…” Abstraction Layers
  • 6. Cross platform Native Development with Titanium Stephen Feather, @stephenfeather Abstraction Advantages • Quicker Development • Re-use of existing knowledge/libraries • Less training/re-training • Simpler maintenance
  • 7. Cross platform Native Development with Titanium Stephen Feather, @stephenfeather Appcelerator • Open Source - available on github • Code in JavaScript • It is not ‘like PhoneGap’ (not run in a webview) • It is not a generator or transpiler • JavaScript to Bridge (Kroll) to Native • Ti.Next (hyperloop/HAL)
  • 8. Cross platform Native Development with Titanium Stephen Feather, @stephenfeather Titanium Classic Alloy
  • 9. Cross platform Native Development with Titanium Stephen Feather, @stephenfeather
  • 10. Cross platform Native Development with Titanium Stephen Feather, @stephenfeather
  • 11. Cross platform Native Development with Titanium Stephen Feather, @stephenfeather Advantages • Write Once, Edit • Deploy all over • Native Interface Controls • Reduce Maintenance • Simplify deployment to new platforms • Utilize existing JavaScript skills
  • 12. Cross platform Native Development with Titanium Stephen Feather, @stephenfeather Disadvantages • Modify often • New feature delays • Bug fix delays
  • 13. Cross platform Native Development with Titanium Stephen Feather, @stephenfeather Code Reuse? • 100% of non-UI code is reusable • 50% of UI code (classic) is reusable • 80-85% of UI code (alloy) is reusable • The better the coder, the more reuse (experience and patterns)
  • 14. Cross platform Native Development with Titanium Stephen Feather, @stephenfeather Installing Titanium • Visit appcelerator.com • Create an Appcelerator Account • Download Titanium Studio • Use the Guide for reference http://bit.ly/Setup_Titanium_Studio • Studio will attempt to walk you through installing the prerequisites (node, Java, xCode, Android Tooling)
  • 15. Cross platform Native Development with Titanium Stephen Feather, @stephenfeather Installation for the Rebellious • Install node (v.10.x recommended) • Install xCode (required for iOS on OSX) • Install Android Tooling • Set path for android tooling • (be a true rebel, install Genymotion and throw Google Apps on a VM) • Ensure you have the correct jdk installed (note: 6, 32 bit on windows) • [sudo] npm -g install titanium • [sudo] npm -g install alloy • titanium setup (quick setup) • titanium sdk install latest • [sudo] npm install -g tishadow (tishadow.yydigital.com, great utility)
  • 16. Cross platform Native Development with Titanium Stephen Feather, @stephenfeather Movies https://github.com/appcelerator/movies
  • 17. Cross platform Native Development with Titanium Stephen Feather, @stephenfeather Additional Resources • Docs - Official API Documentation, Guides (http://docs.appcelerator.com) • Q&A - Community Forum (http://developer.appcelerator.com/questions) • gitt.io - Search github for Modules/Widgets • Twitter Short List (http://bit.ly/Titanium-Short-List)
  • 18. Cross platform Native Development with Titanium Stephen Feather, @stephenfeather Question & Answers
  • 19. Cross platform Native Development with Titanium Stephen Feather, @stephenfeather Security • Before choosing a framework, be sure to rip apart the production/distribution package and see if your code is being protected!