2. Mobile Development Is Challenging
There are a lot of issues to consider…
19,000 Android User Agents reported by Akamai
There are Screen Size differences
Processor/Memory constraints
Battery constraints
And there are constraints inherent in Wireless Networks
It isn’t easy!
3. Don’t Let Users Do Your Quality Control
44% of all issues are reported by users
20% issues were only found because of complaints in app reviews
34% of Users use ratings as primary influence in choosing an app
http://info.perfectomobile.com/rs/perfectomobile/images/why-apps-fail-infographic.pdf
6. Top App Complaints from Consumers
1.User Interface Issues (58%)
2.Performance (52%)
3.Functionality (50%)
4.Device Compatibility (45%)
7. Performance Importance?
How Important is Speed and Responsiveness of Mobile Apps?
https://t.co/7bMT4A1PIt
From a Mobile
User Survey
conducted by
Dimensional
Research
8. How Fast Should an App Startup?
72%
<3 seconds
49%
<2 seconds
91%
<4 seconds
https://t.co/7bMT4A1PIt
From a Mobile
User Survey
conducted by
Dimensional
Research
10. Check Your App’s Performance
http://smarterappsguidelines.gsma.com/
http://knowmyapp.org/
http://www.appqualityalliance.org/aqua-performance-test-criteria
http://developer.att.com/application-resource-optimizer
http://tspace.web.att.com/files/app#/file/9ecf48ae-b5f7-4780-8672-8c53520c1fb3
Here Are Some Guidelines:
11. You Can Test Performance With ARO
ARO Background
ARO Manual Test (Demo!)
ARO Analysis
ARO Automation (NEW!)
12. Find The Issues Early With ARO
ARO Records and Analyzes Network Interactions of App
Network use
accounts for
40-70% of
battery drain!
13. ARO Requirements
• Open Source and Free
Developer.att.com/ARO
• Required for AT&T Preload apps
• iOS
- Requires iOS device tethered to Mac (with Xcode)
• Android
- Requires Android device tethered to Mac/PC (with
Android SDK)
14. Testing Your App With ARO
1. Move at a speed that emulates real users
2. Create flexible (yet reproducible) test cases
a. Test cases can even reflect more of a feature checklist
b. The Trace is not about the order of the features, but about the content
3. Likely Problem Areas
a. Startup
b. Streaming
4. Be Curious
a. If something seems odd, explore it
b. Screen rotation best practice came out of tester noticing the network
lighting up each time they turned the device
5. Background Data:
a. Run long test with app running in background
16. Demo Backup Slides
In ARO Analyzer App:
Start Data collector
Name the test
Capture Video or not
17. Demo Backup Slides
ARO establishes a VPN
connection on your Android
Device (click ok)
ARO shows Screen on your
computer (if video is being
recorded)
Click Stop to end ARO trace
Files copied to PC and
analyzed
23. Download Less Stuff: Caching
17% of HTTP content on mobile is duplicate data
– Reading from Cache is 75-99% faster than
downloading again
“Web Caching on Smartphones: Ideal vs. Reality”,
http://www.research.att.com/~sen/pub/Caching_mobisys12.pdf
6.7MB 6.7MB
4.8 MB duplicate!
75% possible
savings!
(data AND speed)
24. 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/
25. 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
35. Periodic Connections in the Background!
Background traffic
Many Apps wake up in the background to update data or
communicate with servers.
Just 10 background connections = 0.5% battery/day
And it adds up FAST!
Look at Android’s JobScheduler API (5.0 and up)
37. ARO Automation – Headless collection
Beta product: release planned July 2015
Command Line and Java APIs to run ARO
./aro --startcollector vpn_android --output /users/demo/MCoC_testing --video yes
38. ARO Automation – Analysis
• Open trace in Analyzer tool
• Analyze headlessly into JSON or HTML
./aro --analyze /users/demo/MCoC_testing --output
/users/demo/MCoC_testing/report.html --format html
39. ARO for Developers
• Performance testing is crucial
• Good tools and test plans are essential
• AT&T Application Resource Optimizer (ARO)
• Testing manually
• Testing with automation
• Analysis and filing bugs
TK
Image: https://www.flickr.com/photos/perspective/33330283/
Usability starts with the design and architecture
OS
ie: Cross platform inter-relations (Drive app vs Customer app)
Small issues become magnified
No sandbox
Tiny issues become exponential when multiplied by an entire platform
Growth of product matrix needed early
TK
Image: https://www.flickr.com/photos/perspective/33330283/
Usability starts with the design and architecture
OS
ie: Cross platform inter-relations (Drive app vs Customer app)
Small issues become magnified
No sandbox
Tiny issues become exponential when multiplied by an entire platform
Growth of product matrix needed early
TK
Image: https://www.flickr.com/photos/perspective/33330283/
Usability starts with the design and architecture
OS
ie: Cross platform inter-relations (Drive app vs Customer app)
Small issues become magnified
No sandbox
Tiny issues become exponential when multiplied by an entire platform
Growth of product matrix needed early