Where to ask for donations
A donate button in your interface is fine, as long as it doesn't disrupt the task the user is trying to accomplish. It needs to be notable yet not disturbing. Other common places are through your app menu, the about screen and the start-up screen.
I would avoid asking for user input for donations on start-up. It's fine if you display some message that donations are (more than) welcome in the loading screen, but don't require the user to confirm or decline a window. It's really annoying behaviour and will probably only decrease your chances of getting any donation at all.
When to ask for donations
I would relate it to the amount of usage of your app. You may not want to bother a first-time user with a request for donations, they first need to learn if your app is worthing using at all. Also, someone who uses your app as a significant part of his personal or working life is much more likely to donate than someone who just installed it.
What criterion you use to define usage depends on your app (whether it's app start-ups, usage in hours, or something else) highly depends on what the purpose and main task of your app is.
How to ask for donations
Be authentic. That's the most important part. Showcase the love, passion and craftsmanship that went into creating the app. Describe your personal situation and why you need the donations. Explain what you will use the donations for and how that will benefit your users. Be as transparent as possible.
Other ways your users can help
There are different ways your users can support your app. Money is just one aspect. If someone declines to the question if they want to donate you could ask them if they would like to recommend your app in the app store (if applicable) or suggest it to a friend (possibly through social media). If you ask this question immediately after your request for money your chances are much higher, because the second favor you ask is much smaller when compared to the first.