1. Planning your
Dream Mobile
Application
In 2384729396847 easy steps
sean@for-each.com
2. Powered by:
Your app platform is not the target,
it’s the way to achieve your target
“Business opportunities are like buses,
there’s always another one coming“
– Richard Branson
3. Powered by:
Parameters to consider
• Features
– Any unique requirements/features?
– Hardware requirements (external barcode
scanner? Credit card scanner? Printer?)
MOBILE PAYMENT MARKET TO HIT $100
BILLION
5. Powered by:
Parameters to consider
• Monetize
– Are you selling the app or earning money from the
app?
– Free / Premium or maybe FreeMium?
• App eco-system
– Habits users are familiar with (Windows phone)
6. Powered by:
Parameters to consider
• Development resources
– The human resource (supply and demand)
– Licensing & distribution
• Branding
– What the platform tells about your app?
Android-masses? BlackBerry-work? iOS-fashion?
• Future
– The million dollar question!
7. Powered by:
… And the wrong
considerations
• “Everybody I see has iPhones! That’s my
market share I’m aiming…”
• “I have a BlackBerry device and I love it! Lets
start by developing to it”
• “I know Android development, I’ll start with it”
• “iPhone users buy more apps than Android
users buy”
8. Powered by:
The question is not what’s the
best OS version, It’s what the
best OS version that fits you.
“By failing to prepare,
you are preparing to fail”
– Benjamin Franklin
9. Powered by:
Understanding your app
version compatibility
• Higher versions = richer capabilities
• Higher versions = reaching fewer users
• Think of it this way – If you write your
document in “Microsoft Word 2013”, users
running “Word 2003” can’t open it.
• The goal – to achieve maximum market share
while keeping maximum capabilities
10. Powered by:
Designating the right version
• Each
platforms has
different
fragmentation
• It’s easy to see
the
differences…
11. Powered by:
Behind the scenes
• The version isn’t always what the end user
experience, It’s also the tools and
technologies the programmer is given to work
with
• Using newer versions shortens your
development time and keeps your staff up-to-
date with today market
• But then again… less users reach…
12. Powered by:
So what would
you choose?
iOS 5
iOS 6
13. Powered by:
Great apps need great
distribution opportunities
14. Powered by:
Types
1. Private
2. Public
• Each platform has it limitations
• Your app structure might depend on it
• It might improve your app security
15. Powered by:
Public distribution type
• It’s not necessarily a monopoly like Apple’s
“AppStore”.
• Android for instance has two major players in the
market – Google’s “Play” & Amazon’s “AppStore”
16. Powered by:
Private distribution type
• Usually for apps designated to run “in house”
• Probably custom made for business special needs
• Sometimes it’s sold as a bundle of App + Device
• Might be temporary for beta testing purposes
• Private distribution = Private update mechanism,
Remote auditing, Remote crash handling
17. Powered by:
Most application are living online.
What does it take to make it right?
An iPod, a phone, an internet mobile
communicator... these are NOT three separate
devices! And we are calling it iPhone! Today Apple is
going to reinvent the phone. And here it is.
- Steve Jobs
18. Powered by:
Connectivity
• Remember those days you had shaky
connectivity? Internet crashes or very low
bandwidth?
• With that risk in mind you should plan every
step in your application. Code & Usability.
• What are your offline abilities you offer for
your user?
19. Powered by:
This lecture is about mobile,
not “smart phones”.
“Yesterday’s home runs
don’t win today’s games”
- Babe Ruth
20. Powered by:
When you say mobile
device, what do you mean?
• Lets take Android for example.
What definition fits best?
– “Smart phone OS”? (Nope. Has tablets.)
– “Hand held devices OS”? (Nope. Has other)
– So.. Just a “Mobile OS”? YES!
• What’s the unique features of a mobile
platform? In today world – no rules!
22. Powered by:
You’ve got a great idea!
How are you going to fit it all into
a mobile screen?
“Simplicity is the ultimate form of
sophistication”
- Leonardo da Vinci
23. Powered by:
Common layout decisions
• Portrait? Landscape? Should I support them
both?
• How to best express the application contents
on various device types?
• Is the development compatible for both
iPhone (smart phone) and iPad (tablet) ?
24. Powered by:
Smart phone vs. Tablet
• They both offer the same features, so the
differences are mainly in the layout design
• Don’t save money by deciding “I’ll start
developing to smart phone and then move on
to tablet”
• You should go the extra mile to make your
market share bigger. Never say “no” to users
wishing to download your app
28. Powered by:
TABLET COMPATIBILITY
LEVEL 3 – FULL COMPATIBILITY
29. Powered by:
UX (User experience)
• Being mobile consumers doesn’t qualify us as
UX experts
• Consulting UX mobile designer is crucial
• Everyone that is involved in the application
development process should learn the basic
principals and practice them in their expertise
area
30. Powered by:
Working under the limited
resources of a mobile device
“There is no reason anyone would want a
computer in their home”
- Ken Olson, 1977
31. Powered by:
Know your limits
• Limited computer power
• Limited storage
• Relies on battery power
• Network bandwidth is expensive
32. Powered by:
Work with those limits
• Limited computer power -> calculate on server
• Limited storage -> know where to store
• Relies on battery power -> don’t over work
• Network bandwidth is expensive -> offer the
user the ability to control it
33. Powered by:
Questions you might want
to ask yourself
• Can I cache some of the data? For example pictures
• Do I have to check the exact GPS right now?
• Is my data structure efficient?
• Is my main algorithm optimized?
• Am I asking too much API requests from servers?
• Am I recycling the data I’m creating in a good sense?
• Am I maximizing the best native libraries?
• Did I close all the resources I’ve used?
34. Powered by:
Protect yourself and your users
(at least try to)
“The only truly secure system is one that is powered
off, cast in a block of concrete and sealed in a lead-
lined room with armed guards”
– Gene Spafford
35. Powered by:
Common security practices
• Guard against malicious input
• Secure access to the application
• Encrypt sensitive configuration data
• Security of the persistent storage
• Data on the wire
• Enforce a strong password policy
• Limit the processing to something realistic e.g. large
searches
• Auditing and logging
• Beware of buffer overruns
36. Powered by:
... And some mobile considerations
• Less
permission
you ask =
Easier
gaining user
trust
37. Powered by:
Machen Sie Ihren Benutzernamen
zu Hause fühlen,
selbst bei 2.00, und selbst wenn sie
nicht zahlen 1,999 $,
egal ob es in der Mitte 12.08 regnen
38. Powered by:
Let’s take a closer look…
Make your user feel at home,
even at 2AM, and even if they didn't pay $1.999,
no matter if it's raining in the middle of 08/12
Machen Sie Ihren Benutzernamen zu Hause fühlen,
selbst bei 2.00, und selbst wenn sie nicht zahlen $1,999,
egal ob es in der Mitte 12.08 regnen
39. Powered by:
On what localization areas
should we focus
• Text
• Numbers
• Date-time
• Currency
40. Powered by:
Geographic targeting
• The key for good localization is knowing your
target or targets
• You can target your app distribution to specific
markets
41. Powered by:
How does it work
When you write When a user runs
your application: your application:
You create a set of The Android system
default resources, plus selects which resources
alternatives to be used to load, based on the
in different locales. device's locale.
42. Powered by:
How does it work
• Preparing to localization Is simple and should be
a common programming practice in your app
even if you don’t plan in the near future to
expend it
• Good to know:
– You should localize not only the app itself, but the app
page on the market as well
– Client-Server model (localized responses)
– RTL – it’s not that simple (changing layout)