Planning your Dream Mobile App

Post on 16-Jan-2015

395 views 1 download

Tags:

description

You have a great idea for a mobile App? plan your way to a successful app

Transcript of Planning your Dream Mobile App

Planning your

Dream Mobile Application

In 2384729396847 easy steps

sean@for-each.com

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

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

Powered by:

Parameters to consider

• Market share

– Mass distribution? Boutique?

– Areas, languages, culture

3 2012Q ANDROID: 75%

IOS: 14.9% BB: 4.3%

SYMBIAN: 2.3% WINPHONE: 2%

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)

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!

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”

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

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

Powered by:

Designating the right version

• Each platforms has different fragmentation

• It’s easy to see the differences…

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…

Powered by:

So what would you choose?

iOS 5

iOS 6

Powered by:

Great apps need great

distribution opportunities

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

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”

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

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

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?

Powered by:

This lecture is about mobile,

not “smart phones”.

“Yesterday’s home runs don’t win today’s games”

- Babe Ruth

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!

Powered by:

Android

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

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) ?

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

Powered by:

TABLET COMPATIBILITY

LEVEL 1 - NONE

Powered by:

Powered by:

TABLET COMPATIBILITY

LEVEL 2 – TABLET COMPATIBLE WITH BASIC LAYOUT CHANGES

Powered by:

TABLET COMPATIBILITY

LEVEL 3 – FULL COMPATIBILITY

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

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

Powered by:

Know your limits

• Limited computer power

• Limited storage

• Relies on battery power

• Network bandwidth is expensive

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

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?

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

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

Powered by:

... And some mobile considerations

• Less permission you ask = Easier gaining user trust

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

Powered by:

Let’s take a closer look…

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

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

Powered by:

On what localization areas should we focus

• Text

• Numbers

• Date-time

• Currency

Powered by:

Geographic targeting

• The key for good localization is knowing your target or targets

• You can target your app distribution to specific markets

Powered by:

How does it work

When you write your application:

You create a set of default resources, plus alternatives to be used in different locales.

When a user runs your application:

The Android system selects which resources to load, based on the device's locale.

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)

sean@for-each.com