Course Description
<p>Write better Android apps faster with Kotlin. Kotlin is a modern statically typed programming language used by over 60% of professional Android developers that helps boost productivity, developer satisfaction, and code safety.</p>
Curriculum
- Introduction to Course
- Introduction to Android
- Open Handset Alliance
- Install Android Studio
- Do you need to download the Java Development Kit
- Java Development Kit for Windows(Bit Users Only)
- Configure Andriod SDK
- Android Studio Settings
- Enable VT-X in BIOS
- Introduction
- Andriod Studio Templates
- Hello World
- Tour of Android Studio
- Setting Up a Virtual Device
- FAQ Emulators on Windows with AMD processor
- Running on an emulator
- Running on a physical Android device
- FAQ for Andriod Studio
- Kotlin Tutorial Setup
- Kotlin Tutorial
- Variables and Types
- String Concatenation and Interpolation
- val and var and more on Declarations
- Conditions
- Classes
- Objects and Instances
- Challenge
- Lists
- toString Challenge
- for Loops
- for Encapsulation and Private Properties
- Overloading Functions
- Inheritance
- while loops
- for loop revisited
- do while loops
- loop challenges
- 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
- Baseline Constraints
- Constraining Widgets
- Add Scrolling Capabilites
- 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
- Demo Calculator App
- Calculator Interface Setup
- Fine Tuning the Layout
- Create Landscape Layout
- Comparing Flles with Diff
- Comparing Directories
- Coding the Calculator
- Add onClickListeners
- Write Perform Operation Function
- Bug Fix and Code Improvements
- Bug Fix Challenge 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
- Introduction
- Async Task
- Logging and Logcat
- Important note for API and the Top Downloader
- Download the RSS Feed
- Reading the Data
- Android Permissions
- Writing 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
- Imporving the Adapter
- ViewHolder Pattern
- Adding a Menu
- Link for Top Free Applications
- Menu Groups
- Challenge Solution
- 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
- Introduction
- Flick App and Feeds
- Json and Mini Challenge
- Log Tag and Companion Objects
- Kotlin top-level constants
- Download JSON - doInBackgroung
- CallBacks
- Project Diagram and Photo Class
- GetFlickJsonData class
- Uri Builder
- Flickr Browser User Interface
- RecyclerView Layouts
- Finishing Browse Layouts
- Search and PhotoDetail Activities
- Nested Layouts
- RecyclerView Adaptors
- onBindViewHolder and Picasso
- Associate Adapter to Recyclerview
- RecyclerItemClickListener
- GestureDetector
- Displaying the full photo
- Serializable
- Modify Phot Details Activity
- Parcelable
- 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
- SearchView Events
- SharedPreferences
- Telling Fibs
- Introduction
- Introduction to Databases
- Database Terminology
- Command Line and Path Setup
- Introduction to 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
- Intents, setData and Uris
- Problems Storing State
- Remove Saving of Sate
- Test Scripts Challenge and Cleanup
- Introduction
- Androids ViewModel Class
- Using a ViewModel
- Finish ViewModel Changes
- Exposing LiveData
- Swapping the ViewModel
- ViewModel with Top Downloader
- Implement ViewModel
- Final Changes
- App Testing
- The TaskTimer Application
- Database Setup
- Tasks Contract Class
- AppDatabase Class
- Create SQL for Tasks Table
- Singleton AppDatabase Class
- onUpgrade and Testing
- The 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
- 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
