Должен ли я писать свое приложение с Sencha Touch или Native?

Благодаря последним обновлениям Sencha Touch, он все больше похож на родное приложение для iPhone и даже iPad. Есть еще много различий, и документации в настоящее время немного не хватает.

Мой вопрос заключается в том, что я уже полностью способен создавать собственное приложение в Objective C, следует ли переключиться на Sencha Touch и PhoneGap или начать интегрировать эти инструменты?

Каковы плюсы и минусы?

EDIT:

Спасибо за проницательные моменты. Один из моих партнеров написал свое мнение в течение выходных с некоторыми идеями, которые не были упомянуты здесь: Веб против Родной: как вы должны писать свое приложение?

Ответ 1

Плюсы:

  • Легче переносить на другие платформы.
  • Вы можете распространять вне App Store, если приложение не требует каких-либо встроенных API.

Минусы:

  • Прокрутка по-прежнему не совсем корректна с помощью любых веб-интерфейсов.
  • Медленнее (аппаратные ускорения CSS-анимации помогают, но это не так гибко, как Core Animation).
  • Отсутствует полный доступ к собственному оборудованию и ОС-интеграции (PhoneGap предоставляет некоторые, но не все), такие как:
    • Push-уведомления.
    • Локальные уведомления.
    • Обновления фонового местоположения (включая значительный мониторинг местоположения).
  • Это дискуссионно, но, на мой взгляд, Cocoa Touch легче разрабатывать, чем JavaScript + Sencha/XUI и т.д.

Ответ 2

Вопросы, приводящие к вашему собственному ответу:

Вам нужна необработанная производительность собственного приложения ARM? Или вам нужен API, доступный только для Objective C? (Например, для синтеза звука в реальном времени и т.д.). Вы хотите использовать новейшие API Apple, не дожидаясь появления какого-либо инструмента или библиотеки?

Не возражаете ли вы, чтобы ваш исходный код javascript отображался в незашифрованном виде внутри каждого файла .ipa каждого клиента?

Или вы хотите легко переносить более простую кросс-платформу приложения?

Ответ 3

  • Плюсы: Нет
  • Минусы: он никогда не будет таким же родным, как родное приложение. И вы зависите от API это не ваше, например. все ваши приложения будут бесполезны, как только они остановятся поддерживая их API.

Однако, если вы были неопытными и должны были сделать только приложение для короткого события (предстоящая рекламная кампания и т.д.), это было бы прекрасно, поскольку это сэкономило бы ваше время. Но хорошо, если вы хотите приложение с более длинным жизненным циклом, пойдите в native.

Ответ 4

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