This course assumes students have already learned the basic concepts of Android app development. You'll need some existing knowledge in setting up projects in Eclipse, event handling, background threads and inner classes (or "member classes"). You'll also need access to version 7 or 8 of the Java Developers Kit. Other aspects of app development that you should know before you start this course on Android apps with RESTful are detailed in this online video.
This course is for designed for software developers who've gotten started building apps for Android devices. To get the most out of this course, you should understand the basics of Android development, including how to set up projects in Eclipse with the Android Developer Tools, how to create activities that represent Android screens, including the Java activity classes and layout files that make up each screen, and how to deal with simple event handling, programming the app logic with Java.
To learn about these basic Android development concepts, watch the Lynda.com courses, Java Essential Training and Android SDK Essential Training. In addition to basic Java skills, you'll need to be able to work with background threads, managing threads with the Android SDK's AsyncTask class. I'll show you how to use that class during this course, but working with the class requires the use of a Java construct known as inner classes, also known as member classes.
They are also sometimes referred to as anonymous inner types. If this is a new concept for you, I encourage you to watch the course Java Advanced Training, where I cover these kinds of constructions and other aspects of advanced Java coding. The course describes how to integrate your Android apps with the RESTful web services. These are web services based around REST or representational state transfer. This is a simple model for web services where data is passed back and forth over the web in simple formats, the two most popular of which are XML and JSON.
If you're not familiar with REST-based web services yet, take a look at the course Foundations of Programming, Web Services. You'll find explanations of what REST is, the differences between XML and JSON, and an overview of different kinds of web services that are available. To work through the demonstrations in this course, you'll need to install some software. You'll need the Java Developers Kit or JDK. Either version 7 or version 8 will do.
You won't be able to use Java 6 because some of the code uses syntax that was introduced in Java 7. This course uses Eclipse with the Android Developer Tools or ADT. You'll need version 22.6.3 or later, and the applications are all built with API level 19 or Android 4.4.2, KitKat. In addition, I'll be using some open-source networking libraries for Java and Android.
Don't worry about those right now. I'll show you where to get them and how to integrate them into your project when we get to those sections of the course. You might be wondering at this point why I'm not working in Android Studio instead of Eclipse with ADT. It is true that Android Studio is the IDE of the future for Android development, but as of the time of this course's recording, Android Studio was still in early preview release and it was going through frequent changes.
So to make sure that you're seeing the same thing I'm showing on the screen, I'm using the older Eclipse with ADT. It's a more stable environment and should look pretty much the same for the foreseeable future. If you prefer to work in Android Studio, you can import the exercise file project into that environment. Just export a Gradle file from within Eclipse and then you should be able to import. If you're not familiar with that process, take a look at the course Android Studio First Look in the Lynda.com library.
- Working with background threads
- Defining background tasks
- Requesting content with HTTP requests
- Parsing web service responses
- Downloading data, including images
- Sending HTTP parameters to the server
- Using higher-level client libraries like Volley and OkHttp
- Managing an app's networking abilities