About the course:
Our Android development with Kotlin training course provides an introduction to the Android Studio development environment, and how to code and execute Android applications both on physical devices and on Android Virtual Devices (AVDs). You will also explore Android Platform APIs and architecture, application elements, UIs and layouts and testing environment.
This 3-day Android with Kotlin course can be combined with the Intro to Kotlin training course for a comprehensive dive into the world of developing Kotlin apps for Android, for developers who are completely new to both technologies.
Learning outcomes
- Basics of Kotlin
- Function-oriented Programming wth Kotlin
- OOP with Kotlin
- Typing System
- Extensions
- Collections & Texts
- Generics
- Delegates
- Domain Specific Language
- Reflections
- Interoperability Between Kotlin and Java
- Idiomatic Kotlin
Who should attend
This course is aimed at software developers looking to extend existing skills in Kotlin to develop commercial Android apps.
Prerequisites
Delegates should have attended our Intro to Kotlin course or have equivalent Kotlin coding experience.
Live, instructor-led online and on-site training
We appreciate that you need flexibility to fit in with new working situations - whether you're an individual, part of a distributed team, or simply have projects and deadlines to meet.
Our remote training can take place online in a virtual classroom, with content split into modules to accommodate your scheduling challenges and meet your learning goals. Get in touch today to find out how we can help design a cost-effective, flexible training solution.
As soon as it's safe, we'll return to also offering the on-site custom training courses and programmes upon which we've built our reputation.
Android Overview
- What is Android?
- Android Devices and Simulators
- Android Programming Languages
- Android Versions
- Android Software Stack
- Applications run on Android OS
- Application Core Building Blocks
- (activities, services, intents, Content Providers, Broadcast Receivers)
- Security and Permissions
Introduction to Android Applications
- Android Studio Introduction
- Android Hello World Application
- Android source files
- Layout Definition file
- Value Resources
- Android Manifest File
- Introduction to Gradle and Project Gradle files
- Running the Application
- Android Debug Bridge
- Packaging an Application
- Android Studio Modules
Lab: Android Hello World Tutorial
Activities
- Application Core Building Blocks Review
- Activities
- Activity Lifecycle & Activity States
- Activity Lifecycle Methods
- Using Logcat
- Saving / Restoring Dynamic State
- Activity Lifetimes
- Lifecycle Aware Components
- Activity Stack
- Processes and Activities
- Process States & Process Termination
- Activities and Tasks
- Activity to Fragment Relationship
Lab: Extending Hello World app with lifecycle aware components
Views and layouts Overview
- UI Components
- Views
- View Hierarchy
- Layouts
- Containers
- Creating displays using Android Studio, XML and programmatically
- Interacting with the App
- UI Events
- Alerts, Toast and Alert Dialogs
- Gestures
Lab: Number Guessing Game App
Intents
- Intents
- Explicit Intents
- Implicit Intents
- Intents Demo App
- Returning Data from launched sub-activity
- Creating a custom sub-activity
- Intent filters
Lab: intents
Services
- Service Introduction
- When to use Services
- Service Lifecycles
- Working with a Service
- SampleService class
- A Started Service Example
- Bound Service
- Intent Service
Lab: Adding an intent Service to the number Guessing Game
Notifications and Broadcast Receivers
- What are notifications
- Working with notifications
- Creating and Issuing a Notification
- Notifications Example
- Broadcasts
- How Apps send Broadcast messages
- Broadcast Architecture
- Broadcast Receivers
- Broadcast Example
Lab: Notification to display guessing game success message
Android Build with Gradle
- Building an Android App
- Gradle
- Gradle Usage
- Gradle Files in Android Project
- Gradle Dependency Management
- Gradle Build Types
- Gradle Flavors
- Gradle Tasks
- The Gradle Wrapper
- Android App Signing
Content Providers
- Content Providers Introduction
- Implementing a Content Provider
- Database Helper class
- Creating a Content Provider
- Accessing a Content provider
- Content Resolver
- Loaders
Lab: Introducing Content Providers
Android Unit Testing
- JUnit Test Framework
- JUnit Annotations
- JUnit Fixtures
- JUnit One-Time Fixtures
- JUnitAssertions
- JUnit Additional Test Support
- Example JUnit Test
- Android Test Framework Options
- Espresso Test Framework for Android
- Espresso Test Example
- Extended tests & mocking
- JUnit and Espresso Module Dependencies
Lab: Writing Tests for Android Apps
Location APIs
- Google Maps Location API Introduction
- Setting up an Android Studio Location App
- Review of Basic Maps Activity
- Google Maps API Key
- Location Client
- User Permissions
- Current Location
- Markers
- Map Types
- Geocoding
- Receiving Location Updates
Lab: Creating a Location App