Learning Resources
 

Pre-requisites for development


  • Java experience: I don’t think that you need to know loads of Java to develop Android apps but I would say it is important that you at least know the syntax and roughly how to do things. Experience in a similar language like C# or C++ would probably get you by, just so long as you know the difference between a package, class and that kind of thing
  • Experience in another object-orientated language: Some experience in another language would also be useful because despite the fact that most Android development is in Java it is useful to understand how other languages do things because a lot of the Android specific Java has had influence from C++
  • An understanding of how apps work: This would probably come with programming experience but you really aren’t going to get anywhere if you don’t get how the most basic apps. Reading a few tutorials can help fix this
  • Experience creating user interfaces via code and and a visual designer: Android uses both XML layouts and pure Java code to create User Interfaces so provided that you have done something in both before you’ll probably be fine. I should imagine that it would probably be OK if you’ve done JavaScript DOM and HTML
  • Basic knowledge of XML and SQLite: You won’t need to know how to do these perfectly but so long as you can create XML documents and edit them. I wouldn’t say SQLite knowledge is vital but it would be good to have some database knowledge
  • A basic understanding of other mobile platforms: I had done a tiny amount of iOS and Windows Phone development before starting Android which probably helped me a tiny bit because it gives you some knowledge of design. Windows Phone development is probably more different to Android than iOS, so even if you’ve just created a calculator in iOS you’ll be in a good position to start Android development
  • Good resources for testing: The emulator is good but I’ve found that it always useful to either have at least one Android device for testing. I also recommend setting up a few different devices in the emulator with different screen sizes and versions of Android because that will give you a chance to test in loads of different environments.

The minimum requirements in terms of hardware, software, and programming skills to begin Android development are not very demanding.

 

Machine Requirements

Android development tools run on all flavors of computers of relatively recent vintage: Linux, Mac OS 10.4.8 or later (machines with Intel chips only), or Microsoft Windows XP or later. An Android device such as a smart phone is useful (and of course the ultimate target for development), but is in fact not essential to getting started since the software contains virtual device emulators that allow you to develop and test.

Software Requirements

The software required for Android development is free and readily available on the Web:

  1. The Java Development Kit (JDK) 5 or 6.
  2. The Eclipse IDE (Java Developers version) with the Android plugin is not technically essential since everything it does can be done using the command line, but it simplifies so many things that we will consider it to be essential.
  3. The Android SDK and Google Maps SDK.

Programmer Requirements

Android is typically programmed using a combination of XML and Java (there is a Native Development Kit that permits programming in C/C++ for specialized tasks, but we will not address that here). Thus some background in these languages will be extremely useful. However, in the material that we will cover complete working code will be available for all examples. Therefore, anyone with some programming experience should be able to use the code as a starting point to learn how to program Java and XML within the Android environment.