6
The unforgiving user
Quick to download – Quick to delete
74% downloaded apps are only opened once
40% deleted after the first use
8
Build only features, ignore user experience 1
- Mobile is not just another screen
- Approach of replicating desktop feature in mobile app results in cumbersome and unintuitive UX
- Clarify your target audience and its motivation – listen to the users and their pain points
9
• Simplify the process
• App should be quick and easy to learn
• Focus on delighting the users instead of frustrating them
• Map out wireframes and user journeys (ask outside of the techno geek team!)
Build only features, ignore user experience 1
10
Gumtree experience in Dec 2012 – 2 stars in the Google play store
Build only features, ignore user experience 1
13
Rely on post-launch crashes 2
- Testing should not be something that you do between development and launch
- Tests need to be automated- Tests need to be done on multiple area
16
Not testing real user on real devices 3
0%
percentage of your app users that use emulator to run your app
17
Not testing real user on real devices 3
TESTING CATEGORY REAL DEVICE
User interaction Fingers on a screen
Real occurring events Battery consumption/charging/interrupts
Overall performance Easy, fast, realistic
Hardware - chipset Able to test LE-silicon with low clock-frequency rate
Hardware - display Different density, color and quality of the display
Hardware - memory Able to test on high/low end device
Hardware - sensor Able to test accelerometers, geo-location, and push notification
Software – OS version OS customization (OEM)Manufacturer skin
Network Slow connection
19
Test only functionalities…forget about performance 4
Performance directly affects the user experience; a bad performing app can show latency issues, not loaded images or out of memory errors
Techniques:- Screen overdraw- Hierarchy viewer- Traceview and dmtracedump- Tracking allocation of memory
21
Test only functionalities…forget about performance 4
BEFORE AFTER
ACTIONAnalysis and improvement of UI rendering time.
RESULTMeasure time93.19%
Layout time92.6%
Draw time73.17%
22
Test only functionalities…forget about performance 4
ACTION: Flattened UI by removing and optimize layersRESULT : From 17 layers per SRP item to 10 layers per item From 35 layers per SRP page to 21 layers
23
Test only functionalities…forget about performance 4
ACTION: Optimize read/write operation with local cache content (better cleanup process, review data structure and storage process)RESULT : Time execute operation for Search Result Page 68% after first optimization
25
- When storing data…prefer internal storage and encryption
- Minimize the number of permissions your app requests
- Perform input validation to prevent script injection
- Be extra-careful when using webview (setJavascriptEnabled())
- Prefer https over http
- Do you like logs?
Why should I care about security on apps? 5
ProGuardhttp://proguard.sourceforge.net/Nogotofailhttps://github.com/google/nogotofail
27
To recap…
• Consider the user experience and not just the functionalities
• Invest in pre-launch testing
• Test with real users on real devices
• Test for performance
• Care about security
• Pay attention to user feedback