Сравнение между Corona, Phonegap, Титан


Я веб-разработчик, и я хочу, чтобы переместить мои веб-продукты на iPhone. Один из продуктов похож на Google Maps: показать карту на экране телефона, вы можете перетащить или изменить размер карты и просмотреть некоторую информацию, которую мы добавляем на карту.

Я знаю, что есть некоторые технологии, которые позволяют использовать HTML, CSS и Javascript для разработки собственных приложений для iPhone. Я определил несколько:

есть ли другие, подобные продукты? В чем разница между ними? Что я должен выбрать?

14 310

14 ответов:

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

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

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

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

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

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

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

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

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

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

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

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

Titanium video: что нового в Titanium 1.0.

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

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

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

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

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

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

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

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

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

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

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

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

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

Титан приложения становятся родными приложениями - они просто разрабатываются с использованием технологии web dev.

Что это значит?

  1. приложение Титан посмотреть как "реальное" приложение, потому что в конечном счете, это и "реального" приложения.

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

, который является правильным для вас?

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

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

вы можете спросить: почему я хочу написать PhoneGapp (я решил использовать имя), а не веб-приложение, размещенное в интернете? Не могу ли я по-прежнему получить доступ к некоторым функциям собственного устройства таким образом, но также иметь удобство истинного веб-развертывания, а не заставлять пользователя загружать мое "родное" приложение и устанавливать его?

ответ: Потому что вы можете отправить свой PhoneGapp в приложение Хранить и взимать за это плату. Вы также получаете этот значок запуска, что затрудняет пользователю забыть о вашем приложении (я гораздо чаще забываю о закладке, чем значок приложения).

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

во всяком случае, за исключением того, что web dev tech участвует, PhoneGap и Titanium очень отличаются - от точка бытия лишь поверхностно сопоставима.

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

надо идти. У моей подруги есть что может-вы-пожалуйста-прекрати-через-что-компьютер-для-трех секунд смотрите на ее лицо.

Я беру курс по разработке Android/iPhone, и мы провели 8 недель с Titanium (не полный рабочий день) (версия была Titanium 1.4.2, а время было около ноября 2010 года). Вот мой опыт.

iPhone Android двойной таргетинг

хотя руководства API утверждают, что функциональность доступна как для Android, так и для iPhone, это не так. Большая часть материала просто не работает на одной из платформ. Некоторые вещи работают по-разному.

A много людей в классе сделали приложения для iPhone, и они не могут заставить их работать на Android без серьезных переделок. Я разработал простое детское приложение под названием Animap (см. android market / Appstore в Швеции) и начал развиваться под Windows. Как только Android target работал, я открыл проект на OS X. Он не показывает никаких сборочных материалов для iPhone, только для Android. Вам нужно запустить двойной целевой проект под OS X. (хорошо, я скопировал соответствующие файлы в новый проект). Следующий проблема - анимация не работает на iPhone (они работают на Android). События прокрутки не работают одинаково на iPhone. (т. е. на Android вы получаете событие untouch, когда пользователь прекращает прокрутку и отпускает палец с экрана, этого не происходит на iPhone).

поскольку это не упоминается где-то, вам в основном нужно делать пробное и ошибочное Программирование сначала на одной платформе, а затем на другой платформе. Путем проб и ошибок я имею в виду, это займет около двух дней такое простое приложение, как Animap работает на другой платформе. Вам также нужно будет иметь if (android) тогда... или если (iphone)... по всему вашему коду...

загрузка и установка

вы должны следовать инструкциям в письме. Не пытайтесь использовать java 64 бит. Он не будет компилировать демонстрационное приложение KitchenSink 1.4.0. (1.3 работает нормально!) Вы должны поместить файлы непосредственно на диск C, так как длинные пути сделают внешнюю программу не получающей все параметры командной строки, если они добраться до длинной. (Отлично подходит для небольших программ, хотя) В 1/3 случаев инструментальная цепочка просто останавливается, и вы должны снова нажать "запуск". Тогда это, вероятно, сработает... очень ненадежно. Симулятор не будет найден при запуске, а затем вы должны просто убить АБР.exe с Ctrl + Alt + Delete и повторите попытку.

подключение к сети

в wifi-сети вы иногда теряете живое соединение и Титан падает на вас (интерфейс компиляции / развертывания) Если у вас нет рабочего подключение к интернету не запустится, так как он не может войти в их серверах.

API

CSS, HTML и jQuery-это ветерок по сравнению с этим. Titanium напоминает любой другой старый графический интерфейс API, и вам нужно установить некоторые свойства для каждой отдельной кнопки / поля / и т. д. Получить неправильное поле просто легко, помня все свойства, которые нужно установить? Вы написали его заглавными буквами в нужном месте? (поскольку это не поймано компилятором, но будет рассматриваться как ошибка выполнения, Если Вам ПОВЕЗЕТ проверить эту часть)

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

документация

несколько страниц API несут символ Android, но будет возвращать только null при попытке создать элемент управления. Они не просто доступны на платформе Android, несмотря на символы. Иногда Android упоминается не для поддержки определенного метода, но тогда весь API отсутствует.

KitchenSink

демо приложения. Я упоминал, что он не компилируется, если вы поместите его в папку проекта Eclipse, потому что путь становится слишком длинным? Необходимо поместить на диск C в корневую папку. В настоящее время я использую ссылку symbolik (mklink /J ...)

методы недокументированные

вы должны правильно использовать вещи в качестве метки.setText ('Hello World'), чтобы изменить метку надежной, но это не задокументировано вообще.

отладка

Titanium.API.info ('распечатки-единственный способ отладки');

редактирование

API недоступны в любом хорошем формате, поэтому вы не можете получить обычное завершение кода с помощью и т. д. в Eclipse. Aptana пожалуйста, помогите!

оборудование

кажется, что компилятор / инструменты не многопоточны, поэтому быстрый компьютер с быстрым жестким диском является обязательным, так как вы должны сделать много проб и ошибок. Я уже говорил о бедных документация? Вы должны попробовать все там, как вы не можете доверять ему!

некоторые положительные вещи

  • Open Source
  • из предыдущих проектов я пообещал себе никогда не использовать закрытый исходный код снова, как вы не можете просто исправить вещи, просто бросая часы и рабочую силу на него. Важно, когда вы опаздываете в проекте и нужно поставить на жесткий срок. Это с открытым исходным кодом, и я смог понять, почему цепочка инструментов ломается и на самом деле исправить это тоже.

  • Bugdatabase

  • Он также открыт. Вы можете просто увидеть, что ваш не один и сделать обходной путь вместо еще 4 часов, потраченных на проб и ошибок.

  • сообщество

  • кажется, активен на своих форумах.

ошибки

  • Титан 1.4 не ориентирована на многопотоковое исполнение. Это означает, что если вы используете потоки (используйте url: свойство в вызове createWindow) и программа, подобная потокам, работают и отправляют события с данными туда и обратно, вы сталкиваетесь с множеством очень, очень странных вещей - потерянные обработчики, потерянные окна, слишком много событий, слишком мало событий и т. д. так далее. Все это зависит от времени, размещение строк кода в другом порядке может привести к сбою или исцелению вашего приложения. Добавление окна в другой файл.js ломает ваше приложение.Яш исполнения... Это также разрушает внутренние структуры данных в Титане, поскольку они иногда можно обновить внутренние структуры данных в paralell, перезаписав только что измененное значение с чем-то другим.

большая часть проблем, которые у меня были с Titanium, происходит из моего фона в системах реального времени, таких как OSE, которые поддерживают сотни потоков, событий и передачи сообщений. Это должно работать в Titanium 1.4, но он просто не делает это надежно.

  • Javascript (который является новым для меня) умирает молча при ошибках выполнения. Это также означает, что это небольшие и распространенные ошибки, такие как неправильное написание имени переменной или чтение в нулевом указателе, не сбой, когда он должен, чтобы вы могли его отладить. Вместо этого части вашей программы просто перестают работать, например eventhandler, потому что вы потеряли/неправильно набрали символ.

  • тогда у нас есть более простые ошибки в Titanium, такие как некоторые параметры, не работающие в функциях (что довольно часто встречается на платформе Android, по крайней мере).

  • проб и Ошибка скорость цикла отладки Запустив Titnium Developer на нескольких компьютерах, я заметил, что узким местом является жесткий диск. SSD-накопитель на ноутбуке делает цикл сборки примерно в 3-5 раз быстрее, чем на диске 4200 оборотов в минуту. На рабочем столе наличие двух дисков в RAID 1 (режим чередования) делает сборку примерно на 25 процентов быстрее, чем на одном диске с несколько более быстрым процессором, а также превосходит ноутбук с SSD-накопителем.

резюме

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

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

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

о себе: использую Python в течение двух лет с wxPython. (этот GUI непоследователен, но никогда не ломается так. Возможно, я не понял модель потоковой передачи, используемую Javascript и Titanium, но я не одинок в соответствии с их открытыми дискуссионными форумами, объекты GUI внезапно используют неправильный контекст/не обновляются..???) перед этим у меня есть фон в программировании C и ASM для мобильных устройств.

[edit-добавлена часть с ошибками и не будучи поточно-ориентированный] [Edit-теперь, работая с ним в течение месяца+, в основном на ПК,но некоторые и на OS X. Добавлена двойная таргетинг iPhone и Android. Добавлена скорость цикла отладки методом проб и ошибок.]

Corona SDK (Ansca Mobile) использует Lua в качестве языка кодирования. См. lua.org для получения дополнительной информации о Lua.

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

Я работаю с Титаном уже более недели и чувствую, что у меня есть хорошее чувство о его слабости.

1) Если вы надеетесь, что вы используете один и тот же код на нескольких платформах удачи! Вы увидите что-то вроде backgroundGradient и будете поражены, пока не узнаете, что версия android не поддерживает ее. Затем нужно вернуться к использованию градиентного изображения, а также использовать его для обеих версий, чтобы сделать код проще правильно?

2) Много странного поведения, на Титане Android sdk вам нужно понять, что такое "тяжелое" окно, чтобы заставить кнопку "Назад" работать или даже лучше отслеживать события ориентации. Это не то, как на самом деле платформа android, ее просто как Titanium пытается заставить их API работать.

3) Ваш брошенный в темноте, все рухнет, и вы должны начать комментировать код, а затем, когда вы его найдете, никогда не используйте его. Есть некоторые очевидные ошибки, такие как ориентация и проценты на android, которые были проблемой более шести лет месяцы.

4) ошибки .... есть много ошибок, и они будут сообщены, сидеть в течение нескольких месяцев, исправляются в течение нескольких дней. Я удивлен, что они даже планируют выпустить Black berry mobile sdk, когда есть так много других проблем с android.

5) Titanium Iphone против Titanium Android javascript двигатели совершенно разные. На android версии вы можете скачать удаленные файлы javascript, включать и использовать библиотеки, такие как mootools, jquery и так далее. Я был в небеса, когда я узнал об этом, потому что мне не нужно было продолжать компиляцию моего приложения для android. Процесс установки Android apk занимает так много времени! Iphone ничего из этого не возможно, также версия iphone имеет гораздо более быстрый движок javascript.

Если вы держитесь подальше от многих собственных частей пользовательского интерфейса, то есть вместо этого используйте setInterval для обнаружения изменений ориентации, придерживаясь градиентных изображений, забудьте о кнопке "Назад", создайте свои собственные анимации, забудьте заголовок окна, панели инструментов и панель мониторинга. Вы действительно может сделать api, который работает на обоих, что не требует много переписывания. Но в этот момент его так же вяло, как веб-приложение.

Так оно того стоит? После всей боли, ее стоит каждую минуту. Вы можете абстрагировать логику и просто построить другой пользовательский интерфейс для каждого, а не если elseing везде. Титан позволяет делать жидкие приложения, которые чувствуют себя быстро. Вы теряете мощные возможности компоновки каждой платформы, но если вы думаете просто, все может быть сделано под одним язык.

Почему не веб-приложение? На рынке начального уровня android-телефонов его ужасно медленно генерировать webview и потребляет много памяти, которую вы могли бы использовать для выполнения более сложной логики.

вот более свежий и глубокий анализ Appcelerator и PhoneGap: http://savagelook.com/blog/portfolio/a-deeper-look-at-appcelerator-and-phonegap

и вот еще более подробно о том, как они программно отличаются : http://savagelook.com/blog/portfolio/phonegap-is-web-based-appcelerator-is-pure-javascript

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

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

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

Я останусь с родными приложениями на данный момент я думаю.

Ромобиль Родос (http://rhomobile.com/products/rhodes) очень похож на подход к PhoneGap, но является единственным фреймворком с:

  1. в модель-представление-контроллер (а большинство веб-фреймворков предоставляют)
  2. объектно-реляционный менеджер
  3. поддержка всех популярных смартфонов (включая Windows Phone 7)
  4. размещенная служба разработки (а не только размещенная сборка):http://rhohub.com
  5. a полный отладчик и эмулятор без SDK в среде IDE RhoStudio
  6. поддержка для синхронизации данных в автономном режиме

для всех, кто интересуется Титаном, я должен сказать, что у них нет очень хорошей документации, некоторые классы, свойства, методы отсутствуют. Но многое "задокументировано" в их примере приложения The KitchenSink, так что это не так уж плохо.

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

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

обновление: Титан добавлены карты API в версии 0.8 их фреймворка.

вы должны изучить objective c и программировать собственные приложения. Не полагайтесь на эти вещи, которые, по вашему мнению, облегчат вам жизнь. Apple убедилась, что самый простой способ-использовать свои собственные инструменты и язык. Для ваших 100 строк javascript я могу сделать то же самое в 3 строках кода или вообще без кода в зависимости от элемента. Смотрите некоторые учебники - если вы понимаете javascript, то objective c не сложно. Обходные пути жалки, и apple может вытащить вилку на вас в любое время, когда они хотят.

из упомянутых вами решений ни одно из них не дает вам прямого доступа к фреймворку MapKit, представленному в OS 3.0.

поскольку HTML-виджеты Google Maps не так хороши, как MapKit (см. пример Google Latitude), вам, вероятно, лучше всего разработать собственное приложение Cocoa touch или выбрать решение, которое вы можете расширить, чтобы добавить интеграцию MapKit. PhoneGap расширяется таким образом (он является открытым исходным кодом, поэтому по умолчанию), а некоторые другие решения могут быть также.

edit: Titanium теперь поддерживает MapKit

Я пробовал короны. Это было хорошо, пока я не обнаружил, что он не поддерживает потоковое mp3-аудио. Итак, я остановился прямо там. Я думаю, что если я действительно хочу быть разработчиком приложений для iphone, я должен изучить obj c. все, что я хотел сделать, это приложение, которое имеет список радиостанций, и вы нажимаете на них, чтобы начать играть.