280 Tutorial Topics
Remove Filter ![]() | |
## Introduction ## When creating a Selenium test, it is common for developers to want their scripts to take the same actions as a real human user would take. These action often includes clicking on elements or inputting text data into forms. In this tutorial, we will learn how to … | |
## Introduction ## While **Functional Interfaces** and **Function Types** are used to declare the types of a function, **Function Literals** create the actual implementations of these types. In this tutorial, we will learn what Kotlin **Function Literals** are and how to create them. ## Goals ## At the end of … | |
## Introduction ## While creating Selenium tests, you might have found that inspecting elements manually using the web browser’s inspector could be tedious. Even after you have found the element, you still have to go through the pain of looking up the correct **xpath** syntax for this specific element. To … | |
## Introduction ## Selenium is one of the most popular web browser automation tools out there. There is no restriction on what you can use Selenium for. You can use it to build a GPU scalping bot (*please don’t*) or build e2e tests for your website. In this tutorial, we … | |
## Introduction ## Whenever I want to express method parameters, return type or variables as a *method* in Java, I often find myself having to do a bit of work: 1. If I cannot remember which pre-made **functional interface** to use, then I will have to look up the list … | |
## Introduction ## The Hyper Text Transfer Protocol (`HTTP`) is one of the most common communication protocol on the internet. There are three major versions of HTTP that you should be aware of: **1.1**, **2.0**, **3.0**. Versions 1.1 and 2.0 are widely used today, so this tutorial mainly focuses on … | |
## Introduction ## When working on Java applications, it is very likely that you will run into JDBC at some point. While you are unlikely to have to work directly with JDBC when using frameworks, it is still important to know how the connection is established and how queries are … | |
## Introduction I recently bought a new laptop. Since I haven't used VB.Net in years (nothing but Python now) I did not install Visual Studio. That meant rewriting all my VB apps in Python/wxPython. One of my most often used apps was a shell extension I wrote to add a … | |
## Introduction ## When following tutorials on Daniweb, you might have run into one that requires knowledge about **Dependency Injection** as a prerequisite. People might also sometimes use the term **Inversion of Control** interchangeably with DI. These terms are related to one another, but they are not the same. In … | |
## Introduction ## Java annotations are often used to provide extra information for compilers, IDEs, and build tools. The extra information is often used to enhance the development cycle, such as reducing boilerplate, eliminating repetitive code, or warning against unsafe usage or mistakes. This tutorial aims to teach you the … | |
A PHP array is essentially a stack of elements that can be used to denote a list, represent a collection of variables, etc. You can easily use loops to iterate over each element of an array. As PHP is a loosely typed language, all of the elements of an array … | |
The term SQL stands for Structured Query Language, it's a programming language that's used to update and communicate with the database. SQL skills are indispensable and are in demand as with the boost in technology, data is piling up. And, In today's world this data has become a necessity for … | |
## Introduction ## In Android projects, **DataSource** classes act as entry points to interacting with local or remote data sources. Their dependencies tend to be HTTP clients, the database, or DAOs, and their dependents are usually **Repository** classes. In this tutorial, we will learn how to provide a fake **DataSource** … | |
## Introduction ## In this tutorial, we will learn how to create an instrumented test for Navigation Components. ## Goals ## At the end of the tutorial, you would have learned: 1. How to test Navigation Components. ## Tools Required ## 1. Android Studio. The version used in this tutorial … | |
## Traversal In Binary Tree : ## **Preorder traversal (NLR) :** 1. Visit the root(N) 2. Traverse the left subtree of root in preorder(L) 3. Traverse the right subtree of root in preorder(R) **Inorder Traversal (LNR) :** 1. Traverse the left subtree of root in inorder(L) 2. Visit the root(N) … | |
# Introduction # As we move into 2022, businesses will continue to look for ways to become more data-driven. This means that knowing how to use Structured Query Language, commonly called SQL or 'Sequel', will remain an essential skill for data scientists, analysts, and developers. In this post, we'll provide … | |
## Introduction ## In this tutorial, we will learn how to load data asynchronously into a **ListAdapter** (*a subclass of **RecyclerView.Adapter***). ## Goals ## At the end of the tutorial, you would have learned: 1. How to serve asynchronous data to a **ListAdapter**. ## Tools Required ## 1. Android Studio. … | |
## Introduction ## In this tutorial, we will learn how to filter and validate Intents fired from the application under test. ## Goals ## At the end of the tutorial, you would have learned: 1. How to filter and validate Intents in Espresso tests. ## Tools Required ## 1. Android … | |
I just racked my brain for the past hour trying to fix a bug, and learned something new in the process. I always thought that the jQuery function `.data('key')` was a wrapper for `.attr('data-key')`. It turns out that's not the case! Take the example: `<div data-key="foo">`: I can use `data('key', … | |
## Introduction ## When working with Espresso tests, you might have found it hard to make Espresso wait for background tasks to complete before performing other actions or assertions. Fortunately, the classes in the Espresso **idling** package exist to cover this use case. In this tutorial, we will learn how … | |
## Introduction ## Starting from Android 10 (*API 29*), Android places many restrictions on how apps can launch activities from the background. There are a couple of exemptions, which can be found on this [list](https://developer.android.com/guide/components/activities/background-starts#exceptions). At the end of the list is the usage of the *dangerous* permission `SYSTEM_ALERT_WINDOW`. I … | |
## Introduction ## When working with Room, you might have run into a situation where you only want to update specific fields of an entity instead of replacing the entire row. In this tutorial, we will learn how to do this in two different ways. ## Goals ## At the … | |
## Introduction ## On the android platform, widgets provide a quick way to interact with your Apps. They are extremely useful at providing quick information without the user launching the app Activities themselves. Common use cases for homescreen widgets are weather, email, or banking information. In this tutorial, we will … | |
## Introduction ## In this tutorial, we will learn how to use **ConcatAdapter**. It is a great choice for displaying header or footer at the beginning or at the end of a **RecyclerView**. ## Goals ## At the end of the tutorial, you would have learned: 1. How to use … | |
## Introduction ## Rather than modifying the button widget’s appearance in code, it is possible to do this in an XML resource instead. In this tutorial, we will learn how to create two different types of specialized XML resource files for changing the **Drawable** and the color. ## Goals ## … | |
## Introduction ## The Android platform provides many different types of menus to be added to an Android app. In this tutorial, we will learn how to add the most common type of menu, an **Options Menu**. An **Options Menu** is one that appears at the right corner of the … | |
## Introduction ## The Android platform provides many different types of menus to be added to an Android app. In this tutorial, we will learn how to add **Contextual Menu**s to our app. ## Goals ## At the end of the tutorial, you would have learned: 1. How to add … | |
## Introduction ## Among all of the Android libraries, Paging 3 is perhaps one of the hardest to understand. Personally, I think the problem with Paging 3 are: 1. Developers need to learn a lot of custom classes before they can understand how Paging 3 works under the hood and … | |
## Introduction ## The Android Paging 3 library can operate in two modes, with an offline Room database as a source of truth or without one. In this tutorial, we will look at how to use Paging 3 with a local Room database. This tutorial expands on the previously published … | |
## Introduction ## Among the many ways to create your own View, extending an existing View is the simplest option. This is because you are inheriting pre-made attributes, drawing, and accessibility features. In this tutorial, we will learn how to create our own custom View by extending an existing View … | |
## Introduction ## In this tutorial, we will learn how to apply Material 3 colors and Dynamic Colors to our App. ## Goals ## At the end of the tutorial, you would have learned: 1. How to apply Material 3 colors. 2. How to enable Dynamic Colors. ## Tools Required … | |
## Introduction ## In Android development, UseCases are classes that encapsulate business logic that are often used in ViewModel classes. UseCases belong to the optional Domain layer in Android apps, so they are not required, but can reduce your ViewModel’s complexity and make your application easier to test. In this … | |
## Introduction ## When working with WorkManager, it is important to know how to provide input data to your Workers. In this tutorial, we will learn how to provide basic input data to a Worker as well as when Workers are chained together. ## Goals ## At the end of … | |
## Introduction ## If your App only need a simple way to play videos on Android, then **VideoView** (`android.widget.VideoView`) might just fit the bill. In this tutorial, we will learn how to use VideoView for video playback in our App. ## Goals ## At the end of the tutorial, you … | |
## Introduction ## Android provides many ways to perform background tasks, such as Services, WorkManager, or even threads. In this tutorial, we will learn how to create a Service for our Android app. ## Goals ## At the end of the tutorial, you would have learned: 1. How to create … | |
## Introduction ## When using a Worker (**from the WorkManager library**), you might have wondered how to inject dependencies with Hilt. In this tutorial, we will learn how to inject dependencies into our Worker. ## Goals ## At the end of the tutorial, you would have learned: 1. How to … | |
## Introduction ## Finding a View in Espresso tests can be quite confusing because there are so many matchers available. In this tutorial, we will learn how to find a View based on its sibling contents. ## Goals ## At the end of the tutorial, you would have learned: 1. … | |
## Introduction ## When working with Room, you might have wondered how to run multiple statements in a single transaction. Running multiple statements in one transaction has two main benefits: 1. Your statements can reuse the same connection. 2. They can all fail together if something goes wrong. Regarding the … | |
## Introduction ## When working with Room, you might have wondered how to describe one-to-many relationships between entities. In this tutorial, we will learn how to do just that. ## Goals ## At the end of the tutorial, you would have learned: 1. How to define one-to-many relationship for entities … | |
## Introduction ## There are many ways to describe relationships between Entities in Room, one of which is to embed an entity inside of another. When embedding an Entity, the columns of the embedded Entity are extracted as member columns of the enclosing entity. In this tutorial, we will learn … | |
## Introduction ## When working with Services on Android, you might have ran into an issue where you would like to: 1. Use a concrete implementation of a Service (*from a built-in or third party library*). 2. Make the Service lifecycle-aware so that you can use coroutines with it. Many … | |
## Introduction ## When working with Room, there might come a situation during bulk CRUD operations that it would be useful to add a Foreign Key to one of our tables. This provides two main benefits: cascading delete (*must be configured manually*) and enforcing data integrity on linked entities. In … | |
## Introduction ## If your Android Application uses Room, then you might have wondered how to prepopulate a Room database. In this tutorial, we will learn how to prepopulate a Room database. ## Goals ## At the end of the tutorial, you would have learned: 1. How to prepopulate a … | |
Suppose you have a php script where a user is prompted to enter a number. You then do something with that number ... you increment it, perform some other math calculation on it, search the database for records with the ID # the user passed in as a query string, … | |
## Introduction ## When working with music files, you might have wondered how to load display art from Audio files. In this tutorial, we will learn how to load thumbnails for audio files. ## Goals ## At the end of the tutorial, you would have learned: 1. How to load … | |
## Introduction ## When working with Hilt, you might have wondered how to inject ViewModels into your application. In this tutorial, we will learn how to inject ViewModels into your app Fragments. ## Goals ## At the end of the tutorial, you would have learned: 1. How to inject ViewModels … | |
## Introduction ## In Android development, reusable layouts can be used to reduce duplicate code across XML files. In this tutorial, we will learn how to reuse layout files, especially with View Binding enabled. ## Goals ## At the end of the tutorial, you would have learned: 1. How to … | |
## Introduction ## MediaPlayer (`android.media.MediaPlayer`) is a popular way to play media files, and combining it with a SeekBar can greatly improve the user experience. In this tutorial, we will learn how to synchronize a MediaPlayer progress to a SeekBar position. ## Goals ## At the end of the tutorial, … | |
## Introduction ## When working with a Room database, we are mostly restricted to save data using primitives (*and boxed primitives*). Reference types are not supported right out of the box, but can be enabled by creating additional [TypeConverter](https://developer.android.com/reference/androidx/room/TypeConverter). If you are familiar with ORM-light frameworks such as Spring JDBC, … | |
## Introduction ## In this tutorial, we will learn how to add swipe-to-remove and drag-to-reorder functionalities into RecyclerView. ## Goals ## At the end of the tutorial, you would have learned: 1. How to add swipe-to-remove and drag-to-reorder functionality to a RecyclerView. ## Tools Required ## 1. Android Studio. The … |
The End.