Didn't get past the microphone permission request. What is it needed for? It could be a good idea to first warn the user that it will be requested and how it will be used.
Also, pardon a shameless plug - not sure how your app work because of the microphone permissions, but I also wrote a freely available Mandarin listening comprehension practice tool. It's pretty simple - I downloaded all zh-*.ogg files from Wiktionary, extracted tone numbers from the filenames and asked the user what they hear. You can find it hosted here:
Yeah, I admit it would be nicer if the page loaded without the request first so you could see what it's about and then request the access once you clicked the record button.
Also, pardon a shameless plug - not sure how your app work because of the microphone permissions, but I also wrote a freely available Mandarin listening comprehension practice tool. It's pretty simple - I downloaded all zh-*.ogg files from Wiktionary, extracted tone numbers from the filenames and asked the user what they hear. You can find it hosted here:
https://tones.strokes.ovh/
Source code available here:
https://github.com/d33tah/chinese-tones
Anyway, keep up the work, good Mandarin learning resources are always needed!