15 May 2020 03:41 PM
We want to instrument a iOS mobile application buil on SwiftUI. Will this work nicely with Dynatrace mobile app SDK?
Solved! Go to Solution.
15 May 2020 04:17 PM
Can find only a bit on this internally but it looks like it's not something that we will auto-instrument at least not at this time. But since it's just Swift I see no reason you couldn't manually instrument it using the iOS OneAgent SDK.
18 May 2020 06:59 AM
I can confirm that pure SwiftUI is not yet supported, auto-instrumentation will not work for most UI elements and needs to be performed manually. Webrequest instrumentation will still work, but automatic linking to lifecycle action will not work for pure SwiftUI apps. In some scenarios automatic linking to manual actions might work. The SDK for manual instrumentation will work.
19 May 2020 07:24 AM
Thanks for your input!
07 Sep 2022 03:21 PM - edited 26 Sep 2022 12:00 PM
With the latest release of the iOS agent (8.249) we have implemented auto-instrumentation of SwiftUI. Further improvements are on the way.
For more info please visit the documentation.
14 Jul 2025 03:21 PM
Hi,
I am trying to override the captured control titles. I saw on the documentation the properties dtxCustomControlName, dtxCustomCellName and dtxCustomCellName.
Is there anything for SwiftUI?
I want to display something better than "Touch on CollectionViewCell @0:1" for example.
Thanks
14 Jul 2025 03:51 PM
Did you check our documentation in that regard? Is there any specific feature missing that you're looking after? https://docs.dynatrace.com/docs/observe/digital-experience/mobile-applications/instrument-ios-app/in...
14 Jul 2025 04:04 PM - edited 14 Jul 2025 04:04 PM
I did check this documentation before. I saw the option:
Button("Login", action: {
/* perform login */
}).withCustomInstrumentationConfig(.useControlName("Login Button"))
But when I try to use useControlName, it says that is has not member with this name.
I checked the SwiftUIInstrumentationConfigParam and I only found those three options: skipInstrumentation, useDefaultControlName, doNotReportStateVariable
How do I set my own control name?
Thanks
14 Jul 2025 04:59 PM
The useControlName property was introduced in the 8.317 release of the iOS agent. This will work for most of the instrumented controls, such as buttons, toggles, pickers, sliders, etc.
However, in your case, "Touch on CollectionViewCell @0:1" is an action that is generated by the UIKit instrumentation of UICollectionView, which exists under the hood when you create a SwiftUI List. Currently, this naming can't be modified.
14 Jul 2025 06:40 PM
Is it a limitation from SwiftUI? Or is something that I can expect support from Dynatrace in the future? Thanks