I use a smart alarm app. It uses your mic to track your breathing, and uses that information to identify when you’re in deeper and lighter phases of sleep. You set a range of time for the alarm, and when it detects you coming out of a deep cycle it starts the alarm. I’ve always slept through alarms, and this works like a dream.