What is best practice as of 2019 for storing secrets inside applications?
Best practice? Don't do it.
Its hard to answer your question without any context - what sort of "app"? What are the constraints? What is the threat model? What usages for the secrets?
If you are authenticating the user's interaction with the app, and the built-in capabilities of the client are insufficient, and you need to provide local then stored a suitably hashed representation of the user's passwords as data.
For anything which needs to be maintained as clear text, and which you cannot control the rotation of, and where your app will never see the user's password (or needs to run without an active session) and the secrets need to be available offline then encrypt the data using a master key, and for preference rotate the master key regularly (which is starting to sound a lot like building the kind of capability provided in most modern runtime environments). But this is a very undesirable situation - so should be the last option you choose.
If the app will only be used online (or only requires access to the secrets when online) then use an online store for the secrets authenticated by a changing token stored on the device.
Thee are so many other options I could be here all day painting scenarios and proposing what I think is the best solution.