3. Steve Jobs
â The people who are
crazy enough to think
they can change the
world are the ones
who doâ
4. 4
Chapter ONE
WHAT IS APP DEVELOPMENT 5
Introduction 6
What is App Development 7
The main steps in Design and Dev 8
Chapter TWO
DISCOVERY SESSION, UX & UI 10
Great thinking leads to a great app 11
Prototyping 14
Chapter THREE
DEVELOPMENT STEPS 17
Platforms & Programming Languages 18
Things to look out for 25
What is Agile Development 26
Make your App a win 27
CONTENTS
6. 6
INTRODUCTION
Hi there. So if you are reading this eBook then one can reasonably
assume you are genuinely considering embarking on the journey of
developing an app, or you may just be interested in having a read...
Either way, what we have attempted to do here is to provide you with
a high level overview of the app development process, what you can
expect in terms of stages and output, and also to answer some of the
more common questions such as: which platform is right for you?
In todays world, it seems like there is an app for absolutely everything.
For your email; your recipes; your workout. There is pretty much an
app for everything. While the app industry is booming, the reality is
that taking an idea and turning it into a successful mobile application
is much harder and more complex that one would imagine. The truth
is that even if you get a reasonable app developed, that simply gets
you to the starting line. Then you need to get the app onto peopleâs
phones, commercialise it, manage the updates and iterations, develop
the product and feature roadmaps, you name it... It is literally another
world.
So the reason this eBook has been prepared is to try and help you
to understand the first step in the process: Taking your idea, and
turning that idea into a really awesome app! It is our hope that
through reading this eBook, if nothing else, you will have a better
understanding of what is involved in developing an app, what some
of the key decisions are going to be, and what some of the key things
are to look out for.
Kevin OâHara
Group General Manager
FEW IMPORTANT
WORDS FROM THE
BOOK AUTHOR
7. 7
1
2
WHAT IS APP DEVELOPMENT?
Mobile application development is the process of making or creating a mobile application to run on
various mobile platforms. A mobile platform is a mobile operating system. Appleâs mobile operating
system is called iOS, Googleâs mobile platform is Android, RIM has Blackberry, and Windows has Windows
Mobile. Each platform has its own rules, regulations, and requirements to consider when making a mobile
application. For instance iOS mobile apps require the use of Objective C, Swift as the native language
whereas Android mobile apps use Java as the native language. There are also cross platform languages.
This is very important to understand because when making an application on the various mobile
platforms you cannot just make one app and port it over to the next platform. You must carefully consider
how and what you are building. In addition you must consider what application stores you wish to have
your mobile application highlighted in, as each mobile application store has its own set of requirements.
NOW, AT A VERY HIGH LEVEL, APP DEVELOPMENT HAS TWO PARTS:
Front end development which incorporates both the user interface (UI) and the user experience
(UX) and is largely a design led process. Front end developers are the ones responsible for
the look and feel of the app, and designing the way that the user experience will work. This
team will be generally be engaged in analysing ideas, user flows, features, and workflows in an
attempt to create a seamless user experience that looks amazing.
Back end development which is focussed on the server side of development. In back end
development, developers primarily focus on how the app works. This type of development
usually consists of connecting three parts: a server, an application, and a database. Code written
by back end developers is what communicates the database information to the application.
Anything you canât see easily with the eye such as the database and the server is typically the
work of a back end developer.
8. 8
When deciding what kind of mobile application development is right for you, you must first consider what
your overall goal is. Are you making a game, an informational app, a content driven app, or a mobile utility
app (to name a few)? Once you know what youâre making you then need to decide what platform is going
to be best for your mobile application. This decision is a highly complex decision, and so for the sake of
this eBook, we are just going to assume that you have decided to proceed with the two most popular
platforms: Android and iOS.
Key points to consider:
Define Success: Is success X number of downloads or X amount of money or X active users?
What is your budget? The average cost of an application can range from $50,000 to over a Half a Million
Dollars so it is important to define your budget.
What Platforms are you going to be on? It is important to decide where your market is, what the best way
to reach them is, and which platform provides you with the best opportunity in terms of reaching them.
What are your features? Apps are not websites, so you need to create good features that people want to
use and have a good user interface. If people donât want to use your app, or maybe they do, but the user
experience sucks, then your project is destined to fail.
What are you going to do once it is published? This is the MOST CRUCIAL COMPONENT OF THE STORY!!!
Make sure you have a game plan as to how you are going to market and push your mobile application on
to peoples phones. If you have not thought this through, and donât have an actual plan, then our advice
to you is STOP NOW! DO NOT WASTE YOUR MONEY and DONâT LET ANY APP DEVELOPER TALK YOU INTO
BUILDING AN APP! Before you build anything, you need to have a plan, and a go-to-market budget or your
app will become one of the millions that never receive more than a few hundred downloads.
THE MAIN STEPS IN
DESIGN & DEV:
9. 9
Work like there is
someone working 24
hours a day to take it
all away from you
â
MARK CUBAN
11. 11
THE DISCOVERY SESSION
So the very first step in developing an app is you telling your app developer about your amazing idea. The
app developers need to get a high level understanding of what it is that you are thinking and how this
idea could logically be delivered as an application. This is what is called aâDiscovery Sessionâ. The discovery
session is a session (typically a few hours) in which the development company will bring a team together
to listen to your idea, review any materials you may have like mock ups and drawings, pull apart your idea
on a whiteboard, and see whether or not they believe you have an idea worth taking to market.
It is where theyâdiscoverâall of your passion, and all of your concepts, and then break them down into
what they consider to be the fundamental unique selling proposition (USP) contained within your idea.
Typically, the app development company shouldnât charge for this process (although many will try) as this
is their way of understanding what you want and whether or not they think you should spend your hard
earned money on the idea.
What you want to understand by the end of a discovery session is:
1. The Why: What is the problem you are addressing with the app
2. The Tangible Benefits: What exists already and how will your solution be different
3. The Sizzle: What is going to make people want your app and then become addicted to using it
GREAT THINKING
LEADS TO A GREAT APP
12. 12
SCOPING AND DEEP DIVE â YOUR IDEA ROCKS⊠LETS CREATE A BUSINESS
So if you finish up the discovery session and the app development company buys into your dream, the
next phase (assuming you didnât walk out of the discovery session thinking those guys are a bunch of âŠ)
will be a scoping and deep dive session. Now, in this session the app development team will normally
scale up a little and include some of their technical management as well as project managers and
designers, and will ultimately attempt to work through each and every aspect of the user experience, the
target users, the platforms and supported devices, and ultimately the proposed revenue modelsâŠ
User Experience
In this session, the app developers will want to walk through each and every step of the apps
functionality. This will involve considerable discussion, a lot of patience, and typically some pizza and
refreshments. This is the app developers opportunity to clearly test you on every single functional
requirement, and to help you understand many of the things you may not have considered⊠Like
the administration interface (you will not believe how many apps are required to be fixed based on
developers that have built an app and completely forgotten the fact that the app needs an administration
interface lol).
Application target users
Next up is: who is actually going to be using this thing? Are you targeting mums, dads, corporates,
builders, millennials, Indonesians, Europeans, animals??? Hmmm. Well maybe not animals but you get
the picture. Each of these demographics has an implication on just how you are going to position the
app design, UI/UX, and even the go-to-market strategy and commercial model.
Platforms and devices to be supported
Now that you know who, what and where, the next part is the platforms and devices. Are you building
this for Web? Mobile? Tablets? For each of these decisions, certain factors need to be considered
including but not limited to coverage, device support, hardware performance, battery life, ruggedness
and required feature sets.
Revenue model
Finally you get to the money. You would be surprised at how many people fail to consider how they are
going to get a return on their investment when developing an app. There are many things to consider
from a technical point of view when looking at the revenue model. So what you need to do here is to
try and zoom in on whether you plan to be using payment gateways, storing personal information,
integrating with third party payment processing technology, incorporating in app advertising, external
software development kits (SDKs), freemium service models with upgrades for premium paymentâŠ
The list goes on. But it is crucial that before you are quoted, and provided with a functional specification
for your project, that your developers clearly understand each and every aspect of the monetisation
component.
13. 13
DEFINE YOUR GOALS
When creating an app you also need to start out by defining your goals for the app. This is in addition to
the app development goals and should be more to do with the market positioning and strategy.
Find out the answers for the following questions:
1. What is the number one problem your app will solve for the users that is different to other apps in
the market place?
2. How have others taken their app to market and what can you learn from them?
3. What is the business plan and what examples of this type of approach can you find?
4. What tools you have in place to measure the success of this App?
MARKET RESEARCH
After finding the answers to the above questions, you can then start with market research to see if there
are Apps with the same functionality. If so, its not the end of the world. You just need to consider what
will be your strategy? You can always enhance the user experience or fill out the gaps in others solutions
or you can change the business model to undercut the competition. Remember, Myspace was before
Facebook!
So remember, before you get started with documenting the use cases and designing the user experience
and the user stories you need to have done comprehensive market research. Find out who are your
competitors, what is great about their app, what is not so great and what they donât do at all. Then
compare this with your app idea and see if you can improve what is already in the market place and
ultimately own that space.
GET STARTED WITH THE UI/UX DESIGN
The User Experience (UX) and the User Interface (UI) are two of the most important elements in any app
design and development process. This is what the users will see and interact every time they open your
app. Once you have defined your goals and done your market research, you need to then design the best
UX and ensure the user flow is simple, easy and intuitive for all types of users.
1. Have you written personas for your target audience?
2. What are the issues with existing solutions?
3. What is going to be the main thematic of this App?
4. What are the use cases that are core to your differentiation?
14. 14
DESKTOP-BASED
PROTOTYPING SOFTWARES
Axure RP â a desktop application
that enables creators to make, test,
and share their work amongst the
team. Regarded in the market as the
most thorough prototyping tool, itâs a
perfect desktop application that can
handle simple to very complicated
prototypes.
Mockplus â is another of the
common prototyping tools for
computer programs, web design and
app designs. The key differentiating
element with Mockplus is that it is
very simple to use, and so designers
can get started and create very high
quality prototypes in next to no time.
Justinmind â probably one of the
more complex tools available which
requires more time becomming
proficient with how the software
works. It is qute an advanced tool but
is perfect for building live app gestures
and interactions.
Balsamiq â a great tool for anyone
with any level of computer knowledge
to create quick and easy UX designs.
Balsamiq give you all the tools and
elements needed to help you bring
your ideas to life. They have a desktop
app as well as a web app and the
interface is really kind of cool...
Wireframe Design & Mock up Tools for
UI/UX Designers
There is no better way to ensure smooth
collaboration between designers, developers and
project managers than using a prototyping tool.
Prototyping tools allow you to bring your ideas
to life and to work through a range of issues
that you may not have thought of while in the
conceptualisation phases such as admin interfaces,
button sizes, user flows, screens etc etc. Some of
the more advanced tools can go as far as creating
a seamless experience that looks and feels very
close to a final production App, and that even have
the ability allow users to tap on elements, and to
experience the interactions and the transitions.
The prototyping process is certainly one that is
recommended. It provides a level of assurity that
what has been created by the designer is what we
will ultimately be built by the developers. More
importantly, it ensures that what has been created
by the designer is what the founder actually
wanted.
15. 15
Some other online prototyping tools:
There are so many online platforms to help you
create beautiful UI/UX and ultimately to prototype
your designs. Sharing of your ptototype is one of
the most important features you will be looking for
when you choose a prototyping tool so the better
tools are the ones that make it easy for anyone in
the team to collaborate with the project team and
to share their ideas, comments and feedback.
One of the other important aspects of a good
prototyping platform is the ability to provide the
developers with the technical details. They need to
be able to see the user flow, interactivity, gestures
and transitions. Moreover, style specifications need
to be easily accessible as well. This includes the
font size, colours, dimensions and positions.
Asset management is also another handy tool that
simplifies sharing assets like icons, images and
fonts between designers and developers. If you get
the asset management right, you end up with a
pixel perfect platform.
ONLINE PROTOTYPING
TOOLS
InVision â as a web based
prototyping platform InVision is
quickly becomming a standard tool
among designers and developers. It
is ideal to share and experience your
design on any device. There are a
number of really cool features that
allow users review and comment...
UXpin - Ideal for designing mobile
responsive prototypes which can be
shared across different devices for
testing and presentation. Version
controlling is another feature of UXpin
which can help with keeping track of
your progress and provides the ability
to reverse changes if need be.
FluidUI â One of the richest platforms
when it comes to using ready to use
widgets from a library. It contains over
2000 editable elements. Think, create,
prototype & share. As simple as it
sounds, FluidUI is awesome for UI/UX
design.
Proto.io â a sophisticated web
application with rich functionalities.
The gestures and touchability are
probably the coolest features. Proto.
io is a great platform for creating
prototypes for iOS and Android apps.
18. 18
PLATFORMS AND LANGUAGES
There are more than 10 different mobile operating systems. In this guide we are going to be focusing on
the most common ones and their programming languages. Competition in mobile platforms really took
off in 2010 when Android really started to gain traction. This was the point at which Android started to
steal significant marketshare from the larger incumbents such as Blackberry, Apple and Symbian. A lot of
things have changed since those days and now Apple and Android hold the top spots in the Mobile OS
market followed by Windows Mobile.
19. 19
The single most important question for your app
development project: Do you build a Native app (Swift
/ Objective C / Java) or do you use React Native or Ionic
or a hybrid platform. There are many arguments for each
solution (which each developer will argue based on what
they like best - not what is best for you), so what we have
attempted to do here is just toexplain a little about each...
Facebookâs React Native lets you build real, native iOS and
Android apps with one codebase. Itâs not aâmobile web
appâ, aâHTML5 appâ, or aâhybrid appâ. You build a real
mobile app thatâs indistinguishable from an app built using
Objective-C, Swift or Java. You just use JavaScript and React
to put it together. Regularly, this additionally accompanies
better execution and smoother movements. Facebookâs
approach with React is simple:âlearn once, write anywhereâ.
Not only will your team be able to focus on one codebase
for the mobile application. When taking the opportunity
cost into consideration it is a no brainer in terms of cost,
development and efficiency.
NOTABLE REACT NATIVE APPS:
REACT
NATIVE
20. 20
If you decide to go for native development instead of
cross-platform solutions, you will have to decide between
Objective-C and Swift.
According to Apple,âSwift combines the performance and
efficiency of compiled languages with the simplicity and
interactivity of popular scripting languages.â While there
appears to be a significant number of reasons to love Swift
- like theârapidâdevelopment process, improved safety and
performance, and the vibrant open source community,
the language is still a long way from perfection. There are
as many arguments for and against choosing Swift over
Objective C and so it is important that you do your research.
What you need to consider when choosing to go Native
vs React Native or Ionic is this: If you go Native, you need
to develop and maintain two code bases. This means
you need a team with experience in both Java and Swift/
Objective C (likely two teams). If you choose React Native or
Ionic, you develop and maintain only one code base.
NOTABLE SWIFT / OBJECTIVE-C APPS:
SWIFT /
OBJECTIVE-C
21. 21
Ionic is one of the other great cross platform languages that
would allow you develop apps for both iOS and Android
using one code-base. Apps built on Ionic incorporate native
functionalities, gestures, transitions, and other tools that
allow you enhance the user experience with speed and
efficiency.
Ionic is highly regarded because it provides mobile-
friendly HTML, CSS, and JS components to developers.
Other advantages of using Ionic are things like the use of
AngularJS to create powerful SDKs for building rich and
robust applications, the frameworkâs focus on HTML, CSS,
and JS that enables rapid development, ultra low costs, and
minimal maintenance.
It is important to note that one app for web, Android,
and iOS means one development team, one project, one
implementation, and one language. Also there is no need to
start from scratch if you ever want to deploy another device
like a Windows phone.
Notable React IONIC Apps:
IONIC
22. 22
Android is the major alternative platform to iOS and
supports some of the apps that are not on an Apple
handset. Android is an open source mobile operation
system with a gigantic client base and comprehensive
app development process. With a comparatively low
entry barrier from a technical and cost point of view, small
businesses and startups can develop complex apps easily.
The platform also ensures that businesses can price their
apps more competitively and gain access to a vast market.
The approval process is highly simplified compared with
that of Apple. Android apps donât need to go through a
complicated and lengthy approval process before making
their way into the market. So from concept to an actual
product making its way into the marketplace Android
is much more efficient that others. There are several
marketplaces including Google Play and third-party ones to
help you distribute your app, which also allow you to reach
out to larger segments of the audience.
NOTABLE JS ANDROID APPS:
ANDROID
JAVA
23. 23
Microsoft (to their credit) have maintained the
position as the top dominant player of desktop PC
operating systems for decades. With the acquisition
of Nokia, the largest player of Windows Phone,
Microsoft is aiming at owning a part of the growing
smartphone market. Based on the stats released
back in 2014, there were over 50 million Windows
phone users and this figure was growing rapidly.
Windows are hoping to surpasses iOS as the #2
mobile OS globally after Android.
From the business point of view, once you have
launched your app on iOS and Android it is almost
a necessity to support Windows phone, if your goal
is truly global reach. The most obvious advantage of
the Microsoftâs Windows Phone platform is the fast
and sustained growth of its market share around the
world.
NOTABLE WINDOWS MOBILE APPS:
WINDOWS
MOBILE
24. 24
The companies that
work are the ones
that people really
care about and have a
vision for the world so
do something you like.
â
MARK ZUCKERBERG
25. 25
THINGS
TO LOOK OUT FOR
DESIGN TO BE USED BY ANYONE
If your app is targeting different age groups with varying education levels, make sure it is user friendly and
intuitive enough for any type of user to pick it up and run with it. You can always incorporate tutorials and
instructions, but before you do that, ask yourself if your app could be done in a way that wouldnât require
instructions. The age old principle ofâKeep It Simple Stupidâ(KISS) is certainly one that is true for apps!
PRIVACY AND SECURITY
In the world we live in today information is gold and protecting sensitive data is crucial. Successful apps
place a high priority on data security and governance. This should be incorporated as part of the project
plan with the security and privacy objectives maintained throughout the entire development process.
MARKETING IS THE KEY TO YOUR SUCCESS
Marketing is usually what sets a successful app apart from mediocre ones in the ocean of over a billion
apps across the various stores. Marketing is the lifeblood of a product, and you will need to build a sensible
mix of marketing activities to ensure you are driving the right downloaders into your app.
26. 26
By involving the client in
every step of the project,
there is a high degree of
collaboration between the
client and project team
Engagement
WHAT IS AGILE
DEVELOPMENT?
AGILE IS ONE OF THE BIG BUZZWORDS OF THE
IT DEVELOPMENT INDUSTRY. SO WHAT IS AGILE
DEVELOPMENT?
Agile development describes a set of values and principles for app
development under which requirements and solutions evolve
through the collaborative effort of self-organizing cross-functional
teams. It advocates adaptive planning, evolutionary development,
early delivery, and continuous improvement, and it encourages rapid
and flexible response to change.
In laymens terms, Agile development means that the team works
in very shortâsprintsâand continually checks back in together. It
encourages close frequent collaboration for all stakeholders, such
that if something is not quite right, or there is an issue that needs
solving, it is picked up quickly, dealt with rapidly, and all stakeholders
are informed along the way.
Agile methodology also means that if there is an issue, it is picked up
quickly, and measures can be put in place to address the issue sooner
rather than later. This avoids getting to the end of a lengthy and
costly development project, only to identify a critical issue.
An Agile approach provides
a unique opportunity
for clients to be involved
throughout the project,
from prioritising features
to iteration planning and
review sessions.
Transparency
By allowing the client to
determine the priority
of features, the team
understands whatâs most
important to the clientâs
business, and can deliver
the features that provide
the most business value.
Business Value
27. 27
â
â
MAKE IT FOR DIFFERENT PLATFORMS
Most people focus solely on iOS, maybe as it all started with iPhone, but
Android is now dominating 50 percent market share in most markets
and up to 80% in some of the developing countries like Indonesia. Start
with the iPhone, but Android must be part of your roadmap.
MAKE A QUALITY PRODUCT
Make an app that does one thing really well. Itâs important that the app
is solving a problem that is unique or at least does things better than
the competitors. Your app will need to be original, improve on another
app, solve a problem or entertain. In addition, it must be well designed,
both in terms of visuals and the user experience. If the app is good,
everything that follows will be easier.
MAKE YOUR APP A SUCCESS
â
FOCUS ON MARKETING
It is important to hit the market hard and keep up the momentum.
Consider marketing when preparing your business plan and budgeting.
Itâs essential to attract a first batch of users to test metrics before
continuing with more systematic campaigns.