Я веб-разработчик и хочу перенести свои веб-продукты на iPhone. Один из продуктов похож на Google Maps: показать карту на экране телефона, вы можете перетащить или изменить размер карты и просмотреть некоторую информацию, которую мы добавляем на карту.
Я знаю, что есть некоторые технологии, которые позволяют использовать HTML, CSS и Javascript для разработки собственных приложений для iPhone. Я определил несколько:
Есть ли другие, похожие продукты? Каковы различия между ними? какой я должен выбрать?
iphone
android
html
mobile-website
Микки Шайн
источник
источник
Ответы:
Я зарегистрировался в stackoverflow только для того, чтобы прокомментировать самый голосующий ответ сверху. Плохо то, что stackoverflow не позволяет новым пользователям оставлять комментарии. Поэтому я должен сделать этот комментарий более похожим на ответ.
Ответ Рори Блайта содержит несколько важных моментов о двух мобильных фреймворках javascript. Однако его ключевые моменты неверны. Правда в том, что Titanium и PhoneGap больше похожи, чем отличаются. Они оба предоставляют функции мобильного телефона через набор API-интерфейсов JavaScript, а логика приложения (html, css, javascript) работает внутри встроенного элемента управления WebView.
PhoneGap - это не просто встроенная оболочка веб-приложения. Через API-интерфейс JavaScript PhoneGap «веб-приложение» получает доступ к функциям мобильного телефона, таким как геолокация, камера акселерометра, контакты, база данных, файловая система и т. Д. По сути, любая функция, которую предоставляет SDK мобильного телефона, может быть «соединена» с мир JavaScript С другой стороны, обычное веб-приложение, которое работает в мобильном веб-браузере, не имеет доступа к большинству этих функций (главная причина - безопасность). Поэтому приложение PhoneGap - это скорее мобильное приложение, чем веб-приложение. Конечно, вы можете использовать PhoneGap, чтобы обернуть веб-приложение, которое вообще не использует API PhoneGap, но это не то, для чего PhoneGap был создан.
Titanium НЕ компилирует ваш html, css или javascript код в «собственные биты». Они упакованы как ресурсы для исполняемого пакета, во многом как встроенный файл изображения. Когда приложение запускается, эти ресурсы загружаются в элемент управления UIWebView и запускаются там (как, конечно, javascript, а не собственные биты). Не существует такого понятия, как компилятор javascript-to-native-code (или to -jective-c). Это делается так же, как и в PhoneGap. С архитектурной точки зрения эти две основы очень похожи.
Теперь они отличаются? Да. Во-первых, Titanium кажется более функциональным, чем PhoneGap, соединяя больше функций мобильного телефона с javascript. Наиболее заметно, что PhoneGap не предоставляет много (если таковые имеются) нативных компонентов пользовательского интерфейса для javascript. Титаниум, с другой стороны, имеет комплексные API-интерфейсы пользовательского интерфейса, которые можно вызывать в javascript для создания и управления всеми видами собственных элементов управления пользовательского интерфейса. Используя эти интерфейсы API, приложение Titanium может выглядеть более «родным», чем приложение PhoneGap. Во-вторых, PhoneGap поддерживает больше платформ для мобильных телефонов, чем Titanium. API-интерфейсы PhoneGap являются более общими и могут использоваться на различных платформах, таких как iPhone, Android, Blackberry, Symbian и т. Д. Titanium, по крайней мере, на данный момент, в первую очередь ориентирован на iPhone и Android. Некоторые из его API-интерфейсов зависят от платформы (например, API-интерфейсы iPhone).
Так что, если вы хотите, чтобы приложение выглядело «родным», Titanium - лучший выбор. Если вы хотите легче переносить ваше приложение на другую платформу, PhoneGap будет лучше.
Обновлено 13.08.2010: Ссылка на ответ сотрудника Titanium на вопрос Микки.
Обновлено 12/04/2010: Я решил ежегодно публиковать этот пост, чтобы постоянно обновлять информацию. Многие вещи претерпели изменения за год, что сделало часть информации в первоначальном посте устаревшей.
Самое большое изменение пришло от титана. Ранее в этом году Appcelerator выпустил Titanium 1.0, который значительно отличается от предыдущих версий с точки зрения архитектуры. В версии 1.0 элемент управления UIWebView больше не используется. Вместо этого вы вызываете API-интерфейсы Titanium для любых функций пользовательского интерфейса. Это изменение означает пару вещей:
Пользовательский интерфейс вашего приложения становится полностью нативным. В вашем приложении больше нет веб-интерфейса, поскольку нативные API-интерфейсы Titanium контролируют все ваши потребности в пользовательском интерфейсе. Titanium заслуживает большого уважения благодаря новаторству на границе «Cross-Platform Native UI». Это дает программистам, которые предпочитают внешний вид родного интерфейса, но не любят официальный язык программирования, альтернативу.
Вы не сможете использовать HTML или CSS в своем приложении, так как веб-представление исчезло. (Примечание: вы все еще можете создавать веб-представление в Titanium. Но есть несколько функций Titanium, которые вы можете использовать в веб-представлении.) Titanium: вопросы и ответы: Что случилось с HTML и CSS?
Вы не сможете использовать популярные библиотеки 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. Хотя веб-интерфейс по-прежнему отстает от собственного интерфейса по производительности и внешнему виду, он быстро устраняется. Существуют две тенденции в веб-технологиях, которые обеспечивают яркую функциональность мобильного веб-интерфейса с точки зрения производительности:
Двигатель JavaScript движется от переводчика к виртуальной машине. JavaScript - это JIT, скомпилированный в собственный код для более быстрого выполнения. Двигатель Safari JS: SquirrelFish Extreme
Рендеринг веб-страниц переходит от использования CPU к использованию ускорения GPU. Интенсивные графические задачи, такие как переход страниц и трехмерная анимация, становятся намного более плавными благодаря аппаратному ускорению. GPU Ускоренное наложение в Chrome
Такие улучшения, которые происходят от настольных браузеров, быстро доставляются в мобильные браузеры. Фактически, начиная с iOS 3.2 и Android 2.0, управление мобильным веб-представлением стало намного более производительным и дружественным к HTML5. Будущее мобильного Интернета настолько многообещающе, что привлекло в город большого ребенка: JQuery недавно анонсировала свой мобильный веб-фреймворк. На мой взгляд, благодаря JQuery Mobile, предоставляющему гаджеты пользовательского интерфейса, и PhoneGap, предоставляющему функции телефона, они вместе создают идеальную мобильную веб-платформу.
Я должен также упомянуть Sencha Touch как еще один фреймворк для мобильных устройств с пользовательским интерфейсом. Версия 1.0 Sencha Touch была недавно выпущена по модели двойного лицензирования, которая включает GPLv3. Sencha Touch работает с PhoneGap так же, как JQuery Mobile.
Если вы программист GWT (как и я), вы можете попробовать GWT Mobile , проект с открытым исходным кодом для создания мобильных веб-приложений с GWT. Он включает в себя оболочку PhoneGap GWT, которая позволяет использовать PhoneGap в GWT.
источник
Из того, что я собрал, вот некоторые различия между ними:
PhoneGap в основном генерирует нативные оболочки для веб-приложений . Он выплевывает проект WhwhatYourPlatformIs, вы его создаете и развертываете. Если мы говорим об iPhone (именно на этом я и провожу свое время), то, похоже, он не сильно отличается от создания средства запуска веб-приложений (ярлык, который получает собственный значок Springboard, поэтому вы можете запустить его как ( например ) родное приложение). Само приложение по-прежнему html / js / и т. Д. И работает внутри размещенного в браузере элемента управления. Помимо этого, PhoneGap является мостом между JavaScript и собственными API-интерфейсами устройств. Таким образом, вы пишете JavaScript против API PhoneGap, и PhoneGap затем делает соответствующий соответствующий собственный вызов. В этом отношении он является отличается от развертывания простой старый веб - приложение.
Титановый источник компилируется до собственных битов. То есть ваш html / js / etc. они не просто присоединяются к проекту, а затем размещаются внутри элемента управления веб-браузера - они превращаются в собственные приложения. Это означает, например, что интерфейс вашего приложения будет состоять из собственных компонентов пользовательского интерфейса. Есть способы получить нативный внешний вид без использования нативного приложения, но ... ну ... какой кошмар обычно бывает.
Они похожи в том, что вы пишете все свои вещи, используя типичные веб-технологии (html / js / css / blah blah blah), и что вы получаете доступ к встроенным функциям через пользовательские API-интерфейсы JavaScript.
Но, опять же, приложения PhoneGap (PhonGapps? Я не знаю ... это глупое имя? Проще сказать - я знаю это) начинают свою жизнь как веб-приложения и заканчивают свою жизнь как веб-приложения. На iPhone ваш html / js / etc. выполняется только внутри элемента управления UIWebView, и JavaScript-API PhoneGap, которые вы вызываете в js, направляются в нативные API-интерфейсы.
Приложения Titanium становятся родными приложениями - они просто разработаны с использованием технологии веб-разработки.
Что это на самом деле означает ?
Титановое приложение будет выглядеть как «реальное» приложение , потому что, в конечном счете, это является «реальным» приложением.
PhoneGap приложение будет выглядеть как веб - приложение , приютили в элементе управления браузера , потому что, в конечном счете, это является веб - приложение , приютили в элементе управления браузера.
Что подходит вам?
Если вы хотите писать собственные приложения, используя навыки веб-разработчика, Titanium - ваш лучший выбор.
Если вы хотите написать приложение с использованием навыков веб-разработчика, которое вы могли бы реально развернуть на нескольких платформах (iPhone, Android, Blackberry и все остальное, что они решили включить), и если вы хотите получить доступ к подмножеству функций собственной платформы (GPS, акселерометр и т. д.) через единый JavaScript API, PhoneGap, вероятно, то, что вы хотите.
Вы можете спросить: почему я хотел бы написать PhoneGapp (я решил использовать имя), а не веб-приложение, размещенное в Интернете? Разве я не могу получить доступ к некоторым встроенным функциям устройства таким образом, но при этом иметь удобство истинного веб-развертывания вместо того, чтобы заставлять пользователя загружать свое «родное» приложение и устанавливать его?
Ответ таков: потому что вы можете отправить свой PhoneGapp в App Store и заплатить за него. Вы также получаете эту иконку запуска, которая усложняет для пользователя забыть о вашем приложении (я гораздо чаще забуду о закладке, чем значок приложения).
Вы, конечно, могли бы взимать плату за доступ к вашему веб-приложению, но сколько людей действительно пройдут этот процесс, чтобы сделать это? В App Store я выбираю приложение, нажимаю кнопку «Купить», ввожу пароль, и все готово. Это устанавливает. Через несколько секунд я им пользуюсь. Если бы мне пришлось использовать чей-то единый интерфейс для мобильных веб-транзакций, что, вероятно, означает необходимость выстукивать мое имя, адрес, номер телефона, номер CC и другие вещи, которые я не хочу использовать, я почти наверняка не смог бы не пройти через это. Кроме того, я доверяю Apple - я уверен, что Стив Джобс не собирается регистрировать мою информацию, а затем выставляет кучу непослушных подписок на журналы на мой CC за пинки.
В любом случае, за исключением того, что задействованы технологии веб-разработки, PhoneGap и Titanium сильно отличаются друг от друга - до такой степени, что они внешне сопоставимы.
Кстати, я ненавижу веб-приложения, и если вы читаете обзоры iTunes App Store, пользователи довольно хорошо их замечают. Я не буду называть никаких имен, но у меня на телефоне есть пара «приложений», которые выглядят и работают как мусор, и это потому, что они являются веб-приложениями, которые размещены внутри экземпляров UIWebView. Если бы я хотел использовать веб-приложение, я бы открыл Safari и, перейдите к нему. Я купил iPhone, потому что хочу вещи, которые есть у iPhone. У меня нет проблем с использованием, скажем, шикарного веб-приложения Google в Safari, но я бы почувствовал себя обманутым, если бы Google просто вставил закладку в Springboard, представив веб-приложение как нативное.
Должны идти. У моей девушки такое выражение лица, которое вы можете прекратить использовать на компьютере в течение трех секунд.
источник
Я прохожу курс разработки для Android / iPhone, и мы провели 8 недель с Titanium (не полный рабочий день) (версия была Titanium 1.4.2, а время было около ноября 2010 года) Вот мой опыт.
iPhone Android двойной таргетинг
Хотя в руководствах по API утверждается, что эта функциональность доступна как для Android, так и для iPhone, это не так. Многие вещи просто не работают на одной из платформ. Некоторые вещи работают по-другому.
Многие люди в классе делали приложения для iPhone, и они не могут заставить их работать на Android без серьезных переписываний. Я разработал простое детское приложение под названием Animap (см. Рынок Android / Appstore в Швеции) и начал разрабатывать под Windows. Как только цель для Android заработала, я открыл проект на OS X. Он не показывает никаких сборочных материалов для iPhone, только для Android. Вам необходимо запустить проект с двойной целью под OS X. (Хорошо, я скопировал соответствующие файлы в новый проект). Следующая проблема - анимации не работают на iPhone (они работают на Android). События прокрутки не работают так же на iPhone. (т.е. на Android вы получаете событие неприкосновения, когда пользователь прекращает прокручивать и отпускает палец с экрана, на iPhone это не происходит).
Поскольку это нигде не упоминается, вам необходимо в основном программировать методом проб и ошибок сначала на одной платформе, а затем на другой. Методом проб и ошибок я имею в виду, что на создание такого простого приложения, как Animap, на другой платформе потребуется около двух дней. Вам также нужно будет иметь if (android) then ... или if (iphone) ... по всему вашему коду ...
Скачать и настроить
Вы должны следовать инструкциям к письму. Не пытайтесь использовать Java 64 бит. Он не скомпилирует демонстрационное приложение KitchenSink 1.4.0. (1.3 работает нормально!) Вы должны поместить файлы непосредственно на диск C, поскольку длинные имена путей заставят внешнюю программу не получать все параметры командной строки, если они получат значение long. (Впрочем, для небольших программ). В 1/3 раза цепочка инструментов просто останавливается, и вы должны снова нажать «запуск». Тогда это, вероятно, будет работать ... очень ненадежно. Симулятор не будет найден при запуске, и тогда вам нужно просто убить adb.exe с помощью Ctrl + Alt + Delete и повторить попытку.
Подключение к сети
В Wi-Fi-сети вы иногда теряете работающее соединение, и Titanium падает на вас (интерфейс компиляции / развертывания). Если у вас нет работающего интернет-соединения, оно не запустится, так как не сможет войти на свои серверы.
API
CSS, HTML и jQuery - это бриз по сравнению с этим. Titanium напоминает любой другой старый графический интерфейс API, и вам нужно установить некоторые свойства для каждой кнопки / поля / и т. Д. Неправильно получить поле - просто вспомнить все свойства, которые нужно установить? Вы написали его заглавными буквами в нужном месте? (так как это не перехватывается компилятором, но будет рассматриваться как ошибка времени выполнения, если вам повезет протестировать эту часть)
В Titanium все просто ломается, когда вы добавляете другое представление поверх элемента управления или щелкаете где-то еще в GUI.
Документация
На нескольких страницах API есть символ Android, но он будет возвращать ноль только при попытке создать элемент управления. Они не просто доступны на платформе Android, несмотря на символы. Иногда упоминается, что Android не поддерживает определенный метод, но тогда весь API отсутствует.
Кухонная мойка
Демо-приложение. Я упоминал, что он не компилируется, если вы поместите его в папку проекта Eclipse, потому что путь становится слишком длинным? Должен быть помещен на ваш диск C в корневой папке. В настоящее время я использую ссылку symbolik (mklink / J ...)
Недокументированные методы
Вероятно, вы должны использовать такие вещи, как label.setText («Hello World») для надежного изменения метки, но это совсем не задокументировано.
Отладка
Titanium.API.info («Распечатки - единственный способ отладки»);
Редактирование
API не доступны ни в одном хорошем формате, поэтому вы не можете получить обычное завершение кода с помощью и т. Д. В Eclipse. Аптана, пожалуйста, помогите!
аппаратные средства
Кажется, что компилятор / инструменты не являются многопоточными, поэтому быстрый компьютер с быстрым жестким диском является обязательным, так как вы должны сделать много проб и ошибок. Я упоминал плохую документацию? Вы должны попробовать все, потому что вы не можете доверять этому!
Некоторые положительные моменты
Из предыдущих проектов я пообещал себе никогда больше не использовать закрытый исходный код, так как вы не можете просто исправить вещи, просто потратив на это часы и рабочую силу. Это важно, когда вы опаздываете в проект и вам необходимо поставить его в сжатые сроки. Это открытый исходный код, и я смог понять, почему цепочка инструментов обрывается, и на самом деле исправить это.
Bugdatabase
Это также открыто. Вы можете просто увидеть, что вы не одиноки, и сделать обходной путь вместо 4 часов, потраченных на пробу и ошибку.
сообщество
ошибки
Большая часть проблем, с которыми я столкнулся с Titanium, связана с моим прошлым в системах реального времени, таких как OSE, которые поддерживают сотни потоков, событий и сообщений. Предполагается, что это работает в Titanium 1.4, но просто не надежно.
Javascript (который является новым для меня) умирает молча от ошибок во время выполнения. Это также означает, что мелкие и распространенные ошибки, такие как неправильное написание имени переменной или чтение в нулевом указателе, не дают сбоя, когда это необходимо, чтобы вы могли отладить его. Вместо этого части вашей программы просто перестают работать, например, обработчик событий, потому что вы потеряли или неправильно вставили символ.
Тогда у нас есть более простые ошибки в Titanium, например, некоторые параметры не работают в функциях (что, по крайней мере, довольно часто встречается на платформе Android).
Скорость цикла отладки проб и ошибок Запустив Titnium Developer на нескольких компьютерах, я заметил, что узким местом является жесткий диск. SSD-накопитель на ноутбуке делает цикл сборки примерно в 3-5 раз быстрее, чем на 4200 об / мин. На настольном компьютере наличие двух дисков в RAID 1 (чередующийся режим) делает сборку примерно на 25 процентов быстрее, чем на одном диске с несколько более быстрым ЦП, и это также лучше, чем у ноутбука с SSD.
Резюме
Это очень сильно просвечивает, когда вы начинаете его использовать. Если вы посмотрите на открытый багтрекер, вы увидите, что количество ошибок продолжает расти быстрее, чем количество исправленных ошибок. Обычно это признак того, что разработчики продолжают добавлять больше функциональности, а не концентрироваться на уменьшении количества ошибок.
Как консультант, пытающийся доставить довольно простые приложения в мультиплатформенность для клиента - я не уверен, что это на самом деле быстрее, чем разработка нативных приложений на двух платформах. Это связано с тем, что когда вы набираете скорость, вы быстро используете Titanium, но затем вы неожиданно смотрите вниз и попадаете в такую глубокую яму, что не знаете, сколько часов нужно потратить на обходной путь. Вы можете просто НЕ обещать определенную функциональность в течение определенного срока / времени / стоимости.
О себе: я уже два года использую Python с wxPython. (этот GUI не отвечает, но никогда не ломается, как это. Возможно, я не понял модель потоков, используемую Javascript и Titanium, но я не одинок согласно их открытым дискуссионным форумам, объекты GUI внезапно используют неправильный контекст / не обновляется .. ???) до этого у меня есть опыт программирования на C и ASM для мобильных устройств.
[править - добавлена часть с ошибками, и она не защищена от потоков] [Правка - теперь работаю с ней в течение месяца +, в основном на ПК, но также на OS X Добавлено двойное нацеливание на iPhone и Android. Добавлена скорость отладки проб и ошибок.]
источник
Corona SDK (Ansca Mobile) использует Lua в качестве языка кодирования. Смотрите lua.org для получения дополнительной информации о Lua.
Несмотря на то, что мы планируем добавить дополнительные элементы веб-интеграции и нативного пользовательского интерфейса, основное внимание будет уделяться приложениям с интенсивной графикой, таким как разработка игр, а не веб-технологиям. Другими словами, мы не предполагаем, что люди пишут приложения Corona полностью на Javascript / HTML / CSS.
источник
Я работаю с Titanium уже больше недели и чувствую, что хорошо чувствую его слабость.
1) Если вы надеетесь использовать один и тот же код на нескольких платформах, удачи! Вы увидите что-то вроде backgroundGradient и будете удивлены, пока не обнаружите, что версия для Android не поддерживает это. Тогда придется вернуться к использованию градиентного изображения, может также использовать его для обеих версий, чтобы сделать код проще, верно?
2) Много странного поведения, на Titanium android sdk вам нужно понять, что такое «тяжелое» окно, просто чтобы заставить работать кнопку «назад», или даже лучше отслеживание событий ориентации. Это не то, чем на самом деле является платформа Android, а то, как Titanium пытается заставить их API работать.
3) Тебя бросают в темноту, все падает, и ты должен начать комментировать код, а затем, когда найдешь его, никогда не используй его. Есть определенные очевидные ошибки, такие как ориентация и проценты на Android, которые были проблемой более шести месяцев.
4) Ошибки ... есть много ошибок, и о них будут сообщать, сидеть месяцами, исправляться через несколько дней. Я удивлен, что они даже планируют выпустить Black Berry Mobile SDK, когда есть много других проблем с Android.
5) Титаниум Iphone и Android-движки Titanium полностью отличаются. В версии для Android вы можете загружать удаленные файлы javascript, включать и использовать библиотеки, такие как mootools, jquery и так далее. Я был на небесах, когда узнал об этом, потому что мне не нужно было продолжать компилировать приложение для Android. Процесс установки Android apk занимает так много времени! Iphone ничего из этого не возможно, также версия iphone имеет гораздо более быстрый движок javascript.
Если вы держитесь подальше от множества собственных частей пользовательского интерфейса, т.е. вместо этого используйте setInterval для обнаружения изменений ориентации, привязки к градиентным изображениям, забудьте о кнопке «Назад», создайте собственную анимацию, забудьте заголовок окна, панели инструментов и панель инструментов. Вы действительно можете сделать API, который работает на обоих, который не требует много переписывания. Но в этот момент он такой же вялый, как веб-приложение.
Так стоит ли это того? Ведь боль, стоит каждой минуты. Вы можете абстрагировать логику и просто создать разные интерфейсы для каждого, а не для других. Титан позволяет вам быстро наносить жидкие аппликации. Вы теряете мощные возможности компоновки каждой платформы, но если вы думаете, что все просто, все может быть сделано на одном языке.
Почему не веб-приложение? На рынке Android-телефонов начального уровня генерация веб-просмотра ужасно медленная и потребляет много памяти, которую вы могли бы использовать для более сложной логики.
источник
Вот более свежий и глубокий анализ 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 заметит разницу.
Существуют также некоторые различия в видах жестов, которые поддерживаются различными устройствами, что также приводит к проблемам с кодом конкретной платформы и удобству использования.
Я останусь с родными приложениями, я думаю.
источник
Rhomobile Rhodes ( http://rhomobile.com/products/rhodes ) очень похож на подход к PhoneGap, но является единственной платформой с:
источник
Для тех, кто интересуется Titanium, я должен сказать, что у них нет очень хорошей документации, некоторые классы, свойства, методы отсутствуют. Но многое "документировано" в их примере приложения KitchenSink, так что это не так уж плохо.
источник
Насколько я понимаю, PhoneGap предоставляет API-интерфейсы Javascript для большинства API-интерфейсов iPhone.
Титаниум кажется проще для веб-разработчиков. Это простой XML-файл для создания основного приложения TabView, а затем все в области содержимого контролируется HTML / JS. Я также знаю, что Titanium обеспечивает доступ к некоторым из фреймворков через JavaScript (в частности, к информации о местоположении, идентификатору телефона и т. Д.).
ОБНОВЛЕНИЕ: Titanium добавил Maps API в версии 0.8 своего фреймворка.
источник
Вы должны изучить цель c и программировать нативные приложения. Не полагайтесь на то, что, по вашему мнению, облегчит жизнь. Apple позаботилась о том, чтобы проще всего было использовать их родные инструменты и язык. Для ваших 100 строк javascript я могу сделать то же самое в 3 строках кода или вообще без кода в зависимости от элемента. Посмотрите несколько уроков - если вы понимаете javascript, тогда задача c не сложна. Обходные пути печальны, и Apple может подключить вас к сети в любое время.
источник
Из упомянутых вами решений ни одно из них не дает вам прямого доступа к инфраструктуре MapKit, представленной в OS 3.0.
Поскольку HTML-виджеты Карт Google не так хороши, как MapKit (например, см. Google Локатор), вам, вероятно, лучше всего разработать собственное сенсорное приложение Cocoa или выбрать решение, которое вы можете расширить, чтобы добавить интеграцию MapKit. PhoneGap является расширяемым таким образом (он с открытым исходным кодом, так что это по умолчанию), и некоторые другие решения также могут быть.
редактировать: Titanium теперь имеет поддержку MapKit
источник
Я пробовал корону. Это было хорошо, пока я не обнаружил, что он не поддерживает потоковое аудио в формате mp3. Итак, я остановился прямо там. Я думаю, что если я действительно хочу стать разработчиком приложений для iphone, я должен изучить obj c. Все, что я хотел сделать приложение, которое имеет список радиостанций, и вы нажимаете на них, оно начинает играть.
источник