SlideShare ist ein Scribd-Unternehmen logo
1 von 59
Downloaden Sie, um offline zu lesen
Get there together
10 Golden Rules For
Outstanding Titanium Apps
@sugrue www.jamessugrue.ie
Lead Architect / Growth Hacker
Author of Beginning Backbone.js
James Sugrue
Using Titanium since 2010
Carma Carpooling
Founded in early 2007, Carma is the world’s
first social transportation network.
Choose a match
& get in touch
Tap ‘Start Trip’ &
log your journey
Tap ‘End Trip’ &
share the Carma
How the App Works
Native to Native to Hybrid to Native
2010 2012 2013 2014
Replace your tables
with list views
1
The Trouble With Tables
TableViews for tabular data seems natural
!
As row count increases, performance suffers
!
Use ListView for a performance boost
!
ListView !== TableView
!
!
Templates for each ‘row’ bound to a data object
!
Overall list events: no row events
!
Use lazy loading so that the template
compilation doesn’t slow down your app
!
http://www.shockoe.com/blog/titanium-tableview-listview-retrospective/
Beware of
the single thread
2
The Most Frustrating User Experience
Customers will not accept your excuses for an unresponsive app
!


Keep Your App Moving
Ensure that multiple clicks does not mean multiple invocation
Always keep the user informed, even if they have to wait
1
_.defer for UI blocking operations
_.throttle to prevent duplicate actions2
Use activity indicators when necessary
3
4
Try out graviton.TaskManager from Ronald Treur
Obsess over
memory management
3
Don’t Leave It Until The End
Some developers assume there’s no need to worry about memory
management in JavaScript
!
!
!
!


Some Quick Tips
Keep event listeners at a minimum
Use call-backs instead of global event listeners.
!
!
!


1
2 Create a module to manage global state
3 Dispose objects when you are finished with them.
Use require statements
only when needed
4
Modules: A Delicate Balancing Act
It is tempting to add all require statements at the top of each Alloy
controller.
!
!


Lazy Loading Modules
Ensure that you only require essential modules at the beginning
!


1 var event = require("/tracking/tracking_event"),	
analytics = require("/tracking/tracking_manager");	
or

3
Use require(“<path>”).<function> inline with your code
!


require("facebook/facebook_manager").getFacebookId();
Store your module reference within the function
!


2
function loginFacebook(fbManager) {	
var eventTracker = require(“/tracking/tracking_event");
Embrace native modules
5
Writing native modules is not cheating
Use your Objective-C/Swift/Java skills




Multiple Layer Scroller
Be Careful Crossing That Bridge
Reacting to every scroll event was really slow
Use fonts
rather than images
6
Slim Down Your App With Icon Fonts
Don’t overload your app with images
Choose Your Icons http://fontastic.me
Add Font To Project
1
2 Update app.tss
//	
// Icon Font	
// -------------------------------------------------
".icon": {	
	 font: {	
	 	 fontFamily: "splinico"	
	 }	
}	
!
".icon-camera": {	
	 text: "a"	
}	
!
".icon-facebook": {	
	 text: "f"	
}	
!
".icon-envelope": {	
	 text: "b"	
}
Use Your Font
3
<Button id="btnSignupWithFacebook" class="btn btn-	 	
	 	 	 fb-blue btn-lg col-abs-11”>	
	 <Label class="icon icon-facebook btn-icon”/>	
	 <View class="btn-vr"/>	
	 <Label class="lbl-large btn-text" 

	 	 	 text=“L(‘widget_home_btn_signup_facebook')">	
	 </Label>	
</Button>
Get consistent styling
with app.tss
7
Keep Your Designer Happy
Keep all your common app styles in one place
!
!
!
Use this image: http://upload.wikimedia.org/wikipedia/commons/3/3e/
RedBikeLane.JPG
Keep Your Designer Happy
Keep all your common app styles in one place: app.tss
!
!
!
!
!
"Label":{	
font: {	
fontFamily: 'Helvetica Neue Light',	
fontSize: '14dp',	
},	
color: '#333333'	
}	
"Button":{	
font: {	
fontFamily: 'HelveticaNeue-Light', 	
fontSize: '14dp'	
},	
height: '44dp',	
width: '100%'	
}	
"TableView":{	
backgroundColor: 'transparent',	
width: '100%',	
height: Ti.UI.FILL	
}
Wriststrap
https://github.com/TNuzzi/wriststrap
Ti UX Patterns
http://www.uxmobilepatterns.com/
Use TiShadow
for Rapid Development
8
Speed Up Development Exponentially
How much time do you waste in the cycle of building and deploying?
!
What about installing updated builds on all test devices?


You Have To See It to Believe It
1
titanium build -p android -T device --shadow
HAPPY
BIRTHDAY 

DAVID
Start with Android
9
Cross Platform Development Is Difficult
The greatest appeal of Titanium is cross platform
!
With Titanium, iOS support has always been superior

3
Lessons Learned The Hard Way
Use density pixels to gracefully handle varying resolutions
!
When adding events remember to use singletap for Android

click for iOS
! !
!
!
! if (OS_ANDROID) {!
! ! textfield.addEventListener("singletap", textfield.clearError);!
! }!
! else {!
! ! textfield.addEventListener("click", textfield.clearError);!
! }!
!
!
!
!
!
Making Android More Appealing
!
Use Genymotion as your emulator
!
!
!
!
!
!
1
2 Ensure every developer has at least two phones
3 Utilise tishadow to easily deploy to all devices in real time
Go for the latest
OS features
10
Push Your App to Be Cutting Edge
Never limit yourself to the lowest common denominator
"The reasonable man
adapts himself to the
conditions that surround
him... The unreasonable
man adapts surrounding
conditions to himself... All
progress depends on the
unreasonable man.”
!
- George Bernard Shaw
Be Unreasonable
Get Involved in the Titanium Community
Don’t be afraid to submit a pull request
Ask Ingo for what you need
@ronaldtreur
Credits
Keeping Your App Responsive
@davidbankier
TiShadow
@skypanther
Memory Management
@acktie
@dawsontoth
TandemScroll
wriststrap
Get there together
Carma Prize
Your chance to make it big
What is the Carma Prize?
$1 million to Carma employee who enables +1,000 daily carpool trips
$1 million to 3rd party developer who enables +10,000 daily carpool trips
$500,000 to start-ups to take on the challenge
What is the problem?
The average annual cost of driving a sedan in the US = $9,122
The average passenger vehicle emits 5.1 tons of CO2 per year,
making our car culture responsible for 33% of US emissions
The typical American spends a whole week
and wastes 19 gallons of fuel sitting in traffic every year
Most of us drive to work alone, i.e. with three empty seats!
Highways full of “riderless cars”
A road can be 100% full, but with only 25% capacity used.
!
Once we know who the commuters are, and where they are going,
the game changes entirely.
Carma - a better way to commute
Save up to 75% on the cost of driving
Reduce your carbon footprint and fuel dependency
Get access to carpool/HOV lanes and get your free time back
Spend more time with your neighbours and colleagues
Paul | Sean
Open APIs for real-time carpool verification
Open APIs for real-time carpool matching
Open APIs for building occupancy-based apps
The Carma API
api.carmacarpool.com
Inspiration
api.carmacarpool.com
Plug-in for concerts / events
System for sport teams/arenas
Competition for “school-pools” for kids / moms & dads
Ride Board for large campus / colleges
Systems for large employers
App for connected vehicles - Automotive companies
App to open parking garages / toll barriers when carpool comes
$1 million
Third party developer
+10,000 daily carpool trips
Get there together
$1 million
Carma employee
+1,000 daily carpool trips
Get there together
$500K
Accelerator program
funding for startups
Get there together
The Carma Prize
$1 million to Carma employee who enables +1,000 daily carpool trips
$1 million to 3rd party developer who enables +10,000 daily carpool trips
$500,000 to start-ups to take on the challenge
www.carmacarpool.com/prize
@TeamCarma
www.carmacarpool.com

Weitere ähnliche Inhalte

Was ist angesagt?

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
 
What's New With Appium? From 1.0 to Now
What's New With Appium? From 1.0 to NowWhat's New With Appium? From 1.0 to Now
What's New With Appium? From 1.0 to NowSauce Labs
 
Karl Krukow - What's new and cool in xamarin test cloud - Xamarin Dev Days Si...
Karl Krukow - What's new and cool in xamarin test cloud - Xamarin Dev Days Si...Karl Krukow - What's new and cool in xamarin test cloud - Xamarin Dev Days Si...
Karl Krukow - What's new and cool in xamarin test cloud - Xamarin Dev Days Si...Xamariners
 
Introduction To Appium With Robotframework
Introduction To Appium With RobotframeworkIntroduction To Appium With Robotframework
Introduction To Appium With RobotframeworkSyam Sasi
 
Appium troubleshooting
Appium troubleshootingAppium troubleshooting
Appium troubleshootingadi ben aroya
 
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 Interview Questions and Answers | Edureka
Appium Interview Questions and Answers | EdurekaAppium Interview Questions and Answers | Edureka
Appium Interview Questions and Answers | EdurekaEdureka!
 
Appium Meetup #2 - Mobile Web Automation Introduction
Appium Meetup #2 - Mobile Web Automation IntroductionAppium Meetup #2 - Mobile Web Automation Introduction
Appium Meetup #2 - Mobile Web Automation Introductionsnevesbarros
 
Appcelerator Titanium Intro (2014)
Appcelerator Titanium Intro (2014)Appcelerator Titanium Intro (2014)
Appcelerator Titanium Intro (2014)Nicholas Jansma
 
Vietnam qa meetup
Vietnam qa meetupVietnam qa meetup
Vietnam qa meetupSyam Sasi
 
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 - test automation for mobile apps
Appium - test automation for mobile appsAppium - test automation for mobile apps
Appium - test automation for mobile appsAleksejs Trescalins
 
Advanced Appium Tips & Tricks with Jonathan Lipps
Advanced Appium Tips & Tricks with Jonathan LippsAdvanced Appium Tips & Tricks with Jonathan Lipps
Advanced Appium Tips & Tricks with Jonathan LippsPerfecto by Perforce
 
Testing Native iOS Apps with Appium
Testing Native iOS Apps with AppiumTesting Native iOS Apps with Appium
Testing Native iOS Apps with AppiumSauce Labs
 
Mobile automation testing with selenium and appium
Mobile automation testing with selenium and appiumMobile automation testing with selenium and appium
Mobile automation testing with selenium and appiumBugRaptors
 
Getting started with appium
Getting started with appiumGetting started with appium
Getting started with appiumPratik Patel
 
Android & iOS Automation Using Appium
Android & iOS Automation Using AppiumAndroid & iOS Automation Using Appium
Android & iOS Automation Using AppiumMindfire Solutions
 
Appcelerator Titanium Intro
Appcelerator Titanium IntroAppcelerator Titanium Intro
Appcelerator Titanium IntroNicholas Jansma
 

Was ist angesagt? (20)

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
 
What's New With Appium? From 1.0 to Now
What's New With Appium? From 1.0 to NowWhat's New With Appium? From 1.0 to Now
What's New With Appium? From 1.0 to Now
 
Karl Krukow - What's new and cool in xamarin test cloud - Xamarin Dev Days Si...
Karl Krukow - What's new and cool in xamarin test cloud - Xamarin Dev Days Si...Karl Krukow - What's new and cool in xamarin test cloud - Xamarin Dev Days Si...
Karl Krukow - What's new and cool in xamarin test cloud - Xamarin Dev Days Si...
 
Introduction To Appium With Robotframework
Introduction To Appium With RobotframeworkIntroduction To Appium With Robotframework
Introduction To Appium With Robotframework
 
Appium troubleshooting
Appium troubleshootingAppium troubleshooting
Appium troubleshooting
 
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 Interview Questions and Answers | Edureka
Appium Interview Questions and Answers | EdurekaAppium Interview Questions and Answers | Edureka
Appium Interview Questions and Answers | Edureka
 
Appium Meetup #2 - Mobile Web Automation Introduction
Appium Meetup #2 - Mobile Web Automation IntroductionAppium Meetup #2 - Mobile Web Automation Introduction
Appium Meetup #2 - Mobile Web Automation Introduction
 
Appcelerator Titanium Intro (2014)
Appcelerator Titanium Intro (2014)Appcelerator Titanium Intro (2014)
Appcelerator Titanium Intro (2014)
 
Vietnam qa meetup
Vietnam qa meetupVietnam qa meetup
Vietnam qa meetup
 
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 - test automation for mobile apps
Appium - test automation for mobile appsAppium - test automation for mobile apps
Appium - test automation for mobile apps
 
Advanced Appium Tips & Tricks with Jonathan Lipps
Advanced Appium Tips & Tricks with Jonathan LippsAdvanced Appium Tips & Tricks with Jonathan Lipps
Advanced Appium Tips & Tricks with Jonathan Lipps
 
Testing Native iOS Apps with Appium
Testing Native iOS Apps with AppiumTesting Native iOS Apps with Appium
Testing Native iOS Apps with Appium
 
Mobile automation testing with selenium and appium
Mobile automation testing with selenium and appiumMobile automation testing with selenium and appium
Mobile automation testing with selenium and appium
 
Getting started with appium
Getting started with appiumGetting started with appium
Getting started with appium
 
Android & iOS Automation Using Appium
Android & iOS Automation Using AppiumAndroid & iOS Automation Using Appium
Android & iOS Automation Using Appium
 
Appium solution
Appium solutionAppium solution
Appium solution
 
Appcelerator Titanium Intro
Appcelerator Titanium IntroAppcelerator Titanium Intro
Appcelerator Titanium Intro
 

Ähnlich wie 10 Golden Rules For Outstanding Titanium Apps

Mobile Application Design & Development
Mobile Application Design & DevelopmentMobile Application Design & Development
Mobile Application Design & DevelopmentRonnie Liew
 
Another Update of Tablet Strategy Bootcamp
Another Update of Tablet Strategy BootcampAnother Update of Tablet Strategy Bootcamp
Another Update of Tablet Strategy BootcampPaul Saunders
 
UPDATED: Tablet Strategy Bootcamp
UPDATED: Tablet Strategy BootcampUPDATED: Tablet Strategy Bootcamp
UPDATED: Tablet Strategy BootcampPaul Saunders
 
Appium - Reality check on the world’s leading Open Source Framework for Mobil...
Appium - Reality check on the world’s leading Open Source Framework for Mobil...Appium - Reality check on the world’s leading Open Source Framework for Mobil...
Appium - Reality check on the world’s leading Open Source Framework for Mobil...Asaf Saar
 
Postdesktop Usability
Postdesktop UsabilityPostdesktop Usability
Postdesktop UsabilityDoug Gapinski
 
Screen and Context: Usability in the Postdesktop World
Screen and Context: Usability in the Postdesktop WorldScreen and Context: Usability in the Postdesktop World
Screen and Context: Usability in the Postdesktop WorldDoug Gapinski
 
An end-to-end experience of Windows Phone 7 development (Part 1)
An end-to-end experience of Windows Phone 7 development (Part 1)An end-to-end experience of Windows Phone 7 development (Part 1)
An end-to-end experience of Windows Phone 7 development (Part 1)rudigrobler
 
Getting started with Xamarin Forms
Getting started with Xamarin FormsGetting started with Xamarin Forms
Getting started with Xamarin FormsLeomaris Reyes
 
Xamarin Platform
Xamarin PlatformXamarin Platform
Xamarin PlatformRui Marinho
 
Preparing for Release to the App Store
Preparing for Release to the App StorePreparing for Release to the App Store
Preparing for Release to the App StoreGeoffrey Goetz
 
Angular js mobile jsday 2014 - Verona 14 may
Angular js mobile   jsday 2014 - Verona 14 mayAngular js mobile   jsday 2014 - Verona 14 may
Angular js mobile jsday 2014 - Verona 14 mayLuciano Amodio
 
Tablet strategy bootcamp
Tablet strategy bootcampTablet strategy bootcamp
Tablet strategy bootcampPaul Saunders
 
Common Missteps in Cross-Platform Development.pdf
Common Missteps in Cross-Platform Development.pdfCommon Missteps in Cross-Platform Development.pdf
Common Missteps in Cross-Platform Development.pdfPridesys IT Ltd.
 
Philly ete-2011
Philly ete-2011Philly ete-2011
Philly ete-2011davyjones
 
HTML5 Can't Do That
HTML5 Can't Do ThatHTML5 Can't Do That
HTML5 Can't Do ThatNathan Smith
 
Get With The Programme
Get With The ProgrammeGet With The Programme
Get With The ProgrammePaul Saunders
 
Cloud-Based, Automated Mobile App Testing for the Enterprise
Cloud-Based, Automated Mobile App Testing for the EnterpriseCloud-Based, Automated Mobile App Testing for the Enterprise
Cloud-Based, Automated Mobile App Testing for the EnterpriseTechWell
 
Mobile presentation - Sydney Online Retailer - 26 Sep 2011
Mobile presentation - Sydney Online Retailer - 26 Sep 2011Mobile presentation - Sydney Online Retailer - 26 Sep 2011
Mobile presentation - Sydney Online Retailer - 26 Sep 2011Craig Sullivan
 
Mobile application development platform
Mobile application development platformMobile application development platform
Mobile application development platformi4consulting.org
 
Of innovation and impatience - Future Decoded 2015
Of innovation and impatience - Future Decoded 2015Of innovation and impatience - Future Decoded 2015
Of innovation and impatience - Future Decoded 2015Christian Heilmann
 

Ähnlich wie 10 Golden Rules For Outstanding Titanium Apps (20)

Mobile Application Design & Development
Mobile Application Design & DevelopmentMobile Application Design & Development
Mobile Application Design & Development
 
Another Update of Tablet Strategy Bootcamp
Another Update of Tablet Strategy BootcampAnother Update of Tablet Strategy Bootcamp
Another Update of Tablet Strategy Bootcamp
 
UPDATED: Tablet Strategy Bootcamp
UPDATED: Tablet Strategy BootcampUPDATED: Tablet Strategy Bootcamp
UPDATED: Tablet Strategy Bootcamp
 
Appium - Reality check on the world’s leading Open Source Framework for Mobil...
Appium - Reality check on the world’s leading Open Source Framework for Mobil...Appium - Reality check on the world’s leading Open Source Framework for Mobil...
Appium - Reality check on the world’s leading Open Source Framework for Mobil...
 
Postdesktop Usability
Postdesktop UsabilityPostdesktop Usability
Postdesktop Usability
 
Screen and Context: Usability in the Postdesktop World
Screen and Context: Usability in the Postdesktop WorldScreen and Context: Usability in the Postdesktop World
Screen and Context: Usability in the Postdesktop World
 
An end-to-end experience of Windows Phone 7 development (Part 1)
An end-to-end experience of Windows Phone 7 development (Part 1)An end-to-end experience of Windows Phone 7 development (Part 1)
An end-to-end experience of Windows Phone 7 development (Part 1)
 
Getting started with Xamarin Forms
Getting started with Xamarin FormsGetting started with Xamarin Forms
Getting started with Xamarin Forms
 
Xamarin Platform
Xamarin PlatformXamarin Platform
Xamarin Platform
 
Preparing for Release to the App Store
Preparing for Release to the App StorePreparing for Release to the App Store
Preparing for Release to the App Store
 
Angular js mobile jsday 2014 - Verona 14 may
Angular js mobile   jsday 2014 - Verona 14 mayAngular js mobile   jsday 2014 - Verona 14 may
Angular js mobile jsday 2014 - Verona 14 may
 
Tablet strategy bootcamp
Tablet strategy bootcampTablet strategy bootcamp
Tablet strategy bootcamp
 
Common Missteps in Cross-Platform Development.pdf
Common Missteps in Cross-Platform Development.pdfCommon Missteps in Cross-Platform Development.pdf
Common Missteps in Cross-Platform Development.pdf
 
Philly ete-2011
Philly ete-2011Philly ete-2011
Philly ete-2011
 
HTML5 Can't Do That
HTML5 Can't Do ThatHTML5 Can't Do That
HTML5 Can't Do That
 
Get With The Programme
Get With The ProgrammeGet With The Programme
Get With The Programme
 
Cloud-Based, Automated Mobile App Testing for the Enterprise
Cloud-Based, Automated Mobile App Testing for the EnterpriseCloud-Based, Automated Mobile App Testing for the Enterprise
Cloud-Based, Automated Mobile App Testing for the Enterprise
 
Mobile presentation - Sydney Online Retailer - 26 Sep 2011
Mobile presentation - Sydney Online Retailer - 26 Sep 2011Mobile presentation - Sydney Online Retailer - 26 Sep 2011
Mobile presentation - Sydney Online Retailer - 26 Sep 2011
 
Mobile application development platform
Mobile application development platformMobile application development platform
Mobile application development platform
 
Of innovation and impatience - Future Decoded 2015
Of innovation and impatience - Future Decoded 2015Of innovation and impatience - Future Decoded 2015
Of innovation and impatience - Future Decoded 2015
 

Kürzlich hochgeladen

Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024The Digital Insurer
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKJago de Vreede
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 

Kürzlich hochgeladen (20)

Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 

10 Golden Rules For Outstanding Titanium Apps

  • 1. Get there together 10 Golden Rules For Outstanding Titanium Apps
  • 2. @sugrue www.jamessugrue.ie Lead Architect / Growth Hacker Author of Beginning Backbone.js James Sugrue Using Titanium since 2010
  • 3. Carma Carpooling Founded in early 2007, Carma is the world’s first social transportation network.
  • 4. Choose a match & get in touch Tap ‘Start Trip’ & log your journey Tap ‘End Trip’ & share the Carma How the App Works
  • 5. Native to Native to Hybrid to Native 2010 2012 2013 2014
  • 7. The Trouble With Tables TableViews for tabular data seems natural ! As row count increases, performance suffers ! Use ListView for a performance boost !
  • 8. ListView !== TableView ! ! Templates for each ‘row’ bound to a data object ! Overall list events: no row events ! Use lazy loading so that the template compilation doesn’t slow down your app ! http://www.shockoe.com/blog/titanium-tableview-listview-retrospective/
  • 10. The Most Frustrating User Experience Customers will not accept your excuses for an unresponsive app ! 

  • 11. Keep Your App Moving Ensure that multiple clicks does not mean multiple invocation Always keep the user informed, even if they have to wait 1 _.defer for UI blocking operations _.throttle to prevent duplicate actions2 Use activity indicators when necessary 3 4 Try out graviton.TaskManager from Ronald Treur
  • 13. Don’t Leave It Until The End Some developers assume there’s no need to worry about memory management in JavaScript ! ! ! ! 

  • 14. Some Quick Tips Keep event listeners at a minimum Use call-backs instead of global event listeners. ! ! ! 
 1 2 Create a module to manage global state 3 Dispose objects when you are finished with them.
  • 16. Modules: A Delicate Balancing Act It is tempting to add all require statements at the top of each Alloy controller. ! ! 

  • 17. Lazy Loading Modules Ensure that you only require essential modules at the beginning ! 
 1 var event = require("/tracking/tracking_event"), analytics = require("/tracking/tracking_manager"); or
 3 Use require(“<path>”).<function> inline with your code ! 
 require("facebook/facebook_manager").getFacebookId(); Store your module reference within the function ! 
 2 function loginFacebook(fbManager) { var eventTracker = require(“/tracking/tracking_event");
  • 19. Writing native modules is not cheating Use your Objective-C/Swift/Java skills 
 

  • 21. Be Careful Crossing That Bridge Reacting to every scroll event was really slow
  • 22.
  • 24. Slim Down Your App With Icon Fonts Don’t overload your app with images
  • 25. Choose Your Icons http://fontastic.me
  • 26. Add Font To Project 1 2 Update app.tss // // Icon Font // ------------------------------------------------- ".icon": { font: { fontFamily: "splinico" } } ! ".icon-camera": { text: "a" } ! ".icon-facebook": { text: "f" } ! ".icon-envelope": { text: "b" }
  • 27. Use Your Font 3 <Button id="btnSignupWithFacebook" class="btn btn- fb-blue btn-lg col-abs-11”> <Label class="icon icon-facebook btn-icon”/> <View class="btn-vr"/> <Label class="lbl-large btn-text" 
 text=“L(‘widget_home_btn_signup_facebook')"> </Label> </Button>
  • 29. Keep Your Designer Happy Keep all your common app styles in one place ! ! ! Use this image: http://upload.wikimedia.org/wikipedia/commons/3/3e/ RedBikeLane.JPG
  • 30. Keep Your Designer Happy Keep all your common app styles in one place: app.tss ! ! ! ! ! "Label":{ font: { fontFamily: 'Helvetica Neue Light', fontSize: '14dp', }, color: '#333333' } "Button":{ font: { fontFamily: 'HelveticaNeue-Light', fontSize: '14dp' }, height: '44dp', width: '100%' } "TableView":{ backgroundColor: 'transparent', width: '100%', height: Ti.UI.FILL }
  • 33. Use TiShadow for Rapid Development 8
  • 34. Speed Up Development Exponentially How much time do you waste in the cycle of building and deploying? ! What about installing updated builds on all test devices? 

  • 35. You Have To See It to Believe It 1 titanium build -p android -T device --shadow
  • 38. Cross Platform Development Is Difficult The greatest appeal of Titanium is cross platform ! With Titanium, iOS support has always been superior

  • 39. 3 Lessons Learned The Hard Way Use density pixels to gracefully handle varying resolutions ! When adding events remember to use singletap for Android
 click for iOS ! ! ! ! ! if (OS_ANDROID) {! ! ! textfield.addEventListener("singletap", textfield.clearError);! ! }! ! else {! ! ! textfield.addEventListener("click", textfield.clearError);! ! }! ! ! ! ! !
  • 40. Making Android More Appealing ! Use Genymotion as your emulator ! ! ! ! ! ! 1 2 Ensure every developer has at least two phones 3 Utilise tishadow to easily deploy to all devices in real time
  • 41. Go for the latest OS features 10
  • 42. Push Your App to Be Cutting Edge Never limit yourself to the lowest common denominator
  • 43.
  • 44. "The reasonable man adapts himself to the conditions that surround him... The unreasonable man adapts surrounding conditions to himself... All progress depends on the unreasonable man.” ! - George Bernard Shaw Be Unreasonable
  • 45. Get Involved in the Titanium Community Don’t be afraid to submit a pull request Ask Ingo for what you need
  • 46. @ronaldtreur Credits Keeping Your App Responsive @davidbankier TiShadow @skypanther Memory Management @acktie @dawsontoth TandemScroll wriststrap
  • 47. Get there together Carma Prize Your chance to make it big
  • 48. What is the Carma Prize? $1 million to Carma employee who enables +1,000 daily carpool trips $1 million to 3rd party developer who enables +10,000 daily carpool trips $500,000 to start-ups to take on the challenge
  • 49.
  • 50. What is the problem? The average annual cost of driving a sedan in the US = $9,122 The average passenger vehicle emits 5.1 tons of CO2 per year, making our car culture responsible for 33% of US emissions The typical American spends a whole week and wastes 19 gallons of fuel sitting in traffic every year Most of us drive to work alone, i.e. with three empty seats!
  • 51. Highways full of “riderless cars” A road can be 100% full, but with only 25% capacity used. ! Once we know who the commuters are, and where they are going, the game changes entirely.
  • 52. Carma - a better way to commute Save up to 75% on the cost of driving Reduce your carbon footprint and fuel dependency Get access to carpool/HOV lanes and get your free time back Spend more time with your neighbours and colleagues
  • 53. Paul | Sean Open APIs for real-time carpool verification Open APIs for real-time carpool matching Open APIs for building occupancy-based apps The Carma API api.carmacarpool.com
  • 54. Inspiration api.carmacarpool.com Plug-in for concerts / events System for sport teams/arenas Competition for “school-pools” for kids / moms & dads Ride Board for large campus / colleges Systems for large employers App for connected vehicles - Automotive companies App to open parking garages / toll barriers when carpool comes
  • 55. $1 million Third party developer +10,000 daily carpool trips Get there together
  • 56. $1 million Carma employee +1,000 daily carpool trips Get there together
  • 57. $500K Accelerator program funding for startups Get there together
  • 58. The Carma Prize $1 million to Carma employee who enables +1,000 daily carpool trips $1 million to 3rd party developer who enables +10,000 daily carpool trips $500,000 to start-ups to take on the challenge www.carmacarpool.com/prize