SlideShare a Scribd company logo
Test Your Mobile Application’s Performance
with AT&T’s Application Resource Optimizer
Doug Sillars, PhD
Application Optimization Guru
Developer Advocacy, AT&T
@dougsillars
How Fast is Your App?
How Fast is Your App?
How Fast is Your App?
“Zombies appear to be
incapable of running.
The fastest have been
observed to move at a
rate of barely one step
per 1.5 seconds.”
– Max Brooks,
Zombie Survival Guide

Recommended for you

redpill Mobile Case Study (Salvation Army)
redpill Mobile Case Study (Salvation Army)redpill Mobile Case Study (Salvation Army)
redpill Mobile Case Study (Salvation Army)

Case study that summarizes key findings by Red Pill Development as they built a mobile interface for Notes applications at Salvation Army. Using asymmetric modernization a mobile interface can be delivered for an entire portfolio of applications in a few days.

xpagesmobilesalvationarmy
IT Operations Management with OpManager
IT Operations Management with OpManagerIT Operations Management with OpManager
IT Operations Management with OpManager

Embrace IT Operations Management with OpManager to get the visibility into your network, server & storage, application, and service layers. Find the exact fault in minutes and troubleshoot quickly.

itomit operations managementmanageengine opmanager
Mobile apps that win
Mobile apps that winMobile apps that win
Mobile apps that win

Wednesday morning keynote at Mobile+Web Devcon: Mobile Apps that Win - Achieving High Performance with Real-time Analytics - Presented by Steve Fox, Dell Software. Mobile users expect great performance from their apps. Slow apps languish unused and are often uninstalled or given bad reviews. And once a mobile app is labeled as slow — even if only because of one buggy version that slipped out — it can be difficult to recover market perception and corresponding business goals. This session will cover common challenges in achieving high performance for your app, techniques to minimize risk and negative perception, and how to monitor app performance based on real-time user experience so you can proactively address issues. Sign up for a free trial of Foglight APM SaaS Edition at www.foglight.com.

apmmwdconmobile apps
How Important is Speed Anyway?
Traditional Web (PC) Stats:
• Yahoo! 400ms delay leads to 5-9% drop in traffic (1)
• 1 second of latency (2)
–  Customer satisfaction drops 16%
–  Conversion to sales drops 7%
• 10 Golden Principles of Successful Web Apps:
–  “Speed is always the most important feature” (3)
Sillars’ Corollary: If speed is important on the web, it
follows that speed is even more important for mobile
• 71 % of users expect mobile sites to be as fast as desktop (4)
(1) slideshare.net/stoyan/dont-make-me-wait-or-building-highperformance-web-applications
(2) http://econsultancy.com/us/blog/10195-the-need-for-online-speed-in-america
(3) 10 Golden Principles Of Successful Web Apps http://www.businessinsider.com/10-golden-principles-successful-web-apps-2010-3
(4) http://econsultancy.com/us/blog/9162-the-importance-of-speed-for-mobile-commerce
What Do Mobile Users Expect?
High Performance Apps
•  Speed
–  64% of mobile users expect pages/apps to load in <4 seconds (1)
•  Battery Life
–  Better Battery life (6.1 satisfied of 10) !!! (2)
–  72% rate phone as very good or excellent
•  Only 21% rate battery life as very good or excellent (3)
•  Reasonable data usage
–  No one wants to hit their cap
(1) http://www.keynote.com/docs/reports/Keynote-2012-Mobile-User-Survey.pdf
(2) http://www.businessnewsdaily.com/2200-smartphone-customer-satisfaction-battery-life.html
(3) Personal communication from Swiftkey study
What Do Mobile Users Get?
Our Customers Expect More!!!!
• Top Mobile frustrations “web page slow to load” (1)
• Battery life top reported problem (2)
(1) http://www.keynote.com/docs/reports/Keynote-2012-Mobile-User-Survey.pdf
(2) http://www.businessnewsdaily.com/2200-smartphone-customer-satisfaction-battery-life.html
As a Developer, What Can I Do?
• Learn How Mobile is Different
• Optimize:
–  Learn the best practices
–  Test your application
–  Fix issues before your customers discover them
• Get ahead of the game – be ready for industry standards
and grading systems
It can’t be MY developers, they’re the best
• AT&T’s Application Resource Optimizer (ARO)
–  http://Developer.att.com/ARO
–  In 2012, <2% of tested apps required no optimization

Recommended for you

Modern Web Applications
Modern Web ApplicationsModern Web Applications
Modern Web Applications

Todays web front-end applications architecture. All resources shared at the end of presentation. Full sources on: https://lnkd.in/gyQuFKK https://lnkd.in/gZK8Sp3

webpacknodejsreact
Application Delivery Platform Towards Edge Computing - Bukhary Ikhwan
Application Delivery Platform Towards Edge Computing - Bukhary IkhwanApplication Delivery Platform Towards Edge Computing - Bukhary Ikhwan
Application Delivery Platform Towards Edge Computing - Bukhary Ikhwan

Edge computing pushes applications and data processing closer to data sources like IoT devices to enable faster results, real-time analytics, and better decision making. Docker is well-suited for application delivery in edge computing due to its lightweight containers that have a small footprint and fast start times. A demo showed containers for a learning management system deploying in seconds versus minutes for virtual machines. Offloading an ETL application to edge resources also significantly reduced bandwidth usage and processing time compared to alternatives that transferred all data to the cloud. Docker's portability and layered images make it a good fit for distributed application delivery in edge computing environments.

Docker:- Application Delivery Platform Towards Edge Computing
Docker:- Application Delivery Platform Towards Edge ComputingDocker:- Application Delivery Platform Towards Edge Computing
Docker:- Application Delivery Platform Towards Edge Computing

Edge computing pushes applications and data processing closer to data sources like IoT devices to enable low latency and real-time insights. Docker containers are well-suited for edge computing due to their small size, fast deployment, and ability to run on resource-constrained edge devices. A demo showed containers for a learning management system deployed in seconds at an edge location versus minutes for virtual machines. Offloading an ETL application to edge resources also significantly reduced bandwidth usage versus processing in the cloud. Docker provides a lightweight container-based platform to efficiently deliver and manage applications at the edge.

dockerfog computingedge computing
How is Mobile Different?
Internet
IP applications
Mobile applications
Wireless
State
Machine
Mobile apps often do not consider the uniqueness of the wireless network
Optimized mobile applications improve user experience with
improved battery life and perceived faster speed
Data Transfer
LTE RRC State Machine
Timer Expiration
Radio Off Radio On
IDLE
Continuous
Reception
Tail
For AT&T’s Model:
T1 = 100ms
T2 = 20ms
T3 = 10,00ms
100ms
10s
Data Transfer
LTE RRC State Machine
Timer Expiration
Radio Off Radio On
IDLE
Continuous
Reception
Tail
• LTE has higher throughput than 3G
• This does not improve application behaviour
-  The higher power actually accentuates any issues your application might have!
100ms
10s
It’s All Connected
Application traffic triggers RRC State transitions:
•  RRC State transitions control

Recommended for you

Smarter Apps for Smarter phones - see me at bit.ly/1ezHj0c
Smarter Apps for Smarter phones - see me at bit.ly/1ezHj0cSmarter Apps for Smarter phones - see me at bit.ly/1ezHj0c
Smarter Apps for Smarter phones - see me at bit.ly/1ezHj0c

My key note speech at Droidcon 2012 promoting DT's leadership in the Smartphone Challenge initiative. Smartphones have catapulted the distribution of mobile apps to new highs with increased usage of mobile networks. The Smartphone challenge project goal is to optimise the interaction between devices & networks DT understand the threat from network intensive, badly designed applications and developed developer guidelines. DT alone cannot influence the market and we decided to leverage the support of GSMA, industry affiliates and developers themselves.

RTI Data-Distribution Service (DDS) Master Class 2011
RTI Data-Distribution Service (DDS) Master Class 2011RTI Data-Distribution Service (DDS) Master Class 2011
RTI Data-Distribution Service (DDS) Master Class 2011

This document provides a summary of a masterclass on building distributed real-time systems using the Data Distribution Service (DDS). The class covers DDS concepts and technology, including runtime services, development tools, and standards. It discusses how DDS enables a data-centric model and global data space to support high-performance, scalable, and reliable real-time systems that interact directly with the physical world.

real-time soaamqppub-sub
Mobile Performance Testing - Testing the Server
Mobile Performance Testing  - Testing the ServerMobile Performance Testing  - Testing the Server
Mobile Performance Testing - Testing the Server

This document discusses testing the server side performance of mobile websites. It begins with introducing the importance and challenges of mobile performance testing. It then outlines an agenda covering differences between mobile and desktop usage, steps to take in testing including simple comparison, performance and load tests, and optimization strategies. Specifically, it recommends starting with basic tests to compare a site on desktop vs mobile, then using tools like WebPagetest to analyze performance, and finally gradually increasing load on servers. The overall goal is to help organizations prevent mobile performance issues through early and frequent testing.

mobile performance testing
It’s All Connected
Application traffic triggers RRC State transitions:
•  RRC State transitions control
–  Speed/User Experience
It’s All Connected
Application traffic triggers RRC State transitions:
•  RRC State transitions control
–  Speed/User Experience
–  Device battery life
It’s All Connected
Application traffic triggers RRC State transitions:
•  RRC State transitions control
–  Speed/User Experience
–  Device battery life
–  Network efficiency
AT&T Application Resource Optimizer
• Free diagnostic tool
• Open Source
• Test any Platform
• Emulate any carrier network
• Analysis of both Native Apps and the Mobile Web
• Winner of the 2013 GSMA Smartphone Application Challenge award at
MWC
Allows YOU as a developer to SEE exactly how data
is flowing from your app!

Recommended for you

Mobile Apps Performance Testing Using Open Source Tool JMeter
Mobile Apps Performance Testing Using Open Source Tool JMeterMobile Apps Performance Testing Using Open Source Tool JMeter
Mobile Apps Performance Testing Using Open Source Tool JMeter

The document proposes using the open source tool JMeter to perform mobile performance testing in a low-cost manner. It describes capturing the HTTP traffic between a mobile app and server by routing all requests from a real device through a proxy server with JMeter installed. This allows generating test scripts that closely mimic real-world usage without requiring expensive tools or emulators. The approach is device and application independent, producing accurate results without network latency issues encountered through other tools.

jmetermobile apps performance testingjmeter mobile testing
IRJET- Displaying Smart Phone Data in the Desktop using Firebase
IRJET- Displaying Smart Phone Data in the Desktop using FirebaseIRJET- Displaying Smart Phone Data in the Desktop using Firebase
IRJET- Displaying Smart Phone Data in the Desktop using Firebase

This document summarizes a research project that aims to display smart phone data like call logs, battery status, and SMS information on a desktop computer using Firebase. The project involves developing an Android application to collect device data and send it to a Firebase database. A web application is then created to retrieve the stored data from Firebase and display it on a desktop, allowing users to view their smart phone information from anywhere. The system is designed to address limitations of companies restricting smart phone use at work, enabling users to still access important phone updates from their computer. Firebase is used as the database for its low cost and ability to store mobile data.

irjet
Starting Your DevOps Journey – Practical Tips for Ops
Starting Your DevOps Journey – Practical Tips for OpsStarting Your DevOps Journey – Practical Tips for Ops
Starting Your DevOps Journey – Practical Tips for Ops

To watch, please see: https://info.dynatrace.com/apm_wc_getting_started_with_devops_na_registration.html Starting Your DevOps Journey: Practical Tips for Ops In this webinar, Andreas Grabner, Chief DevOps Activist at Dynatrace, shares practical tips that all IT groups from Dev to Ops can use to start their DevOps journey quickly. With experience from hundreds of DevOps deployments, Andi provides insights it would take your team months or years to learn firsthand. - Learn how everyone on your Ops team can use APM to better understand and monitor SLAs, Performance and End User Impact of their applications. - Foster better collaboration between Ops and architects by extending basic system monitoring to monolith and microservices architectures. - Shift-left your testing and QA by working with metrics that you and the architects agreed on up front, resulting in early relevant feedback and faster code deployments. - Hear why changing the cultural mindset from “fear of change” to “Continuous Innovation and Optimization” is critical for success. Andi is joined by guest speaker, Brian Chandler, Systems Engineer at Raymond James, who shares commonly used Ops dashboards that increase collaboration across IT teams and pro-actively break down silos!

application performance managementend-user experience monitoringapplication performance monitoring
What Platforms Can I Test With?
All of them!
• All Platforms: Pcap/tcpdump network trace
•  Ex: Wi-Fi Hotspot (like Connectify) and Wireshark/NetMon to collect
•  iOS: Remote Virtual Interface uses Instruments to collect pcap over 3G/LTE
• Android and Windows 8: Native Collector
•  Note: Android collector requires root
How Does ARO Work?
Transfer Trace Files Process Trace
Test Your Application
• PCAP only:
•  Network traffic collected
• Native Collector adds:
•  Video
•  User Input
•  Peripheral Usage
•  CPU usage
• Applies Radio and Power models
to data
• Graded against 15 Best Practices
• Learn how your application
ACTUALLY behaves!
Everyone Wins With ARO
•  Faster Response Times
•  Improved Battery Life
•  Efficient Data Plan Usage
•  Enriched User Experience
End User
•  App-specific Analysis
•  Key Areas to Improve
•  Cross Platform and
Network Agnostic
•  Free and Open Source
Developer
•  Increased Network
Availability
•  Signaling Load Reduction
•  Efficient Spectrum Usage
•  Improved Radio
Availability
Wireless Carrier
What’s the Industry Doing?
• Quality App Directory - App Quality Alliance (AQuA)
(http://www.appqualityalliance.org/)
• Smarter App Challenge – GSMA
(http://mobileappchallenge.com/smarterapp/)
• Mobile Content Action Team – CTIA
(http://www.ctia.org/business_resources/wic/index.cfm/AID/10333)
• Other carriers
• All are using ARO!! (http://developer.att.com/ARO)
• Numerous Customer facing apps help customers preserve battery and
reduce data usage
Get ahead of the game: Optimize NOW!

Recommended for you

Load testing for jquery based e commerce web applications with cloud performa...
Load testing for jquery based e commerce web applications with cloud performa...Load testing for jquery based e commerce web applications with cloud performa...
Load testing for jquery based e commerce web applications with cloud performa...

This document discusses load testing of jQuery-based e-commerce websites using cloud-based performance testing tools. It provides an overview of load testing and describes how tools like BlazeMeter and Load Impact were used to test an Indian e-commerce site (Amazon.in). Graphs and results from testing on these tools are presented and described. The results help analyze the site's performance under different loads and identify potential bottlenecks.

load testing for jquery based e commerce web appli
DevOps: Find Solutions, Not More Defects
DevOps: Find Solutions, Not More DefectsDevOps: Find Solutions, Not More Defects
DevOps: Find Solutions, Not More Defects

The promise of DevOps is that we can push new ideas out to market faster while avoiding delivering serious defects into production. Andreas Grabner explains that testers are no longer measured by the number of defect reports they enter, nor are developers measured by the lines of code they write. As a team, you are measured by how fast you can deploy high quality functionality to the end user. Achieving this goal requires testers to increase their skills. It’s all about finding solutions—not just problems. Testers must transition from reporting “app crashes” to providing details such as “memory leak caused by bad cache implementation.” Instead of reporting “it’s slow,” testers must discover “wrong hibernate configuration causes too much traffic from the database.” Using three real-life examples, Andreas illustrates what it takes for testing teams to become part of the DevOps transformation—bringing more value to the entire organization.

devops
The Best of Both Worlds - Combining Performance and Functional Mobile App Tes...
The Best of Both Worlds - Combining Performance and Functional Mobile App Tes...The Best of Both Worlds - Combining Performance and Functional Mobile App Tes...
The Best of Both Worlds - Combining Performance and Functional Mobile App Tes...

We co-hosted a webinar with Neotys to shed some lights on - How to overcome the challenges in mobile app performance and functional testing - How to gain granular and actionable insights to measure and improve your app user experience - Best practices to get the mobile readiness for 2017 Holiday Shopping Season - A brief demo of the integration between Neoload and Bitbar Testing

mobile devopsdevopsmobile performance testing
So, How Does ARO Make My App Faster?
ARO is the test kit to identify areas where performance
improvements exist
Simple, common sense development best practices
– Reducing connection times
– Caching files
– Eliminating Errors
The fixes identified by ARO will tune your application
to higher performance and speed
From Zombie to Sprinter in 3 Easy Steps
1. Close Connections
2. Cache Your Data
3. Manage Every Connection
From Zombie to Sprinter in 3 Easy Steps
1. Close Connections
2. Cache Your Data
3. Manage Every Connection
Closing Connections? How Does That Help?
>80% of applications
do NOT close
connections when
they are finished!

Recommended for you

Mobile Performance Testing Approaches and Challenges
Mobile Performance Testing Approaches and ChallengesMobile Performance Testing Approaches and Challenges
Mobile Performance Testing Approaches and Challenges

This whitepaper speaks about how Mobile Apps play a key role in daily business functions and the changing trends of consumer web-usage along with a brief summary of mobile application performance drivers...

mobile performancemobile performance testingnous infosystems
Developing of a high load java script framework
Developing of a high load java script frameworkDeveloping of a high load java script framework
Developing of a high load java script framework

This document discusses the design and creation of a JavaScript framework for high-load websites. It describes architectural approaches like using isolated modules and events to improve performance. It also provides tips for optimizing frameworks for high loads, such as using content delivery networks, local storage, moving APIs client-side, and client-side profiling. The presentation encourages the single responsibility principle of creating separate modules for each task. It is given by Nikita Manko, a senior software engineer at EPAM.

rolling scopes #2high-load
WHAT IS BUSINESS TO DEVELOPER MARKETING OR B2D
WHAT IS BUSINESS TO DEVELOPER MARKETING OR B2DWHAT IS BUSINESS TO DEVELOPER MARKETING OR B2D
WHAT IS BUSINESS TO DEVELOPER MARKETING OR B2D

Marketing an API can often be as challenging, or more so, than building it. This presentation provides a deep dive into how to reach the right Audience for your API and engage developers.

b2dapisdeveloper marketing
Closing Connections: Example
38% more power on LTE!
(18% more power on 3G)
Closing Connections: CODE
MultiRes Sample app from Android SDK
– Modified to download images
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();
https://github.com/attdevsupport/ARO/tree/master/2013DevSummitTurbocharge
From Zombie to Sprinter in 3 Easy Steps
1. Close Connections
2. Cache Your Data
3. Manage Every Connection
Caching Your Data
17% of all mobile traffic is duplicate download of
the same unaltered HTTP content (1)
“It’s just a 6 KB logo”
– 6 KB * 3 DL/session *10,000 users/day =
3.4GB/month
Reading from local cache is 75-99% faster than downloading
from the web
(1)“Web Caching on Smartphones: Ideal vs. Reality”, http://www.research.att.com/~sen/pub/Caching_mobisys12.pdf

Recommended for you

Connected Car - Ian Beavis, EVP at Nielsen Global Automotive
Connected Car - Ian Beavis, EVP at Nielsen Global AutomotiveConnected Car - Ian Beavis, EVP at Nielsen Global Automotive
Connected Car - Ian Beavis, EVP at Nielsen Global Automotive

The document discusses findings from the 2014 Harris Poll AutoTECHCAST survey regarding consumer awareness and interest in connected car technologies. Some key findings include: - Most consumers have heard of a "Connected Car" but are not very familiar with the term. Interest in owning a Connected Car in the future is moderate. - Consumers prefer an integrated "built-in" Connected Car system to one that is brought in via smartphone. However, many have privacy concerns about data collection. - OnStar is the most recognized Connected Car brand name. Awareness of specific Connected Car features is moderate but interest in having them in future vehicles is higher.

connected carcar technologycommerce
Powering Care Coordination Through Mobility (mHealth Summit 2012 WIPJam)
Powering Care Coordination Through Mobility (mHealth Summit 2012 WIPJam)Powering Care Coordination Through Mobility (mHealth Summit 2012 WIPJam)
Powering Care Coordination Through Mobility (mHealth Summit 2012 WIPJam)

The document discusses Diversinet's mobile health platform which aims to achieve interoperability, security and agility. It addresses key challenges in mobile health like security and privacy, and providing an agile platform for app development and integration. The platform uses dynamic authentication and encryption between mobile clients and servers to securely exchange encrypted data. It also allows for interoperable mobile applications to share health data like medical records, profiles and biometrics to provide a holistic view of patients.

mhealthwipjamhealth technology
Tactio on Social Apps (mHealth Summit 2012 WIPJam)
Tactio on Social Apps (mHealth Summit 2012 WIPJam)Tactio on Social Apps (mHealth Summit 2012 WIPJam)
Tactio on Social Apps (mHealth Summit 2012 WIPJam)

This document discusses Tactio, a medical app company. Tactio has over 3 million downloads across 15 languages and has been the #1 paid medical app on iTunes in over 10 countries. It also ranks in the top 10 in over 50 countries and top 50 in 85 countries. The document briefly mentions Tactio's social media, push notifications, eHealth ecosystem, and parent company Tactio Health Group as well as providing their website.

mhealthsocial applicationstactio
Even if caching IS supported – it is OFF by default!!
Caching Support by Library
Android Connection Libraries iOS Libraries Android & Safari
Test Name UC HUC HC WV HRC T20 NSUR ASIHR AB SB
Basic caching ™ ™ ™ ˜ ˜ ™ ˜
Revalidation ™ ™ ™ ˜ ˜ ™ ˜ ˜ ˜ ˜
Non-caching directives ™ ™ ™ ˜ ˜ ™ ˜ » ˜ ˜
Expiration directives ™ ™ ™ ˜ ˜ ™ ˜ ˜ ˜ ˜
URL with query string ™ ™ ™ ˜ ˜ ™ ˜ ˜ ˜ ˜
Partial caching ™ ™ ™ ™ ™ ™ ™ ™ ™ ™
Redirection ™ ™ ™ ™ ™ ™ ™
Caching Methods (How do I do it?)
ETags
Cache Control Headers
• Each file has a Unique Tag
• Revalidated on server for each request
– High Performance Web Sites:
Rule 1 – Make Fewer HTTP Requests (1)
– Adding a connection drains battery,
adds 500-3,000 ms latency
• Important to carefully assign Max-Age times
• App will not check file on server until Max-Age
is reached
– Retrieval is strictly file processing time
(1) http://developer.yahoo.com/blogs/ydn/posts/2007/04/rule_1_make_few/
Comparing ETag vs. Cache Control
Network Usage Battery Drain Data Usage Speed
NO Cache
YES entire file
downloaded
Full network
connection made
High Slowest
ETag
Yes – ETag in cache
is validated on server
Full network
connection
Low Slow
Cache Control No N/A N/A Fast
Any Caching is better than no caching, but for mobile, Cache Control is preferred
Caching: Worth the Effort?
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//establish a cache
try {
File httpCacheDir = new File(getCacheDir(), "http");
long httpCacheSize = 10 * 1024 * 1024; // 10 MiB
HttpResponseCache.install(httpCacheDir, httpCacheSize);
//
}
catch (IOException e) {
Log.i(TAG, "HTTP response cache installation failed:" + e);
}
Add this!
Android 4.0:
Don’t leave older devices in the cold: Consider adding reflection for
older versions of Android
http://developer.android.com/reference/android/net/http/HttpResponseCache.html

Recommended for you

Viafo - Making Your App Social (mHealth Summit 2012 WIPJam)
Viafo - Making Your App Social (mHealth Summit 2012 WIPJam)Viafo - Making Your App Social (mHealth Summit 2012 WIPJam)
Viafo - Making Your App Social (mHealth Summit 2012 WIPJam)

The document discusses how social media usage has grown significantly from 2010 to 2011, with more people sharing what they are doing on Facebook and Twitter. It then introduces Viafo as a service that allows apps to integrate social and location-based features through a single gateway, rather than having to integrate directly with each individual network. This solves problems like dependency on third parties and needing to update integrations when networks change their APIs. The service aims to improve brand performance and user satisfaction by making social sharing easy within apps. It also discusses some new features Viafo is working on, like tools for regional social networks and gamification, as well as an example social blood donation app called BloodSprint.

mhealthviafowipjam
George Mason University on Mobile Gamification (mHealth Summit 2012 WIPJam)
George Mason University on Mobile Gamification (mHealth Summit 2012 WIPJam)George Mason University on Mobile Gamification (mHealth Summit 2012 WIPJam)
George Mason University on Mobile Gamification (mHealth Summit 2012 WIPJam)

The document outlines several mobile game projects created by student teams for the Century Council to promote responsible decision making around underage drinking. It introduces the Century Council's mission to delay a person's first drink and have a positive impact on their life. It also notes that motor vehicle crashes remain the leading cause of death for 15- to 20-year-olds. The document then lists three student teams and the names of mobile games each created for the Century Council.

gamificationwipjamgeorge mason university
Ayogo Mobile Gamification (mHealth Summit WIPJam)
Ayogo Mobile Gamification (mHealth Summit WIPJam)Ayogo Mobile Gamification (mHealth Summit WIPJam)
Ayogo Mobile Gamification (mHealth Summit WIPJam)

Mobile games can help with health by incentivizing positive behaviors for patients and caregivers in a fun way. Monster Manor is a game that rewards tasks like taking medication on time with in-game rewards like unlocking monsters. It uses an incentive economy and respects the needs of both patients and children by allowing kids to still be kids through gameplay like smashing piñatas while supporting health goals through immediate alerts and reminders sent by SMS, email or app notifications.

gamificationayogomhealth
Caching Performance
File still valid in cache
Radio never turns on
100% less
power!
MultiRes sample app – modified to add caching
98% faster!
Caching Performance
File in cache has expired,
revalidate at server
If radio has gone back to
IDLE, this can take 2.5s
LTE: 14%
less power!
MultiRes sample app – modified to add caching
3G: 30%
less power!
30% faster!
89% faster!
From Zombie to Sprinter in 3 Easy Steps
1. Close Connections
2. Cache Your Data
3. Manage Every Connection
Grouping Connections
38J of energy used!!
Imagine an app that:
1. Downloads an image every 60s
2. Downloads an Ad every 60s
3. Sends Analytics to a Server every 60s

Recommended for you

Mobile Developer 101 (mHealth 2012 Edition)
Mobile Developer 101 (mHealth 2012 Edition) Mobile Developer 101 (mHealth 2012 Edition)
Mobile Developer 101 (mHealth 2012 Edition)

Learn about App Design, Mobile Development. Trends in the Health Industry, and how your company can benefit from going mobile.

developermhealthmobile developer
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx

MuleSoft Meetup on APM and IDP

mulesoftai
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALLBLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL

Blockchain technology is transforming industries and reshaping the way we conduct business, manage data, and secure transactions. Whether you're new to blockchain or looking to deepen your knowledge, our guidebook, "Blockchain for Dummies", is your ultimate resource.

blockchainweb3blockchain technology
Grouping Connections
16J of energy used!!
58% savings!
Now, look what happens if your connections are grouped together
1. Downloads an image every 60s
2. Downloads an Ad every 60s
3. Sends Analytics to a Server every 60s
16J of energy used!! 58% less energy
How Do I Group 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 Connections for Speed
Not only can you save battery, but you can speed up your
application by managing connections properly:
Threading file downloads vs. serial download
Removing redirects to files
Pre-fetching files that are used often
Grouping Connections for Speed
Threading file downloads vs. serial download

Recommended for you

Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly DetectionAdvanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly Detection

Cybersecurity is a major concern in today's connected digital world. Threats to organizations are constantly evolving and have the potential to compromise sensitive information, disrupt operations, and lead to significant financial losses. Traditional cybersecurity techniques often fall short against modern attackers. Therefore, advanced techniques for cyber security analysis and anomaly detection are essential for protecting digital assets. This blog explores these cutting-edge methods, providing a comprehensive overview of their application and importance.

cybersecurityanomaly detectionadvanced techniques
Measuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at TwitterMeasuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at Twitter

Widya Salim and Victor Ma will outline the causal impact analysis, framework, and key learnings used to quantify the impact of reducing Twitter's network latency.

Best Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdfBest Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdf

As a popular open-source library for analytics engineering, dbt is often used in combination with Airflow. Orchestrating and executing dbt models as DAGs ensures an additional layer of control over tasks, observability, and provides a reliable, scalable environment to run dbt models. This webinar will cover a step-by-step guide to Cosmos, an open source package from Astronomer that helps you easily run your dbt Core projects as Airflow DAGs and Task Groups, all with just a few lines of code. We’ll walk through: - Standard ways of running dbt (and when to utilize other methods) - How Cosmos can be used to run and visualize your dbt projects in Airflow - Common challenges and how to address them, including performance, dependency conflicts, and more - How running dbt projects in Airflow helps with cost optimization Webinar given on 9 July 2024

apache airflowdbtdbt-core
Grouping Connections for Speed
Not only can you save battery, but you can speed up your
application by managing connections properly:
Removing redirects to files
Redirection adds ~2-3 seconds for each request
{
2 sec
Grouping Connections for Speed
Not only can you save battery, but you can speed up your
application by managing connections properly:
Pre-fetching files that are used often
More Best Practices
Look for error codes: no 4xx 5xx
HTTP response codes should occur:
More Best Practices
Look for error codes: 404s
Error messages should be short and sweet

Recommended for you

Quality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of TimeQuality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of Time

Is your patent a vanity piece of paper for your office wall? Or is it a reliable, defendable, assertable, property right? The difference is often quality. Is your patent simply a transactional cost and a large pile of legal bills for your startup? Or is it a leverageable asset worthy of attracting precious investment dollars, worth its cost in multiples of valuation? The difference is often quality. Is your patent application only good enough to get through the examination process? Or has it been crafted to stand the tests of time and varied audiences if you later need to assert that document against an infringer, find yourself litigating with it in an Article 3 Court at the hands of a judge and jury, God forbid, end up having to defend its validity at the PTAB, or even needing to use it to block pirated imports at the International Trade Commission? The difference is often quality. Quality will be our focus for a good chunk of the remainder of this season. What goes into a quality patent, and where possible, how do you get it without breaking the bank? ** Episode Overview ** In this first episode of our quality series, Kristen Hansen and the panel discuss: ⦿ What do we mean when we say patent quality? ⦿ Why is patent quality important? ⦿ How to balance quality and budget ⦿ The importance of searching, continuations, and draftsperson domain expertise ⦿ Very practical tips, tricks, examples, and Kristen’s Musts for drafting quality applications https://www.aurorapatents.com/patently-strategic-podcast.html

patentspatent applicationpatent prosecution
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdfINDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf

These fighter aircraft have uses outside of traditional combat situations. They are essential in defending India's territorial integrity, averting dangers, and delivering aid to those in need during natural calamities. Additionally, the IAF improves its interoperability and fortifies international military alliances by working together and conducting joint exercises with other air forces.

air force fighter planebiggest submarinezambia port
Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...

This presentation explores the practical application of image description techniques. Familiar guidelines will be demonstrated in practice, and descriptions will be developed “live”! If you have learned a lot about the theory of image description techniques but want to feel more confident putting them into practice, this is the presentation for you. There will be useful, actionable information for everyone, whether you are working with authors, colleagues, alone, or leveraging AI as a collaborator. Link to presentation recording and slides: https://bnctechforum.ca/sessions/details-of-description-part-ii-describing-images-in-practice/ Presented by BookNet Canada on June 25, 2024, with support from the Department of Canadian Heritage.

a11yaccessibilityalt text
Ad Download every 30s
More Best Practices:
Periodic Connections
Regular 3 minute Polls for updates (20% battery/day)
Summary
• Our customers expect high performance
• App performance optimizations are easy…
Once you know the issues
• Best Practices:
–  Close Connections
–  Cache Data
–  Group Connections
• Fewer connections
• Threaded Connections
• No redirects
• 4XX HTTP response codes
• Periodic Connections
everyone wins
with ARO
Developer.att.com/ARO
Developer.program@att.com
@dougsillars
thank you!

Recommended for you

The Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU CampusesThe Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU Campuses

CIO Council Cal Poly Humboldt September 22, 2023

national research platformdistributed supercomputerdistributed systems
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...

Slide of the tutorial entitled "Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Emerging Trends" held at UMAP'24: 32nd ACM Conference on User Modeling, Adaptation and Personalization (July 1, 2024 | Cagliari, Italy)

user modelinguser profilinguser model
How RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptxHow RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptx

Revolutionize your transportation processes with our cutting-edge RPA software. Automate repetitive tasks, reduce costs, and enhance efficiency in the logistics sector with our advanced solutions.

rpa in transportationrpa in transportation industryrpa in transportation sector

More Related Content

Similar to Doug Sillars on App Optimization

How to Lower Android Power Consumption Without Affecting Performance
How to Lower Android Power Consumption Without Affecting PerformanceHow to Lower Android Power Consumption Without Affecting Performance
How to Lower Android Power Consumption Without Affecting Performance
rickschwar
 
Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...
Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...
Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...
Prolifics
 
Testing Mobile App Performance
Testing Mobile App PerformanceTesting Mobile App Performance
Testing Mobile App Performance
TechWell
 
redpill Mobile Case Study (Salvation Army)
redpill Mobile Case Study (Salvation Army)redpill Mobile Case Study (Salvation Army)
redpill Mobile Case Study (Salvation Army)
Peter Presnell
 
IT Operations Management with OpManager
IT Operations Management with OpManagerIT Operations Management with OpManager
IT Operations Management with OpManager
ManageEngine, Zoho Corporation
 
Mobile apps that win
Mobile apps that winMobile apps that win
Mobile apps that win
DellFoglight
 
Modern Web Applications
Modern Web ApplicationsModern Web Applications
Modern Web Applications
Ömer Göktuğ Poyraz
 
Application Delivery Platform Towards Edge Computing - Bukhary Ikhwan
Application Delivery Platform Towards Edge Computing - Bukhary IkhwanApplication Delivery Platform Towards Edge Computing - Bukhary Ikhwan
Application Delivery Platform Towards Edge Computing - Bukhary Ikhwan
OpenNebula Project
 
Docker:- Application Delivery Platform Towards Edge Computing
Docker:- Application Delivery Platform Towards Edge ComputingDocker:- Application Delivery Platform Towards Edge Computing
Docker:- Application Delivery Platform Towards Edge Computing
Bukhary Ikhwan Ismail
 
Smarter Apps for Smarter phones - see me at bit.ly/1ezHj0c
Smarter Apps for Smarter phones - see me at bit.ly/1ezHj0cSmarter Apps for Smarter phones - see me at bit.ly/1ezHj0c
Smarter Apps for Smarter phones - see me at bit.ly/1ezHj0c
Jeffrey Gardner CMgr FCMI IEng MIET
 
RTI Data-Distribution Service (DDS) Master Class 2011
RTI Data-Distribution Service (DDS) Master Class 2011RTI Data-Distribution Service (DDS) Master Class 2011
RTI Data-Distribution Service (DDS) Master Class 2011
Gerardo Pardo-Castellote
 
Mobile Performance Testing - Testing the Server
Mobile Performance Testing  - Testing the ServerMobile Performance Testing  - Testing the Server
Mobile Performance Testing - Testing the Server
XBOSoft
 
Mobile Apps Performance Testing Using Open Source Tool JMeter
Mobile Apps Performance Testing Using Open Source Tool JMeterMobile Apps Performance Testing Using Open Source Tool JMeter
Mobile Apps Performance Testing Using Open Source Tool JMeter
Devendra Singh
 
IRJET- Displaying Smart Phone Data in the Desktop using Firebase
IRJET- Displaying Smart Phone Data in the Desktop using FirebaseIRJET- Displaying Smart Phone Data in the Desktop using Firebase
IRJET- Displaying Smart Phone Data in the Desktop using Firebase
IRJET Journal
 
Starting Your DevOps Journey – Practical Tips for Ops
Starting Your DevOps Journey – Practical Tips for OpsStarting Your DevOps Journey – Practical Tips for Ops
Starting Your DevOps Journey – Practical Tips for Ops
Dynatrace
 
Load testing for jquery based e commerce web applications with cloud performa...
Load testing for jquery based e commerce web applications with cloud performa...Load testing for jquery based e commerce web applications with cloud performa...
Load testing for jquery based e commerce web applications with cloud performa...
IAEME Publication
 
DevOps: Find Solutions, Not More Defects
DevOps: Find Solutions, Not More DefectsDevOps: Find Solutions, Not More Defects
DevOps: Find Solutions, Not More Defects
TechWell
 
The Best of Both Worlds - Combining Performance and Functional Mobile App Tes...
The Best of Both Worlds - Combining Performance and Functional Mobile App Tes...The Best of Both Worlds - Combining Performance and Functional Mobile App Tes...
The Best of Both Worlds - Combining Performance and Functional Mobile App Tes...
Bitbar
 
Mobile Performance Testing Approaches and Challenges
Mobile Performance Testing Approaches and ChallengesMobile Performance Testing Approaches and Challenges
Mobile Performance Testing Approaches and Challenges
Nous Infosystems
 
Developing of a high load java script framework
Developing of a high load java script frameworkDeveloping of a high load java script framework
Developing of a high load java script framework
Mikita Manko
 

Similar to Doug Sillars on App Optimization (20)

How to Lower Android Power Consumption Without Affecting Performance
How to Lower Android Power Consumption Without Affecting PerformanceHow to Lower Android Power Consumption Without Affecting Performance
How to Lower Android Power Consumption Without Affecting Performance
 
Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...
Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...
Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...
 
Testing Mobile App Performance
Testing Mobile App PerformanceTesting Mobile App Performance
Testing Mobile App Performance
 
redpill Mobile Case Study (Salvation Army)
redpill Mobile Case Study (Salvation Army)redpill Mobile Case Study (Salvation Army)
redpill Mobile Case Study (Salvation Army)
 
IT Operations Management with OpManager
IT Operations Management with OpManagerIT Operations Management with OpManager
IT Operations Management with OpManager
 
Mobile apps that win
Mobile apps that winMobile apps that win
Mobile apps that win
 
Modern Web Applications
Modern Web ApplicationsModern Web Applications
Modern Web Applications
 
Application Delivery Platform Towards Edge Computing - Bukhary Ikhwan
Application Delivery Platform Towards Edge Computing - Bukhary IkhwanApplication Delivery Platform Towards Edge Computing - Bukhary Ikhwan
Application Delivery Platform Towards Edge Computing - Bukhary Ikhwan
 
Docker:- Application Delivery Platform Towards Edge Computing
Docker:- Application Delivery Platform Towards Edge ComputingDocker:- Application Delivery Platform Towards Edge Computing
Docker:- Application Delivery Platform Towards Edge Computing
 
Smarter Apps for Smarter phones - see me at bit.ly/1ezHj0c
Smarter Apps for Smarter phones - see me at bit.ly/1ezHj0cSmarter Apps for Smarter phones - see me at bit.ly/1ezHj0c
Smarter Apps for Smarter phones - see me at bit.ly/1ezHj0c
 
RTI Data-Distribution Service (DDS) Master Class 2011
RTI Data-Distribution Service (DDS) Master Class 2011RTI Data-Distribution Service (DDS) Master Class 2011
RTI Data-Distribution Service (DDS) Master Class 2011
 
Mobile Performance Testing - Testing the Server
Mobile Performance Testing  - Testing the ServerMobile Performance Testing  - Testing the Server
Mobile Performance Testing - Testing the Server
 
Mobile Apps Performance Testing Using Open Source Tool JMeter
Mobile Apps Performance Testing Using Open Source Tool JMeterMobile Apps Performance Testing Using Open Source Tool JMeter
Mobile Apps Performance Testing Using Open Source Tool JMeter
 
IRJET- Displaying Smart Phone Data in the Desktop using Firebase
IRJET- Displaying Smart Phone Data in the Desktop using FirebaseIRJET- Displaying Smart Phone Data in the Desktop using Firebase
IRJET- Displaying Smart Phone Data in the Desktop using Firebase
 
Starting Your DevOps Journey – Practical Tips for Ops
Starting Your DevOps Journey – Practical Tips for OpsStarting Your DevOps Journey – Practical Tips for Ops
Starting Your DevOps Journey – Practical Tips for Ops
 
Load testing for jquery based e commerce web applications with cloud performa...
Load testing for jquery based e commerce web applications with cloud performa...Load testing for jquery based e commerce web applications with cloud performa...
Load testing for jquery based e commerce web applications with cloud performa...
 
DevOps: Find Solutions, Not More Defects
DevOps: Find Solutions, Not More DefectsDevOps: Find Solutions, Not More Defects
DevOps: Find Solutions, Not More Defects
 
The Best of Both Worlds - Combining Performance and Functional Mobile App Tes...
The Best of Both Worlds - Combining Performance and Functional Mobile App Tes...The Best of Both Worlds - Combining Performance and Functional Mobile App Tes...
The Best of Both Worlds - Combining Performance and Functional Mobile App Tes...
 
Mobile Performance Testing Approaches and Challenges
Mobile Performance Testing Approaches and ChallengesMobile Performance Testing Approaches and Challenges
Mobile Performance Testing Approaches and Challenges
 
Developing of a high load java script framework
Developing of a high load java script frameworkDeveloping of a high load java script framework
Developing of a high load java script framework
 

More from wipjam

WHAT IS BUSINESS TO DEVELOPER MARKETING OR B2D
WHAT IS BUSINESS TO DEVELOPER MARKETING OR B2DWHAT IS BUSINESS TO DEVELOPER MARKETING OR B2D
WHAT IS BUSINESS TO DEVELOPER MARKETING OR B2D
wipjam
 
Connected Car - Ian Beavis, EVP at Nielsen Global Automotive
Connected Car - Ian Beavis, EVP at Nielsen Global AutomotiveConnected Car - Ian Beavis, EVP at Nielsen Global Automotive
Connected Car - Ian Beavis, EVP at Nielsen Global Automotive
wipjam
 
Powering Care Coordination Through Mobility (mHealth Summit 2012 WIPJam)
Powering Care Coordination Through Mobility (mHealth Summit 2012 WIPJam)Powering Care Coordination Through Mobility (mHealth Summit 2012 WIPJam)
Powering Care Coordination Through Mobility (mHealth Summit 2012 WIPJam)
wipjam
 
Tactio on Social Apps (mHealth Summit 2012 WIPJam)
Tactio on Social Apps (mHealth Summit 2012 WIPJam)Tactio on Social Apps (mHealth Summit 2012 WIPJam)
Tactio on Social Apps (mHealth Summit 2012 WIPJam)
wipjam
 
Viafo - Making Your App Social (mHealth Summit 2012 WIPJam)
Viafo - Making Your App Social (mHealth Summit 2012 WIPJam)Viafo - Making Your App Social (mHealth Summit 2012 WIPJam)
Viafo - Making Your App Social (mHealth Summit 2012 WIPJam)
wipjam
 
George Mason University on Mobile Gamification (mHealth Summit 2012 WIPJam)
George Mason University on Mobile Gamification (mHealth Summit 2012 WIPJam)George Mason University on Mobile Gamification (mHealth Summit 2012 WIPJam)
George Mason University on Mobile Gamification (mHealth Summit 2012 WIPJam)
wipjam
 
Ayogo Mobile Gamification (mHealth Summit WIPJam)
Ayogo Mobile Gamification (mHealth Summit WIPJam)Ayogo Mobile Gamification (mHealth Summit WIPJam)
Ayogo Mobile Gamification (mHealth Summit WIPJam)
wipjam
 
Mobile Developer 101 (mHealth 2012 Edition)
Mobile Developer 101 (mHealth 2012 Edition) Mobile Developer 101 (mHealth 2012 Edition)
Mobile Developer 101 (mHealth 2012 Edition)
wipjam
 

More from wipjam (8)

WHAT IS BUSINESS TO DEVELOPER MARKETING OR B2D
WHAT IS BUSINESS TO DEVELOPER MARKETING OR B2DWHAT IS BUSINESS TO DEVELOPER MARKETING OR B2D
WHAT IS BUSINESS TO DEVELOPER MARKETING OR B2D
 
Connected Car - Ian Beavis, EVP at Nielsen Global Automotive
Connected Car - Ian Beavis, EVP at Nielsen Global AutomotiveConnected Car - Ian Beavis, EVP at Nielsen Global Automotive
Connected Car - Ian Beavis, EVP at Nielsen Global Automotive
 
Powering Care Coordination Through Mobility (mHealth Summit 2012 WIPJam)
Powering Care Coordination Through Mobility (mHealth Summit 2012 WIPJam)Powering Care Coordination Through Mobility (mHealth Summit 2012 WIPJam)
Powering Care Coordination Through Mobility (mHealth Summit 2012 WIPJam)
 
Tactio on Social Apps (mHealth Summit 2012 WIPJam)
Tactio on Social Apps (mHealth Summit 2012 WIPJam)Tactio on Social Apps (mHealth Summit 2012 WIPJam)
Tactio on Social Apps (mHealth Summit 2012 WIPJam)
 
Viafo - Making Your App Social (mHealth Summit 2012 WIPJam)
Viafo - Making Your App Social (mHealth Summit 2012 WIPJam)Viafo - Making Your App Social (mHealth Summit 2012 WIPJam)
Viafo - Making Your App Social (mHealth Summit 2012 WIPJam)
 
George Mason University on Mobile Gamification (mHealth Summit 2012 WIPJam)
George Mason University on Mobile Gamification (mHealth Summit 2012 WIPJam)George Mason University on Mobile Gamification (mHealth Summit 2012 WIPJam)
George Mason University on Mobile Gamification (mHealth Summit 2012 WIPJam)
 
Ayogo Mobile Gamification (mHealth Summit WIPJam)
Ayogo Mobile Gamification (mHealth Summit WIPJam)Ayogo Mobile Gamification (mHealth Summit WIPJam)
Ayogo Mobile Gamification (mHealth Summit WIPJam)
 
Mobile Developer 101 (mHealth 2012 Edition)
Mobile Developer 101 (mHealth 2012 Edition) Mobile Developer 101 (mHealth 2012 Edition)
Mobile Developer 101 (mHealth 2012 Edition)
 

Recently uploaded

Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
ishalveerrandhawa1
 
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALLBLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
Liveplex
 
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly DetectionAdvanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Bert Blevins
 
Measuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at TwitterMeasuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at Twitter
ScyllaDB
 
Best Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdfBest Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdf
Tatiana Al-Chueyr
 
Quality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of TimeQuality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of Time
Aurora Consulting
 
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdfINDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
jackson110191
 
Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...
BookNet Canada
 
The Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU CampusesThe Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU Campuses
Larry Smarr
 
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Erasmo Purificato
 
How RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptxHow RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptx
SynapseIndia
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
HackersList
 
What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024
Stephanie Beckett
 
20240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 202420240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 2024
Matthew Sinclair
 
Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024
BookNet Canada
 
UiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs ConferenceUiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs Conference
UiPathCommunity
 
20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf
Sally Laouacheria
 
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc
 
DealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 editionDealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 edition
Yevgen Sysoyev
 
Best Programming Language for Civil Engineers
Best Programming Language for Civil EngineersBest Programming Language for Civil Engineers
Best Programming Language for Civil Engineers
Awais Yaseen
 

Recently uploaded (20)

Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
 
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALLBLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
 
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly DetectionAdvanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
 
Measuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at TwitterMeasuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at Twitter
 
Best Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdfBest Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdf
 
Quality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of TimeQuality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of Time
 
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdfINDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
 
Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...
 
The Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU CampusesThe Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU Campuses
 
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
 
How RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptxHow RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptx
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
 
What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024
 
20240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 202420240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 2024
 
Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024
 
UiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs ConferenceUiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs Conference
 
20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf
 
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
 
DealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 editionDealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 edition
 
Best Programming Language for Civil Engineers
Best Programming Language for Civil EngineersBest Programming Language for Civil Engineers
Best Programming Language for Civil Engineers
 

Doug Sillars on App Optimization

  • 1. Test Your Mobile Application’s Performance with AT&T’s Application Resource Optimizer Doug Sillars, PhD Application Optimization Guru Developer Advocacy, AT&T @dougsillars
  • 2. How Fast is Your App?
  • 3. How Fast is Your App?
  • 4. How Fast is Your App? “Zombies appear to be incapable of running. The fastest have been observed to move at a rate of barely one step per 1.5 seconds.” – Max Brooks, Zombie Survival Guide
  • 5. How Important is Speed Anyway? Traditional Web (PC) Stats: • Yahoo! 400ms delay leads to 5-9% drop in traffic (1) • 1 second of latency (2) –  Customer satisfaction drops 16% –  Conversion to sales drops 7% • 10 Golden Principles of Successful Web Apps: –  “Speed is always the most important feature” (3) Sillars’ Corollary: If speed is important on the web, it follows that speed is even more important for mobile • 71 % of users expect mobile sites to be as fast as desktop (4) (1) slideshare.net/stoyan/dont-make-me-wait-or-building-highperformance-web-applications (2) http://econsultancy.com/us/blog/10195-the-need-for-online-speed-in-america (3) 10 Golden Principles Of Successful Web Apps http://www.businessinsider.com/10-golden-principles-successful-web-apps-2010-3 (4) http://econsultancy.com/us/blog/9162-the-importance-of-speed-for-mobile-commerce
  • 6. What Do Mobile Users Expect? High Performance Apps •  Speed –  64% of mobile users expect pages/apps to load in <4 seconds (1) •  Battery Life –  Better Battery life (6.1 satisfied of 10) !!! (2) –  72% rate phone as very good or excellent •  Only 21% rate battery life as very good or excellent (3) •  Reasonable data usage –  No one wants to hit their cap (1) http://www.keynote.com/docs/reports/Keynote-2012-Mobile-User-Survey.pdf (2) http://www.businessnewsdaily.com/2200-smartphone-customer-satisfaction-battery-life.html (3) Personal communication from Swiftkey study
  • 7. What Do Mobile Users Get? Our Customers Expect More!!!! • Top Mobile frustrations “web page slow to load” (1) • Battery life top reported problem (2) (1) http://www.keynote.com/docs/reports/Keynote-2012-Mobile-User-Survey.pdf (2) http://www.businessnewsdaily.com/2200-smartphone-customer-satisfaction-battery-life.html
  • 8. As a Developer, What Can I Do? • Learn How Mobile is Different • Optimize: –  Learn the best practices –  Test your application –  Fix issues before your customers discover them • Get ahead of the game – be ready for industry standards and grading systems It can’t be MY developers, they’re the best • AT&T’s Application Resource Optimizer (ARO) –  http://Developer.att.com/ARO –  In 2012, <2% of tested apps required no optimization
  • 9. How is Mobile Different? Internet IP applications Mobile applications Wireless State Machine Mobile apps often do not consider the uniqueness of the wireless network Optimized mobile applications improve user experience with improved battery life and perceived faster speed
  • 10. Data Transfer LTE RRC State Machine Timer Expiration Radio Off Radio On IDLE Continuous Reception Tail For AT&T’s Model: T1 = 100ms T2 = 20ms T3 = 10,00ms 100ms 10s
  • 11. Data Transfer LTE RRC State Machine Timer Expiration Radio Off Radio On IDLE Continuous Reception Tail • LTE has higher throughput than 3G • This does not improve application behaviour -  The higher power actually accentuates any issues your application might have! 100ms 10s
  • 12. It’s All Connected Application traffic triggers RRC State transitions: •  RRC State transitions control
  • 13. It’s All Connected Application traffic triggers RRC State transitions: •  RRC State transitions control –  Speed/User Experience
  • 14. It’s All Connected Application traffic triggers RRC State transitions: •  RRC State transitions control –  Speed/User Experience –  Device battery life
  • 15. It’s All Connected Application traffic triggers RRC State transitions: •  RRC State transitions control –  Speed/User Experience –  Device battery life –  Network efficiency
  • 16. AT&T Application Resource Optimizer • Free diagnostic tool • Open Source • Test any Platform • Emulate any carrier network • Analysis of both Native Apps and the Mobile Web • Winner of the 2013 GSMA Smartphone Application Challenge award at MWC Allows YOU as a developer to SEE exactly how data is flowing from your app!
  • 17. What Platforms Can I Test With? All of them! • All Platforms: Pcap/tcpdump network trace •  Ex: Wi-Fi Hotspot (like Connectify) and Wireshark/NetMon to collect •  iOS: Remote Virtual Interface uses Instruments to collect pcap over 3G/LTE • Android and Windows 8: Native Collector •  Note: Android collector requires root
  • 18. How Does ARO Work? Transfer Trace Files Process Trace Test Your Application • PCAP only: •  Network traffic collected • Native Collector adds: •  Video •  User Input •  Peripheral Usage •  CPU usage • Applies Radio and Power models to data • Graded against 15 Best Practices • Learn how your application ACTUALLY behaves!
  • 19. Everyone Wins With ARO •  Faster Response Times •  Improved Battery Life •  Efficient Data Plan Usage •  Enriched User Experience End User •  App-specific Analysis •  Key Areas to Improve •  Cross Platform and Network Agnostic •  Free and Open Source Developer •  Increased Network Availability •  Signaling Load Reduction •  Efficient Spectrum Usage •  Improved Radio Availability Wireless Carrier
  • 20. What’s the Industry Doing? • Quality App Directory - App Quality Alliance (AQuA) (http://www.appqualityalliance.org/) • Smarter App Challenge – GSMA (http://mobileappchallenge.com/smarterapp/) • Mobile Content Action Team – CTIA (http://www.ctia.org/business_resources/wic/index.cfm/AID/10333) • Other carriers • All are using ARO!! (http://developer.att.com/ARO) • Numerous Customer facing apps help customers preserve battery and reduce data usage Get ahead of the game: Optimize NOW!
  • 21. So, How Does ARO Make My App Faster? ARO is the test kit to identify areas where performance improvements exist Simple, common sense development best practices – Reducing connection times – Caching files – Eliminating Errors The fixes identified by ARO will tune your application to higher performance and speed
  • 22. From Zombie to Sprinter in 3 Easy Steps 1. Close Connections 2. Cache Your Data 3. Manage Every Connection
  • 23. From Zombie to Sprinter in 3 Easy Steps 1. Close Connections 2. Cache Your Data 3. Manage Every Connection
  • 24. Closing Connections? How Does That Help? >80% of applications do NOT close connections when they are finished!
  • 25. Closing Connections: Example 38% more power on LTE! (18% more power on 3G)
  • 26. Closing Connections: CODE MultiRes Sample app from Android SDK – Modified to download images 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(); https://github.com/attdevsupport/ARO/tree/master/2013DevSummitTurbocharge
  • 27. From Zombie to Sprinter in 3 Easy Steps 1. Close Connections 2. Cache Your Data 3. Manage Every Connection
  • 28. Caching Your Data 17% of all mobile traffic is duplicate download of the same unaltered HTTP content (1) “It’s just a 6 KB logo” – 6 KB * 3 DL/session *10,000 users/day = 3.4GB/month Reading from local cache is 75-99% faster than downloading from the web (1)“Web Caching on Smartphones: Ideal vs. Reality”, http://www.research.att.com/~sen/pub/Caching_mobisys12.pdf
  • 29. Even if caching IS supported – it is OFF by default!! Caching Support by Library Android Connection Libraries iOS Libraries Android & Safari Test Name UC HUC HC WV HRC T20 NSUR ASIHR AB SB Basic caching ™ ™ ™ ˜ ˜ ™ ˜ Revalidation ™ ™ ™ ˜ ˜ ™ ˜ ˜ ˜ ˜ Non-caching directives ™ ™ ™ ˜ ˜ ™ ˜ » ˜ ˜ Expiration directives ™ ™ ™ ˜ ˜ ™ ˜ ˜ ˜ ˜ URL with query string ™ ™ ™ ˜ ˜ ™ ˜ ˜ ˜ ˜ Partial caching ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ Redirection ™ ™ ™ ™ ™ ™ ™
  • 30. Caching Methods (How do I do it?) ETags Cache Control Headers • Each file has a Unique Tag • Revalidated on server for each request – High Performance Web Sites: Rule 1 – Make Fewer HTTP Requests (1) – Adding a connection drains battery, adds 500-3,000 ms latency • Important to carefully assign Max-Age times • App will not check file on server until Max-Age is reached – Retrieval is strictly file processing time (1) http://developer.yahoo.com/blogs/ydn/posts/2007/04/rule_1_make_few/
  • 31. Comparing ETag vs. Cache Control Network Usage Battery Drain Data Usage Speed NO Cache YES entire file downloaded Full network connection made High Slowest ETag Yes – ETag in cache is validated on server Full network connection Low Slow Cache Control No N/A N/A Fast Any Caching is better than no caching, but for mobile, Cache Control is preferred
  • 32. Caching: Worth the Effort? public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //establish a cache try { File httpCacheDir = new File(getCacheDir(), "http"); long httpCacheSize = 10 * 1024 * 1024; // 10 MiB HttpResponseCache.install(httpCacheDir, httpCacheSize); // } catch (IOException e) { Log.i(TAG, "HTTP response cache installation failed:" + e); } Add this! Android 4.0: Don’t leave older devices in the cold: Consider adding reflection for older versions of Android http://developer.android.com/reference/android/net/http/HttpResponseCache.html
  • 33. Caching Performance File still valid in cache Radio never turns on 100% less power! MultiRes sample app – modified to add caching 98% faster!
  • 34. Caching Performance File in cache has expired, revalidate at server If radio has gone back to IDLE, this can take 2.5s LTE: 14% less power! MultiRes sample app – modified to add caching 3G: 30% less power! 30% faster! 89% faster!
  • 35. From Zombie to Sprinter in 3 Easy Steps 1. Close Connections 2. Cache Your Data 3. Manage Every Connection
  • 36. Grouping Connections 38J of energy used!! Imagine an app that: 1. Downloads an image every 60s 2. Downloads an Ad every 60s 3. Sends Analytics to a Server every 60s
  • 37. Grouping Connections 16J of energy used!! 58% savings! Now, look what happens if your connections are grouped together 1. Downloads an image every 60s 2. Downloads an Ad every 60s 3. Sends Analytics to a Server every 60s 16J of energy used!! 58% less energy
  • 38. How Do I Group 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());
  • 39. Grouping Connections for Speed Not only can you save battery, but you can speed up your application by managing connections properly: Threading file downloads vs. serial download Removing redirects to files Pre-fetching files that are used often
  • 40. Grouping Connections for Speed Threading file downloads vs. serial download
  • 41. Grouping Connections for Speed Not only can you save battery, but you can speed up your application by managing connections properly: Removing redirects to files Redirection adds ~2-3 seconds for each request { 2 sec
  • 42. Grouping Connections for Speed Not only can you save battery, but you can speed up your application by managing connections properly: Pre-fetching files that are used often
  • 43. More Best Practices Look for error codes: no 4xx 5xx HTTP response codes should occur:
  • 44. More Best Practices Look for error codes: 404s Error messages should be short and sweet
  • 45. Ad Download every 30s More Best Practices: Periodic Connections Regular 3 minute Polls for updates (20% battery/day)
  • 46. Summary • Our customers expect high performance • App performance optimizations are easy… Once you know the issues • Best Practices: –  Close Connections –  Cache Data –  Group Connections • Fewer connections • Threaded Connections • No redirects • 4XX HTTP response codes • Periodic Connections