Blumenfeld & Maso, in collaboration with Smart-Soft Inc., announces a 5 Day In-Depth Introduction to the Google Web Toolkit (GWT) with Brian Maso. Go to the ticket purchasing page to buy tickets for this event!
Event Description
The Google Web Toolkit (GWT) is a super simple-to-use, but incredibly powerful Rich Internet Application (RIA) toolkit for Java programmers. The amazing feature of GWT is that you program a JavaScript-base UI in Java. All the skills and tools you have learned as a Java programmer are 100% utilized to develop browser-based UIs with GWT! Amazingly, the RIA clients you produce are compiled to 100% browser-compatible JavaScript that runs in all major browsers!
Some amazing sample web applications built with GWT:
- Google Wave. No kidding — Google Wave UI is built with the GWT.
- GoGrid. Check out the dynamic RIA interface.
- Scenechronize. The media-rich film, television, and commercial production planning interface is also built with GWT.
In this In-depth Introduction Workshop, Java and GWT master Brian Maso will provide you with the essential GWT skills needed to develop fantastic-looking, well-organized and powerful RIA/AJAX applications completely in Java.
Workshop Length
Up to 5 days: You choose! Come days 1 & 2 for a general introduction to GWT. Come for 3, 4 or 5 days to obtain progressively more in-depth mastery of GWT.
Prerequisites
Core Java skills. Some Swing, JavaFX, and/or RCP experience will help you understand the foundations of GWT a little better, but definitely is not required.
The Instructor
Brian Maso, principal engineer at Blumenfeld & Maso, is a 15 year real-world software development guru, master trainer, author, and speaker. Brian has logged over 1,000 class room hours, teaching hundreds of professional developers courses in Java, distributed development, enterprise architecture and development, test-driven and agile methodologies, and many other topics. He is a frequent speaker at conferences and symposiums, holder of several software patents, author of 4 books on programming in Java and web development. More amazingly, Brian is a real-world, day-to-day software designer and developer most of the time. His great depth and breadth of pragmatic knowledge about Java, enterprise, and cloud software design and development informs and guides his engaging, detailed instructional style.
Sample Course Outline
The course is taught in a dynamic style in which the course topics are chosen on a day-to-day basis, tailored to the needs and goals of the students in the classroom. Only an experienced and knowledgeable instructor can teach in this style because of its demands for both instructional accumen, and deep knowledge about a topic. The following outline is a guide of the topics normally covered by this course:
- Overview
- What is GWT?
- GWT compiler
- GWT emulator (hosted mode)
- GWT compared to other web frameworks
- GWT compared to other AJAX frameworks
- Pros and cons of GWT
- Understanding Modules
- What is a module?
- Recommended module structure
- Custom module structure
- Adapting GWT into an existing web app structure
- Inheriting modules
- GWT widget library
- Basic widgets
- Label
- Button
- TextBox
- Hyperlink
- Text widgets
- Label
- HTML
- TextBox
- Hidden
- PasswordTextBox
- TextArea
- RichTextArea
- Simple Layouts
- VerticalPanel
- HorizontalPanel
- FlowPanel
- DockPanel
- More Layout Panels
- TabPanel
- StackPanel (Accordion)
- SplitPanel
- DeckPanel
- Tables and trees
- Lists and checkboxes
- ListBox
- RadioButton
- CheckBox
- SuggestBox
- Popups, dialogs and menus
- PopupPanel
- DisclosurePanel
- DialogBox
- Menu
- DecoratorPanel
- Other Panels
- ScrollPanel
- HTMLPanel
- AbsolutePanel
- FocusPanel
- Event Handling
- Understanding Listeners
- Mouse Events
- Key Events
- Click Events
- Other Events
- Images
- Image Widget
- Prefetching Image
- Bundling Images
- Connecting to Data and Back-end Services
- AJAX Overview
- Connectivity options
- Asynchronous callbacks
- The RequestBuilder class
- Performance issues
- GWT RPC
- Remote and Async Interfaces
- Servlet Implementation
- Asynchronous Callbacks
- Exception Handling
- GWT Serialization
- Invoking XML Web Services
- Invoking JSON Services
- Creating Web-friendly applications
- Creating bookmarkable pages
- History and the back button
- Performance Concerns
- Cache versus nocache
- Cross-Product Compilation
- Image Bundling
- Lazy-loading widgets
- Pre-fetching
- Obfuscation
- Miscellaneous API’s
- Cookies
- Timers
- Random
- Window and Location
- The GWT class
- Creating Custom Widgets
- Composites
- From Scratch using Java
- Using JavaScript
- Calendar widget
- DatePicker widget
- 3rd Party Widgets
- MyGWT
- Ext GWT
- GWT Widget Library
- GWT Drag and Drop
- The GWT Incubator
- Google Gears
- Occasionally connected apps
- Local SQL
- Local Documents
- Background Processing
- JSNI
- JavaScriptObject
- Implement a Java native using JavaScript
- Call from JavaScript into Java
- Call from Java into JavaScript
- Sharing Objects between Java and JavaScript
- Integrating with other technologies
- GWT with JSP
- GWT with JSF
- GWT with Struts
- Evolving legacy apps to GWT
- GWT Architecture and Best Practice Patterns
- MVC
- MVP
- Event Aggregator
- Separated Presentation
- Observer Synchronization
- Supervising Controller
- Passive View
- Notification
- Data Binding
- Miscellaneous
- Debugging GWT applications
- Security Issues
- Write classes that run on both server and client – GWT.isClient
- Image Bundles
- Internationalization
- Using GWT’s dictionary to access JavaScript values in host page
- Unit testing GWT modules
- GWT and CSS
- 5 GWT Hidden Gems
- 5 GWT Pitfalls
- Advanced Topics
- Deferred Binding: The Magic GWT.create()
- Low-level event handling
- Manipulating the DOM directly
- Command,DeferredCommand, IncrementalCommand