Deploy an App via YAML

I’ve noticed that when I deploy an app via the user interface it creates an object of type: App

I’d really like to be able to record in git all of my app configurations in a way that would allow me to create them from scratch by importing App yaml.

Is there a way to do this?
Is there any documentation which describes a minimal App?

Should I be using some other tool for this? (All of our applications have helm-charts.)