Perovskite-based devices