Обзор мультиплатформенных фреймворков — MGWT + PHONEGAP (2/6)

2)  MGWT + PHONEGAP

MGWT лого

Как альтернативу разработки мобильного приложения с использованием 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 файле прописываем:

 <inherits name='com.googlecode.mgwt.MGWT'/>

Главный класс EntryPoint:

import com.google.gwt.core.client.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)

Добавить комментарий