You have at least four choices here, probably more. I leave your choices up to you, but I'll put them all in one answer.
You can make field sets, then use them to generate fields using an iterator. There's examples of this in the docs.
Easy to code.
Can use different order and/or omit fields to be more mobile friendly.
Page layout won't drive the mobile layout. You'll have to modify the field set independently of the layout.
Use a Visualforce Generator
There's an app on the app exchange that gives you the ability to generate pages based on layouts.
Easy to use.
Changing the layout won't change the page. You'll be forced to regenerate the code each time a layout change occurs.
Apex Code Metadata
There's yet another app that clones your configurations into data on a custom object. I believe layouts are included, but I'm not 100% on this, as I've never used it personally.
No code changes necessary.
The app can be scheduled.
There is a delay on changes, since it only runs on a schedule or is manually invoked.
You can use the API to determine the fields from the layout, then render this data. You may choose to either enumerate all the fields, then have the script dynamically show the fields (more bandwidth), or perform a query based on the describe result (more round trips, API calls).
Less work server side, and can immediately detect changes.
May use more bandwidth and may take longer to render because of round trips.
Personally, I think using a server side solution may be preferable in this case, but the last option has the potential to be the fastest if done right.