Reactive Programming for iOS with RxSwift Training Course

Duration

7 hours (usually 1 day including breaks)

Requirements

  • An understanding of Swift 3 code.
  • Experience with with iOS application development.

Audience

  • Experienced Swift and iOS app developers who are seeking to learn reactive programing in Swift with RxSwift
  • Developers experienced with one of Rx’s various other platform ports who are interested in learning reactive extensions for Swift

Overview

Reactive Extensions (or Rx) is a multi-platform suite of libraries designed for developing asynchronous and event-based applications using observable sequences and LINQ-style query operators. RxSwift is a functional library intended to ease the difficulty associated with Swift asynchronous and concurrent coding for iOS apps.

This instructor-led, live training introduces participants to reactive techniques offered by RxSwift for managing the transferring and combining of asynchronous data streams, handling simple observable sequences, and the architecture and development of responsive, flexible, and industry scalable iOS applications.

By the end of this training, participants will be able to:

  • Understand the basic concepts behind reactive programing in Swift 3.
  • Turn various items such as arrays and events into observable sequences.
  • Apply various filters to observable sequences, transform and combine observable sequences.
  • Write Unit tests against Rx Code.
  • Effectively utilize blind data from user interface elements.

Format of the Course

  • Interactive lecture and discussion.
  • Lots of exercises and practice.
  • Hands-on implementation in a live-lab environment.

Course Customization Options

  • To request a customized training for this course, please contact us to arrange.

Course Outline

To request a customized course outline for this training, please contact us.

Android Nougat for Android Developers Training Course

Duration

21 hours (usually 3 days including breaks)

Requirements

  • A basic understanding of object-oriented programming.

Audience

  • Android Developers

Overview

Android Nougat is the 7th version of the Android operating system. With Android Nougat, users can create Android applications with features such as multitasking, split-screen support, and much more.

    
This instructor-led, live training (online or onsite) is aimed at android developers who wish to build, update, and manage a mobile Android application with Android Nougat.

By the end of this training, participants will be able to:

  • Deploy a mobile Android application to the Google Play Store.
  • Use object-oriented programming with Java on Android.

Format of the Course

  • Interactive lecture and discussion.
  • Lots of exercises and practice.
  • Hands-on implementation in a live-lab environment.

Course Customization Options

  • To request a customized training for this course, please contact us to arrange.

Course Outline

Introduction

Java Basics

  • Syntax and logic
  • Statements, variables, arrays, etc.

Android Studio

  • Processes and components used in Android Studio
  • Android Studio files vs Java files

Preparing the Development Enviroment

  • Installing and configuring Android Studio

Code in Java

  • Working with Java strings, numbers, methods, etc.
  • Creating a Java module

Java on Android

  • Using classes for Android
  • Using inheritance in Java for Android
  • Hiding and encapsulating data

Android Activities

  • Understanding the Android Activity Lifecycle
  • Setting up a layout
  • Using activities without buttons
  • Creating a second Android Activity
  • Passing data between activities

Android Layouts

  • Working with graphics and drawables
  • Creating custom buttons
  • Using fragment manager
  • Loading fragments

GPS and Maps

  • Working with Google Maps
  • Creating and customizing a map
  • Obtaining and displaying user locations

Multimedia

  • Setting up a layout and creating fragments
  • Working with menu systems
  • Using cursors
  • Decoding paths

REST on Android

  • Working with JSON on Android
  • Creating an API service
  • Passing data to the API
  • Parsing JSON

Google Play Store Deployment

  • Understanding App Store Search Engine (ASO) key strategies
  • Preparing an application for Google Play Store standards
  • Uploading the application
  • Optimizing ASO

Summary and Conclusion

Android TV Training Course

Duration

14 hours (usually 2 days including breaks)

Requirements

  • Experience with Android development
  • Familiarity with Java or Kotlin programming

Audience

  • Developers

Overview

Android TV is an Android platform developed by Google for smart TVs. Apps built for Android TV allow users to view and navigate the user interface on large screens. Android TV also features content discovery, voice support, and live content feeds that bring mobile apps experience to a TV device.
 
This instructor-led, live training (online or onsite) is aimed at developers who wish to design and build new Android TV apps. They can also extend their existing apps to run on TV devices for boosting app engagement and revenue.

By the end of this training, participants will be able to:

  • Set up the necessary development environment to start developing Android TV apps.
  • Understand the requirements for qualifying an app as a TV app.
  • Create and test apps on an Android TV emulator for a first-hand user experience.
  • Make the TV app searchable and integrate it with Google Assistant to optimize the user experience.

Format of the Course

  • Interactive lecture and discussion.
  • Lots of exercises and practice.
  • Hands-on implementation in a live-lab environment.

Course Customization Options

  • To request a customized training for this course, please contact us to arrange.

Course Outline

Introduction

  • Overview of Android TV features and benefits

Getting Started

  • Preparing the development environment
  • Understanding the code structure
  • Setting up Android TV emulator    

Creating Android TV Apps

  • Overview of Leanback library
  • Understanding the Android TV app criteria
  • Creating a catalog browser
  • Creating a card presenter and view
  • Adding controls and player
  • Creating playlists and details view
  • Setting up listeners for clicked items
  • Working with controls and player
  • Implementing playback screen
  • Building and running videos

Optimizing Android TV Apps Engagement

  • Adding recommended content and channels
  • Making TV apps searchable
  • Integrating TV apps with the Google Assistant
  • Adding related videos preview

Troubleshooting

Summary and Conclusion

Wear OS for Developers Training Course

Duration

21 hours (usually 3 days including breaks)

Requirements

  • Knowledge of Java, C, or C++ programming languages
  • Experience with Android application development

Audience

  • Developers

Overview

Wear OS (formerly known as Android Wear) is an open-source operating system developed by Google for smartwatches and wearables. Wear OS enables developers to design, build, and distribute feature-rich and interactive apps for wearables.

This instructor-led, live training (online or onsite) is aimed at developers who wish to install, set up, and customize Wear OS development using Android Studio to build apps for smartwatches and wearables.

By the end of this training, participants will be able to:

  • Create a Wear OS project to build powerful and interactive apps for wearables.
  • Configure notifications, user input, and overlays to create efficient and optimized apps.
  • Learn Wear OS design principles to create smooth running and visually stunning apps.

Format of the Course

  • Interactive lecture and discussion.
  • Lots of exercises and practice.
  • Hands-on implementation in a live-lab environment.

Course Customization Options

  • To request a customized training for this course, please contact us to arrange.

Course Outline

Introduction

Overview of Wear OS Features and Architecture

Getting Started with Wear OS

Building a Wear OS App

Creating a Wear OS Project

Deploying Wear OS App to Watch

Debugging Wear OS App

Working with Overlays in Wear OS

Setting Up Notifications

Handling Data, Sync, Network, and Location

Assigning Functions to Physical Buttons

Configuring Input Methods

Designing Watch Faces

Using Wear OS Health Services

Exploring Wear OS Design Principles

Testing the Wear OS App Quality

Distributing App to Wear OS

Troubleshooting

Summary and Conclusion

Tizen for Developers Training Course

Duration

28 hours (usually 4 days including breaks)

Requirements

  • Knowledge of HTML, CSS, Javascript, C, C++ programming languages
  • Experience with .NET, web, or native application development

Audience

  • Developers

Overview

Tizen is an open-source and standard-based platform developed by Samsung that helps users create feature-rich and secure applications for wearable, TV, mobile, and Internet of Things (IoT) devices.

This instructor-led, live training (online or onsite) is aimed at developers who wish to install, set up, manage the Tizen platform to build various application types and profiles.

By the end of this training, participants will be able to build, develop, deploy, and design .NET, web, and native applications using Tizen.

Format of the Course

  • Interactive lecture and discussion.
  • Lots of exercises and practice.
  • Hands-on implementation in a live-lab environment.

Course Customization Options

  • To request a customized training for this course, please contact us to arrange.

Course Outline

Introduction

Overview of Tizen Features and Architecture

  • Tizen Open Source Project
  • Tizen architecture and framework layer
  • Profiles (wearable, TV, mobile, and IoT)
  • Package development workflow

Getting Started with Tizen Development

  • Installing development tools
  • Setting up the environment
  • Cloning source files
  • Building packages
  • Creating and flashing images
  • Porting

Developing Applications with Tizen

  • Installing Tizen Studio
  • Application types (.NET, web, and native)
  • Creating a project
  • Setting project properties
  • Coding and building the application
  • Deploying, running, and debugging the application
  • Designing the user interface
  • Enhancing the application
  • Application Filtering

Creating .NET Applications with Tizen

  • Wearable .NET application
  • Wearable XAML application
  • TV .NET application
  • Mobile .NET application
  • NUI .NET application
  • IoT.NET application

Securing and Testing .NET Applications

  • Getting the certificates
  • Testing .NET application on devices
  • Packaging a .NET and web hybrid application
  • Third-party libraries
  • Application filtering
  • Security and API privileges

Creating Web Applications with Tizen

  • Wearable web application
  • Wearable web watch application
  • TV web application
  • Samsung Smart TV web application
  • Mobile web application
  • Web service application
  • Web application add-on

Securing and Monitoring Web Applications

  • Security and API privileges
  • Web runtime
  • Event handling
  • Signing and certificates

Creating Native Applications with Tizen

  • Wearable native application
  • Wearable native watch application
  • Wearable native widget application
  • Mobile native application
  • IoT native service application

Managing Native Applications

  • Application management
  • Security and error handling
  • Migration guide

Troubleshooting

Summary and Conclusion

Dependency Injection with Dagger 2 Training Course

Android Training Courses

Duration

14 hours (usually 2 days including breaks)

Requirements

  • An understanding of Android development

Audience

  • Software Architects

Overview

Dagger 2 is an injection framework for Android applications. Using Dagger, users can implement pure dependency injection without involving any third-party frameworks all while improving architecture structure and long-term maintainability.

This instructor-led, live training (online or onsite) is aimed at software architects who wish to use Dagger 2 for dependency injection in Android applications.

By the end of this training, participants will be able to:

  • Set up a project with dependency injection with Dagger 2.
  • Integrate Dagger 2 into an Android application.
  • Implement dependency injection without using third-party frameworks.

Format of the Course

  • Interactive lecture and discussion.
  • Lots of exercises and practice.
  • Hands-on implementation in a live-lab environment.

Course Customization Options

  • To request a customized training for this course, please contact us to arrange.

Course Outline

Introduction

Dagger 2 Overview

  • What is Dagger 2?
  • Dagger 2 features

Dependency Injection at a Glance

  • Dependency injection techniques
  • Architectural pattern

Preparing the Development Environment

  • Setting up Dagger 2

Dependency Injection Quick Start

  • Building a project
  • Decoupling logic
  • Sharing an instance
  • Preventing injections

Dagger 2

  • Adding Dagger dependency
  • Creating an application scope
  • Using components
  • Working with multibindings

Testing the Application

  • Testing with unit tests, mock tests, and repo unit tests

Debugging the Application

  • Handling errors

Deploying the Application

  • Running an emulated Android device

Securing the Application

  • Hiding data and hardening the application

Troubleshooting

Summary and Conclusion

Android System Programming Training Course

Duration

28 hours (usually 4 days including breaks)

Requirements

  • C/C++ programming experience.
  • Java programming experience.
  • Knowledge of hardware and software concepts.

Audience

  • Linux system developers
  • Android system programmers
  • Developers who want to get into Android system programming

Overview

Android system programming refers to development involving both hardware and software.

This instructor-led, live training (online or onsite) is aimed at developers who wish to understand, adapt, and extend Android for different hardware and platforms.

By the end of this training, participants will be able to:

  • Set up the development environment needed to start system development for Android.
  • Understand how hardware interfaces with system services (applications)
  • Develop, test and debug system code iteratively using an Android emulator.
  • Load and deploy customized Android on different embedded hardware systems (using simulated/emulated).

Format of the Course

  • Interactive lecture and discussion.
  • Lots of exercises and practice.
  • Hands-on implementation in a live-lab environment.

Course Customization Options

  • To request a customized training for this course, please contact us to arrange.

Course Outline

Introduction

Preparing the Development Environment

  • Eclipse and Android SDK
  • System programming and the C/C++ programming language
  • Organizing source code repositories

Overview of Linux Platform Architecture

  • Understanding the Android file structure
  • How code is organized in Android
  • How system services (applications) talk to hardware

Linux Kernel

  • Understanding the Android device driver framework
  • Interfacing hardware (Sensors, Camera, Audio) to Android HAL
  • Compiling the Kernel

Android HAL

  • Understanding HAL (Hardware Abstraction Layer)
  • Interfacing HAL to system services (applications)

System Programming

  • Understanding the Android build system
  • Building and debugging an Android system
  • Debugging the boot up process

Android for Embedded Platforms

  • Overview of virtual hardware (translators, bridges, simulators, emulators, and virtual machines)
  • Customizing the Android Emulator
  • Customizing Android for ARM-based systems

Android Networking

  • Enabling Wi-Fi

Adding New Hardware

  • Integrating hardware devices
  • Enabling graphics

Deploying Android

  • Creating OTA packages

Troubleshooting

  • Android recovery

Summary and Conclusion

Android HAL (Hardware Abstraction Layer) Training Course

Duration

21 hours (usually 3 days including breaks)

Requirements

  • C/C++ programming experience.
  • Java programming experience.
  • Knowledge of hardware and software architecture.

Audience

  • Linux system developers
  • Android system programmers
  • Developers who want to get into Android system programming

Overview

Android HAL (Hardware Abstraction Layer) is one of the lower layers in the Android OS software stack (right above the Linux kernel). It is a hardware specific implementation that provides an interface between system services (e.g., camera software) and the hardware drivers for that service (e.g., camera driver).

This instructor-led, live training (online or onsite) is aimed at developers who wish to write HAL interfaces to enable Android applications to talk to the underlying hardware.

By the end of this training, participants will be able to:

  • Set up the development environment needed to start HAL development for Android.
  • Implement a HAL interface to enable Android services to communication with hardware device drivers.
  • Understand how a HAL module is loaded by an Android system.
  • Develop, test and debug HAL code iteratively using an Android emulator.
  • Load and deploy HAL modules onto a physical Android device for real-world testing.
  • Understand and implement HAL’s re-architectured HIDL on Android 8.0 devices.

Format of the Course

  • Interactive lecture and discussion.
  • Lots of exercises and practice.
  • Hands-on implementation in a live-lab environment.

Course Customization Options

  • To request a customized training for this course, please contact us to arrange.

Course Outline

Introduction

  • Android HAL as a hardware specific implementation.

Overview of the Android Platform Architecture

The HAL Development Cycle for Hardware Vendors

Case Study: Interfacing Low-Level C/C++ with High-Level Java

Preparing the Development Environment

Setting up an Android Emulator

Creating a HAL Implementation

Understanding the File Structure of a HAL Interface (C headers, hardware/libhardware, etc.).

HAL vs HIDL (HAL Interface Definition Language)

Coding for HIDL on Android O.

Packaging Code into a Library Module (.so) File

Writing an Application Level Code in the Java API Framework

Calling the Device Hardware from a Java Service

Debugging the HAL Module

Deploying a HAL Module

Updating HAL to New Versions of Android OS

Troubleshooting

Summary and Conclusion

Kotlin for iOS and Android Development Training Course

Kotlin Training Courses

Duration

35 hours (usually 5 days including breaks)

Requirements

  • Experience in Java programming
  • Basic experience or familiarity with Android development
  • Experience with Swift programming

Overview

Kotlin is a modern, functional and object-oriented programming language based on Java.

In this instructor-led, live training, participants will learn Kotlin programming as they step through the creation of an Android and iOS app using Kotlin.

By the end of this training, participants will be able to:

  • Understand the fundamentals of programming in Kotlin
  • Code their own Kotlin application
  • Build, test, deploy, and troubleshoot Android and iOS apps using Kotlin

Audience

  • Developers

Format of the course

  • Part lecture, part discussion, exercises and heavy hands-on practice

Note

  • To request a customized training for this course, please contact us to arrange.

Course Outline

Introduction

Setting Up the Tools for Kotlin

  • Using the Command Line Tools
  • Installing the JDK for Kotlin
  • Installing and Setting Up the IDE: IntelliJ
  • Installing the Plugins

Getting Started with Kotlin and the Kotlin Syntax

  • Learning the Kotlin Architecture
  • Learning the Kotlin Syntax
  • Using Key Features of Kotlin

Object-Oriented Programming with Kotlin

  • Overview of Programming with Objects
  • Creating a Class
  • Adding Methods to Classes
  • Defining Basic Constructors
  • Using Named Parameters and Default Values
  • Using Open Classes to Allow Inheritance
  • Using Abstract Classes
  • Creating and Using Interfaces
  • Handling Overriding
  • Creating Data Classes
  • Using Singletons and Companion Objects
  • Using Enumerations
  • Grouping Classes into Packages
  • Using Imports
  • Implementing Information Hiding
  • Using Getters and Setters
  • Implementing Visibility Modifiers
  • Understanding Generics
  • Implementing a Generic Stack
  • Using Generic Functions

Android App Development Using Kotlin

  • Setting Up the Tools for Android Development
    • Installing Android Studio
    • Starting a New Project
    • Setting Up the Emulator
    • Setting Up the Library
  • Setting Up Kotlin in Android
  • Working with the Hello Android Framework and Android SDK Tools
  • Developing an Android App Using Kotlin
    • Using ListActivity and ListView
    • Using Intents and Intent Filters
    • Working with Custom Views
    • Using Layout Managers
    • Handling Web Services and API’s
    • Dealing with Android Services
    • Working with SQLite Database
    • Using Content Providers
    • Writing Adapters
    • Implementing Dialogs and Alerts (Toasts)
    • Designing Your UI
      • Options and Context Menus
      • WebView
    • Implementing Android Notifications
  • Building a Customized Responsive Android App Using Kotlin
  • Publishing Your Android Application to Google PlayStore

iOS App Development Using Kotlin

  • Overview of XCode 9 Features and Architecture
  • Overview of Swift 4 Features and Architecture
  • Comparing Similarities and Differences of Kotlin and Swift
    • Basics
    • Arrays
    • Dictionaries
  • Working with Web Services
  • Performing Data Management
  • Working with Variables, Constants, and Swift Data Types
  • Optimizing the iOS User Experience through UX and UI Design
  • Adding User Interaction for Improved User Experience
  • Optimizing Performance
  • Debugging an iOS App
  • Building a Customized Responsive iOS App Using Kotlin
  • Publishing Your iOS Application to the Apple AppStore

Troubleshooting

Summary and Conclusion

Kivy: Building Android Apps with Python Training Course

Duration

7 hours (usually 1 day including breaks)

Requirements

  • A basic knowledge of Python
  • A basic understanding of software engineering concepts
  • Primary to intermediate level programming skills

Audience

  • Programmers or developers with Python knowledge who want to develop multi-touch Android apps using the Kivy framework
  • Android developers with Python knowledge

Overview

Kivy is an open-source cross-platform graphical user interface library written in Python, which allows multi-touch application development for a wide selection of devices.

In this instructor-led, live training participants will learn how to install and deploy Kivy on different platforms, customize and manipulate widgets, schedule, trigger and respond to events, modify graphics with multi-touching, resize the screen, package apps for Android, and more.

By the end of this training, participants will be able to

  • Relate the Python code and the Kivy language.
  • Have a solid understanding of how Kivy works and makes use of its most important elements such as, widgets, events, properties, graphics, etc.
  • Seamlessly develop and deploy Android apps based on different business and design requirements.

Format of the course

  • Part lecture, part discussion, exercises and heavy hands-on practice

Course Outline

To request a customized course outline for this training, please contact us.