280 Tutorial Topics

Remove Filter
Member Avatar for
Member Avatar for dimitrilc

## 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 …

1
100
Member Avatar for dimitrilc

## 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 …

Member Avatar for Klint
2
210
Member Avatar for dimitrilc

## 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 …

3
282
Member Avatar for dimitrilc

## 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 …

1
291
Member Avatar for dimitrilc

## 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 …

1
179
Member Avatar for dimitrilc

## 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 …

Member Avatar for pritaeas
3
209
Member Avatar for dimitrilc

## 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 …

Member Avatar for dimitrilc
2
184
Member Avatar for Reverend Jim

## 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 …

Member Avatar for Reverend Jim
2
431
Member Avatar for dimitrilc

## 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 …

2
243
Member Avatar for dimitrilc

## 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 …

2
140
Member Avatar for Dani

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 …

1
144
Member Avatar for rahull.singh098

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 …

Programming mssql mysql sql
Member Avatar for pritaeas
0
98
Member Avatar for dimitrilc

## 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** …

3
718
Member Avatar for dimitrilc

## 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 …

1
947
Member Avatar for Snehashish Das

## 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) …

1
156
Member Avatar for Yacine Si Tayeb

# 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 …

1
119
Member Avatar for dimitrilc

## 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. …

1
337
Member Avatar for dimitrilc

## 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 …

1
103
Member Avatar for Dani

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', …

Member Avatar for Dani
7
285
Member Avatar for dimitrilc

## 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 …

1
515
Member Avatar for dimitrilc

## 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 …

1
351
Member Avatar for dimitrilc

## 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 …

2
2K
Member Avatar for dimitrilc

## 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 …

2
265
Member Avatar for dimitrilc

## 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 …

2
396
Member Avatar for dimitrilc

## 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 ## …

2
125
Member Avatar for dimitrilc

## 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 …

1
186
Member Avatar for dimitrilc

## 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 …

1
258
Member Avatar for dimitrilc

## 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 …

1
645
Member Avatar for dimitrilc

## 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 …

1
2K
Member Avatar for dimitrilc

## 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 …

2
119
Member Avatar for dimitrilc

## 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 …

2
530
Member Avatar for dimitrilc

## 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 …

2
507
Member Avatar for dimitrilc

## 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 …

2
218
Member Avatar for dimitrilc

## 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 …

Member Avatar for Iqra_18
3
177
Member Avatar for dimitrilc

## 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 …

Member Avatar for Iqra_18
2
369
Member Avatar for dimitrilc

## 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 …

1
1K
Member Avatar for dimitrilc

## 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. …

1
345
Member Avatar for dimitrilc

## 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 …

1
655
Member Avatar for dimitrilc

## 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 …

1
1K
Member Avatar for dimitrilc

## 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 …

1
208
Member Avatar for dimitrilc

## 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 …

1
3K
Member Avatar for dimitrilc

## 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 …

3
7K
Member Avatar for dimitrilc

## 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 …

1
1K
Member Avatar for Dani

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, …

4
934
Member Avatar for dimitrilc

## 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 …

2
2K
Member Avatar for dimitrilc

## 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 …

4
1K
Member Avatar for dimitrilc

## 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 …

2
604
Member Avatar for dimitrilc

## 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, …

2
1K
Member Avatar for dimitrilc

## 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, …

2
2K
Member Avatar for dimitrilc

## 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 …

2
228

The End.