I think you're onto a loser with all those fields. Signup forms must die as Luke Wroblewski says (http://www.lukew.com/resources/articles/SignUpForms_10052010.pdf)
Depending on the platform, and I'm thinking about iphone and android, you ask for location but the phone can provide this automatically! your app should default to user's current location but allow him or her to set a new location if desired.
Passive registration: collect details as the user interacts with the system (https://jottit.com/)
Let the user use the service with the minimum of fuss.
Do not use spinners for lists that do not cycle naturally; for a binary choice such as M or F a spinwheel is wrong, radio will do
As a user, if you asked me what my mobile phone number was on a mobile app I would be profoundly angry, but I have no data or reference as to whether this is subjective opinion or objective
Summary:
let users use the app with the minimum of fuss
use phones hardware to automatically detect location or other -temporal- information
do not ask for information that is not relevant to the functioning of the app
do not use widgets for the wrong purpose
allow passive registration
c
refs:
NNgroup mobile testing and research 2010-2011
http://www.lukew.com/resources/articles/SignUpForms_10052010.pdf
https://jottit.com/