I'd like to recommend the app 'Gentle Alarm'.

It features a 'pre alarm' which can be programmed to be quieter than usual. This is designed to wake you a little, so that when the actual alarm goes off it doesn't jolt you from deep sleep.

You can set vibration, music or anything else as the alarm tone and it fades in.

There are also measures to make it difficult to turn off if you are a serial snoozer like myself.

Highly recommended.