This course is intended for experienced developers who wish to learn how to develop native applications for the Android OS from Google. This course is presented in a boot camp style with a heavy emphasis on lab work.

Course Duration: 5 days
Prerequisites:

No prior knowledge of the Android OS is required. However, attendees should have knowledge of the Java programming language or another Object Oriented language.

Course Outline:
  • The Basics
    • What is Android?
    • History
    • Architecture Explained
    • Role of Java

 

  • Android Studio and SDK
    • Android Studio
    • Device Emulator
    • Hello World
    • Gradle

 

  • Unit Testing and Debugging
    • Creating Unit Tests
    • Using the Emulator
    • TraceView
    • Analyzing the Heap
    • Using Espresso
    • Using UIAutomator
    • Robolectric Testing library
  • Layouts
    • Layout Containers
    • Working with Layout Containers
    • CoordinatorLayout
    • ConstraintLayout

 

  • Resources and Qualifiers
    • Resources
    • Qualifiers
    • Strings
    • Images and Shapes
    • Other Data Types (Integers, Arrays)

 

  • Activities
    • Activity Lifecycle
    • Calling Activities with Intents
    • Passing Data
    • Saving & Restoring State
    • Orientation Changes
    • Data Binding
    • Dagger
    • RxJava and Reactive Components

 

  • Fragments
    • What are Fragments
    • Declarative Creation
    • Programmatic Creation
    • Fragment ManagerFragment Callbacks

 

  • Storing and Retrieving Data
    • Internal and External Storage
    • Preferences
    • SQLite Database

 

  • Content Providers
    • Creating a ContentProvider
    • Using a ContentProvider
    • Sync Adapter

 

  • Concurrency
    • Main UI Thread
    • Using AsyncTask
    • Service and Intent Service
    • Lopper & Handlers

 

  • Services
    • Services
    • Intent Services
    • Bound Services

 

  • Networking
    • Networking Libraries
    • SAX & DOM Parsing
    • JSON Parsing
    • Retrofit HTTP Library

 

  • Permissions
    • Declaring Permissions
    • Android M Permissions

 

  • Broadcast Receivers
    • Broadcast Receivers

 

  • System Services
    • Alarm Manager
    • Notification Manager

 

  • WebVIew
    • WebVIew
    • Running Javascript
    • Exposing Java Methods

 

  • Location Services and Maps (Optional)
    • Location Services
    • Mock Location Data
    • Google Map Libraries

 

  • Advanced UI
    • Material Design
    • Animation and Transitions
    • Support Library

 

  • Advanced Gradle
    • Improving Gradle Performances
    • Build Types & Product Flavors
    • Proguard
    • Decompiling APKs
  • The Basics
    • What is Android?
    • History
    • Architecture Explained
    • Role of Java

 

  • Android Studio and SDK
    • Android Studio
    • Device Emulator
    • Hello World
    • Gradle

 

  • Unit Testing and Debugging
    • Creating Unit Tests
    • Using the Emulator
    • TraceView
    • Analyzing the Heap
    • Using Espresso
    • Using UIAutomator
    • Robolectric Testing library
  • Layouts
    • Layout Containers
    • Working with Layout Containers
    • CoordinatorLayout
    • ConstraintLayout

 

  • Resources and Qualifiers
    • Resources
    • Qualifiers
    • Strings
    • Images and Shapes
    • Other Data Types (Integers, Arrays)

 

  • Activities
    • Activity Lifecycle
    • Calling Activities with Intents
    • Passing Data
    • Saving & Restoring State
    • Orientation Changes
    • Data Binding
    • Dagger
    • RxJava and Reactive Components

 

  • Fragments
    • What are Fragments
    • Declarative Creation
    • Programmatic Creation
    • Fragment ManagerFragment Callbacks

 

  • Storing and Retrieving Data
    • Internal and External Storage
    • Preferences
    • SQLite Database

 

  • Content Providers
    • Creating a ContentProvider
    • Using a ContentProvider
    • Sync Adapter

 

  • Concurrency
    • Main UI Thread
    • Using AsyncTask
    • Service and Intent Service
    • Lopper & Handlers

 

  • Services
    • Services
    • Intent Services
    • Bound Services

 

  • Networking
    • Networking Libraries
    • SAX & DOM Parsing
    • JSON Parsing
    • Retrofit HTTP Library

 

  • Permissions
    • Declaring Permissions
    • Android M Permissions

 

  • Broadcast Receivers
    • Broadcast Receivers

 

  • System Services
    • Alarm Manager
    • Notification Manager

 

  • WebVIew
    • WebVIew
    • Running Javascript
    • Exposing Java Methods

 

  • Location Services and Maps (Optional)
    • Location Services
    • Mock Location Data
    • Google Map Libraries

 

  • Advanced UI
    • Material Design
    • Animation and Transitions
    • Support Library

 

  • Advanced Gradle
    • Improving Gradle Performances
    • Build Types & Product Flavors
    • Proguard
    • Decompiling APKs