You know the signs: you can’t stop thinking about it as you fall asleep at night. Your mind wanders back to it when you know you should be concentrating on your work that currently pays the bills. You’re even a little distracted watching Breaking Bad on Netflix. You can’t help but feel like there’s a gaping hole in the home screen of your smartphone. You have an idea for a killer app, and you can’t put it to rest until you build it. But you don’t know the first thing about programming and have no idea how to get started.

We at Treehouse are here to help! If you want help fleshing out your idea to actually build a business around it, then check out our Business content, especially the stage From Idea to Execution in the How to Build Your Company project. But if you want to dive right in to actually building something, then read on for a high-level overview of where to get started with a number of different approaches to building your app.

“The important thing to remember is that whatever you feel inspired to build, you should build it now. Just start.” – Execute

We’re going to take the approach of starting quickly and building a minimal viable product (MVP), a concept popularized in the book The Lean Startup by Eric Ries. As such, the most important question to ask yourself first is…

Question 1: What kind of app do I want to build?

Answering that boils down to two other questions:

How do I want people to use it?

What technologies do I know or want to learn?

For the first question, do you want people to use it as a web app on a regular desktop or laptop computer? An app on a smartphone that they get from an app store (usually known as a “native” app)? Or what about a web app optimized for smartphone usage? Your ultimate goal may be to have all of these options available, but that’s too much to tackle if you’re just starting out by yourself. Pick one and concentrate on it, but keep other options in mind as branching out might affect the way you design it.

The second follow-up question (What technologies do I know or want to learn?) can also play a big role in how you want to proceed. In the rest of the article I’ll try to provide information for whichever route you decide.

A Note about Software Architecture

If you have any information that you want stored on the web for your app; login credentials, photos, scores–whatever, then you’ll want to consider a service-oriented architecture.

Huh?

I don’t want to go too far into the weeds here, but making the right decision up front can save a lot of time and heartache in the future. “Service-oriented architecture” means that you develop your system such that information and functionality are available over the web as service calls that any app or program can make and use.

Imagine your idea involves photos being displayed for the user. If you start out with only a web-based approach, you might make the mistake of tightly integrating your website with the database of photos, and each photo might be returned to the browser with HTML and JavaScript around it to make it work just right on your site. But what happens when you decide to build an Android app? Now you want to request those same photos from your app, but all that HTML and JavaScript does you no good.

Instead, you break down the simplest data you need in the simplest format possible (often JSON these days) and make that available as a request for whoever wants it. Now each client (a web browser, a smartphone app, a TV app, etc.) can ask for that data and manipulate it however required for that particular user interface.

Question 2: Do I need a new computer?

Probably not! The only type of app that might require you to purchase (or borrow) a new computer is an iOS app, which can only be developed on a Mac. For a web app or Android you can use any Mac, Windows, or Linux computer.

Better computers certainly make the development move a little faster, but it’s not necessary to get a new computer unless your current one is unbearably slow for development. I have an old HP laptop running Windows 7 that is still decent for Android development, and last year I used a friends old Snow Leopard Macbook for iOS and it was great, too. So you don’t need to worry too much about future-proofing, but you do want to get the best computer you can afford.

If this is your computer, then it might be time for an upgrade.

Question 3: What developer tools do I need?

For web apps, you can get by with any old text editor like NotePad, TextEdit, or Sublime Text 2. Smartphone apps or apps for other types of devices usually require special programs called IDEs, which stands for “Integrated Development Environment.” These tools allow you to write code and build projects that can run on phones, tablets, TVs, or other types of hardware.

For smartphone apps, the development tools themselves are free for both iOS (Xcode) and Android (Eclipse). Microsoft is also making life easy for developers to get started developing apps for Windows Phones–Visual Studio Express 2012 is free and is similar to XCode and Eclipse. And you don’t even need a smartphone to test on for these platforms (though they help). All these tools contain virtual phones you can run on your computer and use to test your app. Testing on a device is better and faster, but the virtual phones are great and free!

If you are developing a smartphone app you might want to consider some non-native solutions like PhoneGap or Titanium that allow you to write apps for Android, iOS, and the web all at once. We don’t currently cover those tools at Treehouse, and they each have their own pros and cons, but I’ve seen good (not great) apps built with those tools.

Tools like these allow you to write native or hybrid (web apps wrapped in a native shell) apps using web technologies like HTML and JavaScript. The tools create versions of the app for multiple platforms, and you can even upload the different versions to places like Google Play and the App Store. This can be a great solution for some apps or to get started quickly, but ultimately you will probably be best served by crafting native apps tailored to each platform.

Question 4: How much will it cost?

Registering and hosting web apps usually requires small monthly or annual fees, but the tools themselves are usually free or cheap.

The tools for smartphone apps are free, too, but publishing apps in app stores costs a little bit. Apple and Microsoft charge an annual fee of $100 and Google charges a one-time fee of $25.

Question 5: How do I start writing the app?

If you’ve never written an app before, then you’ll probably want to use a resource like Treehouse to work through some lessons on how to build a simple web, Android, or iPhone app. As fun as it might be to jump right in and play with code, you’ll need at least a basic understanding of how apps are setup.

We have also covered some of these starting steps here in the blog for Android and iOS. There are other posts on the blog that might help you out; just click on iOS or Android in the navbar at the top of the blog to see all the posts in each category. We also have some Quick Tips on YouTube that might be of assistance.

The first thing you’ll want to do if using a new platform, be it web, Android, iOS, or Windows Phone, is to create a simple “Hello, World!” program to make sure your development environment is set up and working properly. “Hello, World!” programs are great first steps because they are the bare minimum you can do to run a full-fledged program. Below are a few good articles and videos about how to write “Hello, World!” programs for the various platforms we’ve been talking about:

One great resource for learning how to code certain types of functionality in apps is the sample code that’s distributed with tools and platforms. Want to use the camera? There are sample projects to show you how! Want to make your app location-aware? There are sample projects to show you how!

For Android and iOS, download, explore, and use the code available in the sample projects: Android | iOS. There is also fantastic documentation available on developer sites for Android, iOS, Windows Phone, and other platforms.

Best of luck with your app, and happy coding! If you make something cool, drop us a note in the Comments below!

I have this really good idea for a goal making app. I just started sketching it out and doing research. I don’t even care if I’m the one who makes profit from the app, I just want to see the idea come to life. Please let me know if you’re interested. I can give the outline and more details. Thanks!

I just had a great idea for an app but like alot of comments can’t get.my head around doing it. I just thought it would be cool and make me some money but I have no idea how to even start. Even after reading this

Awesome article for people who are new to being an appreneur. I struggled a lot in the beginning with finding the right developers. Got ripped off a lot. I wouldn’t recommend Fiverr so much because i find the quality of freelancers to be not that high. If you are looking for professional freelancers that are affordable i would recommend appzmarket.com.

Hello, very informative and helpful read for someone with an idea but no know how. I have an app idea that I strongly believe would change the way how homeowners and everyday blue collar workers conduct business. It would also help someone just looking for extra cash for whatever reason. I talked with Zapparoo and they wanted $500, which I would be willing to pay to the right company, but read their customer reviews and decided to no longer deal with them. I just know it’s a great idea and would really like guidance in how to go about it. I think there could be a lot of money involved if done correctly.

Hello! This is great information! I too have a great idea for an app, but I know nothing about development! I would love to devote time to learn, but being a full time PhD student doesn’t really leave an option for anything else. I would love to connect with someone to help walk me through the process or at least point me in the right direction! 😊

I have a great idea for an app that I believe will be a market wonder but I don’t have app building experience. I am going to attempt to learn however I am concerned about timing as I would like to move forward as soon as possible. My prayer is for a partner or programmer (or someone who can be both) who is able to create the app while securing the idea. I have asked friends and family for leads on app builders but to no avail. I am very serious and intent on getting this app built and published and would love to do so soon.

I have a great idea for a killer app, i am currently teaching myself how to code. However I think that teamwork is required in the process of building an app. I’m living in Montreal (Canada) contact me if you are interested or if you have coding abilities.

I’d be very happy to offer some FREE advice to anyone here who is trying to get their app idea off of the ground. I have approaching 10 years experience in apps & web project management. My username is my gmail.

i have a great app idea and i have no money and i do not have the time to learn how to do it. i believe and all of my friends and family believe it may be the next big thing. i have seen other apps kinda like it, but not as easy as my app idea sounds. i would like to partner up with someone. i believe that if someone wants to partner up with me, they also have the goal to make the application work! also more money would be in both our pockets because you would be a partner!!!

Hello I am a noobie when it comes to making apps. I feel I have a great idea that utilizes a GPS function on phones. If anyone who is good at creating apps or wants to hear more about my idea email me at midlands789@gmail.com thank you!

I have an idea and. I want to make an app by my all killer ideas which will be do simple to download and running all mobile app. after this we can seat-up a business. but I don’t knowledge about app Development and i don’t have much money I have only ideas . and a number off ideas.
anyone will be ready to be my partner so that I would be relief to all smartphone user.
I am from sriganganagar Rajasthan India
my what’s app no. is +919982533696

I had ideas for apps too. So I learned C#/XAML, JavaScript/HTML, and PHP. Then I made my apps and put them up for download on my website: http://translucency.us

If you’re serious about app development, you really just need to start teaching yourself a language and learn about your target platform. Without the technical knowledge, I don’t see how it’s possible to gauge the feasibility of your idea.

I have an idea for a new application, but as per my understanding based on my research so far, that I should apply for patent to protect my idea, before getting into the technicalities of development and marketing etc….

What are your thoughts on that? should I go down that root? or is it a waste of time and I should get directly into the technical side?

How do I protect my idea and make sure that no one would replicate it in the fucture?
thank you
mohit agarwalmohitagarwal11000@gmail.com
08979111391
09528676869

I have an idea for a new application, but as per my understanding based on my research so far, that I should apply for patent to protect my idea, before getting into the technicalities of development and marketing etc….

What are your thoughts on that? should I go down that root? or is it a waste of time and I should get directly into the technical side?

How do I protect my idea and make sure that no one would replicate it in the fucture?
thank you
mohit agarwal

I have an idea for an app. I’d use it every day. I’m not a programmer. I’m desperate to the point of creating the app myself, conceptually it’s simple. Money would be great too, but that’s not the goal. I’ve long wanted it, I have not found it for iOS, Windows mobile, or Android, I’ve been looking for years. The function exists as desktop browser extensions and bookmarklets. I want to expand and adapt for mobile use as a specialized browser app and/or possibly a mobile browser bookmarklet. My goal is as a browser first and foremost.

Before I do learn to build an app, I want to find out the scope of what I want to do – permissions, APIs, or whatever I may have to acquire or learn to use. I’m suspicious because no mobile app exists, there’d be users for it. Maybe it’s not viable or just a bad idea.

I know exactly what I want. How I want it to work. I’m sure the functions/components are basic and already available as separate elements that I could combine. Technically and legally I’m at a loss.

As a novice with a singular app goal how can I fully explore my concept?

There are a zillion app dev courses. I plan on doing an HTML 5, JavaScript, CSS, course because the app is browser based and for cross platform adaptability. I am just guessing on that. I’m clueless. I just want my app.

I’m being ambiguous publicly because maybe my app idea is a decent one.

I have a killer idea but I need a partner to help me with a new app..I will pay for softwears if need be I just need some one that know what their doing and can be trusted…here is my emailanujg260@gmail.com

I was so happy to know that there was a website that would help first timers with their app ideas because i know nothing about creating or even starting the process so thanks Treehouse for being of assistance.

I also wanted to reach out to CloudDownunder but was not sure if they were legit so please tell me if you all are familiar with them and if they are really legit.

Securing your idea is always a great idea, to my knowledge you will need more then jut an idea to obtain a patent. What i would suggest is engage with an App Development Company and insist and ensure you have a legal ‘non-disclosure agreement’ signed and in place. Discuss the idea and pay for a walk-through / prototype so you have something tangible you can then proceed with a patent or proceed with development. This is our advice @ clouddownunder.com.au

I have an idea for a new application, but as per my understanding based on my research so far, that I should apply for patent to protect my idea, before getting into the technicalities of development and marketing etc….

What are your thoughts on that? should I go down that root? or is it a waste of time and I should get directly into the technical side?

How do I protect my idea and make sure that no one would replicate it in the fucture?

I want to make an app by my all killer ideas which will be dangerous for old app but I don’t have money I have only ideas and my work.
anyone will be ready to be my partner so that I would be challenging for this world.
I am from Udaipur Rajasthan India
my what’s app no. is +918107379491jaindarshit24@gmail.com
thanks
Help Me.

Not sure…maybe elance.com or odesk.com. Those are two big freelancing sites. Maybe even post stuff at local colleges–students are great resources for freelance work and often have great skills and need experience.

Absolutely! Depending on the complexity of the app, that could be a great way to get into it. If you can find someone to create a Minimum Viable Product for you, and maybe even show you how they wrote the code, then you could branch the code (create a copy of it) and play around with it to learn. Looking at others’ code, especially if they are there to explain it and answer questions, is a great way to learn.

Thanks! You made me realize this article could use an update. For a backend, check out the highly useful backend-as-a-service provided by Parse.com. We recently release an Android workshop about this and the upcoming iOS project deals with Parse extensively.

I have no knowledge of developing, but I thought it would be exciting to try to teach myself to create an app. I began watching Amit Bijlani’s video and was encouraged by the possibility that I, with no experience at all, could possibly learn to do it. When I got to the part about downloading XCode 4, I realized I couldn’t download it on my Snow Leopard os. Then I found out I could download XCode 3 after registering as a developer. Me? But I did it. After some difficulty downloading (It hung up running script and I found out I needed to quit iTunes that was running in the background on the Activity Monitor), I was ready to go. This was already a lot for me! When I got to the video portion explaining how to begin using XCode, I saw that my XCode 3 has a completely different setup. Ughh! Now the tutorial doesn’t apply to what I’m trying to use. Is there another tutorial available for XCode 3? I would love to continue with this challenge.

Hi my name is Kevin I have a pretty good app idea that I would like to get some advice on could you please reply reply to my email address with steps to proceed or who I have to talk to I have v little computer experience cheers