Developing my own module for Salome

Hi all.
Is there any documentation on developing a new module and making it interoperate with the GEOM and SMESH modules (in my case)? Or maybe some instructions on the first steps in this topic?