Я разработчик .NET (более 6 лет) и только начинаю изучать разработку мобильных/смартфонов/планшетов. Логично, что я (и, вероятно, все остальные там) хотел бы, чтобы приложение, которое мы создаем, запускалось на всех платформах смартфонов. С точки зрения обычного пользователя (непрофессионала) просто кажется естественным, что если это «мобильное приложение», оно должно работать на мобильном устройстве. Не имеет значения, есть ли у меня iPhone или Android, мобильное приложение - мобильное приложение. Примечание. Я говорю о разработке собственной платформы, а не о HTML/веб-приложениях, которые можно использовать в браузерах.Как развивается кроссплатформенная мобильная разработка на практике (2013 год)?
Так что это всего лишь обзорный вопрос высокого уровня ... каковы текущие стратегии (в 2013 году) для решения этой проблемы? Как я полагаю, мобильные разработки кросс-платформенной разработки - это, вероятно, одна общая база кода, которая реализует бизнес-логику приложения, а затем для каждой платформы таргетинга нам нужно разработать часть GUI отдельно. Насколько это справедливо на практике?
Возьмем, к примеру, популярную игру «Angry Birds». Я играл на iPhone, Android и даже из браузера Chrome на рабочем столе Windows (возможно, в качестве игры Flash или HTML5), и каждая версия имела очень много одинаковых ощущений при воспроизведении. Как они это сделали? Я думаю, у них есть игровой движок как общий код, но на каком языке он может быть написан? Насколько я знаю, нет единого языка программирования, который с учетом отдельных файлов исходного кода может быть скомпилирован в родные двоичные файлы для телефонов ios/android/win8.
Согласитесь с вышесказанным. Я думаю, что PhoneGap имеет больше смысла в первые дни разработки iOS, когда не было много людей за пределами Apple, которые хорошо разбирались в Objective C, но многие люди, которые знали веб-технологии. Теперь Obj-C является одним из 10 лучших языков программирования, и есть много талантливых разработчиков. Я исследовал его использование, чтобы расширить свои возможности в Android, но пришел к выводу, что имеет смысл либо узнать, что SDK, либо субподряд. –
Я не буду списывать PhoneGap из-за перечисленных причин. Во всей реальности большинство изменений в пользовательском интерфейсе можно было бы использовать, просто используя другой файл CSS для каждого устройства, или вы всегда можете быть менее озабочены поиском 100% родных. Кнопки будут выглядеть как кнопка по умолчанию, которая появляется в браузере ... как и другие элементы. Обе опции, перечисленные в моем ответе, могут быть легко адаптированы к любой платформе, поддерживаемой изменением только слоев пользовательского интерфейса (CSS для телефонного разговора и проекта пользовательского интерфейса для Xamarin). Моя причина пропустить телефонную трубку будет производительностью ... не внешностью. – Jared
Я не сказал, что им следует избегать PhoneGap или тому подобное. На самом деле это может быть отличным решением для быстрого развертывания приложения для всех основных платформ, а затем (при необходимости) переход на собственный интерфейс пользователя шаг за шагом. Пункт моего ответа состоял в том, что нет серебряной пули. Есть несколько способов пойти, но у всех есть свои недостатки. – Const