Google App Engine Java and GWT Application Development
Introduction to Google App Engine
Using Eclipse and the Google Plugin
Installing the plugin and supporting software
Developing your application in Eclipse
Running and debugging your application
Importing an existing application
Building the Connectr User Interface with GWT
Installing the (first version of) the project in Eclipse
Why AJAX apps are the way forward
Challenges associated with AJAX programming and how GWT solves them
Google Web Toolkit overview—modern tools for modern developers
Building the application—the user interface
Grouping CSS files and images for faster speed with ClientBundle
Getting data from the server using GWT RPC
Persisting Data: The App Engine Datastore
Creating Connectr's data models
JDO Object Relationships and Queries
Modeling relationships between objects
Finding objects—queries and indexes
The App Engine Datastore index
Implementing MVP, an Event Bus, and Other GWT Patterns
Introducing MVP - The need for design patterns in software
Connectr MVP application architecture overview
Adding support for browser history
Implementing browser history management
Centralizing RPC calls for better handling and usability and reliability
MVP Development with Activities and Places
Background Processing and Feed Management
Using migrations to evolve the Datastore entities
Pulling in Feeds: The URL Fetch service
Using RSS/Atom feeds in the app
Enabling background feed updating and processing
Authentication using Twitter, Facebook OAuth, and Google Accounts
OAuth: a new way to login and authorize
Registering Connectr with Facebook
Authenticating against Twitter with OAuth
Uniquely identifying Connectr users
Automatically registering users when they login
Robustness and Scalability: Transactions, Memcache, and Datastore Design
Pushing Fresh Content to Clients with the Channel API
Setting up the application to handle pushed messages
Creating custom classes of pushed messages
Telling the server a client is inactive
Adding a refresh button to allow on-demand news updates
Managing and Backing Up your App Engine Application
Using your own domain for an app
Asynchronous Processing with Cron, Task Queue, and XMPP
Server-Side asynchronous processing
Supporting synchronous content delivery: Datastore queries and caching