Its just a copy-paste from one of the adobe sites explaining the differences between Touch and Classic UI
The dialog box created for the Touch user interface is defined using nodes of type un: structured. You determine the type of control in the Touch UI dialog by setting the node sling: resourceType property. For example, to define a text field in the Touch UI dialog box, set the sling: resourceType property to granite / ui / components / foundation / form / textfield.
Note: When creating a dialog for the Touch UI view, you determine the type of control (for example, a text field) by setting the sling: resourceType property. In contrast, when building a dialog for a classic view, you determine the type of control by setting its xtype property. You set both properties in the following sections. See the Granite Link section for a list of all granite objects.
The following figure shows the JCR nodes of the component that was created in this development article.

As you can see in the previous illustration, there are two JCR branches that are associated with the component dialog:
/ applications / mywebsite2 / components / herotext2 / nh: dialog / Applications / mywebsite2 / components / herotext2 / dialog
Both of these dialogs are required when developing the AEM component. The first branch defines the component dialog used in the Touch UI environment. The second branch defines the component dialog used in the classic AEM view. Therefore, to use the component in both AEM views, you need to create JCR node branches.
So ... in summary, you need to define two dialogs if you want them to work with both user interfaces.
source share