As far as apps go I've used Sleep Cycle, Dream:ON, and I'm currently using DreamZ. Sleep Cycle is just a general sleep graph app with a smart alarm feature. Dream:ON and DreamZ are similar, yet DreamZ has a few more features that I like, which is why it isn't free I'm sure.