Planning your Dream Mobile Application In 2384729396847 easy firstname.lastname@example.org
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 • 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: 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 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… Make your user feel at home, even at 2AM, and even if they didnt pay $1.999, no matter if its 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
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 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. devices 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)