five elements of software engineering for mobile
DESCRIPTION
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/TRANSCRIPT
@ManfredBo
5 Elements of Software Engineering for Mobile
Manfred Bortenschlager
I work at 3scale.netOut-of-the-box API Management
Imperial CollegeMarch 24, 2014
@ManfredBo
Overview
0. Why Mobile is Different
1. Technological Platform Choices
2. Users’ Experience
3. Methodologies
4. Web APIs
5. Tools
0. Why Mobile is Different
@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
Source: MaximumPC, http://www.maximumpc.com/article/news/more_mobile_phones_south_korea_people
Fragmentation
Source: http://www.idownloadblog.com/2013/05/16/idc-smartphones-q1-2013-2/
Source: Tsahi Levent-Levi, http://www.flickr.com/photos/86979666@N00/7809646882
Source: OpenSignal, http://opensignal.com/reports/fragmentation.php?
@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
@ManfredBo
Difference: Market Characteristics
● Ephemerality
● User acquisition / retention
● Distribution
● Business models
○ Revenue models
@ManfredBo
Why is it worth thinking about these things
at all?
“Mobile app development is a
$68 billion industry (2013)“
GDP of Cuba11m population
Source: Vision Mobile,http://www.visionmobile.com/product/developer-economics-q1-2014-state-developer-nation/
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
1. Technological Platform Choices
@ManfredBo
Choices
● Native
● Web
● Hybrid
● Cross-platform
○ Appcelerator, Marmalade, PhoneGap/Cordova,
Xamarin ...
@ManfredBo
App Lifecycle
Source: http://developer.android.com/training/basics/activity-lifecycle/starting.html
@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/
2. Users’ Experience
@ManfredBo
The Sum of Everything a User Experiences
Source: Smashing Magazine,http://mobile.smashingmagazine.com/2012/07/12/elements-mobile-user-experience/
3. Methodologies
Building a business
Product development
Customer development
Methodology
@ManfredBo
Building a Business
@ManfredBo
Customer Development
See: “How to build a Startup”Udacity free online lecture by Berkeley Prof. Steve Blank
https://www.udacity.com/course/ep245
Source: Alex Osterwalder, http://www.businessmodelgeneration.com/
@ManfredBo
Revenue Models
Which apps make more money?
http://www.visionmobile.com/blog/2013/04/which-apps-make-more-money/
@ManfredBo
Product Development
4. Benefit of Web APIs
@ManfredBo
What are Web APIs?
APsdfAPI
@ManfredBo
Evolution of APIs
Current nb of APIs: 11,188
@ManfredBo
Evolution of APIs
Source: tuts+ http://code.tutsplus.com/articles/the-increasing-importance-of-apis-in-web-development--net-22368(2011 data)
@ManfredBo
Evolution of APIs
Source: tuts+ http://code.tutsplus.com/articles/the-increasing-importance-of-apis-in-web-development--net-22368(2011 data)
@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
@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
@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-minutes
@ManfredBo
Practical Example: Android (2/3)
@ManfredBo
Practical Example: Android (3/3)
@ManfredBo
SDKs
Image Source: http://www.wikitude.com/
5. Tools
@ManfredBo
Developers who use tools make more money
@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
appdeveloperatlas.com/
Take-aways
➔ 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/
Helpful Resources
@ManfredBo
Helpful Resources
http://www.visionmobile.com/
http://wip.org/
http://ben-evans.com/
http://www.3scale.net/blog/
@ManfredBo
Helpful Resources
http://www.scoop.it/t/api-mag