Я пробовал оба, PhoneGap и Tabris. Для меня основным недостатком Tabris по сравнению с PhoneGap является то, что вы не можете напрямую управлять клиентской стороной, например. для проверки взаимодействия пользователя перед тем, как передавать данные на сервер.
С помощью PhoneGap у вас есть много свободы, используя JavaScipt на стороне клиента. С помощью Tabris вы привязываете заданный набор конкретных слушателей для любого элемента RWT. Но можно сказать, что для UI-Elements есть не только слушатели, но и, например, GeolocationListener, ProgressListener для браузера и гораздо больше слушателей, которые не требуют прямого взаимодействия с пользователем, например нажатия кнопки.
Из-за моего опыта работы с PhoneGap у меня действительно была идея взлома внутри приложения Tabris. Я хотел интегрировать карту, нарисовать на ней GPS-треки и позволить пользователю взаимодействовать без необходимости контактировать с сервером для каждого взаимодействия. Поэтому я создал страницу, в которой отображается только браузер (без адреса и заголовка). Пользователь не признает, что он просто взаимодействует с браузером внутри Tabris-App. Я добавил GeolocationListener, который определяет текущую позицию, а также часы, поэтому, когда пользователь меняет свое положение, сервер уведомляется. Фактический взлом заключается в том, что вы можете реализовать JavaScript API и вызывать JS-функции с serveride (!!). Другой способ, который вы называете Java-Method от клиентского JavaScript, как в «нормальном» SWT, не поддерживается Tabris. Метод execute() выполняет JavaScript на стороне клиента.
Вот фрагмент кода показывает мою реализацию страницы Tabris, «bikeNavigatorMap» является экземпляром JavaScript API-объекта: http://pastebin.com/Lnb4EspC
Так я создал полу-гибридные приложения с Tabris. :)
Вы используете Tabris (remote), основанный на RAP/SWT. У вас есть точка, что Tabris (remote) выполняет всю логику приложения на стороне сервера и, таким образом, не дает возможности клиенту выполнить проверку ввода перед отправкой данных на сервер. Tabris-js вместо этого выполняет все на устройстве (то есть локально) и вообще не требует сервера. Оба - разные технологии. Исходный вопрос не совсем понятен в отношении целевого варианта «Tabris» - remote vs. JS. – Jonek