How to Design Your Own Computer Applications

Tony
Programming your own computer application is by no means easy, but it is one of the most rewarding tasks you will undertake. We have all been using an application and thought to ourselves "this is great, but if only ...", or perhaps, "why can't I do ...". This article will help you understand that it is possible for you to design an application that does exactly what you want. There are plenty of free tools, entire communities of people to assist you over the hurdles in developing your own applications. All you need is to be willing to devote the time and energy to develop your applications, and you will never need to settle for what someone else decided to implement in their application again.

Do you have an idea for a new application that you think the world just cannot live without? That's great! I'm going to walk you through the procedure needed to get that idea out of your head and into an actual working program that you can use. First bit of advice, turn off your computer and walk away for a moment. I know it sounds strange, you have all this motivation driving you to start programming right away, but the fact of the matter is, you need to spend a lot of time designing the application before you are ready to start coding.

I prefer to design my applications away from the computer. I find that I am less likely to try to "figure it out when I come to it" if I am not staring at an empty project workspace while designing. The urge to "just check one thing out real quick", is too great for me to resist if I can just fire up my editor and start coding. I prefer to use a good old fashioned pencil and paper while designing an application. The first thing I try to nail down is exactly what I want the application to accomplish. Am I working on a web browser, a system utility, a scheduling application, etc.? The application itself isn't important, the important part is that you know exactly what you want the application to accomplish. For an example, let's go ahead and walk through the design of a web browsing program.

Now that we have an idea of what the application is supposed to do, we need to break it down into more specific tasks. Do we want the browser to simply display web pages, or do we also want to handle file transfers with it as well? If we decide that we simply want the browser to display web pages, do we want to handle scripting? If yes, what languages will we support? Do we want to use a preexisting library for some of our browser's functionality, or do we want to design every aspect of the program for ourselves? While a lot of good arguments can be made for using preexisting code for your applications, personally, I prefer to do all of the coding myself. Trust me, if you can implement all of the tasks within your application by yourself, you will truly understand exactly what your application is doing. I follow this procedure of going from a general statement to a more specific idea of what it is I want to do until I can no longer subdivide the tasks without going into programming language specifics.

As a side note, it is important to know that no application I have ever written has come out exactly as I initially planned. As you develop the program, you will be tempted to add features as you code. This is when you must be disciplined enough to stick to your original plan of supported features. This does not mean that you ignore good ideas because you did not think of them during your initial planning stage. This means that you avoid the impulse to implement some new feature just because it sounds cool at the time. As with most ideas, there is a balance between features, difficulty to implement, and return on investment. I suggest writing down the new idea, mull over the difficulties involved in its implementation, and thoroughly review its true benefits to your project before trying to actually code the idea into your project.

Now that you know exactly what you want your application to do, this is the perfect time to do your research into the application. Back to the web browser project as an example, this is the time to research how communication over the Internet takes place. What is a URL, and how does it get translated into a machine address? How do you communicate with the server to request a web page? What does a web server do? During this stage of the design process, you are going to find out more than you ever wanted to know about network communications. But you need to make sure that you thoroughly understand every aspect of the communication process before you start coding the steps needed to communicate over the Internet. This way, when things don't happen the way they should, you will be better equipped to figure out what isn't working properly, and how to fix it.

Now is the time when you should fire up your programming editor and begin coding. The logic flow of the program should be fairly clear from all of the design documents you have created, but I like to try and develop the user-interface (UI) portion of the program first. To most user's, the interface is the application, so you want to make sure that everything looks professional, is intuitive and responsive. You want to make sure that everything you are going to allow the user to access is convenient and works as documented.

After the UI is up and running, then you can begin data validation. I can not stress the importance of data validation strongly enough. Any data entered into your application has the potential to crash your application (maybe taking the system along with it). Take the time to make sure the information entered is in the correct format needed, and if it isn't, handle it then and there. The longer you allow the bad information to remain in your application the greater the chance it has of corrupting other information or crashing your program.

Finally, you can begin to work on the engine portion of the program. This is probably going to be the most mechanical portion of the program if you did your research thoroughly enough. This is the part of the program that actually does something. In our web browser example, this is the part of the program the contacts the server, requests and downloads the web page, and displays the web page to the user.

As you can see, there is a lot of research and planning which goes into developing an application, before you even get into the coding portion. I am not trying to discourage you from writing your applications, I am only trying to help you increase the odds of completing your applications. At the end of this procedure, you will have a complete understanding of how your application works, and best of all, you will have an application that does exactly what you wanted, or if it doesn't you will have the ability and knowledge to correct the problems yourself.

Published by Tony

A wannabe writer with skewed views and opinions on most topics.  View profile

  • You CAN create your own computer applications!
  • The more complex the application the more detailed you will want the design document to be.
  • Research is you friend!

1 Comments

Post a Comment
  • Vonnie Chestnut9/20/2007

    Too complicated for my little brain. My brother is the computer whiz. I just tell him what I want, or what I don't want, and let him deal with it. Great article for those considering the project.

To comment, please sign in to your Yahoo! account, or sign up for a new account.