Learn to Compose and Utilise GWT

Size: px
Start display at page:

Download "Learn to Compose and Utilise GWT"

Transcription

1 Developers

2 GWT History, Present & Future Daniel Kurka Software Engineer Developers

3 2

4 GWT 3

5 mgwt gwt-phonegap 4

6 5

7 GWT Day History, Present and Future of GWT, Daniel Kurka, Google GWT Team Papick G. Taboada - GWT - Architectures and Lessons learned - Client-Server-Kommunikation mit dem Command Pattern Eintauchen in MVP und Internationalisierung, Andreas Hubmer GWT - write once run everywhere, Katharina Fahnenbruck 6

8 GWT 7

9 GWT toolbox to write Javascript apps in Java clientside framework write, run, test & debug in Java with all the tools not swing for browsers! 8

10 Dev Mode 9

11 GWT Compiler compiles Java to Javascript one Javascript per Browser generated Javascript is highly efficient 100 lines of Javascript => use Javascript after that GWT is better in execution speed & size 10

12 Performance dead code removal inlining renaming zipping secure caching that works! 11

13 Example 12

14 Example Shape s = new Circle(2); // radius 2 12

15 Example Shape s = new Circle(2); // radius 2 double a = s.getarea(); 12

16 Example Shape s = new Circle(2); // radius 2 double a = s.getarea(); Inlining to: 12

17 Example Shape s = new Circle(2); // radius 2 double a = s.getarea(); Inlining to: Circle s = new Circle(2); // radius 2 12

18 Example Shape s = new Circle(2); // radius 2 double a = s.getarea(); Inlining to: Circle s = new Circle(2); // radius 2 double a = (s.radius * s.radius * Math.PI); 12

19 Example Shape s = new Circle(2); // radius 2 double a = s.getarea(); Inlining to: Circle s = new Circle(2); // radius 2 double a = (s.radius * s.radius * Math.PI); gets optimized to (constant removal): 12

20 Example Shape s = new Circle(2); // radius 2 double a = s.getarea(); Inlining to: Circle s = new Circle(2); // radius 2 double a = (s.radius * s.radius * Math.PI); gets optimized to (constant removal): double a = ; 12

21 deferred binding like reflection at compile time select the implementation per browser => Javascript only contains relevant parts to the specific client 13

22 What about Javascript? like assembler in C: private native void dosomething()/*-{ //your js code... }-*/; 14

23

24 GWT 16

25 GWT 17

26 GWT JavaScript 18

27 GWT JavaScript Browsers 19

28 JavaScript the fun part do not get me wrong I like JavaScript but there are some problems lets take a look at them 20

29 Double equals 21

30 Demo 22

31 functional programming language has its problems you need to learn it in order to use it can be lots of fun 23

32 GWT 24

33 Understand how the browser works 25

34 26

35 A browsers job present a web resource - request it from a server - analyze it - display it defined by standards, WC3 Committee (HTML spec, CSS spec,..) for a long time browsers did not conform to the spec this what HTML5 changed 27

36 High level structure User Interface Browser engine Data Persistence Rendering engine Networking JavaScript Interpreter UI Backend 28

37 Rendering engine 29

38 Parsing HTML to construct the DOM tree 30

39 Parsing HTML to construct the DOM tree Render tree construction 31

40 Parsing HTML to construct the DOM tree Render tree construction Layout of the render tree 32

41 Parsing HTML to construct the DOM tree Render tree construction Layout of the render tree Painting the render tree 33

42 Webkit HTML Style Sheets 34

43 Webkit HTML HTMLParser Style Sheets 35

44 Webkit HTML HTMLParser DOM Tree Style Sheets 36

45 Webkit HTML HTMLParser DOM Tree Style Sheets CSS Parser 37

46 Webkit HTML HTMLParser DOM Tree Style Sheets CSS Parser Style rules 38

47 Webkit HTML HTMLParser DOM Tree Attachment Style Sheets CSS Parser Style rules 39

48 Webkit HTML HTMLParser DOM Tree Attachment Render tree Style Sheets CSS Parser Style rules 40

49 Webkit HTML HTMLParser DOM Tree Layout Attachment Render tree Style Sheets CSS Parser Style rules 41

50 Webkit HTML HTMLParser DOM Tree Layout Attachment Render tree Painting Style Sheets CSS Parser Style rules 42

51 Webkit HTML HTMLParser DOM Tree Layout Attachment Render tree Painting Display Style Sheets CSS Parser Style rules 43

52 Webkit DOM HTML HTMLParser DOM Tree Layout Attachment Render tree Painting Display Style Sheets CSS Parser Style rules 44

53 Layout thrashing 45

54 Order of execution JavaScript parsing model is synchronous script tag blocks parsing (needs to be fetched and executed) - defer, async speculative parsing => prefetch resources stylesheets are treated different (can not alter the DOM) - they block initial painting PageSpeed - great tool to help you with this!

55 Rendering Engine Threads single threaded for almost anything network IO is in a different thread main thread does everything either execute layout engine or javascript 47

56 Performance 48

57 Performance understand the platform different kind of performances - startup - runtime - javascript performance - layout engine performance 49

58 GWT helps you building on the web platform you have to understand the underlying platform GWT is not about hiding the web GWT makes the web a better place for developers and users - better development tools - faster apps 50

59 History 51

60 Why? 52

61

62 The future of the web? 54

63 Flash 55

64 Silverlight 56

65

66

67 JavaScript had major flaws in 2005 no real tooling (alert debugging) no people with knowledge of the language Google needed a better tool 59

68 Java lots of tools many developers but: no web apps in Java 60

69 What if? 61

70 Leverage the Java ecosystem reuse knowledge reuse all the tools, like IDEs many developers 62

71 Why don t we compile Java to JavaScript 63

72 basic idea 64

73 GWT is not about hiding the web GWT does not hide the web brings tools and engineering to the platform GWT wants to make the web a better place for developers and users 65

74 The web is a great platform does not depend on one company reaches every device is build on standards has evolved so fast in the last years 66

75 GWT is massive GWT 1.0 (2006) GWT 1.3 (2007) First Open Source Release, OSX support GWT 1.4 (2007) JUnit and ImageBundle GWT 1.5 (2008) Java 1.5 support, Overlay Types, DOM API, CSS Themes, Linkers GWT 1.6 (2009) EventHandlers, EMMA Support, WAR support, Parallelized Builds GWT 1.7 (2009) Newer browser support, IE8, GPE and AppEngine GWT 2.0 (2009) DevMode, DraftCompile, UIBinder, LayoutPanel, CodeSplitter, ClientBundle, CssResource GWT 2.1 (2010) RequestFactory, Editor Framework, Validation, MVP, Cell Widgets GWT 2.2 (2011) GWT Designer, HTML5 support GWT 2.3 (2011) Better AppEngine integration GWT 2.4 (2011) Maven and RequestFactory enhancements GWT 2.5 (2012) Super Dev mode, massive compiler improvements, Source maps, massive speed improvements, Elemental 67

76 Present 68

77 Today SDK downloaded over a million times 100,000+ active developers deep integration with many tools like Eclipse, IntelliJ, String STS/Roo Used by many Google products such as Adwords, Flights, Blogger, Wallet and many more Fun things: GwtQuake, Angry Birds for the web GWT is a mature, high quality code base 69

78 GWT 2.5 New Compiler Optimizations Closure Compiler Integration Code Splitter Improvements Better Stack Traces with SourceMaps Real Time Compiles with SuperDevMode UiBinder and CellWidget updates I18N and ARIA/Accessibility improvements Elemental - High performance, feature complete, HTML5 70

79 Ray Cromwell, Google I/O 2012

80 Ray Cromwell, Google I/O 2012

81 Ray Cromwell, Google I/O 2012

82 Ray Cromwell, Google I/O 2012

83 Ray Cromwell, Google I/O 2012

84 Source maps Bidirectional Mapping between Source Language and Compiled JavaScript Supported by GWT, Closure, CoffeeScript Emerging standard for Javascript cross-compilers Permits de-obfuscation of Javascript Allows GWT to construct more accurate Java stack traces when something goes wrong Chrome only for now, Firefox support on the way 76

85 Super Dev mode Fast Refresh without Browser Plugins Compile to Javascript in seconds (typically less than 10) Source level Java debugging right in your Browser supporting mobile browser debugging for Chrome and Mobile Safari 77

86 UiBinder and CellWidget enhancements Support for rendering CellWidget Cells via UiBinder templates - introduces new tagging interface UiRenderer associated with.ui.xml file - GWT.create() on UiRenderer generates implementation - Rather than bind elements, it is invoked like I18N Message or SafeHtmlTemplate classes - Returns HTML with values from Java objects substituted into it UiBinder construction/instantiation improvements - New IsRenderable/RenderablePanel - Binds a UI in a 2-pass process First generate all HTML collecting it into a large string Second install it into the DOM via innerhtml and bind elements to fields - Significantly reduce latency and improve rendering speed - Case Study: Orkut. Startup latency reduced by 20%, rendering speed 300% faster 78

87 Elemental Auto-generated completely from actual WebIDL browser files used by JS engines - Don t wait for hand wrappers, track the actual browser vendor specs/source 100% JavaScript overlay types behind Java interfaces which melt away after compilation Practically zero overhead Every HTML5 feature supported, even the bleeding edge - WebGL, WebAudio, WebSockets, WebRTC, Web Intents, Shadow DOM, File API, etc New Collection classes optimized for size and performance - map directly to underlying JS collections with no overhead New JSON library, no wrappers, no overhead, high performance - Collections and JSON work on server in non-gwt/non-js environments too Excellent thin library for direct mobile device development or desktop 79

88 GWT Steering committee To make contributing features or fixes to GWT as effortless as possible Maintain a high level of quality you ve come to expect Allow the community a greater level of participation in GWT s future Google goes from gatekeeper to a peer amongst equals Responsible for setting project Guidelines, Policies, and Philosophy Determines who gets direct commit access to the master branch Sets overall future roadmap 80

89 GWT Steering committee members Ray Cromwell (Google) Artur Signell (Vaadin) Colin Alworth (Sencha, GXT) Mike Brock (RedHat, Errai/JBoss) Thomas Broyer (individual contributor) Stephen Haberman (Bizo) Daniel Kurka (Google) Christian Goudreau (Arcbees, GWTP Library) Konstantin Solomatov (JetBrains, IntelliJ) 81

90 Open source improve community feedback get people involved we happily accepted many contributions and plan to do so in the future feel free to contact us 82

91 gwtproject.org community driven home for GWT build with GWT (GWTQuery) everyone can edit and update using normal contribution workflow contribute via markdown & git 83

92 Issue tracker closed around 2500 issues fast responding to new issues fixed many issues for GWT

93 Future 85

94 Tick-tock two releases per year expect GWT 2.6 sometime in December, maybe at GWT.create? it is done when it is done, high quality 86

95 Incremental compile Only compile the changes you need to compile Makes a significant impact on your round trip time Biggest change to the GWT compiler ever Experimental in GWT 2.6, Ready with GWT

96 Java 8 support Java 8 will reset the Java eco system boiler plate will melt away, especially in GWT code already got a prototype using Java 8 committed to get it out asap after Java 8 release 88

97 JS interop use any JavaScript library in GWT without JSNI no more hand wrapping no more extra price merge the closure AST with GWT compile JavaScript and Java code together will allow GWT developers to consume web compontents 89

98 JavaScript speedups Run GWT code as d8 benchmarks understand how this impacts VM performance make all GWT code run faster recent improvement 6x for Arrays (benchmark, FF) 90

99 first class mobile support 91

100 GWT has a bright future many new things coming this year and next year watch out for GWT IO 2014 great participation from the community updating GWT to be a great tool for the next years 92

101 GWT 93

102 Java ecosystem is large GWT is an important part of that ecosystem closes the loop for great web front ends used by many people world wide used in many Google products we continue to invest one of the best tools out there 94

103 GWT vs. Dart Google is a big company with many engineers each team chooses their tools some like JavaScript, some like GWT, some like Dart Google is not one tools fits all Dart has great ideas and they help GWT GWT inspired some ideas in Dart Google loves friendly competition, it makes our tools better! If you like JavaScript use Closure or Angular -... Java use GWT -... something new try Dart more choice is good! 95

104 Who else? dependency injection IDE support code splitting CSS optimizations Java tool support client side templating integrate with all other JavaScript run very fast be as small as possible testing tools with code coverage a big community with many support OS projects make your app faster with a recompile 96

105 97

106 12-13th Dec. - San Francisco 17-18th Dec. - Frankfurt community organized about 60 talks, including many talks from the GWT team 98

107 Community 99

108

109 Daniel Kurka gplus: google.com/+danielkurka

110 Developers

111 10 ways to improve your GWT app 102

112 1. Blocking is bad Avoid blocking script tags GWT knows how to load async => use it Inline Resources and inject them (if you really need external JS, CSS) 103

113 //Inline the resource public interface Bundle extends ClientBundle TextResource yourjs(); } //in your code Bundle bundle = GWT.create(Bundle.class); String script = bundle.yourjs().gettext(); ScriptInjector.fromString(script).inject(); 104

114 2. HTTP Batching Browser only have a certain amount of parallel connections Use batching to get more throughput different ways 105

115 Batching with GWT RPC use the command pattern e.g. gwt-dispatch use Scheduler.scheduleFinally to do batching 106

116 Batching with RequestFactory don t call fire immediately call fire at last batching support across different context 107

117 3. Batch DOM updates reduces flickering use Scheduler.scheduleFinally() 108

118 4. Make Async stuff Sync GWT.runAsync is hard to read AsyncProxy records all calls while getting the actual object and replays them 109

119 5. Change DOM offscreen some browser repaint on update (IE) manipulate of screen to reduce repaints be faster 110

120 6. RPC type explosion GWT RPC generates Serializers for every type compile time increase, script size increase use plain DTOs without Polymorphism use concrete types (e.g. ArrayList instead of List) black list unwanted types (Issue 4438) 111

121 7. Use HTML where possible widgets are slower than pure HTML use widgets only where necessary use CellWidgets if possible combine HTML and widgets in UiBinder 112

122 8. Code splitting code splitting can dramatically reduce startup time combine it with AsyncProxy Activities as a code splitting point (automated, see Issue 5129) 113

123 9. Compiler tricks tune the compiler for your project set variables while developing (e.g. user agent safari) 114

124 -XdisableClassMetadata no class meta data e.g. no java.util.class.getname() save space if you don t need it 115

125 -XdisableCastChecking JavaScript errors if you do things wrong no warnings no instanceof 116

126 Tune compilereport <set-property name="compiler.stackmode" value="strip"/> <set-configuration-property name="cssresource.obfuscationprefix" value="emtpy"/> <set-configuration-property name="compiler.enum.obfuscate.names" value="true"/> 117

127 10. Prefer GWT libs instead of wrappers GWT can only optimize on Java code wrapping means no optimizations prefer complete GWT implementations 118

128

129 Daniel Kurka gplus: daniel-kurka.de/+

130 Developers

Progressive Enhancement With GQuery and GWT. Ray Cromwell ray@timefire.com

Progressive Enhancement With GQuery and GWT. Ray Cromwell ray@timefire.com Progressive Enhancement With GQuery and GWT Ray Cromwell ray@timefire.com Web Application Models Web 1.0, 1 Interaction = 1 Page Refresh Pure JS, No Navigation Away from Page Mixed Model, Page Reloads

More information

Google Web Toolkit. Introduction to GWT Development. Ilkka Rinne & Sampo Savolainen / Spatineo Oy

Google Web Toolkit. Introduction to GWT Development. Ilkka Rinne & Sampo Savolainen / Spatineo Oy Google Web Toolkit Introduction to GWT Development Ilkka Rinne & Sampo Savolainen / Spatineo Oy GeoMashup CodeCamp 2011 University of Helsinki Department of Computer Science Google Web Toolkit Google Web

More information

HTML5, The Future of App Development

HTML5, The Future of App Development HTML5, The Future of App Development Gautam Agrawal Director, Product Management 3 June 2015 Copyright Sencha Inc. 2015 Fragmentation on Steroids The Global 2000 8,000,000 +1,000,000 Source: IDG Research,

More information

Coding for Desktop and Mobile with HTML5 and Java EE 7

Coding for Desktop and Mobile with HTML5 and Java EE 7 Coding for Desktop and Mobile with HTML5 and Java EE 7 Coding for Desktop and Mobile with HTML5 and Java EE 7 Geertjan Wielenga - NetBeans - DukeScript - VisualVM - Jfugue Music Notepad - Java - JavaScript

More information

IBM Digital Experience. Using Modern Web Development Tools and Technology with IBM Digital Experience

IBM Digital Experience. Using Modern Web Development Tools and Technology with IBM Digital Experience IBM Digital Experience Using Modern Web Development Tools and Technology with IBM Digital Experience Agenda The 2015 web development landscape and IBM Digital Experience Modern web applications and frameworks

More information

Learning HTML5 Game Programming

Learning HTML5 Game Programming Learning HTML5 Game Programming A Hands-on Guide to Building Online Games Using Canvas, SVG, and WebGL James L. Williams AAddison-Wesley Upper Saddle River, NJ Boston Indianapolis San Francisco New York

More information

Front-End Performance Testing and Optimization

Front-End Performance Testing and Optimization Front-End Performance Testing and Optimization Abstract Today, web user turnaround starts from more than 3 seconds of response time. This demands performance optimization on all application levels. Client

More information

Mobility Introduction Android. Duration 16 Working days Start Date 1 st Oct 2013

Mobility Introduction Android. Duration 16 Working days Start Date 1 st Oct 2013 Mobility Introduction Android Duration 16 Working days Start Date 1 st Oct 2013 Day 1 1. Introduction to Mobility 1.1. Mobility Paradigm 1.2. Desktop to Mobile 1.3. Evolution of the Mobile 1.4. Smart phone

More information

AngularJS for the enterprise

AngularJS for the enterprise Jan- Kees van Andel So0ware Architect, JPoint, @jankeesvanandel 1 1 What I always liked about programming 2 2 And it keeps getting better... 3 3 Also for the web 4 4 Not only games 5 5 And not only WebGL

More information

Enterprise Mobile Application Development: Native or Hybrid?

Enterprise Mobile Application Development: Native or Hybrid? Enterprise Mobile Application Development: Native or Hybrid? Enterprise Mobile Application Development: Native or Hybrid? SevenTablets 855-285-2322 Contact@SevenTablets.com http://www.seventablets.com

More information

Introducing Apache Pivot. Greg Brown, Todd Volkert 6/10/2010

Introducing Apache Pivot. Greg Brown, Todd Volkert 6/10/2010 Introducing Apache Pivot Greg Brown, Todd Volkert 6/10/2010 Speaker Bios Greg Brown Senior Software Architect 15 years experience developing client and server applications in both services and R&D Apache

More information

An introduction to creating Web 2.0 applications in Rational Application Developer Version 8.0

An introduction to creating Web 2.0 applications in Rational Application Developer Version 8.0 An introduction to creating Web 2.0 applications in Rational Application Developer Version 8.0 September 2010 Copyright IBM Corporation 2010. 1 Overview Rational Application Developer, Version 8.0, contains

More information

JavaFX Session Agenda

JavaFX Session Agenda JavaFX Session Agenda 1 Introduction RIA, JavaFX and why JavaFX 2 JavaFX Architecture and Framework 3 Getting Started with JavaFX 4 Examples for Layout, Control, FXML etc Current day users expect web user

More information

USING RUST TO BUILD THE NEXT GENERATION WEB BROWSER

USING RUST TO BUILD THE NEXT GENERATION WEB BROWSER USING RUST TO BUILD THE NEXT GENERATION WEB BROWSER Lars Bergstrom Mozilla Research Mike Blumenkrantz Samsung R&D America Why a new web engine? Support new types of applications and new devices All modern

More information

Unlocking the Java EE Platform with HTML 5

Unlocking the Java EE Platform with HTML 5 1 2 Unlocking the Java EE Platform with HTML 5 Unlocking the Java EE Platform with HTML 5 Overview HTML5 has suddenly become a hot item, even in the Java ecosystem. How do the 'old' technologies of HTML,

More information

Web App Development Session 1 - Getting Started. Presented by Charles Armour and Ryan Knee for Coder Dojo Pensacola

Web App Development Session 1 - Getting Started. Presented by Charles Armour and Ryan Knee for Coder Dojo Pensacola Web App Development Session 1 - Getting Started Presented by Charles Armour and Ryan Knee for Coder Dojo Pensacola Tools We Use Application Framework - Compiles and Runs Web App Meteor (install from https://www.meteor.com/)

More information

WebCenter User experience. John Sim @JRSim_UIX

WebCenter User experience. John Sim @JRSim_UIX WebCenter User experience ipads - Xbox John Sim @JRSim_UIX About Fishbowl Solutions Specializing on portals & content management for 13 years Customers throughout North America & EMEA Enterprise-wide consulting

More information

torsdag den 13. oktober 11

torsdag den 13. oktober 11 http://www.doxdesk.com/updates/2009.html Design, techniques and tools for larger JavaScript applications Karl Krukow (kkr@trifork.com), Goto Amsterdam, Oct. 13th, 2011 About me PhD, University of Aarhus,

More information

Using Steelhead Appliances and Stingray Aptimizer to Accelerate Microsoft SharePoint WHITE PAPER

Using Steelhead Appliances and Stingray Aptimizer to Accelerate Microsoft SharePoint WHITE PAPER Using Steelhead Appliances and Stingray Aptimizer to Accelerate Microsoft SharePoint WHITE PAPER Introduction to Faster Loading Web Sites A faster loading web site or intranet provides users with a more

More information

Rich Internet Applications

Rich Internet Applications Rich Internet Applications [Image coming] Ryan Stewart Rich Internet Application Evangelist rstewart@adobe.com Ryan Stewart Flex Developer for 3 years Rich Internet Application Blogger for 2 years http://blogs.zdnet.com/stewart/

More information

Bridging the Gap: from a Web App to a Mobile Device App

Bridging the Gap: from a Web App to a Mobile Device App Bridging the Gap: from a Web App to a Mobile Device App or, so how does this PhoneGap* stuff work? *Other names and brands may be claimed as the property of others. 1 Users Want Mobile Apps, Not Mobile

More information

Mobile development with Apache OFBiz. Ean Schuessler, co-founder @ Brainfood

Mobile development with Apache OFBiz. Ean Schuessler, co-founder @ Brainfood Mobile development with Apache OFBiz Ean Schuessler, co-founder @ Brainfood Mobile development For the purposes of this talk mobile development means mobile web development The languages and APIs for native

More information

place/business fetch details, 184 185 removefromfavorite () function, 189 search button handler bind, 190 191 B BlackBerry build environment

place/business fetch details, 184 185 removefromfavorite () function, 189 search button handler bind, 190 191 B BlackBerry build environment Index A addtofavorite() method, 175 177, 188 189 Android ADT Plugin for Eclipse installation, 22 24 application, GWT Build Path, 244 device info, 247 directory structure, 244, 245 Eclipse classpath, 244

More information

Mobile Web Design with HTML5, CSS3, JavaScript and JQuery Mobile Training BSP-2256 Length: 5 days Price: $ 2,895.00

Mobile Web Design with HTML5, CSS3, JavaScript and JQuery Mobile Training BSP-2256 Length: 5 days Price: $ 2,895.00 Course Page - Page 1 of 12 Mobile Web Design with HTML5, CSS3, JavaScript and JQuery Mobile Training BSP-2256 Length: 5 days Price: $ 2,895.00 Course Description Responsive Mobile Web Development is more

More information

YouTrack MPS case study

YouTrack MPS case study YouTrack MPS case study A case study of JetBrains YouTrack use of MPS Valeria Adrianova, Maxim Mazin, Václav Pech What is YouTrack YouTrack is an innovative, web-based, keyboard-centric issue and project

More information

RIA Technologies Comparison

RIA Technologies Comparison RIA Technologies Comparison Focus Since the subject is huge I will first present a general view and then focus on more ( hopefully ) interesting parts Also, some key points need to be established: Technologies

More information

ANDROID INTRODUCTION TO ANDROID

ANDROID INTRODUCTION TO ANDROID ANDROID JAVA FUNDAMENTALS FOR ANDROID Introduction History Java Virtual Machine(JVM) JDK(Java Development Kit) JRE(Java Runtime Environment) Classes & Packages Java Basics Data Types Variables, Keywords,

More information

QML and JavaScript for Native App Development

QML and JavaScript for Native App Development Esri Developer Summit March 8 11, 2016 Palm Springs, CA QML and JavaScript for Native App Development Michael Tims Lucas Danzinger Agenda Native apps. Why? Overview of Qt and QML How to use JavaScript

More information

CHOOSING THE RIGHT HTML5 FRAMEWORK To Build Your Mobile Web Application

CHOOSING THE RIGHT HTML5 FRAMEWORK To Build Your Mobile Web Application BACKBONE.JS Sencha Touch CHOOSING THE RIGHT HTML5 FRAMEWORK To Build Your Mobile Web Application A RapidValue Solutions Whitepaper Author: Pooja Prasad, Technical Lead, RapidValue Solutions Contents Executive

More information

GUI and Web Programming

GUI and Web Programming GUI and Web Programming CSE 403 (based on a lecture by James Fogarty) Event-based programming Sequential Programs Interacting with the user 1. Program takes control 2. Program does something 3. Program

More information

JRuby Now and Future Charles Oliver Nutter JRuby Guy Sun Microsystems

JRuby Now and Future Charles Oliver Nutter JRuby Guy Sun Microsystems JRuby Now and Future Charles Oliver Nutter JRuby Guy Sun Microsystems Except where otherwise noted, the content of this presentation is licensed under the Creative Commons Attribution Share Alike 3.0 United

More information

Power Tools for Pivotal Tracker

Power Tools for Pivotal Tracker Power Tools for Pivotal Tracker Pivotal Labs Dezmon Fernandez Victoria Kay Eric Dattore June 16th, 2015 Power Tools for Pivotal Tracker 1 Client Description Pivotal Labs is an agile software development

More information

Google Web Toolkit (GWT) Architectural Impact on Enterprise Web Application

Google Web Toolkit (GWT) Architectural Impact on Enterprise Web Application Google Web Toolkit (GWT) Architectural Impact on Enterprise Web Application First Generation HTTP request (URL or Form posting) W HTTP response (HTML Document) W Client Tier Server Tier Data Tier Web CGI-Scripts

More information

Modern Web Development with Dart. Alan Knight Google

Modern Web Development with Dart. Alan Knight Google Modern Web Development with Dart Alan Knight Google Smalltalk Industry Conference 2013 The Web As an application platform We want... Large, extensible widget set Simple, clean APIs Model/View separation

More information

Drupal Performance Tuning

Drupal Performance Tuning Drupal Performance Tuning By Jeremy Zerr Website: http://www.jeremyzerr.com @jrzerr http://www.linkedin.com/in/jrzerr Overview Basics of Web App Systems Architecture General Web

More information

Development Techniques for Native/Hybrid Tizen Apps. Presented by Kirill Kruchinkin

Development Techniques for Native/Hybrid Tizen Apps. Presented by Kirill Kruchinkin Development Techniques for Native/Hybrid Tizen Apps Presented by Kirill Kruchinkin Agenda Introduction and Definitions Practices Case Studies 2 Introduction & Definitions 2 App Types Browser Apps Installable

More information

From Desktop to Browser Platform: Office Application Suite with Ajax

From Desktop to Browser Platform: Office Application Suite with Ajax From Desktop to Browser Platform: Office Application Suite with Ajax Mika Salminen Helsinki University of Technology mjsalmi2@cc.hut.fi Abstract Web applications have usually been less responsive and provided

More information

Trends in HTML5. Matt Spencer UI & Browser Marketing Manager

Trends in HTML5. Matt Spencer UI & Browser Marketing Manager Trends in HTML5 Matt Spencer UI & Browser Marketing Manager 6 Where to focus? Chrome is the worlds leading browser - by a large margin 7 Chrome or Chromium, what s the difference Chromium is an open source

More information

HTML5 / NATIVE / HYBRID

HTML5 / NATIVE / HYBRID HTML5 / NATIVE / HYBRID Ryan Paul Developer Evangelist @ Xamarin NATIVE VERSUS HTML5? REFRAMING THE DEBATE It s not a battle to the death. It s a choice: what solution will work best for your application?

More information

This course provides students with the knowledge and skills to develop ASP.NET MVC 4 web applications.

This course provides students with the knowledge and skills to develop ASP.NET MVC 4 web applications. 20486B: Developing ASP.NET MVC 4 Web Applications Course Overview This course provides students with the knowledge and skills to develop ASP.NET MVC 4 web applications. Course Introduction Course Introduction

More information

<Insert Picture Here> Java, the language for the future

<Insert Picture Here> Java, the language for the future 1 Java, the language for the future Adam Messinger Vice President of Development The following is intended to outline our general product direction. It is intended for information

More information

Symfony2 and Drupal. Why to talk about Symfony2 framework?

Symfony2 and Drupal. Why to talk about Symfony2 framework? Symfony2 and Drupal Why to talk about Symfony2 framework? Me and why Symfony2? Timo-Tuomas Tipi / TipiT Koivisto, M.Sc. Drupal experience ~6 months Symfony2 ~40h Coming from the (framework) Java world

More information

Grunt, Gulp & fabs. Build-System and Development-Workflow for modern Web-Applications

Grunt, Gulp & fabs. Build-System and Development-Workflow for modern Web-Applications Grunt, Gulp & fabs Build-System and Development-Workflow for modern Web-Applications ABOUT ME Philipp Burgmer Software Engineer / Consultant / Trainer Focus: Frontend, Web Technologies WeigleWilczek GmbH

More information

HtmlUnit: An Efficient Approach to Testing Web Applications

HtmlUnit: An Efficient Approach to Testing Web Applications HtmlUnit: An Efficient Approach to Testing Web Applications Marc Guillemot Independent Consultant mguillemot@yahoo.fr Daniel Gredler Sr. Software Developer DHL Global Mail daniel.gredler@gmail.com Your

More information

Update logo and logo link on A Master. Update Date and Product on B Master

Update logo and logo link on A Master. Update Date and Product on B Master Cover Be sure to: Update META data Update logo and logo link on A Master Update Date and Product on B Master Web Performance Metrics 101 Contents Preface...3 Response Time...4 DNS Resolution Time... 4

More information

Mobile Performance Management Tools Prasanna Gawade, Infosys April 2014

Mobile Performance Management Tools Prasanna Gawade, Infosys April 2014 Mobile Performance Management Tools Prasanna Gawade, Infosys April 2014 Computer Measurement Group, India 1 Contents Introduction Mobile Performance Optimization Developer Tools Purpose and Overview Mobile

More information

The Google Web Toolkit (GWT): Overview & Getting Started

The Google Web Toolkit (GWT): Overview & Getting Started 2013 Marty Hall & Yaakov Chaikin The Google Web Toolkit (GWT): Overview & Getting Started (GWT 2.5 Version) Originals of Slides and Source Code for Examples: http://courses.coreservlets.com/course-materials/gwt.html

More information

Rich User Interfaces for Web-Based Corporate Applications

Rich User Interfaces for Web-Based Corporate Applications Rich User Interfaces for Web-Based Corporate Applications Ivan Zapevalov, Software Engineer 1 Outline RIA technologies AJAX technology Widgets Demo application in JavaScript Demo application in GWT Web-catalog

More information

Website Performance: Kyle Simpson

Website Performance: Kyle Simpson Website Performance: Kyle Simpson (Video: 0_Introduction.mp4): Introduction 00:00:0000:07:50: An introduction and a discussion about how developers need to change their mindset to think about web performance

More information

Developing Exceptional Mobile and Multi-Channel Applications using IBM Web Experience Factory. 2012 IBM Corporation 1

Developing Exceptional Mobile and Multi-Channel Applications using IBM Web Experience Factory. 2012 IBM Corporation 1 Developing Exceptional Mobile and Multi-Channel Applications using IBM Web Experience Factory 1 Agenda Mobile web applications and Web Experience Factory High-level tour of Web Experience Factory automation

More information

Develop native android apps And port to other platforms

Develop native android apps And port to other platforms Develop native android apps And port to other platforms Robin Puthli, 24 October 2013 Droidcon UK 1 Me Mobile developer 2001 - present Run a 11 strong development shop Netherlands based 2 Itude Mobile

More information

Web application Architecture

Web application Architecture 2014 Cesare Pautasso 1 / 29 Very Thin Client 6 / 29 AJAX Input/ Output Prof. Cesare Pautasso http://www.pautasso.info cesare.pautasso@usi.ch Client/Server 7 / 29 @pautasso 5 / 29 Web application Architecture

More information

Building Mobile Applications Creating ios applications with jquery Mobile, PhoneGap, and Drupal 7

Building Mobile Applications Creating ios applications with jquery Mobile, PhoneGap, and Drupal 7 Building Mobile Applications Creating ios applications with jquery Mobile, PhoneGap, and Drupal 7 Jeff Linwood 1st Chapter, Early Release Introduction... 3 Prerequisites... 3 Introduction to Mobile Apps...

More information

Software Development Interactief Centrum voor gerichte Training en Studie Edisonweg 14c, 1821 BN Alkmaar T: 072 511 12 23

Software Development Interactief Centrum voor gerichte Training en Studie Edisonweg 14c, 1821 BN Alkmaar T: 072 511 12 23 Microsoft SharePoint year SharePoint 2013: Search, Design and 2031 Publishing New SharePoint 2013: Solutions, Applications 2013 and Security New SharePoint 2013: Features, Delivery and 2010 Development

More information

THE BUSINESS CASE FOR HYBRID HTML5 MOBILE APPS

THE BUSINESS CASE FOR HYBRID HTML5 MOBILE APPS Exploring the business case for building hybrid HTML5 mobile applications for enterprise mobility projects compared to implementing with a purely native development approach. THE BUSINESS CASE FOR HYBRID

More information

Kentico CMS 5 Developer Training Syllabus

Kentico CMS 5 Developer Training Syllabus Kentico CMS 5 Developer Training Syllabus June 2010 Page 2 Contents About this Course... 4 Overview... 4 Audience Profile... 4 At Course Completion... 4 Course Outline... 5 Module 1: Overview of Kentico

More information

HTML5 : carrier grade

HTML5 : carrier grade HTML5 : carrier grade Alex Rutgers / CTO@Momac / February 2013. Introduction Since HTML5 became mainstream media around April 2010 and I decided to create an overview article on HTML5 in the mobile space,

More information

Dynamic Web Programming BUILDING WEB APPLICATIONS USING ASP.NET, AJAX AND JAVASCRIPT

Dynamic Web Programming BUILDING WEB APPLICATIONS USING ASP.NET, AJAX AND JAVASCRIPT Dynamic Web Programming BUILDING WEB APPLICATIONS USING ASP.NET, AJAX AND JAVASCRIPT AGENDA 1. Introduction to Web Applications and ASP.net 1.1 History of Web Development 1.2 Basic ASP.net processing (ASP

More information

Drupal CMS for marketing sites

Drupal CMS for marketing sites Drupal CMS for marketing sites Intro Sample sites: End to End flow Folder Structure Project setup Content Folder Data Store (Drupal CMS) Importing/Exporting Content Database Migrations Backend Config Unit

More information

Basic Trends of Modern Software Development

Basic Trends of Modern Software Development DITF LDI Lietišķo datorsistēmu programmatūras profesora grupa e-business Solutions Basic Trends of Modern Software Development Mobile Development Trends Need an App... 3 4 Popular Devices in Latvia

More information

FIVE WAYS TO OPTIMIZE MOBILE WEBSITE PERFORMANCE WITH PAGE SPEED

FIVE WAYS TO OPTIMIZE MOBILE WEBSITE PERFORMANCE WITH PAGE SPEED WHITE PAPER: MOBILE WEBSITE PERFORMANCE FIVE WAYS TO OPTIMIZE MOBILE WEBSITE PERFORMANCE WITH PAGE SPEED SNOOZE, YOU LOSE. TODAY S MOBILE USERS EXPECT PERFORMANCE DELIVERED FAST. For those of us who depend

More information

The Decaffeinated Robot

The Decaffeinated Robot Developing on without Java Texas Linux Fest 2 April 2011 Overview for Why? architecture Decaffeinating for Why? architecture Decaffeinating for Why choose? Why? architecture Decaffeinating for Why choose?

More information

WompMobile Technical FAQ

WompMobile Technical FAQ WompMobile Technical FAQ What are the technical benefits of WompMobile? The mobile site has the same exact URL as the desktop website. The mobile site automatically and instantly syncs with the desktop

More information

Developing Exceptional Mobile and Multi-Channel Applications using IBM Web Experience Factory

Developing Exceptional Mobile and Multi-Channel Applications using IBM Web Experience Factory Developing Exceptional Mobile and Multi-Channel Applications using IBM Web Experience Factory IBM Corporation 2011 Web Experience Factory formerly known as WebSphere Portlet Factory Note we are currently

More information

Load and Performance Load Testing. RadView Software October 2015 www.radview.com

Load and Performance Load Testing. RadView Software October 2015 www.radview.com Load and Performance Load Testing RadView Software October 2015 www.radview.com Contents Introduction... 3 Key Components and Architecture... 4 Creating Load Tests... 5 Mobile Load Testing... 9 Test Execution...

More information

Shipbeat Magento Module. Installation and user guide

Shipbeat Magento Module. Installation and user guide Shipbeat Magento Module Installation and user guide This guide explains how the Shipbeat Magento Module is installed, used and uninstalled from your Magento Community Store. If you have questions or need

More information

How To Write An Ria Application

How To Write An Ria Application Document Reference TSL-SES-WP-0001 Date 4 January 2008 Issue 1 Revision 0 Status Final Document Change Log Version Pages Date Reason of Change 1.0 Draft 17 04/01/08 Initial version The Server Labs S.L

More information

Amplify Service Integration Developer Productivity with Oracle SOA Suite 12c

Amplify Service Integration Developer Productivity with Oracle SOA Suite 12c Amplify Service Integration Developer Productivity with Oracle SOA Suite 12c CON7598 Rajesh Kalra, Sr. Principal Product Manager Robert Wunderlich, Sr. Principal Product Manager Service Integration Product

More information

HTML5 - Key Feature of Responsive Web Design

HTML5 - Key Feature of Responsive Web Design Volume A.13-10 Publish Date: 09 th August 2013 Author(s): Gateway Team HTML5 - Key Feature of Responsive Web Design ARTICLE Gateway TechnoLabs Pvt. Ltd. (ISO 9001:2008) B 81, Corporate House, Judges Bungalow

More information

Performance Testing for Ajax Applications

Performance Testing for Ajax Applications Radview Software How to Performance Testing for Ajax Applications Rich internet applications are growing rapidly and AJAX technologies serve as the building blocks for such applications. These new technologies

More information

Lucy Zhang UI Developer Lucyzhang3630@gmail.com/sales@besthtech.net Contact: 646-896-9088

Lucy Zhang UI Developer Lucyzhang3630@gmail.com/sales@besthtech.net Contact: 646-896-9088 Lucy Zhang UI Developer Lucyzhang3630@gmail.com/sales@besthtech.net Contact: 646-896-9088 SUMMARY Over 7 years of extensive experience in the field of front-end Web Development including Client/Server

More information

Web Application Development

Web Application Development Web Application Development Seminar OHJ-1820 Tampere University of Technology Fall 2007 http://www.cs.tut.fi/~taivalsa/kurssit/wads2007 Prof. Tommi Mikkonen & Dr. Antero Taivalsaari Background and Motivation

More information

AjaxScope: Remotely Monitoring Client-side Web-App Behavior

AjaxScope: Remotely Monitoring Client-side Web-App Behavior AjaxScope: Remotely Monitoring Client-side Web-App Behavior Emre Kıcıman emrek@microsoft.com Ben Livshits livshits@microsoft.com Internet Services Research Center Microsoft Research Runtime Analysis &

More information

GUI Test Automation How-To Tips

GUI Test Automation How-To Tips www. routinebot.com AKS-Labs - Page 2 - It s often said that First Impression is the last impression and software applications are no exception to that rule. There is little doubt that the user interface

More information

Credits: Some of the slides are based on material adapted from www.telerik.com/documents/telerik_and_ajax.pdf

Credits: Some of the slides are based on material adapted from www.telerik.com/documents/telerik_and_ajax.pdf 1 The Web, revisited WEB 2.0 marco.ronchetti@unitn.it Credits: Some of the slides are based on material adapted from www.telerik.com/documents/telerik_and_ajax.pdf 2 The old web: 1994 HTML pages (hyperlinks)

More information

How To Write A Web Server In Javascript

How To Write A Web Server In Javascript LIBERATED: A fully in-browser client and server web application debug and test environment Derrell Lipman University of Massachusetts Lowell Overview of the Client/Server Environment Server Machine Client

More information

Deepak Patil (Technical Director) pdeepak@iasys.co.in iasys Technologies Pvt. Ltd.

Deepak Patil (Technical Director) pdeepak@iasys.co.in iasys Technologies Pvt. Ltd. Deepak Patil (Technical Director) pdeepak@iasys.co.in iasys Technologies Pvt. Ltd. The term rich Internet application (RIA) combines the flexibility, responsiveness, and ease of use of desktop applications

More information

WA 2. GWT Martin Klíma

WA 2. GWT Martin Klíma WA 2 GWT Martin Klíma GWT What is it? Google Web Toolkig Compiler from Java to JavaScript + HTML Set of JavaScript and Java scripts / classes Development environment SDK Integration with IDE Eclipse, Netbeans,

More information

Google Web Toolkit. Progetto di Applicazioni Software a.a. 2011/12. Massimo Mecella

Google Web Toolkit. Progetto di Applicazioni Software a.a. 2011/12. Massimo Mecella Google Web Toolkit Progetto di Applicazioni Software a.a. 2011/12 Massimo Mecella Introduction Ajax (Asynchronous JavaScript and XML) refers to a broad range of techniques Beyond the technical jargon,

More information

EMPLOYEE LOCATION TRACKING SERVICE

EMPLOYEE LOCATION TRACKING SERVICE WES T ST R EET AWE SOM E STR EET EMPLOYEE LOCATION TRACKING SERVICE Web & Android OVERVIEW GPS fleet tracking services have been on the market for some years now but with the explosion of smartphone usage,

More information

CURRENT BEST PRACTISES FOR BUILDING ENTERPRISE MOBILE APPLICATIONS

CURRENT BEST PRACTISES FOR BUILDING ENTERPRISE MOBILE APPLICATIONS DEVELOPER-CENTERED ENTERPRISE-FOCUSED FUTURE-READY CURRENT BEST PRACTISES FOR BUILDING ENTERPRISE MOBILE APPLICATIONS Darryn Campbell RhoMobile Development Lead MOTOROLA, MOTO, MOTOROLA SOLUTIONS and the

More information

Building Cross Platform Mobile Apps Dev Tools, MBaaS, Architecture, APIs

Building Cross Platform Mobile Apps Dev Tools, MBaaS, Architecture, APIs Building Cross Platform Mobile Apps Dev Tools, MBaaS, Architecture, APIs So You Want to Build a Mobile App What Mobile Platforms to Support? What backend services to integrate? What login credentials are

More information

JC Now. Case Study in Building an App on the Cheap. Nick O Day GIS Manager. be the exception

JC Now. Case Study in Building an App on the Cheap. Nick O Day GIS Manager. be the exception \ JC Now Case Study in Building an App on the Cheap Nick O Day GIS Manager 1 Background Within Metro Atlanta area (30 minute drive to downtown Atlanta) Within Fulton County Population: ~1,000,000 Johns

More information

QL Integration into Scala and Excel. Martin Dietrich

QL Integration into Scala and Excel. Martin Dietrich QL Integration into Scala and Excel Martin Dietrich E.ON Global Commodities Over 1000 professionals, active on over 20 exchanges in more than 40 countries Over 1000 counterparties in more than 50 countries

More information

Web Apps The Next Generation

Web Apps The Next Generation Web Apps The Next Generation Access Opportunity Or Challenge? T. V. Raman Google Research Web Apps The Next Generation p. 1 Outline Web Applications The access challenge What does accessible mean? Web

More information

Best practices building multi-platform apps. John Hasthorpe & Josh Venman

Best practices building multi-platform apps. John Hasthorpe & Josh Venman Best practices building multi-platform apps John Hasthorpe & Josh Venman It s good to have options Android 4.3 10 Tablet Windows 7 14 Laptop Windows 7 15 Laptop Mac OSX 15 Laptop ios 6 4.6 Phone Android

More information

Take full advantage of IBM s IDEs for end- to- end mobile development

Take full advantage of IBM s IDEs for end- to- end mobile development Take full advantage of IBM s IDEs for end- to- end mobile development ABSTRACT Mobile development with Rational Application Developer 8.5, Rational Software Architect 8.5, Rational Developer for zenterprise

More information

Rich Web Applications in Server-side Java without Plug-ins or JavaScript

Rich Web Applications in Server-side Java without Plug-ins or JavaScript Rich Web Applications in Server-side Java without Plug-ins or JavaScript Joonas Lehtinen, PhD Vaadin Ltd - CEO vaadin.com/vaadin @joonaslehtinen Rich Web Applications in Server-side Java without Plug-ins

More information

Orion: Software Development in the Browser

Orion: Software Development in the Browser Orion: Software Development in the Browser Slides from Boris Bokowski IBM Ottawa Lab Orion: Software Development in the Browser Slides from Boris Bokowski IBM Ottawa Lab What is Orion? Software development

More information

Web Development with the Eclipse Platform

Web Development with the Eclipse Platform Web Development with the Eclipse Platform Open Source & Commercial tools for J2EE development Jochen Krause 2004-02-04 Innoopract Agenda Currently available Tools for web development Enhancements in Eclipse

More information

Mobile Development Frameworks Overview. Understand the pros and cons of using different mobile development frameworks for mobile projects.

Mobile Development Frameworks Overview. Understand the pros and cons of using different mobile development frameworks for mobile projects. Mobile Development Frameworks Overview Understand the pros and cons of using different mobile development frameworks for mobile projects. Mobile Solution Frameworks One of the biggest technological decisions

More information

Firefox for Android. Reviewer s Guide. Contact us: press@mozilla.com

Firefox for Android. Reviewer s Guide. Contact us: press@mozilla.com Reviewer s Guide Contact us: press@mozilla.com Table of Contents About Mozilla Firefox 1 Move at the Speed of the Web 2 Get Started 3 Mobile Browsing Upgrade 4 Get Up and Go 6 Customize On the Go 7 Privacy

More information

Demystifying Page Load Performance with WProf

Demystifying Page Load Performance with WProf Demystifying Page Load Performance with WProf Xiao (Sophia) Wang, Aruna Balasubramanian, Arvind Krishnamurthy, and David Wetherall University of Washington Web is the critical part of the Internet 1 Page

More information

Android Developer Fundamental 1

Android Developer Fundamental 1 Android Developer Fundamental 1 I. Why Learn Android? Technology for life. Deep interaction with our daily life. Mobile, Simple & Practical. Biggest user base (see statistics) Open Source, Control & Flexibility

More information

What s New in IBM Web Experience Factory 8.5. 2014 IBM Corporation

What s New in IBM Web Experience Factory 8.5. 2014 IBM Corporation What s New in IBM Web Experience Factory 8.5 2014 IBM Corporation Recent history and roadmap Web Experience Factory 8.0 2012 Multi-channel Client-side mobile Aligned with Portal 8 Developer productivity

More information

Modern Web Development:

Modern Web Development: : HTML5, JavaScript, LESS and jquery Shawn Wildermuth One of the Minds, Wilder Minds LLC Microsoft MVP @shawnwildermuth http://wilderminds.com What it was like

More information

JavaScript Programming

JavaScript Programming JavaScript Programming Pushing the Limits ADVANCED APPLICATION DEVELOPMENT WITH JAVASCRIPT & HTML5 Jon Raasch WILEY Contents About the Author vi Dedication vii About the Contributor ix Acknowledgments

More information

SOA @ ebay : How is it a hit

SOA @ ebay : How is it a hit SOA @ ebay : How is it a hit Sastry Malladi Distinguished Architect. ebay, Inc. Agenda The context : SOA @ebay Brief recap of SOA concepts and benefits Challenges encountered in large scale SOA deployments

More information

An introduction to creating JSF applications in Rational Application Developer Version 8.0

An introduction to creating JSF applications in Rational Application Developer Version 8.0 An introduction to creating JSF applications in Rational Application Developer Version 8.0 September 2010 Copyright IBM Corporation 2010. 1 Overview Although you can use several Web technologies to create

More information

TeamCity A Professional Solution for Delivering Quality Software, on Time

TeamCity A Professional Solution for Delivering Quality Software, on Time TeamCity A Professional Solution for Delivering Quality Software, on Time Vaclav Pech Senior Software Developer JetBrains, Inc. About Us Vaclav Pech Professional software developer for 9 years IntelliJ

More information