16. Technologies Client
PC-Browser / Mobile Browser (iPhone, Tablet)
Browser-Engine (HTML,CSS,JavaScript)
Google Web Toolkit
Java code
17. Technologies Server
Google Cloud
Google App Engine
(like) Application Server
Java code
18. Data communication
• RequestFactory Framework
– Part of GWT
– In Java libary
– Based on JSON communication
– Suited for data-oriented CRUD applications
– Automatic entity-proxying between backend and
frontend
– Lightweigt-network payloads
19. Push notifications (Android)
• C2DM Framework
– Cloud-to-Device Messaging
– Part of Android SDK
– Example project wizard in GWT Eclipse Plugin
– Designed for Google App Engine
20. Push notifications (Browser)
• Channel-API
– COMET-like protocol
– Persistent connection to client
– Could be replaced by WebSockets API (HTML5) in
the future
21. Authentification
• Google account
– Supported by Google App Engine
– Automatically integrated in Android
– Very easy to implement
– No extra user accounts needed
– Needed for C2DM
22. Data storage
• Objectify library
– Wrapper library for Google Datastore
– Datastore is a NoSQL database
– BigTable technology (whitepaper!)
– Just uses POJO
– Very straightforward to use
– No problems like with ORM
– JDO/JPA not suited for non-relational storage
23. Dependency Injection
• Google Guice
– Versions for Android runtime, GWT (GIN) and GAE
– Like an extended Factory Pattern
– Test-driven development
– Automatic dependeny management
– Extended boilerplate reduction with RoboGuice
(Android)
– Server configuration from code (GAE)
– Addionally allows Aspect-oriented programming
(AOP)
24. Outline
1. Example Scenario
2. Involved Technologies
3. Architecture
4. Advantages of the Technology stack
25. Google Cloud
Google Datastore
Objectify
C2DM Server Application Server (GAE) Guice
Channel API
Push notifications RequestFactory Push notifications
JSON JSON
Android Client Web Client (GWT)
RoboGuice Gin
26. Outline
1. Example Scenario
2. Involved Technologies
3. Architecture
4. Advantages of the Technology stack
34. To conclude …
Faster development
through saving a lot of boilerplate
35. References
• Android SDK Page
• GWT Official Page
• Google App Engine Official Page
• C2DM Official Page
• Google Guice Official Page
• Objectify Official Page
• Cloud-tasks-IO example project
• „Using GWT RequestFactory with Objectify“ – David Chandler
• Google I/O 2011: Android + App Engine: A Developer's Dream
Combination (Blog)