Wouldn't it be crazy to fly a small drone or helicopter with your phone or tablet running nothing but a web browser? This session will tell you all about it!
Imagine a fully functional touch based user interface for remote controlling a small drone or a helicopter. This is doable with latest experimental integrations around drone controlling backend applications over WIFI with touch based control interface built with GWT or Vaadin. During the session such a system will be presented with full technology stack starting from GWT based frontend to the actual backend controller application written with Spring Boot.
35. GWT
Write client-side part with Java
Java -> JavaScript optimizing compiler
JavaScript generated DOM
Browser specific Widgetset
36. GWT
Write client-side part with Java
Java -> JavaScript optimizing compiler
JavaScript generated DOM
Browser specific Widgetset
No browser differences
37. GWT
Write client-side part with Java
Java -> JavaScript optimizing compiler
JavaScript generated DOM
Browser specific Widgetset
No browser differences
No browser plugins
38. GWT
Write client-side part with Java
Java -> JavaScript optimizing compiler
JavaScript generated DOM
Browser specific Widgetset
No browser differences
No browser plugins
Look’n’feel with CSS theme
45. Vaadin
Server-side = runs in JVM
Component based development model
Events for interaction
Transparent communication
46. Vaadin
Server-side = runs in JVM
Component based development model
Events for interaction
Transparent communication
Secure
47. Vaadin
Server-side = runs in JVM
Component based development model
Events for interaction
Transparent communication
Secure
No need for JavaScript / HTML
48. Vaadin
Server-side = runs in JVM
Component based development model
Events for interaction
Transparent communication
Secure
No need for JavaScript / HTML
Precompiled Widgetset
49. Vaadin
Server-side = runs in JVM
Component based development model
Events for interaction
Transparent communication
Secure
No need for JavaScript / HTML
Precompiled Widgetset
56. JogDial jogDial = new JogDial(Size.MEDIUM);
TextField x = new TextField();
TextField y = new TextField();
57. JogDial jogDial = new JogDial(Size.MEDIUM);
TextField x = new TextField();
TextField y = new TextField();
jogDial.addMoveListener(e -> {
x.setValue(e.getX());
y.setValue(e.getY());
});
58. JogDial jogDial = new JogDial(Size.MEDIUM);
TextField x = new TextField();
TextField y = new TextField();
jogDial.addMoveListener(e -> {
x.setValue(e.getX());
y.setValue(e.getY());
});
layout.addComponents(x, y, jogDial);
64. JogDial jogDial = new JogDial(Size.MEDIUM);
TextField x = new TextField();
TextField y = new TextField();
jogDial.addMoveListener(e -> {
x.setValue(e.getX());
y.setValue(e.getY());
});
layout.addComponents(x, y, jogDial);
128. @Override
public void onDroneStateChanged(DroneState latestState) {
if (latestState.isEmergency())
eventBus.publish(this, new DroneEmergencyEvent());
if (latestState.isBatteryTooLow())
eventBus.publish(this, new DroneLowBatteryEvent());
eventBus.publish(this, new DroneThetaEvent(this,
latestState.getTheta()));
eventBus.publish(this, new DroneAltitudeEvent(this,
latestState.getAltitude()));
}
}
139. Lessons learned today
1. Drones are super cool!
2. Vaadin is good for web apps, brings you great productivity
140. Lessons learned today
1. Drones are super cool!
2. Vaadin is good for web apps, brings you great productivity
3. Boot kickstarts development and helps you all the way
141. Lessons learned today
1. Drones are super cool!
2. Vaadin is good for web apps, brings you great productivity
3. Boot kickstarts development and helps you all the way
4. Official Vaadin Spring integration is already in Beta
142. Lessons learned today
1. Drones are super cool!
2. Vaadin is good for web apps, brings you great productivity
3. Boot kickstarts development and helps you all the way
4. Official Vaadin Spring integration is already in Beta
5. “Vaadin4Spring” will provide additional features