Ответ 1
Вы можете избежать необходимости в создании двух базовых кодов, если вы создадите свое веб-приложение агностически. Это означает, что он может отображаться на разных размерах экрана (от небольших мобильных телефонов до плазменных телевизоров) и перемещаться с использованием множества различных методов ввода (мыши, клавиатуры, сенсорные экраны, игровые площадки и т.д.). Различные методы для этого в настоящее время известны как "мобильный первый" или "отзывчивый дизайн". Для хорошего начала см.
- Создание адаптивного веб-дизайна для мобильных устройств
- 320 и Up - "крошечный экран с первым отзывчивым шаблоном"
- Мобильный HTML5 Boilerplate
- Отзывчивый мобильный первый шаблон из Initializr
- Twitter Bootstrap
- Фонд Zurb
- Подробнее см. Хорошее введение в рамки веб-дизайна (видео Edreih Aldana)
Имейте в виду, что это может быть не всегда возможно или удобно, если ваше приложение очень сложно, и в конце концов вы можете получить две (или более) базы кода в этом случае, но большинство веб-сайтов и веб-приложений могут быть построенным с учетом этих принципов.
Кроме того, имея в виду Руководство по доступности веб-контента, можно значительно упростить разработку веб-сайтов, которые могут работать на многих устройствах и с множеством входных данных методы.
Вы специально не просили об этом, но дополнительно можете использовать PhoneGap для конвертации мобильных веб-сайтов или веб-приложений в собственный родной мобильный приложения для iOS, Android, Blackberry, Windows Phone, Palm WebOS, Bada и Symbian, поэтому вы можете использовать свои приложения для установки из различных магазинов приложений для этих конкретных платформ.
Обновление 2016
Я написал этот ответ в 2012 году, и с тех пор были разработаны некоторые соответствующие инструменты:
- Ionic - гибридная платформа мобильных приложений на основе Angular
- React Native - основа для создания собственных приложений на основе React
- Framework7 - гибридная платформа мобильных приложений на основе Dom7 (аналогично jQuery)
- Intel XDK (ранее известный как appMobi)
- Appcelerator
- AppGyver
- NativeScript
- Пользовательский интерфейс Onsen
- Подробнее на Сравнительная таблица мобильных платформ