2. Context
Valeo has gone Google 2 years ago.
Valeo chose Android for their mobility needs
Need for mobile apps
Need for a mobile app deployment platform
4. Valeo Market - Deployment worflow to come
New release notification (C2DM).
Auto-update.
No more e-mail notification.
5. Valeo Market - Current use cases
Crash logs
Usage stats
Release deployments
6. Under the hood
Google Web Toolkit 2.0.4
Google App Engine (Java) 1.3.8
Mail (outgoing and incoming)
Memcache
Task Queues
URL Fetch
Users
XMPP (just a bit)
Blobstore (to come)
Data APIs
Spreadsheet (GData Java Client)
Visualization (GWT)
7. Users - practical
Application under Google Apps Domain
So easy to use:
UserService userService = UserServiceFactory.getUserService();
User user = userService.getCurrentUser();
String email = user.getEmail();
Essentially used for access rights
8. Mail - both ways
Used to send new release notifications to users
Incoming e-mails to give Go/No Go instructions
Valeo Market
9. XMPP - 'cause it's fun !
Allows quick interaction with the app like:
give Go/No Go instructions.
get quick stats
Valeo Market
10. Memcache - a must use !
Statistics queries are quite heavy.
Memcache is used to avoid doing the same thing twice.
Significantly improves response time.
Involves few lines of code:
CacheFactory cacheFactory = CacheManager.getInstance().getCacheFactory();
Cache cache = cacheFactory.createCache(Collections.emptyMap());
Put in a singleton, can be used quickly from anywhere:
MC.get().put(key, value);
[...]
String value = MC.get().get(key);
11. Task Queues - GAE threads
Response time improvements
Exporting data to Spreadsheet (combined with Cursors)
Valeo Market
12. Blobstore - to come
Currently:
APKs (~80KB) are persisted as blobs.
Each user gets a link to a download servlet.
APKs are served out from Datastore
In the works:
APKs will be uploaded to the Blobstore.
Each user will get a download link by e-mail.
APKs will directly be served from the Blobstore.
13. APIs
Google Spreadsheets API
Data export to Spreadsheets (and then to CSV)
Google Visualization API
Visual stats
GWT wrapper : gwt-visualization