How to develop Android apps: coding Java using Eclipse

Programming an Android app yourself is “the long, hard road” but it can be extremely satisfying! Learning how to develop Android apps without any previous coding experience means you will have to learn about Java, the Android SDK and a few programming tools.

To get started, follow these steps to get you up and running developing apps.

1. Download and install Java Developer Kit (you can skip this if you are on a Mac)

You probably already have Java installed on your computer: this is called the Java Runtime Environment (JRE). But you need the Developer Kit (JDK). I use version 6, because 7 didn’t work with Eclipse (more on that later).

2. Download and install Eclipse

Eclipse is the program in which you actually write the code for your app.  Among other things, it helps you to find errors in the code you write. It is also needed to compile the app: turning your code into a program that runs on Android devices. Getting the right version of Eclipse can be tricky, I spent some time finding a version that worked with the JDK on the 64 bit version of Windows 7. In the end I found that on my system, version 3.6.2 worked with the other tools in this guide.

3. Download and install the Android SDK.

   aaass

The Android Developer Kit contains the tools to make Java code that works on Android devices. It has options for making versions of your app for different devices and different versions of Android. There is also an emulator: this simulates an Android device on your computer so you can test your apps without having to install it on an actual phone or tablet!

4. Add platforms and packages to the Android SDK.

You need to do this so you can develop apps for different versions of the Android operating system. It also has some very useful tools.

5. Install the ADT plugin for Eclipse.

This will add the functions to Eclipse that you need to make Android apps.

6. Start building your first app – Hello World

Making a “Hello World” program is usually the first project when a programmer starts with a new language or platform. Doing this exercise, you will be introduced to the basics of Android app development. There are several tutorials for this on the internet.

What kind of app do you want to make? If it is a complicated idea, perhaps it is best to start with something simpler: for instance, an app with just one of the many functions you have in mind. Or, if you have several ideas for apps, start with the one you think will be the easiest to create.

If are planning to do all the developing yourself, you will run into problems (even if you are an experienced Java developer!). For instance, Eclipse tells you that there are errors in your code but you don’t understand the error message… or maybe if  you compile and run the app it stops immediately or crashes when you push a button.

When you run into problems like that, try Googling the error message. Many times you will find the information on a site called Stack Overflow. Here, programmers come together to discuss coding problems. Many talented and experienced programmers are there to help you.

6. Publish in the Google Play Store.

Great, you’ve reached the finish line: your app is ready to be unleashed upon the masses! However, if you want those masses to actually find and use your app, the story doesn’t end here. Promoting and maintaining your app are subjects that I’ll cover in other tutorials.

By now I can imagine you are overwhelmed by all this information. Just getting the right tools in place can be daunting for some people, I know it was for me. But fear not: just take it one step at a time… It will be difficult at times but, like I said in the beginning, achieving your goals will be all the more satisfying. So get to it and let me know what you get out of it!

Happy developing!

How to hire and instruct a freelancer to develop your Android app

There are several reasons for considering hiring a programmer to develop an Android app for you.

1. Time: even if you know how to develop Android apps yourself, you may not want to spend a lot of time programming. The work can be tedious and some tasks can easily be handled by someone else. Especially if you are short on time and you want to spend it on more valuable activities.

2. You don’t know how to program. If using an online app maker doesn’t provide sufficient options to make the app the way you want it to be, then you will need to get someone who can do this for you.

3. You know how to program a little but you get stuck.

Let me explain the last scenario a little further as this is exactly what happened to me! I started out reading books about Java and the Android SDK. I had a little previous experience with HTML, JavaScript and PHP. But when I reached the point that I had to build an “XML parser” for my app I got stuck badly. I Googled and searched the forums (mainly Stack Overflow) and there sure were lots of examples but I just did not know how to proceed. I could have tried more things but then it dawned on me: what if I let a freelancer solve just this problem for me?

So, I went on oDesk and posted a job asking for help writing an XML parser for my Android app. Within a few hours I had over 30 responses. I screened all of the freelancers for cost per hour, previous experience, user ratings and the match between their skill set and my job. Then I chose two programmers to do the same job.

Here is where it became interesting: my description of the job was carefully worded. I did my best to use the right programming jargon to make sure that the contractors would immediately understand what I wanted them to do.

As it turns out, one of the pair had a much better understanding of the job than the other one.. he also took only half the time to finish it! The quality of their work, by the way, was similar.

The smarter/faster guy was a little bit more expensive per or but he was certainly with it! I have been assigning new tasks to him which he handles with ease.

For me, there are two lessons in this story. The obvious one being that it is wise to “test” your freelancers before you commit to one for a longer period of time.

The other lesson is that I was only able to explain the job and evaluate their work because I have a basic understanding of programming. This is key to being able to concisely and clearly communicate your wishes.

Even of you are not an expert (I certainly am not), it is still very useful to have some understanding of programming. Not so you can do all the work yourself; you may well have other, more important demands on your time. But knowing a little goes a long way in helping you plan supervise the work. This can prevent problems with the app itself, development delays and it helps to keep costs under control.

Happy developing/delegating!