Vaadin TouchKit — мобильная версия фреймворка Vaadin. Принцип работы практически такой же. Из коробки фреймворк предоставляет нам мобильные UI компоненты (по умолчанию iOS тема), так же удобный менеджер навигации. Вся разработка ведется на Java, конечная сборка через PhoneGap
К достоинствам Vaadin TouchKit можно отнести:
- Люди знакомые с Vaadin без особых проблем смогут разрабатывать на TouchKit
- Возможность разработки проекта в Maven
- Доступны все базовые UI компоненты
- Код пишется на Java
К недостаткам можно отнести:
- Платный (750$)
- Конкретно по Vaadin TouchKit почти нет примеров
- По умолчанию доступна лишь тема для iOs
- Из субъективных описаний людей пользовавшихся Vaadin TouchKit складывается впечатление, что он работает медленнее нежели JS фреймворки
- Мало сторонних библиотек, а они нужны так как стандартных компонентов UI явно недостаточно для красивого приложения.
- Поддерживает только платформы : Android и iOs
Пример работы:
Мобильное приложение должно иметь класс TouchKitApplication в отличии от десктопного в котором был Application. Таким образом каркас имеет вид:
private TouchKitWindow mainWindow;
@Override
public void init() {
// Custom configurations (app icons etc) for main window need
// to be set eagerly as they are written on the "host page".
ConfigureMainWindow();
setTheme("vornitologist");
}
}
Графический интерфейс инициализируется лишь после того как приложение получит данные браузера от устройства:
public void onBrowserDetailsReady() {
mainWindow.setContent(new MainTabsheet());
}
Пример создания навбара (вырвано из кода но в общем дает картину):
private MapView mapView;
private LatestObservations latestObservations;
private ClassificationHierarchy classificationHierarchy;
public MainTabsheet() {
ResourceBundle tr = Translations.get(VornitologistApplication.get()
.getLocale());
/*
* Populate main views
*/
classificationHierarchy = new ClassificationHierarchy();
Tab addTab = addTab(classificationHierarchy);
addTab.setIcon(new ThemeResource("linegraphics/bird.png"));
addTab.setCaption(tr.getString("Aves"));
latestObservations = new LatestObservations();
addTab = addTab(latestObservations);
addTab.setIcon(new ThemeResource("linegraphics/binocular.png"));
addTab.setCaption(tr.getString("Observations"));
mapView = new MapView();
addTab = addTab(mapView);
addTab.setIcon(new ThemeResource("linegraphics/world.png"));
addTab.setCaption(tr.getString("Map"));
SettingsView settings = new SettingsView();
addTab = addTab(settings);
addTab.setIcon(new ThemeResource("linegraphics/tools.png"));
addTab.setCaption(tr.getString("Settings"));
/*
* Make settings view as the default. This would not be best option for
* a real application, but it also serves as our demos welcome page.
*/
setSelectedTab(settings);
}
}
Пример интерфейса написаного на TouchKit:
Для полной картины можно посмотреть ветку с кодом примера здесь , а полюбоваться его онлайн-демо можно здесь.
Продолжение:
Обзор мультиплатформенных фреймворков — jQuery Mobile (1/6)
Обзор мультиплатформенных фреймворков — MGWT + PHONEGAP (2/6)
Обзор мультиплатформенных фреймворков — Sencha Touch (3/6)
Обзор мультиплатформенных фреймворков — Appcelerator Titanium Mobile (4/6)
Обзор мультиплатформенных фреймворков — IBM WorkLight (6/6)