There are different settings from one device / constructor / os to another
eg. some constructors jump from 90° to minus 90°, other do it using 180° to -180°
also, they have different starting "norths", ie. angle positions (but I think it depends also of the device, factory, hardware used..)
maybe we should have a calibration procedure : to ask people to put their phone one the table, horizontally, and the angle as the "zero" orientation