Course Highlights
  • Learn the core Android app development and Kotlin skills to build real Android apps.
  • Learn how to target current and older versions of Android when writing your apps.
  • Understand how to create Android apps using Kotlin.
  • Be able to apply for Android app development roles.
Curriculum

4 Topics
Introduction
The Udemy Interface
Introduction to Android
FAQ

6 Topics
Windows - Install Android Studio
Mac - Install Android Studio
Linux - Install Android Studio
Configure Android SDK on all Three Platforms
Android Studio Settings
Enable VT-X in BIOS

12 Topics
Your Programming Careers Questions Answered
Access to Programming Career Q&A
Introduction
Android Studio Templates
FAQ: Templates in Android Studio 3.6 and later
More on Android Templates
Hello World
Tour of Android Studio
Setting Up a Virtual Device
FAQ: Emulators on Windows 10 with AMD processor
Running on an emulator
Running on a physical Android device

25 Topics
FAQ for Android Studio 3.3
Kotlin Tutorial Setup
Kotlin Tutorial 1
Variables and Types
More on Variables and Types
String Concatenation and Interpolation
val and var and more on Declarations
Conditions
Classes
Objects and Instances
Challenge
Lists
More on Lists
toString Challenge
for Loops
for Encapsulation and Private Properties
Overloading Functions
Inheritance
More on Inheritance
Inheritance Continued
Further Inheritance
while Loops
for Loop Revisited
do while Loop
Loop Challenge

27 Topics
Introduction
Setup Play Project
The Constraint Layout
Constraints and Resizing
Positioning Widgets
Inner Lines within a Widget
Layouts on Different Devices
More on the Constraints
Layout Designer rendering error
FAQ: Baseline Constraints change
Baseline Constraints
Constraining Widgets
Add Scrolling Capabilities
The Button Counter App
Finish Layout
Coding Button Counter App
findViewById and r Class
Events and setonclicklistener
Testing and Challenge Time
Extending the Button App
Testing and Challenge
Fixing Kotlin Gradle Issues
The Activity Lifecycle
The Logcat Pane
Logging the Activity Lifecycle
Activity Lifecycle in Action
Saving and Restoring Instance State

18 Topics
Demo Calculator App
Calculator Interface Setup
Continue with Interface
Fine Tuning the Layout
Create Landscape Layout
Comparing FIles with Diff
Comparing Directories
Coding the Calculator
Add onClickListeners
Write Perform Operation Function
Bug Fix and Code Improvements
Bug Fix Challlenge and Save State
Widget References in Kotlin
Guidelines
Fixing Landscape Layout
Add Neg Button to Layout
Code Changes for Neg Button
Add Neg Button to Portrait

24 Topics
Introduction
AsyncTask
Logging and Logcat
Important note for API 28 (and higher) and the Top 10 Downloader
Download the RSS Feed
Reading the Data
Android Permissions
Writing Idiomatic Kotlin
More Idiomatic Kotlin
Parsing the Data
Create Xml Parse Function
Testing the App
ListView and ArrayAdapter
Code Changes for Array Adapter
onDestroy and Asynctask
Create Custom Adapter
Custom Adapter Code
Improving the Adapter
ViewHolder Pattern
Adding a Menu - Layout
Adding A Menu - Code
Menu Groups - Layout
Menu Groups - Code
Challenge Solution

14 Topics
Setup
YouTube Activity
Adding Widgets Dynamically
Google API Key
Add Key to Code
The YouTube Player
onInitializationSuccess Method
Adding Listeners
Improving the Player
Extending App Layouts
Extending Youtube App Code
Implementing Intents and Challenge
Challenge Solution
More Error Handling

45 Topics
Introduction
Flick App and Feeds
Json and Mini challenge
Log Tag and Companion Objects
Kotlin top-level constants
Download JSON - doInBackground
Downloading the JSON
CallBacks
Project Diagram and Photo Class
GetFlickJsonData class
GetFlickrJsonData class continued
Uri Builder
Flickr Browser User Inferface
RecyclerView Layouts
Finishing Browse Layout
Search and PhotoDetail Activities
Nested Layouts
Recyclerview Adapter
onBindViewHolder and Picasso
Associate Adapter to Recyclerview
RecyclerItemClickListener
GestureDetector
Displaying the full photo
Serializable
Modify Photo Details Activity
Update for later version of Kotlin
Parcelable
Material Design
More on Material Design
AppCompat - Backwards Compatibility
Style Sheets
Custom Style Sheets
Namespaces
Other Material Design Changes
Missing Style Editor video
Differences in API Levels
String Resources
String Resources Placeholders
Adding the Search Feature
SearchView
More on SearchView
SearchView Events
Deprecation of framework PreferenceManager class
SharedPreferences
Telling Fibs

33 Topics
Introduction
Introduction to Databases
Database Terminology
Command Line and Path Setup for Windows
Command Line and Path Setup for Mac
Command Line and Path Setup for Ubuntu Linux
Introduction to Sqlite
More SQL with Sqlite
Sqlite Querying Data
Order By and Joins
More Complex Joins
Wild Cards and Views
Housekeeping and Challenge
Basic SQL in Android
Create Table Add Data and Test
Cursor and Navigation
Correction
Android File System
Content Providers
Setting up the Emulators
Contact Provider App Layout
The ContactsContract
ContentResolver and Abstraction
Retrieving Data with a ContentResolver
Permissions
Checking Permissions at Runtime
Testing the App
Avoiding Crashes Snackbars and a Challenge
More on Snackbars
Intents setData and Uris
Problems Storing State
Remove Saving of State
Test Scripts Challenge and Cleanup

11 Topics
Introduction
Androids ViewModel Class
FAQ: Changes to the Lifecycle Components library
Using a ViewModel
Finish ViewModel Changes
Exposing LiveData
Swapping the ViewModel
ViewModel with Top 10 Downloader
Implement ViewModel
Final Changes
App Testing

60 Topics
The TaskTimer Application
Database Setup
Creating a Fragment
Tasks Contract Class
AppDatabase Class
Create SQL for Tasks Table
Singleton AppDatabase Class
onUpgrade and Testing
The ContentProvider
FAQ: context in a ContentProvider
uriMatcher
Updating Build Files
The Content URI
Register the ContentProvider
Using appendWhereEscapeString
Mime Types in the Content Provider
Content Provider Insert
Update and Delete
Testing Insert and Update
Testing Bulk Update and Delete
Main Menu UI
Task UI Layout
Task List Items Constraints
Add / Edit Layout
The Kotlin Data Class
The Add / Edit Fragment
Swapping Fragments
Multi-pane Fragments
Multi-pane Displays
Enabling Two-pane Mode
The Fragment Lifecycle Part 1
The Fragment Lifecycle Part 2
Logging the Fragment Lifecycle
Android SDK Gradle and Kotlin Updates
Up and Back Navigation for Fragments
Object can have More than One Type
Removing the Up Button
Back Navigation
Completing the AddEdit UI
Saving the Task Details
Test Saving
Updating Android Studio Kotlin and Gradle
Fixing New Kotlin Warnings
Layout Container
RecyclerView CursorAdapter
Introducing David Reidy
Tricky String Resources
The ViewModel Class
Subscribe to The ViewModel
Notifications and Observers
Responding to Taps
onClick Listeners Interfaces and Callbacks
Responding to Clicks from the Adapter
Solution to The Interface Challenge
Deleting a Task from The Database
Accessing a Database on a Background Thread
Background Processing Using a Coroutine
Clean Up AddEditFragment
Saving in The ViewModel
Sharing ViewModel Instances

20 Topics
AndroidX
Introduction to Dialogs
AppDialog Class Part 1
AppDialog Class Part 2
Adding a Dialog to The App
Dialog CallBacks
Asserts and BuildConfig
Strange Dialog Behavior
Confirming Exit Without Saving
Implementing the Interface
Kotlin Extension Functions
Image Asset Studio
Create an About Dialog the Layout Part 1
Create an About Dialog the Layout Part 2
Displaying the About Dialog
Versioning and build.gradle
Dismissing the Dialogue
Supporting Older Versions
Compatibility Challenge Solution Part 1
Compatibility Challenge Solution Part 2

8 Topics
Introduction
Settings Dialog Layout
Settings Dialog
DefaultSharedPreferences
SeekBar Values
Quantity String Resources
Setting Dialog Title
Retain Instance State

14 Topics
Introduction
A Correction and the Device File Explorer
Database Updates
Saving the Timing Data
The saveTiming Function
Testing Timings
Providing Feedback
Correction to the Providing Feedback lecture
Data Loss
Storing the Current Timing Records
Solution - Retrieving the Current Time Record
Solution Continued
Finish Solution and Test
When the Battery Dies

36 Topics
Creating Test Data
Generating the Test Data
Debug and Release Builds
Using a SQLite view
Adding the view to the Database
Adding the view to the ContentProvider
Testing the Database Upgrade
ConstraintLayout Chains
Chain Types
Finishing the reports layouts - challenge
The Landscape Layouts
The Report Adapter
The Durations Report Activity
Testing Different Locales
Creating the reports ViewModel
Using the DurationsViewModel
Sorting the Report Data
Vector Drawables and Asset Studio
The Report Menu
Report Menu Code - day/week toggle
The DatePickerDialog
Filtering by Date
Filtering in the DurationsViewModel
Testing the Report Filters
Unbuggy DatePickerDialog
Deleting old Timings data
Testing Mass Deletion
Observing the cursor in the ViewModel
A Minor Bug
Observing a Configuration Change
Testing the Bug Fix
Using the First Day Of Week Setting
Taking Advantage of Later Features
Testing the new DatePickerFragment
Observing SharedPreference changes
Solution to Ignore Short Timings Challenge

23 Topics
Introduction
Plugin and Library Versions
Code Review
Code Review - The AppProvider Class
Code Review - CursorRecyclerViewAdapter DurationsReport and the ViewModels
Code Review - MainActivity and the Contract classes
Kotlin and ViewModels
Another Breaking Change
Improvements to coroutines in a ViewModel
Dispatchers
Coroutines Don’t Block
Bug Fixes and Ideas for Improvements
Prevent Deletion of Edited Task
Implementing Delete by Swiping - Part 1
Implementing Delete by Swiping - Part 2
Implementing Delete by Swiping - Part 3
Challenge - Bug Fix
Challenge - Deleting a task that's being timed
Parameterised Queries
Adding the Parameters Table
Using the Parameterised View in our ViewModels
Refreshing the Report
Collation

2 Topics
Source Code
Bonus Lecture and Information

  Write a Review

Android App Development Masterclass using Kotlin

Go to Paid Course