Five Elements of Software Engineering for Mobile

1,800 views

Published on

I presented five elements of software engineering for mobile that IMHO increase the chance of success to Computing students at Imperial College.
These five elements are:
1. Make the technical platform choices right for your context
2. Get the UX right
3. Choose the right methodologies in the areas of building a business, customer development and product development
4. Enrich the functionality of your app integrating Web APIs
5. Leverage the power of tools (rather than reinventing the wheel)

I started a write-up of this talk. Find it here:
http://www.3scale.net/2014/04/five-elements-software-engineering-mobile-part-1/

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,800
On SlideShare
0
From Embeds
0
Number of Embeds
608
Actions
Shares
0
Downloads
19
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Five Elements of Software Engineering for Mobile

  1. 1. @ManfredBo 5 Elements of Software Engineering for Mobile Manfred Bortenschlager I work at 3scale.net Out-of-the-box API Management Imperial College March 24, 2014
  2. 2. @ManfredBo Overview 0. Why Mobile is Different 1. Technological Platform Choices 2. Users’ Experience 3. Methodologies 4. Web APIs 5. Tools
  3. 3. 0. Why Mobile is Different
  4. 4. @ManfredBo Difference: User Behaviour ● Inherently mobile ○ Limited cognitive resources, 4sec attention time span ● Limited hardware ○ Screen size, battery, bandwidth, CPU ○ 1sec delay ⇒ 16% customer satisfaction decrease ● Cost ○ Data transfer and data plans
  5. 5. Source: MaximumPC, http://www.maximumpc.com/article/news/more_mobile_phones_south_korea_people Fragmentation
  6. 6. Source: http://www.idownloadblog.com/2013/05/16/idc-smartphones-q1-2013-2/
  7. 7. Source: Tsahi Levent-Levi, http://www.flickr.com/photos/86979666@N00/7809646882
  8. 8. Source: OpenSignal, http://opensignal.com/reports/fragmentation.php?
  9. 9. @ManfredBo Difference: User I/O ○ Multipoint-touch ○ Gestures and motion detection ○ Sensors (acceleration, tilt, GPS, compass) ○ Haptic feedback ○ Speech-to-text / text-to-speech ○ Camera (face recognition) ● No conventional I/O means
  10. 10. @ManfredBo Difference: Market Characteristics ● Ephemerality ● User acquisition / retention ● Distribution ● Business models ○ Revenue models
  11. 11. @ManfredBo Why is it worth thinking about these things at all?
  12. 12. “Mobile app development is a $68 billion industry (2013)“ GDP of Cuba 11m population Source: Vision Mobile, http://www.visionmobile.com/product/developer- economics-q1-2014-state-developer-nation/
  13. 13. Not even touched wearables, Internet-of-Things, or sensors, yet... Sources: http://www.catwig.com/google-glass-teardown/ http://edition.cnn.com/2013/05/02/travel/london-city-airport-internet-of-things/ http://www.libelium.com/wireless_sensor_networks_to_control_radiation_levels_geiger_counters/ And respective product sites. Cisco: $14.4tr market
  14. 14. 1. Technological Platform Choices
  15. 15. @ManfredBo Choices ● Native ● Web ● Hybrid ● Cross-platform ○ Appcelerator, Marmalade, PhoneGap/Cordova, Xamarin ...
  16. 16. @ManfredBo App Lifecycle Source: http://developer.android.com/training/basics/activity-lifecycle/starting.html
  17. 17. @ManfredBo Specific Programming Idioms E.g.: Intents in Android Android-specific communication mechanism Allows asynchronous messaging between platform and app components, primarily to: 1. Start an activity 2. Start a service 3. Broadcast to other apps Image source, http://www.itcsolutions.eu/
  18. 18. 2. Users’ Experience
  19. 19. @ManfredBo The Sum of Everything a User Experiences Source: Smashing Magazine, http://mobile.smashingmagazine.com/2012/07/12/elements-mobile-user-experience/
  20. 20. 3. Methodologies
  21. 21. Building a business Product development Customer development Methodology
  22. 22. @ManfredBo Building a Business
  23. 23. @ManfredBo Customer Development See: “How to build a Startup” Udacity free online lecture by Berkeley Prof. Steve Blank https://www.udacity.com/course/ep245
  24. 24. Source: Alex Osterwalder, http://www.businessmodelgeneration.com/
  25. 25. @ManfredBo Revenue Models Which apps make more money? http://www.visionmobile.com/blog/2013/04/which-apps-make-more-money/
  26. 26. @ManfredBo Product Development
  27. 27. 4. Benefit of Web APIs
  28. 28. @ManfredBo What are Web APIs? APsdfAPI
  29. 29. @ManfredBo Evolution of APIs Current nb of APIs: 11,188
  30. 30. @ManfredBo Evolution of APIs Source: tuts+ http://code.tutsplus.com/articles/the-increasing-importance-of-apis-in-web-development--net-22368 (2011 data)
  31. 31. @ManfredBo Evolution of APIs Source: tuts+ http://code.tutsplus.com/articles/the-increasing-importance-of-apis-in-web-development--net-22368 (2011 data)
  32. 32. @ManfredBo Web APIs, REST ● REST = Representational State Transfer ● Stateless client/server communication protocol ● Architecture style entirely based on Web standards ○ HTTP, URL, XML/JSON ● Supports all CRUD operations ● OS/platform independent
  33. 33. @ManfredBo Practical REST Example Send HTTP verbs GET, POST, PUT, DELETE as URLs to a server. Example: Email verification API http://my.api-providers.webaddress.com/version/VerifyEmail ?UserID=<myUserID>&Password=<myPassword>&TheEmailToVerify= <email Address To Verify>&VerifyEmail.Timeout=<Time Out> App ID and App Key are often required too
  34. 34. @ManfredBo Practical Example: Android (1/3) Based on http://blog.strikeiron.com/bid/73189/Integrate-a-REST-API-into-Android-Application-in-less-than-15-minute
  35. 35. @ManfredBo Practical Example: Android (2/3)
  36. 36. @ManfredBo Practical Example: Android (3/3)
  37. 37. @ManfredBo SDKs Image Source: http://www.wikitude.com/
  38. 38. 5. Tools
  39. 39. @ManfredBo Developers who use tools make more money
  40. 40. @ManfredBo The Power of Tools Backend services, storage: Amazon, Dropbox, Kinvey, Parse Monetization: AdMob, InMobi Feature testing: Splitforce, Testflight Prototyping: AppGyver Prototyper, FluidUI Usability testing: UXCam Performance & crash reporting: Crittercism or BugSense User support: Helpshift
  41. 41. appdeveloperatlas.com/
  42. 42. Take-aways
  43. 43. ➔ Understand and embrace the difference of mobile ➔ UX for mobile is much more than just (G)UI ➔ Include users soon and often ➔ Iterate often, focus on essentials ➔ Don’t reinvent the wheel -- use tools ➔ Enrich your app with Web APIs ➔ Massive potential -- go, grab it! Image Source http://www.entrepreneur.com/
  44. 44. Helpful Resources
  45. 45. @ManfredBo Helpful Resources http://www.visionmobile.com/ http://wip.org/ http://ben-evans.com/ http://www.3scale.net/blog/
  46. 46. @ManfredBo Helpful Resources http://www.scoop.it/t/api-mag

×