Create an iPhone or Android Application from Scratch

Have a great idea for an app, but you don’t know how to how to go about it? Well, you are not alone. There are many mobile enthusiasts just like you who may be very good in conceptualizing an idea for a mobile app, but doesn’t have the means & resources to create it.

I am listing down some pointers that you can follow to go about creating your application and launch it in the app store within a reasonable timeframe. Now some of these pointers may also apply to web startups or early-stage businesses in general. But I will try my best to focus more on Mobile side of things for this article’s sake.

8 Simple Steps to your First Mobile Application


1. Don’t be Afraid to tell others about your Mobile App Idea

It’s really important for you to get early feedback on your idea. I have met many Entrepreneurs who are afraid to share their ideas with anyone. They feel that by doing so, they put themselves at a risk of their ideas being stolen. But this is really far from reality. If you feel that your idea is so unique that no one among 6 billion of us have thought of it before then you will be wrong.

An ideas has no real value on its own. The power is in it’s execution and your go to market strategy. But by talking to others about your idea frequently, you will get more help to build and refine your existing concept. This process will likely to create your startup’s secret sauce that you will need to differentiate yourself from others. For instance, before Facebook came along there were many other sites under the social network category. But Facebook had many secret sauces in their early build of the site – like it’s strict sign up process, clean & minimalistic look that focused on just you and people you care about, Facebook Main Feed, your Wall, Meta data (Age, Gender, Location Relationship Status etc.), Social Graph (Mutual friends, People you may know etc.). These features made Facebook very different than how the other social networks operated at that time. Thus users who joined Facebook simply fell in love with their product and told others about it. And soon it went mainstream and all the other networks were just too late to join the party.

So go out and talk to your family & friends about what you want to build. Some will like it and some will hate it. But the most important thing for you is to defend your idea & criticisms and just make your concept that much stronger & better.

2. Test Your App Idea

Before you go on and spend a lot of resources (time & money) in creating a full blown mobile application, my advice for anyone would be to put your idea to test first.

A good way to test your idea would be to create a simple landing page explaining your product, preferably with some images/screen shots that captures the essence of what you are trying to create and the problem you are trying to solve. I can recommend any of the following services for creating your landing page:

1) unbounce.com (This is what I personally use and highly recommand).
2) leadpages.net (Very robust with tons of features)
3) launchrock.com (Proably the most easiest to set up)
4) quickmvp.com (Also helps you with creating ads on Google to promote your landing page)
5) launcheffectapp.com (If you already have hosted wordpress, you can simply download their theme).

Use the built in email capture form of the landing page creation service you are using, or you may also just use a mailing list service like – Mailchimp or Aweber. Once your landing page is in place, create a few ads with a small budget of $100 in Google Adwords & Facebook Ads. Make sure you target the ads specific to your target market (i.e. Age, Gender, Location, Interests etc.). Learn fast on which ads are working, tweak your ad copy and optimize them for maximum return on your investment. Your objective here is to see how many people will like your idea enough to be willing to give you their email address to be an early beta user. If you manage to get more than 50 users to signup then good job! Otherwise you may need to restart your ad campaign to get some more people in. Send out a personalized email to your newly signed up users asking them to help you by answering some questions. Don’t send out a survey as the format of Q&A is a turn off for most people. Instead write the email in a way so that the users feels your passion on the subject matter and your desire to succeed & support your users. What you are going to ask in the email will greatly vary. But a good place to start would be to go over the pain points you currently have and see if your users also share the same or similar pain points. Explain what your mobile application will do and see if those users can see your app being a solution to their problems.

3. Design & Create a MVP (Minimal Viable Product) of your App

In the startup world, a Minimal Viable Product (MVP) stands for a version of your product that allows you to take in the maximum amount of validated learning from your users with the least amount of effort. So forget about creating endless features, animations etc. Think about the most important things that your app can’t do without. For example, if you were making the popular app Instagram today, how would your MVP look like? I think when instagram started, they only had a very few filters and very limited functionality and zero web presence. You could only use instagram within their app because they didn’t want to waste time building a web version of their service. As the Instagram craze caught on and more people started using it, you can see that they have a lot more features now (a wide choice of filters, ability to share photos in a group, hashtags & search etc).

So when you are creating your application, you should list out all your features one by one and then pick the Primary 3-4 key features that you must have to solve the problem you are trying to solve. Anything that feels like the icing on the cake should be avoided at this stage.

The objective of MVP is to build something small, fast & to-the-point so that you can go to market quickly and get some early traction. And while your product is out there gaining you followers & downloads, you can work on adding new features & also enhancing the existing features by listening to your users.

4. Document Your App Idea, Create Wireframes

Once your MVP is in place, You must create a written document that explains your app and all its functions in detail. This step is very important especially if you plan to hire someone to create this application for you.

Its always easier when things are written down instead of just having it all inside your head. I recommend you to start using Evernote or Microsoft Onenote, which are both very capable note taking app on Desktop, Mobile & Web that I personally use regularly. Write your concept in a way so that, when someone reads it, he/she can straight away get what you are trying to build.

Break down the your note in sections and list out all the features and functions that your application will have and elaborate on each of them. So for instance, lets say you need a part of your app to show all restaurants nearby. This is how I would write it:

When the user taps on the show restaurants nearby button, I want to get user’s location using the phone’s built in GPS and send the coordinates in any local database api (google maps/foursquare) and match Nearby businesses that falls under the restaurant category. I would like to list those restaurants in the order of distance (nearest to furthest) and show the Restaurant Name, address, opening hours, phone number, rating and a picture). If the user taps on the phone number, I want the mobile to dial the number. If the user taps on the ratings, i want to take them to a separate view where all the ratings & comments will show.

Visual Mockups are even better than text documents as they are much easier to understand. If you have an idea that you can conceptualize easily by drawing it on a piece of paper, then thats the first thing you should do. If your drawing and sketches are as bad as mine, you may just want to use a professional wireframing tool to quickly create your mobile interface. I have tested almost all the solutions that are out there and my favorites are: FluidUi.com & balsamiq.com. If you want to go a step further, you may also like an interactive prototyping tool: proto.io.

5. Hire a Freelance Designer & Developer or Teach yourself to Design & Code

Once you have your write up & wireframe ready, its time to just find a designer & developer who can take your idea and actually turn that into a real application. The simple rule is: The more detailed you are in your writeup and wireframing, the better your end product will turn out to be.

Hiring a freelancer can be an overwhelming process and it needs to have an article on its own. But the simple rule of thumb is, send out your requirements (Document + wireframe) to top freelancers who have reasonable rates & good reviews. Talk to them and see if they are actually grasping your concept well and asking you questions. Often times in this process you will figure things that you haven’t thought of before. I recommend Freelancer.com, as I have found a lot of talented Mobile Application developers there looking for work.

It is often better to hire a company than an individual because sometimes individuals can go rouge or go completely missing for days/months whereas companies usually would have backups and they can replace a resource with a new one should the need arises. Having said that, there are also a lot of individuals who are professional in their work ethics and have a successful freelance career.

So my recommendation is that after you post a project, set your budget and start to interview people and go through their portfolio and testimonials before awarding them the job.

Developers & companies from the Asian countries are generally cheaper. You can hire a mobile developer for as low as $15-S$20/hour. So if your MVP requires 200 hours, your cost would be roughly: $3000. Developers with more experience would cost you anywhere from $40-$80/hour. I personally feel that if you get a good designer to design your application and with all the proper UI/UX, who codes your app matters less at the initial stage.

Don’t want to hire a freelancer or don’t have the budget? You can always go the free route and do it yourself. Doing it yourself isn’t exactly free. Its a commitment of time & a steep learning curve if you have never programmed anything in your life. Even for many regular web developers who knows HTML, CSS & PHP/MYSQL, mobile programming hasn’t been easy. But its slowly getting to a point where more and more people can easily get into mobile programming, thanks to new advanced IDEs and easy to learn programing languages (Apple’s Swift).

In order to teach yourself to code, there are a wide number of resources. The old school method would have been to pick up a book on programming from the bookstore. However I think the best method to learn today is to follow a Video tutorial on IOS/Android programming. It may take you about 25-35 hours to fully master the basics of each of the languages. After which you just need to practice, ask questions in the forum and basically hack your way through to be able to build your MVP. If you have the budget to hire a developer, just go for it but at the same time learn yourself to code. This way you may be able to do future troubleshooting yourself and also build on top of the exiting sourcecode provided by your developer. Some of the most popular sources from where you can learn mobile programming are: Lynda.com, Team TreeHouse, udacity.com, udemy.com etc.

6. Create a Test Plan & Get all bugs fixed

You do need a proper test plan to make sure that your app is completely bug free. A easy way to create a test plan is to take a spreadsheet and write out all the individual tasks your mobile app is able to perform (e.g. create an account, forgot password, sign in, update profile, perform a search etc). Perform each of the task on multiple devices and mark them as Passed on the spreadsheet. If you encounter any issue or bugs during your tests, take screenshots and write them down so that you can easily send them over to your developer. In Freelance world, freelancers hate to wait for feedback from clients. If you are not proactive and responsive, your freelance design/developer won’t enjoy working with you and thus you won’t get a good product out of them. So try to help them out as much as you can so that they can help you in return. Ultimately its your baby so you should understand and care for it more than they do.

7. Launch your App in Google Play & Apple App Store

Once all the hard work has been done, its time to push the button to launch your app in their respective stores: Google Play Store & Apple App Store. There are some steps you need to follow before you can package your code to be sent out as an app to the store. Your freelance developer would know what to do and will definitely help you out. But a word of caution, always use your own developer account to upload the application so that you can retain full ownership of the app. Once the work has been complete, make sure you take the full source code and all relevant files (certificates, keys) from the developer. Try to be in good terms with them so that you can engage them in the future for enhancements etc.

8. Track your Users with Mobile Analytics

Both the stores has limited options when it comes to analytics. They do give a rough idea of how many people downloaded your app but you may want a bit more. While your app development is underway, get your developer to include & integrate any of the good Mobile Analytics services like Google Analytics, Mix panel or Flurry. With a good analytics system you should be able to clearly see user behaviors, common use patterns and also bugs your user encounters. This will greatly help you to refine your UI/UX and create a better version 2 of your application.

Hope this guide will help you to create your first application. If you have any questions or suggestion you can leave them in the comments below or tweet me @techblokedotcom.