Saying that you want to use "best practices" is a great way to sidestep the question of why an app like this needs any private information at all.
We need a user account to store your progress: what puzzles you've completed, what code you've entered in order to save progress if you didn't complete the puzzle yet, coding streaks, etc. We're not collecting information about your device (or any other personally identifiable information other than the Google Account we associate with your account).
It's been easiest for us to do this user account creation using out-of-the-box Google Authentication, so that's why we went down this route. Hope that makes sense!