Как альтернативу разработки мобильного приложения с использованием JavaScript можно использовать фреймворк MGWT. По сути это тот же Google Web Tools позволяющий писать логику веб приложения на JAVA , которая позже компилируется в JS. MGWT не заменяет стандартный GWT, а расширяет его.
В данном случае цепочка разработки сводится к JAVA — CSS. Из этой цепочки можно исключить CSS и делать все в JAVA
К достоинствам MGWT можно отнести:
- Бесплатный
- В отличии от разработки на Android SDK нет необходимости возиться с кучей XML файлов для построения пользовательского интерфейса.
- Нет необходимости знания JS или веб технологий.
- Присутствует библиотека мобильных элементов интерфейса
- Это развитие продукта от Google
- Возможность разработки проекта в Maven
- Интеграция с PhoneGap
Пример создания кнопки Hello World со слайд анимацией :
В настроечном gwt.xml файле прописываем:
Главный класс EntryPoint:
import com.google.gwt.user.client.ui.RootPanel;
import com.googlecode.mgwt.mvp.client.Animation;
import com.googlecode.mgwt.ui.client.MGWT;
import com.googlecode.mgwt.ui.client.MGWTSettings;
import com.googlecode.mgwt.ui.client.animation.AnimationHelper;
import com.googlecode.mgwt.ui.client.widget.Button;
import com.googlecode.mgwt.ui.client.widget.LayoutPanel;
public class MGWTEntryPoint implements EntryPoint {
public void onModuleLoad() {
// set viewport and other settings for mobile
MGWT.applySettings(MGWTSettings.getAppSetting());
// build animation helper and attach it
AnimationHelper animationHelper = new AnimationHelper();
RootPanel.get().add(animationHelper);
// build some UI
LayoutPanel layoutPanel = new LayoutPanel();
Button button = new Button("Hello mgwt");
layoutPanel.add(button);
// animate
animationHelper.goTo(layoutPanel, Animation.SLIDE);
}
}
Тем самым мы имеем в принципе понятный код для человека работавшего раньше к примеру со Swing.
Так же есть интеграция с PhoneGap тем самым позволяющая работать с API устройства.
Пример интерфейса разработанного на mgwt:
Как видим — по сути имеем тоже самое что и с jQuery Mobile, только теперь при помощи java.
Основные минусы:
- Недостаточно много документации конкретно по mgwt. Но в принципе документация по gwt тоже подойдет
- Порог вхождения в данную технологию достаточно высок
- Не смог отыскать визуальной среды для разработки интерфейсов конкретно под mgwt, но возможно подойдут и существующие средства для gwt
- Сборка опять-таки под PhoneGap
Продолжение:
Обзор мультиплатформенных фреймворков — jQuery Mobile (1/6)
Обзор мультиплатформенных фреймворков — Sencha Touch (3/6)
Обзор мультиплатформенных фреймворков — Appcelerator Titanium Mobile (4/6)
Обзор мультиплатформенных фреймворков — Vaadin TouchKit (5/6)
Обзор мультиплатформенных фреймворков — IBM WorkLight (6/6)