About differences with analog/axis versus button only inputs...one thing some input systems do for anything that works on an axis, such as movement, is to store the input as an analog value between -1 and 1(or if you prefer separate values 0 to 1 twice). Then if the input assigned to that action is an analog input like an axis, you almost directly map it. If the input is a button or 2(be it keyboard or gamepad button), you can do a "simulated" axis. This is one thing even Unity's crappy input system actually does, as do some of the asset store packages that are really nice.
The other thing you can do is keep all inputs to either an on or off state. Then, if an key/button is assigned, you directly map it. And if an axis direction is assigned, you say on/off based on some percentage of tilt, maybe 20%, so if the X-Axis is tilted to a +0.2 or more, it counts as 'pressing the button.'
What kind of game you are making will determine which of these methods(or both in many cases) you need to use.