Halide perovskites: from materials to optoelectronic devices