O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Android App Development Fundamentals I and II LiveLessons (Video Training)

Video Description

Android App Development Fundamentals 2/e uses Paul Deitel's unique "app-driven" approach to get you up and running quickly with Google's popular Android SDK.

The lessons in this LiveLesson were carefully designed to introduce you to key Android 4.3 (Jelly Bean) and 4.4 (KitKat) features and APIs. You first learn how to install the Android Integrated Development Environment. You’ll then learn everything you need to start building Android apps–beginning with a test drive of the Doodlz app in lesson 1, then building your first app in lesson 2. By the time you reach Lesson 8, you’ll be ready to create your own apps for submission to Google Play and other app marketplaces.

Paul Deitel is the co-founder of Deitel & Associates, Inc., the internationally recognized programming languages authoring, corporate-training and Internet business development organization. Paul and his father–Harvey Deitel–have written many international best-selling programming-language professional books and textbooks that millions of people worldwide have used to master C++, C, Java™, C#, Visual Basic®, Visual C++®, XML, Perl, Python, and Internet and web programming.

Skill Level
Beginner

What you Will Learn

  • Android 4.3 and 4.4
  • Android Development Tools, Android Studio
  • Supporting Various Screen Sizes/Resolutions
  • Accessibility, Internationalization, Graphics
  • Activities, Fragments, Intents, Preferences
  • GUIs, Layouts, Menus, Resource Files, Lists, Adapters, Events, Touch/Gesture Processing
  • Immersive Mode, Printing Framework, PrintHelper
  • Assets (Images, Audio), View Animation
  • Threading, Collections, SQLite Database
  • Social sharing via implicit intents

Who Should Take this Course
Java Developers looking to learn Android Development skills

Course Requirements
A basic understanding of Java programming

Table of Contents

  1. Part I
    1. Introduction to Android App Development Fundamentals I LiveLessons 00:07:26
  2. Before You Begin: Setting Up Your Development Environment
    1. Overview and contacting Paul Deitel 00:02:45
    2. Downloading and installing the ADT Tools Bundle and Android Studio 00:10:40
    3. Using the SDK manager to install Android platforms and tools 00:09:08
    4. Using the AVD manager to configure Android Virtual Devices for testing apps 00:10:02
    5. Configuring the IDE's tab and line number settings 00:03:04
  3. Lesson 1: (For ADT Bundle) Test-Driving the Doodlz App in an AVD
    1. Learning objectives 00:02:33
    2. Test-Driving the Doodlz App in an AVD 00:22:13
    3. Test-Driving the Doodlz App on a device 00:08:01
  4. Lesson 1: (For Android Studio) Test-Driving the Doodlz App in an AVD
    1. Learning objectives 00:02:33
    2. Test-Driving the Doodlz App in an AVD 00:14:58
    3. Test-Driving the Doodlz App on a device 00:05:57
  5. Lesson 2: Welcome App
    1. Learning objectives 00:03:34
    2. Test-driving the Welcome app 00:06:21
    3. Creating a new Android project 00:14:11
    4. Andoid Developer Tools Window 00:07:25
    5. Adding Images to the Project 00:06:39
    6. Changing the Id property of the RelativeLayout and the TextView 00:07:20
    7. Configuring the TextView 00:15:31
    8. Adding ImageViews to Display the Images 00:07:25
    9. (Optional) Viewing the XML representation of the GUI Design 00:02:40
    10. Making Your App Accessible 00:05:06
    11. Making Your App Accessible: TalkBack in action 00:04:59
    12. Accessibility Documentation 00:01:11
    13. Internationalizing Your App 00:18:57
  6. Lesson 3: Tip Calculator App
    1. Learning objectives 00:02:56
    2. Test-Driving the Tip Calculator App 00:05:09
    3. Technologies Overview 00:11:54
    4. GridLayout introduction 00:04:56
    5. Creating the TipCalculator Project 00:05:39
    6. Changing to a GridLayout 00:04:28
    7. Adding the TextViews, EditText, SeekBar and LinearLayouts 00:18:31
    8. Specifying Literal Text 00:04:25
    9. Right Aligning the TextViews in the Left Column 00:02:05
    10. Configuring the amountTextView's Label For Property 00:02:16
    11. Configuring the amountEditText 00:06:42
    12. Configuring the amountDisplayTextView 00:05:12
    13. Configuring the customPercentTextView 00:01:36
    14. Configuring the customTipSeekBar 00:03:41
    15. Configuring the percent15TextView and percentCustomTextView 00:03:48
    16. Configuring the tip15TextView, tipCustomTextView, total15TextView and totalCustomTextView 00:07:46
    17. Vertically centering the tipTextView and totalTextView 00:02:24
    18. MainActivity.java—The package and import statements 00:08:58
    19. MainActivity.java—MainActivity Class's Instance Variables 00:04:47
    20. MainActivity.java—Overriding Method onCreate of Class Activity 00:14:12
    21. MainActivity.java—Methods updateStandard and updateCustom 00:04:11
    22. MainActivity.java—Anonymous Inner Class That Implements Interface OnSeekBarChangeListener 00:04:54
    23. MainActivity.java—Anonymous Inner Class That Implements Interface TextWatcher 00:04:50
    24. AndroidManifest.xml—Setting Portrait Mode and Forcing the Keypad to Display 00:11:36
  7. Lesson 4: Favorite Twitter Searches App
    1. Learning objectives 00:04:16
    2. Test-Driving the Twitter Searches App 00:12:51
    3. Technologies Overview 00:14:51
    4. Creating the Twitter Searches Project 00:01:57
    5. Twitter Searches App GUI Overview 00:02:05
    6. Changing from a RelativeLayout to a GridLayout and Configuring the GridLayout 00:05:07
    7. Creating the GridLayout's First Row 00:06:00
    8. Creating the GridLayout's Second Row 00:07:22
    9. Creating the GridLayout's Third Row 00:09:13
    10. ListView Item's Layout: list_item.xml 00:07:18
    11. Copying the final strings.xml file and Java source code into the project, and some notes on using the code editor 00:05:21
    12. MainActivity.java—The package and import statements 00:05:08
    13. MainActivity.java—MainActivity Fields 00:02:17
    14. MainActivity.java—Overriding Activity Method onCreate 00:12:18
    15. MainActivity.java—Anonymous Inner Class that Implements the saveButton's OnClickListener to Save a New or Updated Search 00:13:37
    16. MainActivity.java—addTaggedSearch Method 00:03:01
    17. MainActivity.java—Anonymous Inner Class that Implements the ListView's OnItemClickListener to Display Search Results 00:09:55
    18. MainActivity.java—Anonymous Inner Class that Implements the ListView's OnItemLongClickListener to Share, Edit or Delete a Sear 00:13:52
    19. MainActivity.java—shareSearch Method 00:06:49
    20. MainActivity.java—deleteSearch Method 00:04:51
    21. AndroidManifest.xml—Setting the Keyboard to Display Only If the User Touches an EditText 00:02:24
  8. Part II
    1. Introduction to Android App Development Fundamentals II LiveLessons 00:11:08
  9. Lesson 5: Flag Quiz Game App
    1. Learning objectives 00:05:34
    2. Test-Driving the Flag Quiz App 00:05:36
    3. Technologies Overview 00:16:54
    4. Creating the Flag Quiz Project 00:01:21
    5. strings.xml and Formatted String Resources 00:02:24
    6. arrays.xml 00:05:23
    7. colors.xml 00:02:35
    8. dimens.xml 00:01:24
    9. activity_settings.xml Layout 00:05:10
    10. activity_main.xml Layout for Phone and Tablet Portait Orientation 00:04:14
    11. fragment_quiz.xml Layout 00:14:56
    12. activity_main.xml Layout for Tablet landscape Orientation 00:07:47
    13. preferences.xml for Specifying the App's Settings 00:11:14
    14. Creating the Flag Shake Animation 00:07:05
    15. MainActivity.java—package Statement, import Statements and Fields 00:03:05
    16. MainActivity.java—Overridden Activity Method onCreate 00:09:25
    17. MainActivity.java—Overridden Activity Method onStart 00:07:16
    18. MainActivity.java—Overridden Activity Method onCreateOptionsMenu 00:05:09
    19. MainActivity.java—Overridden Activity Method onOptionsItemSelected 00:03:55
    20. MainActivity.java—Anonymous Inner Class That Implements OnSharedPreferenceChangeListener 00:06:52
    21. QuizFragment.java—package Statement and import Statements 00:01:15
    22. QuizFragment.java—Fields 00:04:29
    23. QuizFragment.java—Overridden Fragment Method onCreateView 00:10:49
    24. QuizFragment.java—updateGuessRows Method 00:02:24
    25. QuizFragment.java—updateRegions Method 00:01:08
    26. QuizFragment.java—resetQuiz Method 00:09:00
    27. QuizFragment.java—loadNextFlag Method 00:08:24
    28. QuizFragment.java—getCountryName Method 00:01:22
    29. QuizFragment.java—Anonymous Inner Class That Implements OnClickListener 00:09:49
    30. QuizFragment.java—disableButtons Method 00:00:40
    31. SettingsFragment Class 00:03:11
    32. SettingsActivity Class 00:03:15
    33. AndroidManifest.xml—Declaring SettingsActivity in the Manifest File 00:03:11
  10. Lesson 6: Cannon Game App
    1. Learning objectives 00:04:18
    2. Test-Driving the Flag Quiz App 00:02:27
    3. Technologies Overview 00:11:35
    4. Creating the Flag Quiz Project and Setting the App for Portrait Orientation 00:01:48
    5. strings.xml 00:02:59
    6. fragment_game.xml 00:05:17
    7. activity_main.xml 00:01:30
    8. Adding Sounds to the App 00:01:57
    9. Line.java—Class to Maintain a Line's Endpoints 00:01:11
    10. MainActivity.java—Class to Host the CannonGameFragment 00:01:31
    11. CannonGameFragment.java—Class to Manage Fragment Lifecycle 00:06:43
    12. CannonView.java—package and import Statements 00:01:01
    13. CannonView.java—Instance Variables and Constants 00:08:39
    14. CannonView.java—Constructor 00:07:45
    15. CannonView.java—Overriding View Method onSizeChanged 00:04:04
    16. CannonView.java—Method newGame 00:01:59
    17. CannonView.java—Method updatePositions 00:08:14
    18. CannonView.java—Method fireCannonBall 00:01:54
    19. CannonView.java—Method alignCannon 00:02:04
    20. CannonView.java—Method drawGameElements 00:05:10
    21. CannonView.java—Method showGameOverDialog 00:04:49
    22. CannonView.java—Methods stopGame and releaseResources 00:01:28
    23. CannonView.java—Implementing the SurfaceHolder.Callback Methods 00:03:24
    24. CannonView.java—Overriding View Method onTouchEvent 00:02:27
    25. CannonView.java—CannonThread: Using a Thread to Create a Game Loop 00:05:49
  11. Lesson 7: Doodlz App
    1. Learning objectives 00:04:48
    2. Test-Driving the Doodlz App 00:05:00
    3. Technologies Overview 00:09:31
    4. Creating the Doodlz Project 00:01:30
    5. strings.xml 00:01:21
    6. dimens.xml 00:01:34
    7. Menu for the DoodleFragment 00:09:03
    8. activity_main.xml Layout for MainActivity 00:03:35
    9. fragment_doodle.xml Layout for DoodleFragment 00:03:34
    10. fragment_color.xml Layout for ColorDialogFragment 00:11:09
    11. fragment_line_width.xml Layout for LineWidthDialogFragment 00:03:54
    12. Adding Class EraseImageDialogFragment 00:01:22
    13. MainActivity Class 00:02:39
    14. DoodleFragment.java—package Statement, import Statements and Fields 00:03:12
    15. DoodleFragment.java—Overriding Fragment Method onCreateView 00:03:45
    16. DoodleFragment.java—Methods onStart and enableAccelerometerListening 00:06:28
    17. DoodleFragment.java—Methods onPause and disableAccelerometerListening 00:02:48
    18. DoodleFragment.java—Anonymous Inner Class That Implements SensorEventListener to Process Accelerometer Events 00:04:39
    19. DoodleFragment.java—Method confirmErase 00:01:22
    20. DoodleFragment.java—Overridden Fragment Methods onCreateOptionsMenu and onOptionsItemSelected 00:07:06
    21. DoodleFragment.java—Methods getDoodleView and setDialogOnScreen 00:00:54
    22. DoodleView.java—package Statement and import Statements 00:02:51
    23. DoodleView.java—DoodleView static and Instance Variables 00:02:33
    24. DoodleView.java—DoodleView Constructor 00:03:30
    25. DoodleView.java—Overridden View Method onSizeChanged 00:02:49
    26. DoodleView.java—DoodleView Methods clear, setDrawingColor, getDrawingColor, setLineWidth and getLineWidth 00:02:59
    27. DoodleView.java—Overridden View Method onDraw 00:02:40
    28. DoodleView.java—DoodleView Methods hideSystemBars and showSystemBars 00:04:27
    29. DoodleView.java—Anonymous Inner Class that Implements Interface SimpleOnGestureListener 00:03:33
    30. DoodleView.java—Overridden View Method onTouchEvent 00:05:39
    31. DoodleView.java—touchStarted Method of Class DoodleView 00:02:31
    32. DoodleView.java—touchMoved Method of Class DoodleView 00:04:03
    33. DoodleView.java—touchEnded Method of Class DoodleView 00:00:51
    34. DoodleView.java—DoodleView Method saveImage 00:02:41
    35. DoodleView.java—DoodleView Method printImage 00:03:43
    36. ColorDialogFragment.java—package Statement, import Statements and Fields 00:01:54
    37. ColorDialogFragment.java—Overridden DialogFragment Method onCreateDialog 00:06:53
    38. ColorDialogFragment.java—Method getDoodleFragment 00:01:42
    39. ColorDialogFragment.java—Fragment Lifecycle Methods onAttach and onDetach 00:02:35
    40. ColorDialogFragment.java—Anonymous Inner Class That Implements OnSeekBarChangeListener to Respond to the Events of the Alpha, 00:03:01
    41. LineWidthDialogFragment Class 00:08:21
    42. EraseImageDialogFragment Class 00:02:17
  12. Lesson 8: AddressBook App
    1. Learning objectives 00:06:05
    2. Test-Driving the Address Book App 00:03:46
    3. Technologies Overview 00:09:26
    4. Creating the Address Book Project 00:01:05
    5. Creating the App's Classes 00:02:34
    6. String resources and removing unnecessary default items 00:02:50
    7. Defining common look-and-feel: styles.xml 00:12:08
    8. Defining a TextView Border: textview_border.xml 00:06:07
    9. MainActivity's Layout: activity_main.xml 00:08:52
    10. DetailsFragment's Layout: fragment_details.xml 00:07:21
    11. AddEditFragment's Layout: fragment_add_edit.xml 00:07:38
    12. Defining the Fragment's Menus 00:07:35
    13. MainActivity.java—package Statement, import Statements and Fields 00:04:53
    14. MainActivity.java—Overridden Activity Method onCreate 00:06:01
    15. MainActivity.java—Overridden Activity Method onResume 00:01:37
    16. MainActivity.java—Method onContactSelected from interface ContactListFragment.ContactListFragmentListener 00:01:37
    17. MainActivity.java—Method displayContact 00:04:27
    18. MainActivity.java—Method onAddContact from interface ContactListFragment.ContactListFragmentListener 00:01:58
    19. MainActivity.java—Method displayAddEditFragment 00:01:58
    20. MainActivity.java—Method onContactDeleted from interface DetailsFragment.DetailsFragmentListener 00:01:10
    21. MainActivity.java—Method onEditContact from interface DetailsFragment.DetailsFragmentListener 00:01:31
    22. MainActivity.java—Method onAddEditCompleted from interface AddEditFragment.AddEditFragmentListener 00:01:31
    23. ContactListFragment.java—package Statement and import Statements 00:02:30
    24. ContactListFragment.java—ContactListFragmentListener Interface and ContactListFragment Instance Variables 00:02:00
    25. ContactListFragment.java—Overridden Methods onAttach and onDetach 00:01:52
    26. ContactListFragment.java—Overridden Method onViewCreated 00:06:31
    27. ContactListFragment.java—viewContactListener That Processes ListView Item Selection Events 00:01:53
    28. ContactListFragment.java—Overridden Method onResume 00:02:04
    29. ContactListFragment.java—GetContactsTask Subclass of AsyncTask 00:04:38
    30. ContactListFragment.java—Overridden Method onStop 00:01:05
    31. ContactListFragment.java—Overridden Methods onCreateOptionsMenu and onOptionsItemSelected 00:02:28
    32. ContactListFragment.java—Method updateContactList 00:00:55
    33. AddEditFragment.java—package Statement and import Statements 00:00:27
    34. AddEditFragment.java—AddEditFragmentListener Interface and the AddEditFragment Instance Variables 00:02:01
    35. AddEditFragment.java—Overridden Methods onAttach and onDetach 00:00:41
    36. AddEditFragment.java—Overridden Method onCreateView 00:03:57
    37. AddEditFragment.java—OnClickListener to Process Save Contact Button Events 00:04:00
    38. AddEditFragment.java—Method saveContact 00:01:49
    39. DetailsFragment.java—package Statement and import Statements 00:00:29
    40. DetailsFragment.java—DetailsFragmentListener Interface 00:00:41
    41. DetailsFragment.java—DetailsFragment Instance Variables 00:00:48
    42. DetailsFragment.java—Overridden Methods onAttach and onDetach 00:00:39
    43. DetailsFragment.java—Overridden Method onCreateView 00:02:37
    44. DetailsFragment.java—Overridden Method onResume 00:02:37
    45. DetailsFragment.java—Overridden Method onSaveInstanceState 00:01:00
    46. DetailsFragment.java—Overridden Methods onCreateOptionsMenu and onOptionsItemSelected 00:03:02
    47. DetailsFragment.java—LoadContactTask Subclass of AsyncTask 00:04:05
    48. DetailsFragment.java—Method deleteContact and DialogFragment confirmDelete 00:04:14
    49. DatabaseConnector.java—package Statement, import Statements and Fields 00:01:01
    50. DatabaseConnector.java—Constructor and Methods open and close 00:01:53
    51. DatabaseConnector.java—Method insertContact 00:02:04
    52. DatabaseConnector.java—Method updateContact 00:02:05
    53. DatabaseConnector.java—Method getAllContacts 00:01:48
    54. DatabaseConnector.java—Method getOneContact 00:01:00
    55. DatabaseConnector.java—Method deleteContact 00:00:46
    56. DatabaseConnector.java—private Nested Class DatabaseOpenHelper That Extends SQLiteOpenHelper 00:04:04