Posts
 
Reputation
Joined
Last Seen
Ranked #830
Strength to Increase Rep
+2
Strength to Decrease Rep
-0
100% Quality Score
Upvotes Received
227
Posts with Upvotes
121
Upvoting Members
19
Downvotes Received
0
Posts with Downvotes
0
Downvoting Members
0
6 Commented Posts
11 Endorsements
Ranked #153
~63.9K People Reached
About Me

My name is Dimitri Nguyen. I am a Java Developer specializing in backend development on the Java/Spring/MySQL stack.

I can also work on the frontend using Angular/Typescript/JS/HTML/CSS and native Android with Kotlin.

PC Specs
Raspberry Pi 4
Favorite Tags
Member Avatar for dimitrilc

## Introduction ## In Android Studio, we can run multiple tests in parallel across multiple devices using the dropdown menu. ![Screen_Shot_2022-09-26_at_3.02.02_PM.png](https://static.daniweb.com/attachments/4/a7966192c6b1c265a65010a9d1fa236d.png) Running instrumented tests this way is very convenient during development, but there is a problem with this method when your tests are run on a remote build server: * …

Member Avatar for John_387
2
593
Member Avatar for dimitrilc

## Introduction ## In a previous tutorial, we learned [how to create a notification on Android](https://www.daniweb.com/programming/mobile-development/tutorials/536756/android-native-how-to-create-a-notification#post2282507). In that tutorial, we did not have to request any permission because applications did not need permission to post notifications on Android 12 and below. It has been almost a year since the release …

1
440
Member Avatar for dimitrilc

## Introduction ## In a previous tutorial, we learned [how to set an exact alarm](https://www.daniweb.com/programming/mobile-development/tutorials/537920/android-native-how-to-launch-activity-from-an-exact-alarm). A permission called `SCHEDULE_EXACT_ALARM` was used in that tutorial. Initially, I thought that it was only a normal install-time permission, but I have recently found out that this specific permission also belongs to a rare …

1
266
Member Avatar for dimitrilc

## Introduction ## When working with ViewModels, instead of using the default, it is best practice that we inject coroutine dispatchers instead of hard-coding them. The reasoning behind this is that it is easier to switch to a testable dispatcher in tests. In this tutorial, we will learn how to …

1
894
Member Avatar for dimitrilc

## Introduction ## When working with RecyclerView, sometimes we are required to scroll the RecyclerView in code, especially after addition of a list item. In this tutorial, we will learn how to scroll to specific positions on a RecyclerView. ## Goals ## At the end of the tutorial, you would …

1
408
Member Avatar for dimitrilc

## Introduction ## Taking what we already learned from the previous tutorials about drawing custom shapes and animating along elements along a Path. In this tutorial, we will combine what we learned about animation so far to create an alternating Yin Yang symbol. To those unfamiliar with the Yin Yang …

1
86
Member Avatar for dimitrilc

This is the second part of a series. The first part can be found [here](https://www.daniweb.com/programming/mobile-development/tutorials/538948/android-native-animate-alternating-yin-yang-symbol-part-1). ## Draw The Yin ## Now that we have the Yang drawn, we will continue onto the Yin. 1. Add the Paint for the Yin into the YingYang class. We will use a *stroke* style …

1
71
Member Avatar for dimitrilc

## Animation Strategy ## Welcome to part three of the tutorial; part two can be found [here](https://www.daniweb.com/programming/mobile-development/tutorials/538947/android-native-animate-alternating-yin-yang-symbol-part-2). For this animation, I have chosen to redraw the YinYang Drawable at each frame. This means recreating the YinYang object with different constructor parameters on every frame (the current YinYang implementation has a …

1
65
Member Avatar for dimitrilc

## Introduction ## Welcome to part two of the tutorial. Let us continue to learn how to animate views along a Path. Part one can be found [here](https://www.daniweb.com/programming/mobile-development/tutorials/538944/android-native-animate-view-along-path-part-1). ## Important Coordinates ## Both the sun and the moon in our app can occupy any one of the three important coordinates …

1
41
Member Avatar for dimitrilc

## Introduction ## In the last tutorial, we learned [how to draw complex shapes](https://www.daniweb.com/programming/mobile-development/tutorials/538943/android-native-draw-complex-shapes-using-the-path-class#post2288657) using a Path object. Using the concepts from the previous tutorial, we will now attempt to animate Views to move along a custom Path. ## Goals ## At the end of the tutorial, you would have …

1
74
Member Avatar for dimitrilc

## Introduction ## In the last tutorial, we learned [how to draw basic shapes](https://www.daniweb.com/programming/mobile-development/tutorials/538942/android-native-draw-basic-shapes-on-canvas) on Android using premade methods from the graphics library. In this tutorial, we step up the difficulty a notch by learning how to draw using the Path class. The Path class allows for drawing of technically …

1
298
Member Avatar for dimitrilc

## Introduction ## Even though the built-in vector library included in Android Studio contains many icons readily for use, you might eventually run into a situation where a custom icon is needed. In this tutorial, we will learn how to create our own icons from basic shapes drawn on a …

1
216
Member Avatar for dimitrilc

## Introduction ## Android includes many options to add animations to your app. In this tutorial, we will learn how to add a type of animation called frame-by-frame animation into our Android app. ## Goals ## At the end of the tutorial, you would have learned: 1. How to add …

1
201
Member Avatar for dimitrilc

## Introduction ## Every Android View has a `layoutParams` property. This property tells the parent ViewGroup how a View wants to be laid out; it is also often used to change the size of a View. In this tutorial, we will learn how to animate Views while modifying their `layoutParams`. …

2
170
Member Avatar for dimitrilc

## Introduction ## Cards are a common widget for Material 3-themed applications. Expanding a card after the user performs a click action is a very common behavior. While Android can automatically render the new expanded card automatically, we will have to implement our own animation if we want a smooth, …

2
365
Member Avatar for dimitrilc

## Introduction ## When working on Espresso tests, you might have run into a situation where you need to verify what your app does when an activity is in a specific [**Lifecycle**](https://developer.android.com/reference/androidx/lifecycle/Lifecycle) state. In this tutorial, we will learn how to achieve this by using the **ActivityScenario** class. ## Goals …

2
40
Member Avatar for dimitrilc

## Introduction ## In the last tutorial, we learned [how to send messages to a RabbitMQ queue](https://www.daniweb.com/programming/web-development/tutorials/538621/how-to-send-messages-in-rabbitmq). In this tutorial, we will learn how to consume those messages in Kotlin. ## Goals ## At the end of the tutorial, you would have learned: 1. How to use the RabbitMQ Java …

1
2K
Member Avatar for dimitrilc

## Introduction ## In the last tutorial, we learned [how to set up our own RabbitMQ exchanges and queues](https://www.daniweb.com/programming/web-development/tutorials/538620/how-to-create-exchanges-and-queues-in-rabbitmq-server). In this tutorial, we will learn how to send messages to our custom **daniweb-exchange**. ## Goals ## At the end of the tutorial, you would have learned: 1. How to send …

1
451
Member Avatar for dimitrilc

## Introduction ## In the previous tutorial, we learned how to [set up our own RabbitMQ server](https://www.daniweb.com/programming/web-development/tutorials/538619/how-to-set-up-a-rabbitmq-server-in-docker). In this tutorial, we will learn how to create our own exchange and queue. ## Goals ## At the end of the tutorial, you would have learned: 1. How to create your own …

1
256
Member Avatar for dimitrilc

## Introduction ## **AMQP** (*Advanced Message Queuing Protocol*) is a popular protocol used for communication between messaging middleware and clients. At the time of this writing, the latest version of the AMQP is 1.0, but we will focus on version **0-9-1** instead. 0-9-1 is the *default* version shipped with the …

2
194
Member Avatar for dimitrilc

I came across this [article](https://developer.ibm.com/articles/messaging-protocols/) from IBM. It states that a **protocol** describes the **format of the bytes** that are transferred over the wire. > A protocol is sometimes referred to as the wire protocol, and it describes the format of the bytes that are transferred over the wire, and …

1
45
Member Avatar for dimitrilc

## Introduction ## In the [last Selenium tutorial](https://www.daniweb.com/programming/software-development/tutorials/538447/basic-interactions-with-web-elements-in-selenium), we learned how to perform basic actions such as clicking and sending keystrokes. In this tutorial, we will learn how to do another action, which is the scrolling action. ## Goals ## At the end of the tutorial, you would have learned: …

Member Avatar for Klint
2
140
Member Avatar for dimitrilc

## Introduction ## Welcome to part 2 of the Selenium scrolling tutorial. Please follow the directions in [part 1](https://www.daniweb.com/programming/software-development/tutorials/538448/perform-scrolling-actions-in-selenium-part-1) to set up your project. In part 1, we learned how to let Selenium decide how it wants to scroll to elements. In this part 2, we will learn about a …

Member Avatar for Klint
2
204
Member Avatar for dimitrilc

## Introduction ## When working with Selenium, you might have run into a situation where you have to wait for long-running tasks to complete before you can interact with elements. Fortunately, Selenium has support for such situations via its many *waits* API. In this tutorial, we will learn how to …

2
67
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
71
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
183
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
246
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
158
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
131
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
174