I’ve been working on an app but it’s been very difficult without debugging tools.
What do people use to debug their code? All I’ve been doing is inserting a ton of logDebug lines. Is that the best approach or is there any tools that help me out in my app creating adventure?
If you don't have anything Hubitat-specifc, you could put parts of your code in a regular Groovy IDE. This may be useful if you have a specific method you're trying to test that doesn't need anything provided by Hubitat's sandbox environment, for example.
Otherwise, I think you're doing about all you can from inside the Hubitat environment: a log.debug (or similar; sometimes I use other log levels that stand out more at a glance) statements can give you can idea of what runs when and can be used to spit out variable or setting values, which can also be helpful. I usually use a third-party code editor, but that's my preference for other reasons and doesn't offer any specific advantage here. (This is more or less how Hubitat staff wrote all the built-in apps, as far as we've been told, so we have similarly been told it should be adequate for the task. I wouldn't count on anything changing in thus regard soon; such requests have come up occasionally.)