Сравнение между короной, Phonegap, титаном

Joe Erickson записал:

Помощь выполнить код C# платформы Java означает больше разработчиков и больше программного обеспечения для платформы.

Это - несоответствующий оператор. Выполнение кода C# JVM не создает программистов Java, это создает программистов C#, которые могут выполниться на JVM. Это только разворачивает досягаемость C#, предполагая, что JVM также переводит любую Microsoft определенные вызовы (т.е. win32) во что-то, что независимо от платформы. Таким образом, если Sun переводит IL в байт-код Java, единственная группа, которой он помогает: Microsoft. И, учитывая историю Sun с Microsoft во время исходных судебных процессов Ереси/Visual J++ C#-Java...

Плюс, необходимо столкнуться с техническим infeasibility, хотите ли Вы или нет. Существуют принципиальные различия в способе, которым байт-коды выполняются, которые намного более важные проблемы чем то, существует ли неподписанный длинный тип данных.

, Если у Вас должен быть C# на платформе не-Microsoft, используйте Моно

310
задан Community 18 February 2011 в 00:17
поделиться

9 ответов

Я зарегистрировался в stackoverflow только для того, чтобы прокомментировать ответ, за который в основном проголосовали. Плохо то, что stackoverflow не позволяет новым участникам оставлять комментарии. Так что я должен сделать этот комментарий более похожим на ответ.

Ответ Рори Блайта содержит некоторые достоверные сведения о двух мобильных фреймворках javascript. Однако его ключевые положения неверны. Правда в том, что Titanium и PhoneGap больше похожи, чем различны. Оба они предоставляют функции мобильного телефона через набор API-интерфейсов javascript, а логика приложения (html, css, javascript) выполняется внутри встроенного элемента управления WebView.

  1. PhoneGap - это не просто собственная оболочка веб-приложения. Через API-интерфейсы JavaScript PhoneGap "веб-приложение" имеет доступ к функциям мобильного телефона, таким как геолокация, камера акселерометра, контакты, база данных, файловая система и т. Д. Практически любая функция, предоставляемая SDK мобильного телефона, может быть "связана" с мир javascript. С другой стороны, обычное веб-приложение, работающее в мобильном браузере, не имеет доступа к большинству этих функций (основная причина - безопасность). Следовательно, приложение PhoneGap - это скорее мобильное приложение, чем веб-приложение. Вы, конечно, можете использовать PhoneGap для обертывания веб-приложения, которое вообще не использует API PhoneGap, но это не то, для чего был создан PhoneGap.

  2. Titanium НЕ компилирует ваш код html, css или javascript в «собственные биты». Они упакованы как ресурсы исполняемого пакета, как и встроенный файл изображения. Когда приложение запускается, эти ресурсы загружаются в элемент управления UIWebView и запускаются там (конечно, как javascript, а не собственные биты). Не существует такого понятия, как компилятор javascript-to-native-code (или to-objective-c). То же самое делается и в PhoneGap. С архитектурной точки зрения эти две структуры очень похожи.

Теперь они разные? Да. Во-первых, Titanium кажется более функциональным, чем PhoneGap, поскольку он связывает больше функций мобильного телефона с javascript. Наиболее заметно, что PhoneGap не предоставляет javascript многие (если таковые имеются) собственные компоненты пользовательского интерфейса. Titanium, с другой стороны, имеет комплексные интерфейсы API пользовательского интерфейса, которые можно вызывать в javascript для создания и управления всеми видами встроенных элементов управления пользовательского интерфейса. Используя эти UI API, приложение Titanium может выглядеть более «родным», чем приложение PhoneGap. Во-вторых, PhoneGap поддерживает больше платформ мобильных телефонов, чем Titanium. API PhoneGap более универсальны и могут использоваться на различных платформах, таких как iPhone, Android, Blackberry, Symbian и т. Д. Titanium в первую очередь ориентирован на iPhone и Android, по крайней мере, на данный момент. Некоторые из его API зависят от платформы (например, API интерфейса iPhone). Использование этих API-интерфейсов снизит кроссплатформенность вашего приложения.

Итак, если вы заботитесь о своем приложении, чтобы сделать его более «родным», то Titanium - лучший выбор. Если вы хотите иметь возможность более легко «переносить» свое приложение на другую платформу, лучше подойдет PhoneGap.

Обновлено 13.08.2010: Ссылка на ответ сотрудника Titanium на вопрос Микки.

Обновлено 12.04.2010: API PhoneGap более универсальны и могут использоваться на различных платформах, таких как iPhone, Android, Blackberry, Symbian и т. Д. Titanium в первую очередь ориентирован на iPhone и Android, по крайней мере, на данный момент. Некоторые из его API зависят от платформы (например, API интерфейса iPhone). Использование этих API-интерфейсов снизит кроссплатформенность вашего приложения.

Итак, если вы заботитесь о своем приложении, чтобы сделать его более «родным», то Titanium - лучший выбор. Если вы хотите иметь возможность более легко «переносить» свое приложение на другую платформу, лучше подойдет PhoneGap.

Обновлено 13.08.2010: Ссылка на ответ сотрудника Titanium на вопрос Микки.

Обновлено 12.04.2010: API PhoneGap более универсальны и могут использоваться на различных платформах, таких как iPhone, Android, Blackberry, Symbian и т. Д. Titanium в первую очередь ориентирован на iPhone и Android, по крайней мере, на данный момент. Некоторые из его API зависят от платформы (например, API интерфейса iPhone). Использование этих API-интерфейсов снизит кроссплатформенность вашего приложения.

Итак, если вы заботитесь о своем приложении, чтобы сделать его более «родным», Titanium - лучший выбор. Если вы хотите, чтобы ваше приложение было проще переносить на другую платформу, вам подойдет PhoneGap.

Обновлено 13.08.2010: Ссылка на ответ сотрудника Titanium на вопрос Микки.

Обновлено 12.04.2010: Некоторые из его API зависят от платформы (например, API интерфейса iPhone). Использование этих API-интерфейсов снизит кроссплатформенность вашего приложения.

Итак, если вы заботитесь о своем приложении, чтобы сделать его более «родным», то Titanium - лучший выбор. Если вы хотите иметь возможность более легко «переносить» свое приложение на другую платформу, лучше подойдет PhoneGap.

Обновлено 13.08.2010: Ссылка на ответ сотрудника Titanium на вопрос Микки.

Обновлено 12.04.2010: Некоторые из его API зависят от платформы (например, API интерфейса iPhone). Использование этих API-интерфейсов снизит кроссплатформенность вашего приложения.

Итак, если вы заботитесь о своем приложении, чтобы сделать его более «родным», то Titanium - лучший выбор. Если вы хотите, чтобы ваше приложение было проще переносить на другую платформу, вам подойдет PhoneGap.

Обновлено 13.08.2010: Ссылка на ответ сотрудника Titanium на вопрос Микки.

Обновлено 12.04.2010: Я решил ежегодно пересматривать этот пост, чтобы информация оставалась актуальной. Многие вещи претерпели изменения за год, в результате чего часть информации в первоначальном посте устарела.

Самое большое изменение пришло от Titanium. Ранее в этом году Appcelerator выпустил Titanium 1.0, который резко отличался от своих предыдущих версий с точки зрения архитектуры. В версии 1.0 элемент управления UIWebView больше не используется. Вместо этого вы вызываете API-интерфейсы Titanium для любых функций пользовательского интерфейса. Это изменение означает несколько вещей:

  1. Пользовательский интерфейс вашего приложения становится полностью нативным. В вашем приложении больше нет веб-интерфейса, поскольку собственные интерфейсы API Titanium берут на себя контроль над всеми вашими потребностями в интерфейсе. Titanium заслуживает большой похвалы за новаторство в области кроссплатформенного нативного пользовательского интерфейса. Это дает программистам, которые предпочитают внешний вид собственного пользовательского интерфейса, но не любят официальный язык программирования, альтернативу.

  2. Вы не сможете использовать HTML или CSS в своем приложении, поскольку веб-представление больше не существует. (Примечание: вы по-прежнему можете создавать веб-представление в Titanium. Но есть несколько функций Titanium, которыми вы можете воспользоваться в веб-представлении.) Titanium Q&A: Что случилось с HTML и CSS?

  3. Вы не будете иметь возможность использовать популярные библиотеки JS, такие как JQuery, которые предполагают существование объекта DOM. Вы продолжаете использовать JavaScript в качестве языка программирования. Но это практически единственная веб-технология, которую вы можете использовать, если вы перейдете к Titanium 1.0 в качестве веб-программиста.

Видео Titanium: что нового в Titanium 1.0.

Теперь Titanium 1.0 компилирует ваш JavaScript в "родной" биты "? Нет. Appcelerator наконец-то решил эту проблему в этом блоге разработчиков: Titanium Guides Project: JS Environment. Мы, программисты, более искренние люди, чем сотрудники отдела маркетинга, не так ли? :-)

Переходим к PhoneGap. О PhoneGap можно сказать не так много нового. Я считаю, что разработка PhoneGap была не очень активной, пока в этом году к ней не подключилась IBM. Некоторые люди даже утверждали, что IBM предоставляет для PhoneGap больше кода, чем Nitobi. Так это или нет, но хорошо знать, что PhoneGap активно разрабатывается.

PhoneGap продолжает опираться на веб-технологии, а именно HTML, CSS и JavaScript. Не похоже, что PhoneGap планирует объединить собственные функции пользовательского интерфейса с JavaScript, как это делает Titanium. Хотя веб-интерфейс по-прежнему отстает от собственного интерфейса по производительности и внешнему виду, этот пробел быстро сокращается. Есть две тенденции в веб-технологиях, которые обеспечивают яркую функциональность мобильного веб-интерфейса с точки зрения производительности:

  1. Перемещение движка JavaScript от интерпретатора к виртуальной машине. JavaScript - это JIT-компиляция в машинный код для более быстрого выполнения. Движок Safari JS: SquirrelFish Extreme

  2. Отрисовка веб-страницы переходит от использования центрального процессора к использованию ускорения графического процессора. Задачи с интенсивным использованием графики, такие как переход между страницами и 3D-анимация, становятся намного более плавными с помощью аппаратного ускорения. Композитор с ускорением графического процессора в Chrome

Такие улучшения, которые происходят из настольных браузеров, быстро внедряются в мобильные браузеры. Фактически, начиная с iOS 3.2 и Android 2.0, управление мобильным веб-представлением стало намного более производительным и дружественным к HTML5. Будущее мобильного Интернета настолько многообещающе, что привлекло в город большого ребенка: JQuery недавно анонсировал свою платформу для мобильного Интернета. На мой взгляд, вместе с JQuery Mobile, предоставляющим гаджеты пользовательского интерфейса, и PhoneGap, обеспечивающим функции телефона, они вместе создают идеальную мобильную веб-платформу

. Я также должен упомянуть Sencha Touch как еще одну структуру гаджетов мобильного веб-интерфейса. Sencha Touch версии 1.0 недавно была выпущена по модели двойного лицензирования, которая включает GPLv3. Sencha Touch хорошо работает с PhoneGap, как и JQuery Mobile.

Если вы программист GWT (как и я), вы можете попробовать GWT Mobile , открытый исходный код. проект по созданию мобильных веб-приложений с помощью GWT. Он включает оболочку PhoneGap GWT, которая позволяет использовать PhoneGap в GWT.

368
ответ дан 23 November 2019 в 01:12
поделиться

Of the solutions you mentioned, none of them appear to give you direct access to the MapKit framework introduced in OS 3.0.

As the Google Maps HTML widgets aren't nearly as good as MapKit (see Google Latitude for an example), you are probably best off developing a native Cocoa touch application, or choosing a solution you can extend to add MapKit integration. PhoneGap is extensible in this manner (it's open-source so it is by default), and some of the other solutions might be as well.

edit: Titanium now has support for MapKit

3
ответ дан 23 November 2019 в 01:12
поделиться

Из того, что я собрал, вот некоторые различия между ними:

  • PhoneGap в основном генерирует собственные оболочки для тех, что все еще являются веб-приложениями . Он выводит проект WhateverYourPlatformIs, вы его создаете и развертываете. Если мы говорим об iPhone (на котором я провожу свое время), он не сильно отличается от создания средства запуска веб-приложений (ярлык, который получает собственный значок Springboard, поэтому вы можете запустить его как ( как ) родное приложение). Само «приложение» по-прежнему является html / js / и т. Д. И работает внутри размещенного элемента управления браузера. Помимо этого, PhoneGap предоставляет мост между JavaScript и собственными API устройств. Итак, вы пишете JavaScript для API PhoneGap, и PhoneGap затем выполняет соответствующий соответствующий нативный вызов. В этом отношении, это отличается от развертывания простого старого веб-приложения.

  • Исходный код Titanium компилируется в собственные биты. То есть ваш html / js / etc. не просто прикрепляются к проекту и затем размещаются в элементе управления веб-браузера - они превращаются в собственные приложения. Это означает, например, что интерфейс вашего приложения будет состоять из собственных компонентов пользовательского интерфейса. Есть способы получить нативный внешний вид без нативного приложения, но ... ну ... какой кошмар, который обычно оказывается.

Они похожи в том, что вы пишете все свои вещи, используя типичные веб-технологии (html / js / css / бла-бла-бла), и что вы получаете доступ к нативным функциям через пользовательские API JavaScript.

Но, опять же, приложения PhoneGap (PhonGapps? Я не знаю ... это глупое имя? Проще сказать - я это знаю) начинают свою жизнь как веб-приложения и заканчивают свою жизнь как веб-приложения. На iPhone ваш html / js / etc. просто выполняется внутри элемента управления UIWebView, а API-интерфейсы JavaScript PhoneGap направляют ваши js-вызовы в собственные API.

Приложения Titanium становятся собственными приложениями - они просто разрабатываются с использованием технологий веб-разработчиков.

Что это на самом деле ] означает ?

  1. Приложение Titanium будет выглядеть как «настоящее» приложение, потому что, в конечном счете, оно является «настоящим» приложением.

  2. Приложение PhoneGap будет выглядеть как веб-приложение, размещенное в элементе управления браузера, потому что, в конечном счете, это веб-приложение, размещенное в элементе управления браузера.

Что вам подходит?

  • Если вы хотите писать собственные приложения, используя навыки веб-разработки, Titanium - ваш лучший выбор.

  • Если вы хотите написать приложение, используя навыки веб-разработчика, которые можно было бы реально развернуть на нескольких платформах (iPhone, Android, Blackberry и все, что они решат включить), и если вам нужен доступ к подмножеству функций собственной платформы (GPS, акселерометр и т. Д.) Через унифицированный API JavaScript, PhoneGap, вероятно, то, что вам нужно.

Вы можете спросить: зачем мне писать PhoneGapp (я решил использовать имя), а не веб-приложение, размещенное в Интернете? Разве я не могу по-прежнему получать доступ к некоторым встроенным функциям устройства таким образом, но при этом иметь удобство настоящего веб-развертывания, а не заставлять пользователя загружать мое «собственное» приложение и устанавливать его?

Ответ: потому что вы можете отправить свое PhoneGapp в App Store и взимать плату. Вы также получаете значок запуска, из-за чего пользователю будет сложнее забыть о вашем приложении (у меня гораздо больше шансов забыть о закладке, чем о значке приложения).

Вы, конечно, можете взимать плату за доступ к вашему веб-приложению, но сколько люди действительно собираются пройти через процесс, чтобы сделать это? В App Store я выбираю приложение, нажимаю кнопку «Купить», ввожу пароль, и готово. Он устанавливается. Через несколько секунд я использую его. Если бы мне пришлось использовать чей-то разовый интерфейс мобильных веб-транзакций, что, вероятно, означало бы, что мне нужно было указать свое имя, адрес, номер телефона, номер CC и другие вещи, которые я не хочу использовать, я бы почти наверняка не стал т довести это до конца. Кроме того, я доверяю Apple - я уверен, что Стив Джобс не собирается регистрировать мою информацию, а затем взимать с меня кучу непослушных журналов за подписку на мой CC.

В любом случае, За исключением того факта, что задействованы технологии веб-разработки, PhoneGap и Titanium очень разные - до такой степени, что их можно сравнить только на первый взгляд.

Я ненавижу веб-приложения, кстати, и если вы читаете обзоры iTunes App Store, пользователи довольно хорошо их замечает. Я не буду называть никаких имен, но у меня есть пара «приложений» на моем телефоне, которые выглядят и работают как мусор, и это потому, что они веб-приложения, размещенные внутри экземпляров UIWebView. Если бы я хотел использовать веб-приложение, я бы открыл Safari и, знаете ли, перешел к нему. Я купил iPhone, потому что мне нужны вещи, которые подходят для iPhone. У меня нет проблем с использованием, скажем, шикарного веб-приложения Google внутри Safari, но я бы почувствовал себя обманутым, если бы Google просто вставил закладку в Springboard, представив веб-приложение как нативное.

Теперь пора. У моей девушки такое выражение лица: «Не могли бы вы прекратить пользоваться этим компьютером на три секунды».

193
ответ дан 23 November 2019 в 01:12
поделиться

Насколько я понимаю, PhoneGap состоит в том, что они предоставляют API-интерфейсы Javascript для большей части API iPhone.

Titanium кажется проще для веб-разработчиков. Это простой XML-файл для создания базового приложения TabView, а затем все в области содержимого контролируется HTML / JS. Я также знаю, что Titanium предоставляет некоторый javascript-доступ к некоторым фреймворкам (в частности, доступ к информации о местоположении, идентификатору телефона и т. Д.).

ОБНОВЛЕНИЕ: Titanium добавил Maps API в версию 0.8 своего фреймворка.

5
ответ дан 23 November 2019 в 01:12
поделиться

You should learn objective c and program native apps. Do not rely on these things you think will make life easier. Apple has made sure the easiest way is using their native tools and language. For your 100 lines of javascript I can do the same in 3 lines of code or no code at all depending on the element. Watch some tutorials - if you understand javascript then objective c is not hard. Workarounds are miserable and apple can pull the plug on you anytime they want.

4
ответ дан 23 November 2019 в 01:12
поделиться

родной mapkit поддерживается в Titanium

.
9
ответ дан 23 November 2019 в 01:12
поделиться

Корона SDK (Mobile ANSCA) использует LUA в качестве языка кодирования. Смотрите lua.org на большее о Луа.

В то время как мы планируем добавить дальнейшую веб-интеграцию и элементы Native-ui, наша фокус будет иметь тенденцию к тому, чтобы быть на графических приложениях, таких как разработка игры, в отличие от веб-технологий. Другими словами, мы не представляем, что люди полностью пишут коронные приложения в JavaScript / HTML / CSS.

25
ответ дан 23 November 2019 в 01:12
поделиться

Сделать виджеты HTML5 похожими на виджеты iphone - это одно, а заставить их работать одинаково хорошо - совсем другое дело. Производительность html5-анимации (даже простых переходов просмотра), прокрутка длинных списков, отзывчивость на жесты кажутся липкими и отрывистыми. Пользователь iPhone заметит разницу.

Есть также некоторые различия в типах жестов, которые поддерживаются разными устройствами, что также приводит к проблемам с кодом платформы и удобству использования.

Думаю, пока я останусь с родными приложениями.

8
ответ дан 23 November 2019 в 01:12
поделиться

Всем, кто интересуется Titanium, я должен сказать, что у них нет очень хорошей документации, некоторые классы, свойства, методы отсутствуют. Но многое «задокументировано» в их образце приложения KitchenSink, так что это не ТАК плохо.

6
ответ дан 23 November 2019 в 01:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: