Books & Videos

Table of Contents

Chapter: Part I

Introduction to Android App Development Fundamentals I LiveLessons

07m 25s

Chapter: Before You Begin: Setting Up Your Development Environment

Overview and contacting Paul Deitel

02m 45s

Downloading and installing the ADT Tools Bundle and Android Studio

10m 39s

Using the SDK manager to install Android platforms and tools

09m 8s

Using the AVD manager to configure Android Virtual Devices for testing apps

10m 2s

Configuring the IDE's tab and line number settings

03m 3s

Chapter: Lesson 1: (For ADT Bundle) Test-Driving the Doodlz App in an AVD

Learning objectives

02m 33s

Test-Driving the Doodlz App in an AVD

22m 13s

Test-Driving the Doodlz App on a device

08m 1s

Chapter: Lesson 1: (For Android Studio) Test-Driving the Doodlz App in an AVD

Learning objectives

02m 33s

Test-Driving the Doodlz App in an AVD

14m 57s

Test-Driving the Doodlz App on a device

05m 56s

Chapter: Lesson 2: Welcome App

Learning objectives

03m 34s

Test-driving the Welcome app

06m 21s

Creating a new Android project

14m 10s

Andoid Developer Tools Window

07m 25s

Adding Images to the Project

06m 38s

Changing the Id property of the RelativeLayout and the TextView

07m 19s

Configuring the TextView

15m 30s

Adding ImageViews to Display the Images

07m 25s

(Optional) Viewing the XML representation of the GUI Design

02m 39s

Making Your App Accessible

05m 5s

Making Your App Accessible: TalkBack in action

04m 59s

Accessibility Documentation

01m 10s

Internationalizing Your App

18m 57s

Chapter: Lesson 3: Tip Calculator App

Learning objectives

02m 56s

Test-Driving the Tip Calculator App

05m 8s

Technologies Overview

11m 54s

GridLayout introduction

04m 56s

Creating the TipCalculator Project

05m 39s

Changing to a GridLayout

04m 28s

Adding the TextViews, EditText, SeekBar and LinearLayouts

18m 31s

Specifying Literal Text

04m 24s

Right Aligning the TextViews in the Left Column

02m 5s

Configuring the amountTextView's Label For Property

02m 15s

Configuring the amountEditText

06m 41s

Configuring the amountDisplayTextView

05m 12s

Configuring the customPercentTextView

01m 35s

Configuring the customTipSeekBar

03m 41s

Configuring the percent15TextView and percentCustomTextView

03m 48s

Configuring the tip15TextView, tipCustomTextView, total15TextView and totalCustomTextView

07m 45s

Vertically centering the tipTextView and totalTextView

02m 24s—The package and import statements

08m 58s—MainActivity Class's Instance Variables

04m 47s—Overriding Method onCreate of Class Activity

14m 11s—Methods updateStandard and updateCustom

04m 10s—Anonymous Inner Class That Implements Interface OnSeekBarChangeListener

04m 54s—Anonymous Inner Class That Implements Interface TextWatcher

04m 49s

AndroidManifest.xml—Setting Portrait Mode and Forcing the Keypad to Display

11m 36s

Chapter: Lesson 4: Favorite Twitter Searches App

Learning objectives

04m 16s

Test-Driving the Twitter Searches App

12m 51s

Technologies Overview

14m 50s

Creating the Twitter Searches Project

01m 56s

Twitter Searches App GUI Overview

02m 5s

Changing from a RelativeLayout to a GridLayout and Configuring the GridLayout

05m 7s

Creating the GridLayout's First Row

05m 59s

Creating the GridLayout's Second Row

07m 22s

Creating the GridLayout's Third Row

09m 12s

ListView Item's Layout: list_item.xml

07m 18s

Copying the final strings.xml file and Java source code into the project, and some notes on using the code editor

05m 20s—The package and import statements

05m 8s—MainActivity Fields

02m 17s—Overriding Activity Method onCreate

12m 17s—Anonymous Inner Class that Implements the saveButton's OnClickListener to Save a New or Updated Search

13m 37s—addTaggedSearch Method

03m 0s—Anonymous Inner Class that Implements the ListView's OnItemClickListener to Display Search Results

09m 55s—Anonymous Inner Class that Implements the ListView's OnItemLongClickListener to Share, Edit or Delete a Sear

13m 51s—shareSearch Method

06m 48s—deleteSearch Method

04m 51s

AndroidManifest.xml—Setting the Keyboard to Display Only If the User Touches an EditText

02m 23s

Chapter: Part II

Introduction to Android App Development Fundamentals II LiveLessons

11m 7s

Chapter: Lesson 5: Flag Quiz Game App

Learning objectives

05m 33s

Test-Driving the Flag Quiz App

05m 35s

Technologies Overview

16m 54s

Creating the Flag Quiz Project

01m 20s

strings.xml and Formatted String Resources

02m 24s


05m 23s


02m 35s


01m 23s

activity_settings.xml Layout

05m 9s

activity_main.xml Layout for Phone and Tablet Portait Orientation

04m 14s

fragment_quiz.xml Layout

14m 56s

activity_main.xml Layout for Tablet landscape Orientation

07m 46s

preferences.xml for Specifying the App's Settings

11m 14s

Creating the Flag Shake Animation

07m 4s—package Statement, import Statements and Fields

03m 4s—Overridden Activity Method onCreate

09m 24s—Overridden Activity Method onStart

07m 16s—Overridden Activity Method onCreateOptionsMenu

05m 8s—Overridden Activity Method onOptionsItemSelected

03m 55s—Anonymous Inner Class That Implements OnSharedPreferenceChangeListener

06m 51s—package Statement and import Statements

01m 14s—Fields

04m 29s—Overridden Fragment Method onCreateView

10m 48s—updateGuessRows Method

02m 24s—updateRegions Method

01m 7s—resetQuiz Method

08m 59s—loadNextFlag Method

08m 24s—getCountryName Method

01m 22s—Anonymous Inner Class That Implements OnClickListener

09m 48s—disableButtons Method

00m 40s

SettingsFragment Class

03m 10s

SettingsActivity Class

03m 15s

AndroidManifest.xml—Declaring SettingsActivity in the Manifest File

03m 10s

Chapter: Lesson 6: Cannon Game App

Learning objectives

04m 18s

Test-Driving the Flag Quiz App

02m 27s

Technologies Overview

11m 35s

Creating the Flag Quiz Project and Setting the App for Portrait Orientation

01m 48s


02m 59s


05m 16s


01m 29s

Adding Sounds to the App

01m 57s—Class to Maintain a Line's Endpoints

01m 11s—Class to Host the CannonGameFragment

01m 30s—Class to Manage Fragment Lifecycle

06m 43s—package and import Statements

01m 0s—Instance Variables and Constants

08m 39s—Constructor

07m 45s—Overriding View Method onSizeChanged

04m 3s—Method newGame

01m 58s—Method updatePositions

08m 13s—Method fireCannonBall

01m 54s—Method alignCannon

02m 3s—Method drawGameElements

05m 10s—Method showGameOverDialog

04m 48s—Methods stopGame and releaseResources

01m 28s—Implementing the SurfaceHolder.Callback Methods

03m 24s—Overriding View Method onTouchEvent

02m 26s—CannonThread: Using a Thread to Create a Game Loop

05m 49s

Chapter: Lesson 7: Doodlz App

Learning objectives

04m 48s

Test-Driving the Doodlz App

05m 0s

Technologies Overview

09m 30s

Creating the Doodlz Project

01m 30s


01m 21s


01m 33s

Menu for the DoodleFragment

09m 2s

activity_main.xml Layout for MainActivity

03m 35s

fragment_doodle.xml Layout for DoodleFragment

03m 33s

fragment_color.xml Layout for ColorDialogFragment

11m 8s

fragment_line_width.xml Layout for LineWidthDialogFragment

03m 53s

Adding Class EraseImageDialogFragment

01m 22s

MainActivity Class

02m 38s—package Statement, import Statements and Fields

03m 12s—Overriding Fragment Method onCreateView

03m 45s—Methods onStart and enableAccelerometerListening

06m 27s—Methods onPause and disableAccelerometerListening

02m 47s—Anonymous Inner Class That Implements SensorEventListener to Process Accelerometer Events

04m 39s—Method confirmErase

01m 21s—Overridden Fragment Methods onCreateOptionsMenu and onOptionsItemSelected

07m 6s—Methods getDoodleView and setDialogOnScreen

00m 54s—package Statement and import Statements

02m 50s—DoodleView static and Instance Variables

02m 33s—DoodleView Constructor

03m 29s—Overridden View Method onSizeChanged

02m 48s—DoodleView Methods clear, setDrawingColor, getDrawingColor, setLineWidth and getLineWidth

02m 58s—Overridden View Method onDraw

02m 40s—DoodleView Methods hideSystemBars and showSystemBars

04m 27s—Anonymous Inner Class that Implements Interface SimpleOnGestureListener

03m 32s—Overridden View Method onTouchEvent

05m 39s—touchStarted Method of Class DoodleView

02m 31s—touchMoved Method of Class DoodleView

04m 3s—touchEnded Method of Class DoodleView

00m 51s—DoodleView Method saveImage

02m 40s—DoodleView Method printImage

03m 43s—package Statement, import Statements and Fields

01m 54s—Overridden DialogFragment Method onCreateDialog

06m 52s—Method getDoodleFragment

01m 42s—Fragment Lifecycle Methods onAttach and onDetach

02m 34s—Anonymous Inner Class That Implements OnSeekBarChangeListener to Respond to the Events of the Alpha,

03m 1s

LineWidthDialogFragment Class

08m 20s

EraseImageDialogFragment Class

02m 16s

Chapter: Lesson 8: AddressBook App

Learning objectives

06m 4s

Test-Driving the Address Book App

03m 46s

Technologies Overview

09m 25s

Creating the Address Book Project

01m 5s

Creating the App's Classes

02m 33s

String resources and removing unnecessary default items

02m 50s

Defining common look-and-feel: styles.xml

12m 7s

Defining a TextView Border: textview_border.xml

06m 6s

MainActivity's Layout: activity_main.xml

08m 52s

DetailsFragment's Layout: fragment_details.xml

07m 21s

AddEditFragment's Layout: fragment_add_edit.xml

07m 37s

Defining the Fragment's Menus

07m 35s—package Statement, import Statements and Fields

04m 53s—Overridden Activity Method onCreate

06m 1s—Overridden Activity Method onResume

01m 36s—Method onContactSelected from interface ContactListFragment.ContactListFragmentListener

01m 36s—Method displayContact

04m 26s—Method onAddContact from interface ContactListFragment.ContactListFragmentListener

01m 58s—Method displayAddEditFragment

01m 57s—Method onContactDeleted from interface DetailsFragment.DetailsFragmentListener

01m 9s—Method onEditContact from interface DetailsFragment.DetailsFragmentListener

01m 31s—Method onAddEditCompleted from interface AddEditFragment.AddEditFragmentListener

01m 31s—package Statement and import Statements

02m 30s—ContactListFragmentListener Interface and ContactListFragment Instance Variables

02m 0s—Overridden Methods onAttach and onDetach

01m 51s—Overridden Method onViewCreated

06m 31s—viewContactListener That Processes ListView Item Selection Events

01m 52s—Overridden Method onResume

02m 3s—GetContactsTask Subclass of AsyncTask

04m 37s—Overridden Method onStop

01m 4s—Overridden Methods onCreateOptionsMenu and onOptionsItemSelected

02m 28s—Method updateContactList

00m 55s—package Statement and import Statements

00m 27s—AddEditFragmentListener Interface and the AddEditFragment Instance Variables

02m 1s—Overridden Methods onAttach and onDetach

00m 41s—Overridden Method onCreateView

03m 56s—OnClickListener to Process Save Contact Button Events

03m 59s—Method saveContact

01m 49s—package Statement and import Statements

00m 29s—DetailsFragmentListener Interface

00m 41s—DetailsFragment Instance Variables

00m 48s—Overridden Methods onAttach and onDetach

00m 39s—Overridden Method onCreateView

02m 36s—Overridden Method onResume

02m 36s—Overridden Method onSaveInstanceState

01m 0s—Overridden Methods onCreateOptionsMenu and onOptionsItemSelected

03m 2s—LoadContactTask Subclass of AsyncTask

04m 5s—Method deleteContact and DialogFragment confirmDelete

04m 13s—package Statement, import Statements and Fields

01m 1s—Constructor and Methods open and close

01m 52s—Method insertContact

02m 3s—Method updateContact

02m 4s—Method getAllContacts

01m 48s—Method getOneContact

01m 0s—Method deleteContact

00m 46s—private Nested Class DatabaseOpenHelper That Extends SQLiteOpenHelper

04m 4s