1 of 13

Server-Less Apps

using servers without caring

Friedger Müffke

#fmdroid

droidcon London 2012

2 of 13

Motivation

3 of 13

Web services

  • General audience

Made for servers and web pages�

  • Specific purpose�Speech recognition�Payment�Directions

4 of 13

Scope

  • Mobile Audience

Android tools (and others)�

  • Technical purpose

User management

Data storage

Push notifications

Location

5 of 13

On-Device Apps

  • Communication with 3rd party app
  • Trust relation between user and 3rd party app
  • SDK for communication via intents
  • Library projects

�Facebook (3.0) / Google+�Box/Google Drive�

6 of 13

Google Spreadsheet

  1. Add jars �(jackson, protobuf-java, google-client-api-*, google-http-client-*)
  2. Add oauth or use Google Service (new!)
  3. Make HttpRequest
  4. Parse

7 of 13

Google Spreadsheet (2)

final HttpResponse resp = mHttpClient.execute(request);� final int status = resp.getStatusLine().getStatusCode();� final InputStream input = resp.getEntity().getContent();� try {� final XmlPullParser parser = ParserUtils.newPullParser(input);� handler.parseAndApply(parser, mResolver);� } catch (XmlPullParserException e) {� throw new HandlerException("Bad Req: " +req.getRequestLine(), e);� } finally {� if (input != null) input.close();� }

SpreadsheetEntry entry = SpreadsheetEntry.fromParser(parser);

row = service.insert(listFeedUrl, row);

8 of 13

netmera

  • Content
    • Media
    • GeoLocation
  • User Management
    • ACL via user property

  • Push Notification on Server (Java SDK)

9 of 13

Netmera (2)

c = NetmeraContent("House")

c.add("price", "10.000GBP")

c.create() / c.createInBackground()

NetmeraService.search()

NetmeraUser, NetmeraMedia, NetmeraGeoLocation

www.netmera.com - use key: droidcon2012

Free pro account for ever

10 of 13

kii

  • User Management
    • ACL for application, group, user level
  • Data storage as JSON or Files
  • Syncing folders

11 of 13

StackMob

  • User Management
    • support for Twitter and Facebook
  • Data model super class with CRUD methods
  • Queries by field, also by location

On Server:

  • Push Notifications on Server
  • Custom Code SDK (Java/Scala)

12 of 13

More and Name Dropping

  • many Analytics
  • many Ads provider
  • many Bug reporter

  • User feedback (WebView with disqus)
  • ScoreNinja
  • QuickBlox
  • UserGrid
  • Pusher
  • Cosm
  • StorageRoom
  • Parse
  • Makala (private beta)

  • Azur Mobile, Amazon S3
  • Cloudemine
  • Kinvey
  • Apiomat
  • Applicasa
  • OpenMobster

13 of 13

Score board (to be completed)