ZigZagging around in mobile app development
- explore the major pitfalls in mobile app development-
As technology is increasingly shifting towards “Mobile first, Desktop Second” approach, building a successful app is not anymore a “nice-to-have”. However, bringing the mouse pointers to finger taps is quite complex. Let’s explore the major pitfalls in mobile app development and how to avoid them in order to build a great app.
8. Build only features, ignore user experience
8
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!)
9
Build only features, ignore user experience1
10. Gumtree experience in Dec 2012 – 2 stars in the Google play store
10
Build only features, ignore user experience1
11. Gumtree experience in Dec 2014 – 4.5 stars
11
Build only features, ignore user experience1
13. 13
Rely on post-launch crashes2
- 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. 16
Not testing real user on real devices3
0%
percentage of your app users that use emulator to run your app
17. 17
Not testing real user on real devices3
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. 19
Test only functionalities…forget about performance4
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. 21
Test only functionalities…forget about performance4
BEFORE AFTER
ACTION
Analysis and
improvement of UI
rendering time.
RESULT
Measure time
93.19%
Layout time
92.6%
Draw time
73.17%
22. 22
Test only functionalities…forget about performance4
ACTION: Flattened UI by removing and optimize layers
RESULT : From 17 layers per SRP item to 10 layers per item
From 35 layers per SRP page to 21 layers
23. 23
Test only functionalities…forget about performance4
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
24. 24
Why should I care about security on apps?5
Report for FireEye Mobile Security - July 2014
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?
25
Why should I care about security on apps?5
ProGuard
http://proguard.sourceforge.net/
Nogotofail
https://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
27