This course is accompanied by exercise files that you can use to follow along with the demonstrations I do on screen. The exercise files are organized by chapter, with one directory for each chapter in the course. Within the folders, you'll find Android Studio projects you can open with Android Studio 2.2.3 or later.
- [Instructor] This is course is accompanied by Exercise Files that you can use to follow along with the demonstrations on screen. I've copied the Exercise Files to my Desktop but you can place them anywhere on your hard disk. The Exercise Files are organized by chapter. Within each chapter, you'll find a number of sub-directories for each video, and within each video sub-directory, you'll find a directory that's structured as an Android Studio project. I'll be working with Android Studio 2.2.3 but you can use a more recent version, if that's what you have.
In order to open any of these projects, go to the Android Studio welcome screen, and choose Open an existing Android Studio project. If you've placed your Exercise Files on the Desktop, you can press Ctrl+D on Windows or Command+D on Mac to jump to that directory. Then, drill down to the particular directory and project that you want to use; the Android Studio project will be identified by the icon, select it, click OK, and the project will open in Android Studio. The first time you open any of these projects, you might be prompted to update certain components, either of Android Studio itself or of the project.
I recommend following all upgrade notifications and you should then be able to run the application on your particular device. In this course, I'll be using a variety of devices. For a number of these demonstrations, I'll be using a virtual device that runs on API 23, that's Android 6, and I'm doing that because it's more compatible with certain features of Android Studio that are useful for debugging. I'll also be working on a physical device. This is a Nexus 5X that's projected to my screen using Reflector 2, and when I run apps here, I'm running it on an actual physical device.
You can see where my finger is touching on the device and this is one of the apps that I'll be using to demonstrate the technique of working with web services. In addition to the beginning Exercise Files that are in the root directory of the Exercise Files area, I've also provided solution versions of each project. The names of these directories and projects are exactly the same as in the root directory but they contain the finished code. I've also provided an Assets directory that has one sub-directory named NadiaServices.
This contains a set of PHP files that I used to create a sample web service that I'll be calling throughout the course. You can learn how the web service was created by opening these PHP files in any text editor. I'm using Visual Studio code, but you can use anything you like, and I'm hosting that web service at this URL, at 560057.youcanlearn.net/services/. I'll describe each of these services, including both a JSON formatted data feed and an XML feed in various parts of the course.
Now the goal of this course, is not to teach you how to build a web service, but if you're curious about how this one was built, I provided that source code in the Exercise Files.
IInstructor David Gassner starts with an overview discussion about available networking strategies, and then dives into how to declare networking permissions, make network requests, handle responses, parse data returned from a web service, and pass user credentials to services that support HTTP basic authentication. He also provides an overview of popular higher-level networking libraries, including OkHttp and Picasso, and offers recommendations for improving performance in network-connected apps. David also covers using static feeds, using dynamic PHP pages hosted on a public server web service, and integrating apps with network data storage.
- Integrating mobile apps
- Communicating with Android
- Preventing app freezes with background threads
- Preparing an app for network communication
- Declaring permissions
- Checking network connectivity
- Retrieving data over the web
- Using traditional APIs
- Using third-party libraries