
This video will give you an overview about the course.
The aim of this video is to explore the best practices of setting up your project.
Start your Kotlin project
Find out about the importance of your package name
Learn to decide the best API number according to your projects
The aim of this video is to explore the layout editor and create your layouts faster.
Create your empty layout
Explore the layout editor and its options
Learn to preview your design in development
The aim of this video is to explore Android studio's configure component to create fragments.
Create your fragment and its related XML at the same time using Android Studio's configure component
Explore the support library and platform to create fragments
Inflate your fragment's layout
The aim of this video is to display your fragment statically inside an activity.
Define your fragment inside your activity
Find out when to use static fragments
Display your fragment inside your activity
The aim of this video is to help you understand fragment's lifecycle, their execution order, and implementation.
Explore fragment lifecycle and learn about your fragment’s visibility
Explore the order of lifecycle events execution
Explore each lifecycle event in detail
The aim of this video is to help you explore the best ways to communicate between your activity and fragment within their life cycles.
Explore how an activity’s lifecycle affects its attached fragment
Explore the order of lifecycle events execution
Learn to coordinate with your activity
The problem with inflating your fragment inside activity xml is that they are static. In this video, we will explore more dynamic solutions.
Inflate your fragment within your activity
Display your fragment on emulator
Explore fragment's transaction
The aim of this video is to explore how to add and remove your fragment.
Add your fragment within onclick event
Remove your fragment within onclick event
Learn how to handle and issue fragments
The aim of this video is to learn how to replace your fragment.
Learn to replace fragments constantly
Explore how to make your UI more dynamic
Explore fragment replacement via fragment transaction
Configuration changed might cause user session loss or in worse, app crash. In this video, we will learn to handle configuration changes while adding, removing, and replacing fragments, as safe as possible.
Dive deep into configuration changes concept
Learn to handle configuration changes while adding, removing, and replacing fragments
Learn to handle configuration changes by TAG and ID of your fragment
User Back button click while in process, might cause user session loss or in worse, app crash. In this video, we will explore the concept of back stacks deeply and will handle back button.
Dive deep into back stack concept
Learn to handle back button press
The aim of this video is to help you understand fragment's communication with an activity using event callbacks.
Learn how to find a view from the activity and the fragment
Explore the callback concept and the best times to use it
Explore call back events and learn to use them for communicating between activity and fragment
The aim of this video is to help you understand fragment's communication with activity using Bundles.
Explore the Bundle concept
Explore the Argument concept
Pass an argument to communicate with your fragment
The aim of this video is to help you understand the fragment's communication with activity using factory method.
Learn the factory pattern
Use factory pattern to communicate with your fragment
Explore the usage of interfaces in factory method while communicating with fragments
The aim of this video is to help you understand the communication between fragments within the activity.
Pass data from one fragment to the container activity and receive it from another fragment
Explore the log concept and the best ways to use it
Use factory method and event callbacks at the same time to communicate with fragments
The aim of this video is to explore the view model.
Learn about view model scope
Explore the relation between your activity or fragment lifecycle and the view model
Add view model to your project
The aim of this video is to help you understand the communication between fragments using view model.
Implement view model in your project
Pass data using a view model class
Explore the benefits of using the view model
The aim of this video is to help you explore screen compatibility.
Learn about the features to make a screen compatible UI
Learn to disable the compatibility
The aim of this video is to help you understand how you can measure screen size programmatically.
Measure screen width
Measure screen height
Measure screen pixel density
The aim of this video is to help you understand how Android system handles different screen sizes.
Create a master-detail application
Specify width limitation for your layout
Change your layout at runtime
The aim of this video is to implement a fragment dialogue.
Explore the full screen concept
Create the layout for the full screen
The aim of this video is to learn how to implement ViewPagers.
Implement a ViewPager
Create an adapter for your ViewPager
Handle the back button with ViewPager
The aim of this video is to help you explore services.
Learn about process, thread, and service
Learn what services are
Explore service types
The aim of this video is to help you understand service lifecycle.
Explore lifecycle callbacks
Define your service in the manifest
The aim of this video is to help you understand how you can create and start a service.
Learn to start a service from another component
Learn to trace the events of a service
Explore onstartcommand flags
The aim of this video is to help you explore IntentServices.
Explore the intent service events
Explore how intent services handle multithreading
The aim of this video is to help you understand how to handle long-running tasks with services.
Add a thread to the code and see how the app crashes
Create an async task to handle the process
See the result
The aim of this video is to help you explore bound services.
Learn to connect to your bound service within your activity
Customize your service to make it boundable
The aim of this video is to help you understand how you can use messengers in your application.
Learn to connect to your messenger within your activity
Learn to create a messenger handler
Learn to pass data to you messenger class
The aim of this video is to help you understand how to implement AIDL file.
Learn to create an AIDL file
Learn to bound to an AIDL service
Learn how to change your service to bound to an AIDL
The aim of this video is to help you learn inter process communication (IPC).
Explore the IPC concept
Learn to choose between AIDL and messenger
The aim of this video is to learn how to implement a foreground service.
Create a notification within your service
Learn to handle creating a foreground service for Android O
The aim of this video is to help you explore the initial project that we are going to develop.
Learn how to create a basic ToDo list app
Learn how to create a layout for your fragment dialog
The aim of this video is to help you add a dialog fragment to your project and pass the input value to your activity.
Learn to create a class for your fragment dialog
Learn to get input from the fragment dialog
Learn to pass data from the fragment dialog to the activity
The aim of this video is to help you interact with your service.
Pass the data in your service
Start your service
The aim of this video is to help you interact with your service from the fragment.
Pass data to your service
Display your received data as a notification
This video gives an overview of the entire course.
The video starts with section overview and thereafter introduces various Android Components and why they are called building blocks of Android apps.
Learn about the different building blocks in Android
In this video, we will get a brief introduction to the Android Components such as Activity, Broadcast Receiver and Content Provider. Using practical apps example get clarity about.
Understand what is Activity
Understand what is Broadcast Receiver
Understand what is Content Provider
In this video, we will get familiar with what is a Service in context of day to day usage of applications.
Understand Google Playstore update apps without affecting user’s current Activity
Understand how a Service consumes device memory (RAM ) in the background
Understand the examples of Service
This video gives you overall idea of various categories of Service.
Explore Started Service
Understand the two sub-categories of Started Service
Learn what is Bound Service
In this video, we will understand that a Started Services is categorised into Foreground Service and Background Service.
Explore examples of Foreground Service: such as Music Player app, updating apps from playstore and so on
Study examples of Background Service such as Gmail, WhatsApp or Facebook app
Learn key differences between Foreground and Background Service
In this video, we will understand that Threads and Processes are very crucial concepts in order to understand the concept of Service. The video is a prerequisite to upcoming sections.
Understand what is a Thread and its types such as Main ( UI Thread ) and Worker (Background Thread)
Learn what are short and Long running operations and how a Thread is used to accomplish such operations
Understand how a Thread and Process is created when an application is launched
In this video, we will see how apart from Service, a background task can be executed using JobScheduler API or Job Dispatcher API.
Study the various ways to perform background operations
In this video we will get Section overview and setup project in Android Studio.
Understand the initial Project setup
In this video we will, learn to create Background Service step by step.
Explore various methods such as onCreate, onStartCommand, onDestroy and onBind
In this video, we will explore various scenarios in which you can start or stop a Service.
Understand what happens if you start a Service twice
Understand what happens if you stop a Service twice
In this video, we will learn about few predefined flags that can be returned in onStartCommand method.
Explore the return flags that can be used in onStartCommand()
In this video, we will learn how does Started Service uses Main Thread to execute tasks.In this video, we will learn about the MVVM Architecture.
Explore how system generates ANR when UI is blocked
In this video, we will see how AsyncTask is one of the most primitive way to perform long running task in Background.
Learn how one can use Aysynctask with Background Service
In this video, we will see how IntentService is an advanced form of Background Started Service and it uses worker thread to perform long running operations without blocking the UI.
Learn how IntentService is different from Started Background Service
Understand what are the important method names that one needs to override while implementing IntentService
Learn about the properties of IntentService
In this video, we will learn to create IntentService step by step.
Get hands-on on IntentService in Android Studio
In this video, we will Explore the key differences between a Started Background Service and the IntentService.
List the differences between Started and IntentService
In this video, we will understand that, by default, a Background Service has no mechanism to send back results to the calling components.
Understand our problem statement
Learn how to send data via Intent to an IntentService
In this video, we will visually explore how to broadcast event from a Service and receive result in the calling component such as Activity.
Understand how to use Local broadcasts to interact with Background Service
In this video, we will Implement Local Broadcasts to send back results to the calling component.
Explore how to pass data from a Background Service to the Activity
In this video, we will see how a Started Service has its own Lifecycle similar to an Activity.
Explore visually the execution of Lifecycle methods
Learn what is Active Lifetime of a Started Service
In this video, we will Explore theoretically the importance of Service lifecycle methods.
Understand the significance of onCreate and onDestroy
Understand the Importance of onStartCommand and onHandleIntent
In this video, we will understand that using Started Service can jeopardise app’s security.
Learn the security issues while using Started Service
Understand the guidelines to be followed to make our app secure
In this video, we will see that there are certain restriction imposed on Background Services from Android Oreo onwards.
Understand the Limitations of Background Services
Learn the Solution of all those limitations
In this video, we will practically check out what are the Background Service limitations.
Explore limitations in Pre-Oreo and Oreo emulator
In this video, we will understand the solution of the limitations imposed on Background Services from Oreo onwards.
Understand how to implement JobIntentService
Learn the advantages of JobIntentService.
In this video, we will Integrate JobIntentService in our application.
Run background operations using JobIntentService
Test application in both Pre-Oreo and Oreo devices.
In this video, we will summarize the course along with points to remember for best practices for implementing Background Services in our apps.
Summarize the topics covered so far
Learn the best practices in terms of compatibility
In this video, we will conclude the course with topics to explore after this course.
Conclude the course with some best practices to be followed
Are you willing to learn the basic functionality of how services and fragments work, build applications working in the background, by exposing you to using Android Background Service capabilities effectively? Then this course is for you
This hands-on course you will start by getting familiar with the fundamental concepts of fragments and adding fragments to an activity, fragment transactions & much more. Then you will get hands-on with the various kinds of services, threads, and processes, and their life cycle; then you'll move on to inter-process communication. Moving further you will learn to use IntentService, which utilizes a worker or background thread to execute tasks, explore what's new in the Background Service in Android Oreo and check out its limitations, and then overcome those limitations.
Contents and Overview
This training program includes 2 complete courses, carefully chosen to give you the most comprehensive training possible.
The first course, Hands-On Android Application Components: Services and Fragments you will start by getting familiar with the fundamental concepts of fragments and adding fragments to an activity, fragment transactions, their lifecycle, and how they communicate with activities. You'll also explore fragment stability during screen rotation, and screen sizes. Then you will learn about services, another application component that will continue to run in the background even if the user switches to another application. Here you will get hands-on with the various kinds of services, threads, and processes, and their life cycle; then you'll move on to inter-process communication. Lastly, you will implement everything you've learned and built a TODO application; you'll learn to pass and manage arguments and master the communication flow between services and fragments in multiple ways. By the end of this course, you'll have a very strong foundation in Android fragments and Android services.
The second course, Hands-on Background Services in Android you will learn a variety of topics like starting and stopping your service, interacting with the background service and creating and sending a work request, exploring the lifecycle of your service along with understanding the security issues in using it. You will learn to use IntentService, which utilizes a worker or background thread to execute tasks. You will explore what's new in the Background Service in Android Oreo and check out its limitations, and then overcome those limitations. You will then learn the best practices and how to deal with problems and issues that might arise. By the end of the course, you will have a strong foundation in background services in Android and will be able to build the functionality you need to ensure you won't drain the battery excessively, compromise the user's security, consume too much data, or hamper the device's performance.
About the Authors:
Mona Vafa is an energetic mobile developer with 4+ years' robust code experience in Java-Android and iOS. She enjoys every minute spent developing apps on her computer. There is always something new to learn so what she loves the most is being challenged and sharing her experience. Currently, Mona is working as a freelance software developer and is a proud online trainer. Apart from this, she loves to travel, explore new places, and read books.
Book of Brains creates and distributes high-quality technology training content. We aim to teach technology the way it is used in industry and the professional world. Our trained team of professionals delivers hands-on workshops and training content for mobile as well web development technologies. We constantly monitor current industry trends and keep our training materials and workshops up to date.