SlideShare une entreprise Scribd logo
1  sur  36
@yottaa #WebPerf
So you want to build a
mobile app…
Brought to you by:
@yottaa #WebPerf
Available info, tooling driven by market
http://ti.me/18FeIn4
@yottaa #WebPerf
Prioritize based on volume
Share (%) of Smartphone Subscribers
January 2013 April 2013 Delta
Google 52.3% 52.0% -0.3%
Apple 37.8% 39.2% 1.4%
BlackBerry 5.9% 5.1% -0.8%
Microsoft 3.1% 3.0% -0.1%
Symbian 0.5% 0.5% 0.0%
http://bit.ly/1bRw6FC
@yottaa #WebPerf
Prioritize further: who are your users?
Your momma’s… got game!
It’s actually Gen-Xers.
Millennials are into
fitness & entertainment
http://blog.flurry.com/
@yottaa #WebPerf
What do your target users do and use?
80% of mobile
interaction is via
native apps
HTML5 apps are
great for:
• Productivity
• News
• Generally - forms
http://bit.ly/17G1Ng5
@yottaa #WebPerf
Why are only 6% of apps HTML5?
No app store makes
it more difficult to
monetize
Build once, run
everywhere
translates to optimize
everywhere
HTML5’s “good
enough” experience
isn’t always good
enough
@yottaa #WebPerf
For LinkedIN it the ecosystem was lacking
2012: HTML5 for efficiency & agility
8-10%
Mobile
users
Apps
running
out of
Memory
Lacked
testing &
profiling
2013: Native for user experience
Majority of
Traffic from
mobile
Better
features (use
HTML5, CSS
for email)
Apple and
Google drive
innovation
http://bit.ly/15NdyAg
@yottaa #WebPerf
High-level Overview
Governing body: W3C
• 5 years to ratify…
• 200+ browser
interpretations
More security
vulnerabilities
• Can’t encrypt cached
data
• Encrypting data in motion
compromises
performance
@yottaa #WebPerf
High-level Overview
Governing bodies: Apple and
Google
• At least one release/year
• iOS is highly standardized
& regulated
• More Android variety, but
still finite (~30 varieties vs.
over 200 for HTML5)
Better user experience
• Fewer security
vulnerabilities
• Device-specific
functionality is richer
@yottaa #WebPerf
OK, to be fair…
http://blog.flurry.com
Over the past two years, Android has had 21 updates to their browser.
@yottaa #WebPerf
What do you hold most dear?
1. User experience
2. Performance
3. Monetization
4. X-plat deployment $$
5. Fragmentation
6. Programming expertise
7. Updates & distribution
8. New innovation timeline
9. Security
@yottaa #WebPerf
A bit of trivia
http://bit.ly/15iQlqz
STARTUP TIME W/8 TABS
AVERAGE STARTUP TIME
40-TAB LOAD (CACHED, HOT)
WEBKIT SUNSPIDER
JSBENCH
FACEBOOK JSGAMEBENCH
HARDWARE ACCELERATION
PAGE LOAD RELIABILITY
OVERALL WINNER
@yottaa #WebPerf
Test…Testing…Testing 1, 2, 3
Question: How do your features
Appear to
your users?
Behave in
the wild?
Impact the
device?
Perform across
networks?
@yottaa #WebPerf
Appearances
http://bit.ly/133ijam
@yottaa #WebPerf
To Emulate or Simulate?
Emulator
• Mimics device hardware & software
• Android developers tend to complain about
performance
• Emulates GPU but tends to lag (instructions translated
to x86)
Simulator
• Mimics device software
• Apple stresses device testing b/c disk space, CPU &
memory speed different
• Faster cycle times, but requires recompiling to device
http://bit.ly/17G2hTH
@yottaa #WebPerf
How to determine browser features
• UA sniffing
– Poor choice – detects
navigator.userAgent
– User agent string may have changed
– New browser versions or flavors
• Feature detection
– HTML5 + CSS3
– JavaScript
@yottaa #WebPerf
rng.io - Ringmark
OSS maintained by Facebook @
https://github.com/facebook/rng.io
Native UX testing & development
Works with existing W3C tests
Full list of supported features across
browsers: http://bit.ly/1c0jDOj
Check whether an API is usable &
produces expected, specified output
@yottaa #WebPerf
Grab the brass browser ring
Ring 0
State of the world today.
Actively used mobile web features.
• Application Cache
• Canvas
• CSS 2.1
• CSS 3D Transforms
• CSS3 Animation
• CSS3 Background
• CSS3 Color
• CSS Min, Max
• CSS Opacity
• CSS3 Text
• CSS3 2D Transforms
• CSS3 Transitions
• CSS3 UI
• CSS3 Values
• Data URL
• Doctype
• Geolocation
• JSON
• Masking Images
• Web Messaging
• Progress Event
• Prompts
• Selectors 2
• Video
• Viewport
• Web Storage
Ring 1
Enable 2D game, audio, video, camera
Most popular types of mobile apps today.
• Audio, Multi-Track
• Blob
• CSS3 Background, Standard
• CSS3 Fonts
• CSS3 MediaQueries
• CSS Overflow Scrolling
• CSS Position Fixed
• CSS3 Text, Standard
• CSS3 UI, Standard
• Device Orientation Event
• FileReader
• FormData
• HTML5 Forms, Inputs
• Hashchange
• History
• Media Capture Input
• IndexedDB
• Multi Touch Event
• Offline Mode
• Ring 1 Performance
• Touch Event
• URL
• Web Workers
• XHR2
Ring 2
3D games, messaging, video streaming
Work in progress.
• Animation Timing
• Canvas 3D
• Canvas 3D, Standard
• CSS Unspecified
• CSS3 Animation, Standard
• CSS3 BorderImage
• CSS Element
• CSS3 Flexbox
• CSS3 Flexbox, Standard
• CSS3 Images
• CSS3 Images, Standard
• CSS Overflow Scrolling, Standard
• CSS3 2D Transforms, Standard
• CSS3 Transitions, Standard
• Custom Data Attributes
• Fullscreen
• HTML5 Layout & Semantic
• Iframe Sandboxing
• IndexedDB, Standard
• Performance Timing
• Network Info
• Notifications
• Ring 2 Performance
• SharedWorkers
• SVG
• SVG Animation
• SVG Inline
• Video Tracks
• Vibration
• Page Visibility
• WebRTC (Real time Audio & Video)
@yottaa #WebPerf
How Ringmark works
test("postMessage", function() {
var postMessage = window.postMessage;
assert( !!postMessage, "postMessage supported" );
});
test("onmessage", function() {
assert( "onmessage" in window, "onmessage supported" );
});
asyncTest("postMessage/onmessage In Practice", function( async ) {
window.onmessage = function( event ) {
async.step(function() {
assert( true, "onmessage event fired" );
assert( event.data === "This is Ground Control", "message
content matched expected" );
async.done();
});
};
window.postMessage( "This is Ground Control", "*" );
});
@yottaa #WebPerf
Lord of the Rings: Dolphin (and BB10)
Also: http://www.browserscope.org/?category=ringmark&v=top-m
http://www.youtube.com/watch?v=8KAXh81hIwY
@yottaa #WebPerf
Modernizr
javascript library
For development
with HTML5 + CSS3
Ensure support for
old browsers
Checks for native
browser support of
new web features
Generates custom
object to test what
you need
@yottaa #WebPerf
Example method in Modernizr
Polyfills are
scripts that
simulate the
behavior of
native API in
older browsers
This method:
Modernizr.load
has been
released
standalone as
yesnope.js
Modernizr.load([
{
// Logical list of things we would normally need
test : Modernizr.fontface && Modernizr.canvas && Modernizr.cssgradients,
// Modernizr.load loads css and javascript by default
nope : ['presentational-polyfill.js', 'presentational.css']
},
// Functional polyfills
{
// This just has to be truthy
test : Modernizr.websockets && window.JSON,
// socket-io.js and json2.js
nope : 'functional-polyfills.js',
// You can also give arrays of resources to load.
both : [ 'app.js', 'extra.js' ],
complete : function () {
// Run this after everything in this group has downloaded
// and executed, as well everything in all previous groups
myApp.init();
}
},
// Run analytics after you've already run the rest of your app.
'post-analytics.js'
]);
@yottaa #WebPerf
Using Modernizr
Modernizr.load([
{
load: '//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js',
complete: function () {
if ( !window.jQuery ) {
Modernizr.load('js/libs/jquery-1.7.1.min.js');
}
}
},
{
// This will wait for the fallback to load and
// execute if it needs to.
load: 'needs-jQuery.js'
}
]);
• Modernizr attempts
to load a script that
requires jQuery
• Immediately after, it
tests to determine
whether the jQuery
object is available
• If not, loads a local
copy of jQuery
WIN: Modernizr.load
handles the execution
order for you.
@yottaa #WebPerf
Useful Links
The All-In-One Entirely-Not-Alphabetical No-
Bullshit Guide to HTML5 Fallbacks (yes, really)
http://bit.ly/12griWY
Writing Cross-Browser JavaScript Polyfills
http://addyosmani.com/blog/writing-polyfills/
Ultimate Guide to Mobile Emulators & Simulators
http://www.mobilexweb.com/emulators
@yottaa #WebPerf
Has.js
phiggins42./has.js
on Github
For development
with JavaScript
Self-contained tests
& unified framework
Checks for native
browser support of
JavaScript features
Modular/a-la-carte to
test only what you
need
if(has("function-
bind")){
// your enviroment
has a native
Function.prototype.bin
d
}else{
// you should get
a new browser.
}
@yottaa #WebPerf
Networks
@yottaa #WebPerf
@yottaa #WebPerf
AT&T Application Resource Optimizer
• All Platforms
– pcap/tcpdump network trace
– Wi-Fi Hotspot + Wireshark/NetMon
• iOS
– Remote Virtual Interface
– Uses Instruments to collect pcap over 3G/LTE
• Android
– Native Collector
– Requires root
https://github.com/attdevsupport/ARO
@yottaa #WebPerf
Close Connections
HttpURLConnection getimagecloseconn = (HttpURLConnection)
urln.openConnection();
getimagecloseconn.setRequestProperty("connection", "close");
getimagecloseconn.connect();
String cachecontrol = getimagecloseconn.getHeaderField("Cache-
Control"); InputStream isclose =
getimagecloseconn.getInputStream();
bitmap = BitmapFactory.decodeStream(isclose);
getimagecloseconn.disconnect();
>80% of apps DO NOT close connections!
@yottaa #WebPerf
Cache Your Data
• 17% of mobile traffic is duplicate downloads
– Reading from local cache is 75-99% faster than downloading
from the web
– Even when supported, it’s OFF by default!!
• Each file uniquely tagged, revalidated for
reach request
– Requests use the radio, drain the battery
– Also add 500-3,000 ms of latency
• Carefully assign Max-Age times
– App won’t check for the file on server until reached
– Retrieval is strictly file processing: up to 98% faster, no radio
http://soc.att.com/138bhRJ http://yhoo.it/1c6wcHV
@yottaa #WebPerf
Manage Connections
if (Tel.getDataActivity() >0){
if (Tel.getDataActivity() <4){
//ok, we are passed the minimum time to check //and we found
network activity-
//download the image here using image getter
imagegetter(counter, numberofimages); //and show the ad
AdRequest adRequest = new AdRequest();
adRequest.addTestDevice(AdRequest.TEST_EMULATOR);
adView.loadAd(adRequest);
// Initiate a generic request to load it with an ad
adView.loadAd(new AdRequest());
Grouping data, ads, analytics can save > 50%
@yottaa #WebPerf
Real Life
@yottaa #WebPerf
@yottaa #WebPerf
DIY - Move Yourself
• Lose the signal
– Find a basement or elevator
• Mix it up
– Walk in and out of WiFi areas
• Have a cuppa
– Find slow, saturated WiFi (coffee shop, train)
• Shut up and drive
– Ride along in a car to swap towers, signals
• Paint a picture
– Map your findings to understand and prioritize
http://bit.ly/14MOmNr
@yottaa #WebPerf
Device
@yottaa #WebPerf
@yottaa #WebPerf
Yottaa
Mobile Performance Testing
Understand performance across the globe
See iOS and Android end user rendering (diffs)
Verify graceful degradation across various networks
Mobile Monitoring
Eliminate downtime, errors
Understand site performance & competitive position
Prioritize optimization, feature work w/historical analysis
Mobile Optimization
Overcome slow / variable networks with adaptive infrastructure
Optimize dynamic content: offload bandwidth, intelligently cache, adapt images
Maximize user experience with federated CDN delivery, global server load balancing
Guarantee availability and network elasticity by analyzing and managing traffic
http://www.yottaa.com
@yottaa #WebPerf
In Summary
Heavily tested hybrid apps are most likely the ideal solution
Native is more
work, but nets a
better experience
There is no
substitute for real
world testing
If there’s a tool, use
it! ARO, Ringmark,
Modernizr, Yottaa
Mobile networks are
unreliable. Code for
graceful degradation
@yottaa #WebPerf
Thank You!
Follow us! @yottaa
www.yottaa.com/signup
@yottaa #WebPerf

Contenu connexe

Tendances

Testing Single Page Webapp
Testing Single Page WebappTesting Single Page Webapp
Testing Single Page WebappAkshay Mathur
 
High Performance Web Design
High Performance Web DesignHigh Performance Web Design
High Performance Web DesignKoji Ishimoto
 
Avoiding Common Pitfalls in Ember.js
Avoiding Common Pitfalls in Ember.jsAvoiding Common Pitfalls in Ember.js
Avoiding Common Pitfalls in Ember.jsAlex Speller
 
Cloud Foundry API for Fun and Ops
Cloud Foundry API for Fun and OpsCloud Foundry API for Fun and Ops
Cloud Foundry API for Fun and OpsChris DeLashmutt
 
Kirin - Making Single Page Web Apps with a Native UI
Kirin - Making Single Page Web Apps with a Native UIKirin - Making Single Page Web Apps with a Native UI
Kirin - Making Single Page Web Apps with a Native UIjhugman
 
jQuery Conference 2012 keynote
jQuery Conference 2012 keynotejQuery Conference 2012 keynote
jQuery Conference 2012 keynotedmethvin
 
Conversionista : Conversion manager course - Stockholm 20 march 2013
Conversionista : Conversion manager course  - Stockholm 20 march 2013Conversionista : Conversion manager course  - Stockholm 20 march 2013
Conversionista : Conversion manager course - Stockholm 20 march 2013Craig Sullivan
 
HTML5 or Android for Mobile Development?
HTML5 or Android for Mobile Development?HTML5 or Android for Mobile Development?
HTML5 or Android for Mobile Development?Reto Meier
 
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?Andrew Mleczko
 
Gears and HTML 5 @media Ajax London 2008
Gears and HTML 5 @media Ajax London 2008Gears and HTML 5 @media Ajax London 2008
Gears and HTML 5 @media Ajax London 2008dion
 
Hybrid application development
Hybrid application developmentHybrid application development
Hybrid application developmentEngin Hatay
 
JavaScript Libraries: The Big Picture
JavaScript Libraries: The Big PictureJavaScript Libraries: The Big Picture
JavaScript Libraries: The Big PictureSimon Willison
 
Flexible UI Components for a Multi-Framework World
Flexible UI Components for a Multi-Framework WorldFlexible UI Components for a Multi-Framework World
Flexible UI Components for a Multi-Framework WorldKevin Ball
 
Get Hip with JHipster - Colorado Springs OSS Meetup April 2016
Get Hip with JHipster - Colorado Springs OSS Meetup April 2016Get Hip with JHipster - Colorado Springs OSS Meetup April 2016
Get Hip with JHipster - Colorado Springs OSS Meetup April 2016Matt Raible
 
Best Practices in SharePoint Development - Just Freakin Work! Overcoming Hurd...
Best Practices in SharePoint Development - Just Freakin Work! Overcoming Hurd...Best Practices in SharePoint Development - Just Freakin Work! Overcoming Hurd...
Best Practices in SharePoint Development - Just Freakin Work! Overcoming Hurd...Geoff Varosky
 
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx UK 2016
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx UK 2016Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx UK 2016
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx UK 2016Matt Raible
 
Testing your Single Page Application
Testing your Single Page ApplicationTesting your Single Page Application
Testing your Single Page ApplicationWekoslav Stefanovski
 
Natural Language UI Testing using Behavior Driven Development with Pavlov and...
Natural Language UI Testing using Behavior Driven Development with Pavlov and...Natural Language UI Testing using Behavior Driven Development with Pavlov and...
Natural Language UI Testing using Behavior Driven Development with Pavlov and...Eric DeLabar
 
Codemotion Progressive Web Applications Pwa Webinar - Jorge Ferreiro - @jgfer...
Codemotion Progressive Web Applications Pwa Webinar - Jorge Ferreiro - @jgfer...Codemotion Progressive Web Applications Pwa Webinar - Jorge Ferreiro - @jgfer...
Codemotion Progressive Web Applications Pwa Webinar - Jorge Ferreiro - @jgfer...Jorge Ferreiro
 

Tendances (20)

Testing Single Page Webapp
Testing Single Page WebappTesting Single Page Webapp
Testing Single Page Webapp
 
High Performance Web Design
High Performance Web DesignHigh Performance Web Design
High Performance Web Design
 
Avoiding Common Pitfalls in Ember.js
Avoiding Common Pitfalls in Ember.jsAvoiding Common Pitfalls in Ember.js
Avoiding Common Pitfalls in Ember.js
 
Cloud Foundry API for Fun and Ops
Cloud Foundry API for Fun and OpsCloud Foundry API for Fun and Ops
Cloud Foundry API for Fun and Ops
 
Mobile native-hacks
Mobile native-hacksMobile native-hacks
Mobile native-hacks
 
Kirin - Making Single Page Web Apps with a Native UI
Kirin - Making Single Page Web Apps with a Native UIKirin - Making Single Page Web Apps with a Native UI
Kirin - Making Single Page Web Apps with a Native UI
 
jQuery Conference 2012 keynote
jQuery Conference 2012 keynotejQuery Conference 2012 keynote
jQuery Conference 2012 keynote
 
Conversionista : Conversion manager course - Stockholm 20 march 2013
Conversionista : Conversion manager course  - Stockholm 20 march 2013Conversionista : Conversion manager course  - Stockholm 20 march 2013
Conversionista : Conversion manager course - Stockholm 20 march 2013
 
HTML5 or Android for Mobile Development?
HTML5 or Android for Mobile Development?HTML5 or Android for Mobile Development?
HTML5 or Android for Mobile Development?
 
EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?EuroPython 2011 - How to build complex web applications having fun?
EuroPython 2011 - How to build complex web applications having fun?
 
Gears and HTML 5 @media Ajax London 2008
Gears and HTML 5 @media Ajax London 2008Gears and HTML 5 @media Ajax London 2008
Gears and HTML 5 @media Ajax London 2008
 
Hybrid application development
Hybrid application developmentHybrid application development
Hybrid application development
 
JavaScript Libraries: The Big Picture
JavaScript Libraries: The Big PictureJavaScript Libraries: The Big Picture
JavaScript Libraries: The Big Picture
 
Flexible UI Components for a Multi-Framework World
Flexible UI Components for a Multi-Framework WorldFlexible UI Components for a Multi-Framework World
Flexible UI Components for a Multi-Framework World
 
Get Hip with JHipster - Colorado Springs OSS Meetup April 2016
Get Hip with JHipster - Colorado Springs OSS Meetup April 2016Get Hip with JHipster - Colorado Springs OSS Meetup April 2016
Get Hip with JHipster - Colorado Springs OSS Meetup April 2016
 
Best Practices in SharePoint Development - Just Freakin Work! Overcoming Hurd...
Best Practices in SharePoint Development - Just Freakin Work! Overcoming Hurd...Best Practices in SharePoint Development - Just Freakin Work! Overcoming Hurd...
Best Practices in SharePoint Development - Just Freakin Work! Overcoming Hurd...
 
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx UK 2016
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx UK 2016Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx UK 2016
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx UK 2016
 
Testing your Single Page Application
Testing your Single Page ApplicationTesting your Single Page Application
Testing your Single Page Application
 
Natural Language UI Testing using Behavior Driven Development with Pavlov and...
Natural Language UI Testing using Behavior Driven Development with Pavlov and...Natural Language UI Testing using Behavior Driven Development with Pavlov and...
Natural Language UI Testing using Behavior Driven Development with Pavlov and...
 
Codemotion Progressive Web Applications Pwa Webinar - Jorge Ferreiro - @jgfer...
Codemotion Progressive Web Applications Pwa Webinar - Jorge Ferreiro - @jgfer...Codemotion Progressive Web Applications Pwa Webinar - Jorge Ferreiro - @jgfer...
Codemotion Progressive Web Applications Pwa Webinar - Jorge Ferreiro - @jgfer...
 

En vedette

Building Native Mobile Applications with PhoneGap
Building Native Mobile Applications with PhoneGapBuilding Native Mobile Applications with PhoneGap
Building Native Mobile Applications with PhoneGapSimon MacDonald
 
Native Mobile Apps, Xamarin, and PhoneGap
Native Mobile Apps, Xamarin, and PhoneGapNative Mobile Apps, Xamarin, and PhoneGap
Native Mobile Apps, Xamarin, and PhoneGapSasha Goldshtein
 
Harvard referencing system
Harvard referencing systemHarvard referencing system
Harvard referencing systemPatrice Seuwou
 
Tools and Techniques for mobile learning
Tools and Techniques for mobile learningTools and Techniques for mobile learning
Tools and Techniques for mobile learninggeoff stead
 
Native vs hybrid approach Mobile App Development
Native vs hybrid approach Mobile App DevelopmentNative vs hybrid approach Mobile App Development
Native vs hybrid approach Mobile App DevelopmentSenthil Kumar Kaliathan
 
How to Make a Native Mobile App with WordPress
How to Make a Native Mobile App with WordPressHow to Make a Native Mobile App with WordPress
How to Make a Native Mobile App with WordPressBrad Williams
 
Top 4 Cross Platform tools for Mobile App Development
Top 4 Cross Platform tools for Mobile App DevelopmentTop 4 Cross Platform tools for Mobile App Development
Top 4 Cross Platform tools for Mobile App Developmenttechugo
 
Developing and Designing Native Mobile Apps in Visual Studio
Developing and Designing Native Mobile Apps in Visual StudioDeveloping and Designing Native Mobile Apps in Visual Studio
Developing and Designing Native Mobile Apps in Visual StudioXamarin
 
Developing and Designing Native Mobile Apps in Xamarin Studio
Developing and Designing Native Mobile Apps in Xamarin StudioDeveloping and Designing Native Mobile Apps in Xamarin Studio
Developing and Designing Native Mobile Apps in Xamarin StudioXamarin
 
Introduction To Mobile Application Development
Introduction To Mobile Application DevelopmentIntroduction To Mobile Application Development
Introduction To Mobile Application DevelopmentSyed Absar
 
Mobile Application Development
Mobile Application DevelopmentMobile Application Development
Mobile Application Developmentjini james
 

En vedette (11)

Building Native Mobile Applications with PhoneGap
Building Native Mobile Applications with PhoneGapBuilding Native Mobile Applications with PhoneGap
Building Native Mobile Applications with PhoneGap
 
Native Mobile Apps, Xamarin, and PhoneGap
Native Mobile Apps, Xamarin, and PhoneGapNative Mobile Apps, Xamarin, and PhoneGap
Native Mobile Apps, Xamarin, and PhoneGap
 
Harvard referencing system
Harvard referencing systemHarvard referencing system
Harvard referencing system
 
Tools and Techniques for mobile learning
Tools and Techniques for mobile learningTools and Techniques for mobile learning
Tools and Techniques for mobile learning
 
Native vs hybrid approach Mobile App Development
Native vs hybrid approach Mobile App DevelopmentNative vs hybrid approach Mobile App Development
Native vs hybrid approach Mobile App Development
 
How to Make a Native Mobile App with WordPress
How to Make a Native Mobile App with WordPressHow to Make a Native Mobile App with WordPress
How to Make a Native Mobile App with WordPress
 
Top 4 Cross Platform tools for Mobile App Development
Top 4 Cross Platform tools for Mobile App DevelopmentTop 4 Cross Platform tools for Mobile App Development
Top 4 Cross Platform tools for Mobile App Development
 
Developing and Designing Native Mobile Apps in Visual Studio
Developing and Designing Native Mobile Apps in Visual StudioDeveloping and Designing Native Mobile Apps in Visual Studio
Developing and Designing Native Mobile Apps in Visual Studio
 
Developing and Designing Native Mobile Apps in Xamarin Studio
Developing and Designing Native Mobile Apps in Xamarin StudioDeveloping and Designing Native Mobile Apps in Xamarin Studio
Developing and Designing Native Mobile Apps in Xamarin Studio
 
Introduction To Mobile Application Development
Introduction To Mobile Application DevelopmentIntroduction To Mobile Application Development
Introduction To Mobile Application Development
 
Mobile Application Development
Mobile Application DevelopmentMobile Application Development
Mobile Application Development
 

Similaire à Build a Mobile App: Optimize Performance

HTML5 is the Future of Mobile, PhoneGap Takes You There Today
HTML5 is the Future of Mobile, PhoneGap Takes You There TodayHTML5 is the Future of Mobile, PhoneGap Takes You There Today
HTML5 is the Future of Mobile, PhoneGap Takes You There Todaydavyjones
 
John Resig Beijing 2010 (English Version)
John Resig Beijing 2010 (English Version)John Resig Beijing 2010 (English Version)
John Resig Beijing 2010 (English Version)Jia Mi
 
Mobile App Development
Mobile App DevelopmentMobile App Development
Mobile App DevelopmentChris Morrell
 
移动端Web app开发
移动端Web app开发移动端Web app开发
移动端Web app开发Zhang Xiaoxue
 
The Mobile Web Revealed For The Java Developer
The Mobile Web Revealed For The Java DeveloperThe Mobile Web Revealed For The Java Developer
The Mobile Web Revealed For The Java Developerbalunasj
 
Phonegap for Engineers
Phonegap for EngineersPhonegap for Engineers
Phonegap for EngineersBrian LeRoux
 
Image-ine That: Image Optimization for Conversion Maximization
Image-ine That: Image Optimization for Conversion MaximizationImage-ine That: Image Optimization for Conversion Maximization
Image-ine That: Image Optimization for Conversion MaximizationYottaa
 
State of jQuery - AspDotNetStorefront Conference
State of jQuery - AspDotNetStorefront ConferenceState of jQuery - AspDotNetStorefront Conference
State of jQuery - AspDotNetStorefront Conferencedmethvin
 
Extreme Web Performance for Mobile Devices - Velocity Barcelona 2014
Extreme Web Performance for Mobile Devices - Velocity Barcelona 2014Extreme Web Performance for Mobile Devices - Velocity Barcelona 2014
Extreme Web Performance for Mobile Devices - Velocity Barcelona 2014Maximiliano Firtman
 
Philly ete-2011
Philly ete-2011Philly ete-2011
Philly ete-2011davyjones
 
HTML5 and the Mobile Web
HTML5 and the Mobile WebHTML5 and the Mobile Web
HTML5 and the Mobile WebMrJ1971
 
Hybrid Mobile Development with Apache Cordova and
Hybrid Mobile Development with Apache Cordova and Hybrid Mobile Development with Apache Cordova and
Hybrid Mobile Development with Apache Cordova and Ryan Cuprak
 
Velocity building a performance lab for mobile apps in a day - final
Velocity   building a performance lab for mobile apps in a day - finalVelocity   building a performance lab for mobile apps in a day - final
Velocity building a performance lab for mobile apps in a day - finalAshray Mathur
 
Building AR and VR Experiences for Web Apps with JavaScript
Building AR and VR Experiences for Web Apps with JavaScriptBuilding AR and VR Experiences for Web Apps with JavaScript
Building AR and VR Experiences for Web Apps with JavaScriptFITC
 
Js On Mobile Devices
Js On Mobile DevicesJs On Mobile Devices
Js On Mobile DevicesJens Arps
 
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)Ryan Cuprak
 
Fake it 'til you make it
Fake it 'til you make itFake it 'til you make it
Fake it 'til you make itJonathan Snook
 

Similaire à Build a Mobile App: Optimize Performance (20)

HTML5 is the Future of Mobile, PhoneGap Takes You There Today
HTML5 is the Future of Mobile, PhoneGap Takes You There TodayHTML5 is the Future of Mobile, PhoneGap Takes You There Today
HTML5 is the Future of Mobile, PhoneGap Takes You There Today
 
John Resig Beijing 2010 (English Version)
John Resig Beijing 2010 (English Version)John Resig Beijing 2010 (English Version)
John Resig Beijing 2010 (English Version)
 
Mobile App Development
Mobile App DevelopmentMobile App Development
Mobile App Development
 
移动端Web app开发
移动端Web app开发移动端Web app开发
移动端Web app开发
 
Txjs
TxjsTxjs
Txjs
 
Hybrid mobile apps
Hybrid mobile appsHybrid mobile apps
Hybrid mobile apps
 
The Mobile Web Revealed For The Java Developer
The Mobile Web Revealed For The Java DeveloperThe Mobile Web Revealed For The Java Developer
The Mobile Web Revealed For The Java Developer
 
Phonegap for Engineers
Phonegap for EngineersPhonegap for Engineers
Phonegap for Engineers
 
Image-ine That: Image Optimization for Conversion Maximization
Image-ine That: Image Optimization for Conversion MaximizationImage-ine That: Image Optimization for Conversion Maximization
Image-ine That: Image Optimization for Conversion Maximization
 
State of jQuery - AspDotNetStorefront Conference
State of jQuery - AspDotNetStorefront ConferenceState of jQuery - AspDotNetStorefront Conference
State of jQuery - AspDotNetStorefront Conference
 
Extreme Web Performance for Mobile Devices - Velocity Barcelona 2014
Extreme Web Performance for Mobile Devices - Velocity Barcelona 2014Extreme Web Performance for Mobile Devices - Velocity Barcelona 2014
Extreme Web Performance for Mobile Devices - Velocity Barcelona 2014
 
Philly ete-2011
Philly ete-2011Philly ete-2011
Philly ete-2011
 
HTML5 and the Mobile Web
HTML5 and the Mobile WebHTML5 and the Mobile Web
HTML5 and the Mobile Web
 
Hybrid Mobile Development with Apache Cordova and
Hybrid Mobile Development with Apache Cordova and Hybrid Mobile Development with Apache Cordova and
Hybrid Mobile Development with Apache Cordova and
 
Velocity building a performance lab for mobile apps in a day - final
Velocity   building a performance lab for mobile apps in a day - finalVelocity   building a performance lab for mobile apps in a day - final
Velocity building a performance lab for mobile apps in a day - final
 
Building AR and VR Experiences for Web Apps with JavaScript
Building AR and VR Experiences for Web Apps with JavaScriptBuilding AR and VR Experiences for Web Apps with JavaScript
Building AR and VR Experiences for Web Apps with JavaScript
 
Js On Mobile Devices
Js On Mobile DevicesJs On Mobile Devices
Js On Mobile Devices
 
Future of Mobile
Future of MobileFuture of Mobile
Future of Mobile
 
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
 
Fake it 'til you make it
Fake it 'til you make itFake it 'til you make it
Fake it 'til you make it
 

Plus de Yottaa

2016: The Year to Align Marketing & IT Departments
2016: The Year to Align Marketing & IT Departments2016: The Year to Align Marketing & IT Departments
2016: The Year to Align Marketing & IT DepartmentsYottaa
 
Optimizing Website Performance in the Age of Mobile & Social
Optimizing Website Performance in the Age of Mobile & Social Optimizing Website Performance in the Age of Mobile & Social
Optimizing Website Performance in the Age of Mobile & Social Yottaa
 
NextGen CDNs: Webinar with Dan Rayburn of Frost and Sullivan and Ari Weil of ...
NextGen CDNs: Webinar with Dan Rayburn of Frost and Sullivan and Ari Weil of ...NextGen CDNs: Webinar with Dan Rayburn of Frost and Sullivan and Ari Weil of ...
NextGen CDNs: Webinar with Dan Rayburn of Frost and Sullivan and Ari Weil of ...Yottaa
 
How to Optimize Your Entire Mobile Experience
How to Optimize Your Entire Mobile ExperienceHow to Optimize Your Entire Mobile Experience
How to Optimize Your Entire Mobile ExperienceYottaa
 
Monetizing Mobile: How To Optimize Mobile Engagement and Conversions
Monetizing Mobile: How To Optimize Mobile Engagement and ConversionsMonetizing Mobile: How To Optimize Mobile Engagement and Conversions
Monetizing Mobile: How To Optimize Mobile Engagement and ConversionsYottaa
 
Beyond CDNs: How to Harness the Next Phase of Innovation in Web Performance
Beyond CDNs: How to Harness the Next Phase of Innovation in Web PerformanceBeyond CDNs: How to Harness the Next Phase of Innovation in Web Performance
Beyond CDNs: How to Harness the Next Phase of Innovation in Web PerformanceYottaa
 
Yottaa State of Web Performance Optimization Group Webinar
Yottaa State of Web Performance Optimization Group WebinarYottaa State of Web Performance Optimization Group Webinar
Yottaa State of Web Performance Optimization Group WebinarYottaa
 
Mobile Optimization Tips from Yottaa - MEGMeetup #1
Mobile Optimization Tips from Yottaa - MEGMeetup #1Mobile Optimization Tips from Yottaa - MEGMeetup #1
Mobile Optimization Tips from Yottaa - MEGMeetup #1Yottaa
 
Best practices to optimize commerce site performance [webinar slides]
Best practices to optimize commerce site performance [webinar slides]Best practices to optimize commerce site performance [webinar slides]
Best practices to optimize commerce site performance [webinar slides]Yottaa
 
Managing a Website Performance Optimization (WPO) Project
Managing a Website Performance Optimization (WPO) ProjectManaging a Website Performance Optimization (WPO) Project
Managing a Website Performance Optimization (WPO) ProjectYottaa
 
How GoDaddy Brought Down Millions of Sites – and How to Avoid Being a DNS Out...
How GoDaddy Brought Down Millions of Sites – and How to Avoid Being a DNS Out...How GoDaddy Brought Down Millions of Sites – and How to Avoid Being a DNS Out...
How GoDaddy Brought Down Millions of Sites – and How to Avoid Being a DNS Out...Yottaa
 
An Expert's Guide to Making a Website Slow - Chicago Webmasters Meetup 6/5/2012
An Expert's Guide to Making a Website Slow - Chicago Webmasters Meetup 6/5/2012An Expert's Guide to Making a Website Slow - Chicago Webmasters Meetup 6/5/2012
An Expert's Guide to Making a Website Slow - Chicago Webmasters Meetup 6/5/2012Yottaa
 
Cdn-Summit-2012-mocospace-and-yottaa
Cdn-Summit-2012-mocospace-and-yottaaCdn-Summit-2012-mocospace-and-yottaa
Cdn-Summit-2012-mocospace-and-yottaaYottaa
 
Your customer your asset seminar ecommerce and website speed yottaa
Your customer your asset seminar ecommerce and website speed   yottaaYour customer your asset seminar ecommerce and website speed   yottaa
Your customer your asset seminar ecommerce and website speed yottaaYottaa
 
Anti design patterns - an experts guide to making a slow website - yottaa sit...
Anti design patterns - an experts guide to making a slow website - yottaa sit...Anti design patterns - an experts guide to making a slow website - yottaa sit...
Anti design patterns - an experts guide to making a slow website - yottaa sit...Yottaa
 
Yottaa site speed optimizer presentation at mass innovation nights part of fu...
Yottaa site speed optimizer presentation at mass innovation nights part of fu...Yottaa site speed optimizer presentation at mass innovation nights part of fu...
Yottaa site speed optimizer presentation at mass innovation nights part of fu...Yottaa
 
Yottaa website-performance-services-overview-hostingcon-2011-
Yottaa website-performance-services-overview-hostingcon-2011-Yottaa website-performance-services-overview-hostingcon-2011-
Yottaa website-performance-services-overview-hostingcon-2011-Yottaa
 
Mongodb beijingconf yottaa_3.3
Mongodb beijingconf yottaa_3.3Mongodb beijingconf yottaa_3.3
Mongodb beijingconf yottaa_3.3Yottaa
 

Plus de Yottaa (18)

2016: The Year to Align Marketing & IT Departments
2016: The Year to Align Marketing & IT Departments2016: The Year to Align Marketing & IT Departments
2016: The Year to Align Marketing & IT Departments
 
Optimizing Website Performance in the Age of Mobile & Social
Optimizing Website Performance in the Age of Mobile & Social Optimizing Website Performance in the Age of Mobile & Social
Optimizing Website Performance in the Age of Mobile & Social
 
NextGen CDNs: Webinar with Dan Rayburn of Frost and Sullivan and Ari Weil of ...
NextGen CDNs: Webinar with Dan Rayburn of Frost and Sullivan and Ari Weil of ...NextGen CDNs: Webinar with Dan Rayburn of Frost and Sullivan and Ari Weil of ...
NextGen CDNs: Webinar with Dan Rayburn of Frost and Sullivan and Ari Weil of ...
 
How to Optimize Your Entire Mobile Experience
How to Optimize Your Entire Mobile ExperienceHow to Optimize Your Entire Mobile Experience
How to Optimize Your Entire Mobile Experience
 
Monetizing Mobile: How To Optimize Mobile Engagement and Conversions
Monetizing Mobile: How To Optimize Mobile Engagement and ConversionsMonetizing Mobile: How To Optimize Mobile Engagement and Conversions
Monetizing Mobile: How To Optimize Mobile Engagement and Conversions
 
Beyond CDNs: How to Harness the Next Phase of Innovation in Web Performance
Beyond CDNs: How to Harness the Next Phase of Innovation in Web PerformanceBeyond CDNs: How to Harness the Next Phase of Innovation in Web Performance
Beyond CDNs: How to Harness the Next Phase of Innovation in Web Performance
 
Yottaa State of Web Performance Optimization Group Webinar
Yottaa State of Web Performance Optimization Group WebinarYottaa State of Web Performance Optimization Group Webinar
Yottaa State of Web Performance Optimization Group Webinar
 
Mobile Optimization Tips from Yottaa - MEGMeetup #1
Mobile Optimization Tips from Yottaa - MEGMeetup #1Mobile Optimization Tips from Yottaa - MEGMeetup #1
Mobile Optimization Tips from Yottaa - MEGMeetup #1
 
Best practices to optimize commerce site performance [webinar slides]
Best practices to optimize commerce site performance [webinar slides]Best practices to optimize commerce site performance [webinar slides]
Best practices to optimize commerce site performance [webinar slides]
 
Managing a Website Performance Optimization (WPO) Project
Managing a Website Performance Optimization (WPO) ProjectManaging a Website Performance Optimization (WPO) Project
Managing a Website Performance Optimization (WPO) Project
 
How GoDaddy Brought Down Millions of Sites – and How to Avoid Being a DNS Out...
How GoDaddy Brought Down Millions of Sites – and How to Avoid Being a DNS Out...How GoDaddy Brought Down Millions of Sites – and How to Avoid Being a DNS Out...
How GoDaddy Brought Down Millions of Sites – and How to Avoid Being a DNS Out...
 
An Expert's Guide to Making a Website Slow - Chicago Webmasters Meetup 6/5/2012
An Expert's Guide to Making a Website Slow - Chicago Webmasters Meetup 6/5/2012An Expert's Guide to Making a Website Slow - Chicago Webmasters Meetup 6/5/2012
An Expert's Guide to Making a Website Slow - Chicago Webmasters Meetup 6/5/2012
 
Cdn-Summit-2012-mocospace-and-yottaa
Cdn-Summit-2012-mocospace-and-yottaaCdn-Summit-2012-mocospace-and-yottaa
Cdn-Summit-2012-mocospace-and-yottaa
 
Your customer your asset seminar ecommerce and website speed yottaa
Your customer your asset seminar ecommerce and website speed   yottaaYour customer your asset seminar ecommerce and website speed   yottaa
Your customer your asset seminar ecommerce and website speed yottaa
 
Anti design patterns - an experts guide to making a slow website - yottaa sit...
Anti design patterns - an experts guide to making a slow website - yottaa sit...Anti design patterns - an experts guide to making a slow website - yottaa sit...
Anti design patterns - an experts guide to making a slow website - yottaa sit...
 
Yottaa site speed optimizer presentation at mass innovation nights part of fu...
Yottaa site speed optimizer presentation at mass innovation nights part of fu...Yottaa site speed optimizer presentation at mass innovation nights part of fu...
Yottaa site speed optimizer presentation at mass innovation nights part of fu...
 
Yottaa website-performance-services-overview-hostingcon-2011-
Yottaa website-performance-services-overview-hostingcon-2011-Yottaa website-performance-services-overview-hostingcon-2011-
Yottaa website-performance-services-overview-hostingcon-2011-
 
Mongodb beijingconf yottaa_3.3
Mongodb beijingconf yottaa_3.3Mongodb beijingconf yottaa_3.3
Mongodb beijingconf yottaa_3.3
 

Dernier

Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesFatimaKhan178732
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionSafetyChain Software
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3JemimahLaneBuaron
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphThiyagu K
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdfSoniaTolstoy
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationnomboosow
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)eniolaolutunde
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdfssuser54595a
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxheathfieldcps1
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingTechSoup
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformChameera Dedduwage
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfsanyamsingh5019
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Celine George
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...Marc Dusseiller Dusjagr
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104misteraugie
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeThiyagu K
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfJayanti Pande
 

Dernier (20)

Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and Actinides
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory Inspection
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot Graph
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communication
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy Reform
 
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptxINDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdf
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdf
 

Build a Mobile App: Optimize Performance

  • 1. @yottaa #WebPerf So you want to build a mobile app… Brought to you by:
  • 2. @yottaa #WebPerf Available info, tooling driven by market http://ti.me/18FeIn4
  • 3. @yottaa #WebPerf Prioritize based on volume Share (%) of Smartphone Subscribers January 2013 April 2013 Delta Google 52.3% 52.0% -0.3% Apple 37.8% 39.2% 1.4% BlackBerry 5.9% 5.1% -0.8% Microsoft 3.1% 3.0% -0.1% Symbian 0.5% 0.5% 0.0% http://bit.ly/1bRw6FC
  • 4. @yottaa #WebPerf Prioritize further: who are your users? Your momma’s… got game! It’s actually Gen-Xers. Millennials are into fitness & entertainment http://blog.flurry.com/
  • 5. @yottaa #WebPerf What do your target users do and use? 80% of mobile interaction is via native apps HTML5 apps are great for: • Productivity • News • Generally - forms http://bit.ly/17G1Ng5
  • 6. @yottaa #WebPerf Why are only 6% of apps HTML5? No app store makes it more difficult to monetize Build once, run everywhere translates to optimize everywhere HTML5’s “good enough” experience isn’t always good enough
  • 7. @yottaa #WebPerf For LinkedIN it the ecosystem was lacking 2012: HTML5 for efficiency & agility 8-10% Mobile users Apps running out of Memory Lacked testing & profiling 2013: Native for user experience Majority of Traffic from mobile Better features (use HTML5, CSS for email) Apple and Google drive innovation http://bit.ly/15NdyAg
  • 8. @yottaa #WebPerf High-level Overview Governing body: W3C • 5 years to ratify… • 200+ browser interpretations More security vulnerabilities • Can’t encrypt cached data • Encrypting data in motion compromises performance
  • 9. @yottaa #WebPerf High-level Overview Governing bodies: Apple and Google • At least one release/year • iOS is highly standardized & regulated • More Android variety, but still finite (~30 varieties vs. over 200 for HTML5) Better user experience • Fewer security vulnerabilities • Device-specific functionality is richer
  • 10. @yottaa #WebPerf OK, to be fair… http://blog.flurry.com Over the past two years, Android has had 21 updates to their browser.
  • 11. @yottaa #WebPerf What do you hold most dear? 1. User experience 2. Performance 3. Monetization 4. X-plat deployment $$ 5. Fragmentation 6. Programming expertise 7. Updates & distribution 8. New innovation timeline 9. Security
  • 12. @yottaa #WebPerf A bit of trivia http://bit.ly/15iQlqz STARTUP TIME W/8 TABS AVERAGE STARTUP TIME 40-TAB LOAD (CACHED, HOT) WEBKIT SUNSPIDER JSBENCH FACEBOOK JSGAMEBENCH HARDWARE ACCELERATION PAGE LOAD RELIABILITY OVERALL WINNER
  • 13. @yottaa #WebPerf Test…Testing…Testing 1, 2, 3 Question: How do your features Appear to your users? Behave in the wild? Impact the device? Perform across networks?
  • 15. @yottaa #WebPerf To Emulate or Simulate? Emulator • Mimics device hardware & software • Android developers tend to complain about performance • Emulates GPU but tends to lag (instructions translated to x86) Simulator • Mimics device software • Apple stresses device testing b/c disk space, CPU & memory speed different • Faster cycle times, but requires recompiling to device http://bit.ly/17G2hTH
  • 16. @yottaa #WebPerf How to determine browser features • UA sniffing – Poor choice – detects navigator.userAgent – User agent string may have changed – New browser versions or flavors • Feature detection – HTML5 + CSS3 – JavaScript
  • 17. @yottaa #WebPerf rng.io - Ringmark OSS maintained by Facebook @ https://github.com/facebook/rng.io Native UX testing & development Works with existing W3C tests Full list of supported features across browsers: http://bit.ly/1c0jDOj Check whether an API is usable & produces expected, specified output
  • 18. @yottaa #WebPerf Grab the brass browser ring Ring 0 State of the world today. Actively used mobile web features. • Application Cache • Canvas • CSS 2.1 • CSS 3D Transforms • CSS3 Animation • CSS3 Background • CSS3 Color • CSS Min, Max • CSS Opacity • CSS3 Text • CSS3 2D Transforms • CSS3 Transitions • CSS3 UI • CSS3 Values • Data URL • Doctype • Geolocation • JSON • Masking Images • Web Messaging • Progress Event • Prompts • Selectors 2 • Video • Viewport • Web Storage Ring 1 Enable 2D game, audio, video, camera Most popular types of mobile apps today. • Audio, Multi-Track • Blob • CSS3 Background, Standard • CSS3 Fonts • CSS3 MediaQueries • CSS Overflow Scrolling • CSS Position Fixed • CSS3 Text, Standard • CSS3 UI, Standard • Device Orientation Event • FileReader • FormData • HTML5 Forms, Inputs • Hashchange • History • Media Capture Input • IndexedDB • Multi Touch Event • Offline Mode • Ring 1 Performance • Touch Event • URL • Web Workers • XHR2 Ring 2 3D games, messaging, video streaming Work in progress. • Animation Timing • Canvas 3D • Canvas 3D, Standard • CSS Unspecified • CSS3 Animation, Standard • CSS3 BorderImage • CSS Element • CSS3 Flexbox • CSS3 Flexbox, Standard • CSS3 Images • CSS3 Images, Standard • CSS Overflow Scrolling, Standard • CSS3 2D Transforms, Standard • CSS3 Transitions, Standard • Custom Data Attributes • Fullscreen • HTML5 Layout & Semantic • Iframe Sandboxing • IndexedDB, Standard • Performance Timing • Network Info • Notifications • Ring 2 Performance • SharedWorkers • SVG • SVG Animation • SVG Inline • Video Tracks • Vibration • Page Visibility • WebRTC (Real time Audio & Video)
  • 19. @yottaa #WebPerf How Ringmark works test("postMessage", function() { var postMessage = window.postMessage; assert( !!postMessage, "postMessage supported" ); }); test("onmessage", function() { assert( "onmessage" in window, "onmessage supported" ); }); asyncTest("postMessage/onmessage In Practice", function( async ) { window.onmessage = function( event ) { async.step(function() { assert( true, "onmessage event fired" ); assert( event.data === "This is Ground Control", "message content matched expected" ); async.done(); }); }; window.postMessage( "This is Ground Control", "*" ); });
  • 20. @yottaa #WebPerf Lord of the Rings: Dolphin (and BB10) Also: http://www.browserscope.org/?category=ringmark&v=top-m http://www.youtube.com/watch?v=8KAXh81hIwY
  • 21. @yottaa #WebPerf Modernizr javascript library For development with HTML5 + CSS3 Ensure support for old browsers Checks for native browser support of new web features Generates custom object to test what you need
  • 22. @yottaa #WebPerf Example method in Modernizr Polyfills are scripts that simulate the behavior of native API in older browsers This method: Modernizr.load has been released standalone as yesnope.js Modernizr.load([ { // Logical list of things we would normally need test : Modernizr.fontface && Modernizr.canvas && Modernizr.cssgradients, // Modernizr.load loads css and javascript by default nope : ['presentational-polyfill.js', 'presentational.css'] }, // Functional polyfills { // This just has to be truthy test : Modernizr.websockets && window.JSON, // socket-io.js and json2.js nope : 'functional-polyfills.js', // You can also give arrays of resources to load. both : [ 'app.js', 'extra.js' ], complete : function () { // Run this after everything in this group has downloaded // and executed, as well everything in all previous groups myApp.init(); } }, // Run analytics after you've already run the rest of your app. 'post-analytics.js' ]);
  • 23. @yottaa #WebPerf Using Modernizr Modernizr.load([ { load: '//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js', complete: function () { if ( !window.jQuery ) { Modernizr.load('js/libs/jquery-1.7.1.min.js'); } } }, { // This will wait for the fallback to load and // execute if it needs to. load: 'needs-jQuery.js' } ]); • Modernizr attempts to load a script that requires jQuery • Immediately after, it tests to determine whether the jQuery object is available • If not, loads a local copy of jQuery WIN: Modernizr.load handles the execution order for you.
  • 24. @yottaa #WebPerf Useful Links The All-In-One Entirely-Not-Alphabetical No- Bullshit Guide to HTML5 Fallbacks (yes, really) http://bit.ly/12griWY Writing Cross-Browser JavaScript Polyfills http://addyosmani.com/blog/writing-polyfills/ Ultimate Guide to Mobile Emulators & Simulators http://www.mobilexweb.com/emulators
  • 25. @yottaa #WebPerf Has.js phiggins42./has.js on Github For development with JavaScript Self-contained tests & unified framework Checks for native browser support of JavaScript features Modular/a-la-carte to test only what you need if(has("function- bind")){ // your enviroment has a native Function.prototype.bin d }else{ // you should get a new browser. }
  • 27. @yottaa #WebPerf AT&T Application Resource Optimizer • All Platforms – pcap/tcpdump network trace – Wi-Fi Hotspot + Wireshark/NetMon • iOS – Remote Virtual Interface – Uses Instruments to collect pcap over 3G/LTE • Android – Native Collector – Requires root https://github.com/attdevsupport/ARO
  • 28. @yottaa #WebPerf Close Connections HttpURLConnection getimagecloseconn = (HttpURLConnection) urln.openConnection(); getimagecloseconn.setRequestProperty("connection", "close"); getimagecloseconn.connect(); String cachecontrol = getimagecloseconn.getHeaderField("Cache- Control"); InputStream isclose = getimagecloseconn.getInputStream(); bitmap = BitmapFactory.decodeStream(isclose); getimagecloseconn.disconnect(); >80% of apps DO NOT close connections!
  • 29. @yottaa #WebPerf Cache Your Data • 17% of mobile traffic is duplicate downloads – Reading from local cache is 75-99% faster than downloading from the web – Even when supported, it’s OFF by default!! • Each file uniquely tagged, revalidated for reach request – Requests use the radio, drain the battery – Also add 500-3,000 ms of latency • Carefully assign Max-Age times – App won’t check for the file on server until reached – Retrieval is strictly file processing: up to 98% faster, no radio http://soc.att.com/138bhRJ http://yhoo.it/1c6wcHV
  • 30. @yottaa #WebPerf Manage Connections if (Tel.getDataActivity() >0){ if (Tel.getDataActivity() <4){ //ok, we are passed the minimum time to check //and we found network activity- //download the image here using image getter imagegetter(counter, numberofimages); //and show the ad AdRequest adRequest = new AdRequest(); adRequest.addTestDevice(AdRequest.TEST_EMULATOR); adView.loadAd(adRequest); // Initiate a generic request to load it with an ad adView.loadAd(new AdRequest()); Grouping data, ads, analytics can save > 50%
  • 32. @yottaa #WebPerf DIY - Move Yourself • Lose the signal – Find a basement or elevator • Mix it up – Walk in and out of WiFi areas • Have a cuppa – Find slow, saturated WiFi (coffee shop, train) • Shut up and drive – Ride along in a car to swap towers, signals • Paint a picture – Map your findings to understand and prioritize http://bit.ly/14MOmNr
  • 34. @yottaa #WebPerf Yottaa Mobile Performance Testing Understand performance across the globe See iOS and Android end user rendering (diffs) Verify graceful degradation across various networks Mobile Monitoring Eliminate downtime, errors Understand site performance & competitive position Prioritize optimization, feature work w/historical analysis Mobile Optimization Overcome slow / variable networks with adaptive infrastructure Optimize dynamic content: offload bandwidth, intelligently cache, adapt images Maximize user experience with federated CDN delivery, global server load balancing Guarantee availability and network elasticity by analyzing and managing traffic http://www.yottaa.com
  • 35. @yottaa #WebPerf In Summary Heavily tested hybrid apps are most likely the ideal solution Native is more work, but nets a better experience There is no substitute for real world testing If there’s a tool, use it! ARO, Ringmark, Modernizr, Yottaa Mobile networks are unreliable. Code for graceful degradation
  • 36. @yottaa #WebPerf Thank You! Follow us! @yottaa www.yottaa.com/signup @yottaa #WebPerf

Notes de l'éditeur

  1. Appcelerator/IDC’s Q2 2012 survey of 3,600+ developers found that 6% of applications were targeted for development in HTML5 1.25 million native applications versus 75,000 HTML5 applications in production today in public app stores: these are telling statistics.400,000,000 accounts tied to credit cards in Apple’s app store, This is the largest number of participants for a transactional site on the Internet. Consumers have downloaded 30 billion apps and Applehas written checks for over $5 billion to developers. The store is now available in over 155 countries around the world. However, costs can be prohibitive when building native applications on every required OS. In the same developer survey referenced above, 80% of developers expressed the need to deploy their applications on more than one operating system. Development team costs need to be doubled or tripled to deliver this native experience on multiple OSes (if those developers can even be found and hired).
  2. It’s ideal to keep rendered content for instant switching back. However you could only do that if memory management is done optimally. There’s only so much you could keep until the app crashes running out of memory.
  3. Over 28 implementations by multiple manufacturers (e.g. HTC, Samsung, Motorola, Kindle, Google itself, Sony and more), the pains associated with writing an application for Android deployment are well documented.
  4. TouchOrientationGPSBandwidth
  5. https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-Browser-Polyfills
  6. It works by trying to load in the script, and then immediately after, testing to see if the jQuery object is available. If It’s not, then they load a local copy of jQuery as a fallback. This is generally not that easy in script-loaders, but Modernizr.load has got you covered. You can just use the same logic, and Modernizr.load will handle the execution order for you:
  7. https://github.com/phiggins42/has.js
  8. http://bit.ly/133ixOB
  9. https://github.com/attdevsupport/ARO/tree/master/2013DevSummitTurbocharge
  10. http://bit.ly/12Kl2lp
  11. http://bit.ly/12Klct4