Offlinefähige Apps für Android entwickeln (Google DevFest Karlsruhe 2013)

25
Überleben im Funkloch Offlinefähige Apps für Android entwickeln Christian Janz ( ) @c_janz [email protected]

description

Trotz des immer schnelleren mobilen Internets gibt es Situationen, in denen man auf dem Smartphone keine Datenverbindung hat. Dennoch möchte man, z.B. während einer Zugfahrt, neue RSS-Feeds oder Nachrichten auf Twitter lesen. Die Apps dafür müssen also offlinefähig sein und ihre Daten lokal vorhalten. Diese Session zeigt, wie man eine App für Android entwickeln kann, die Daten mit einem Service synchronisiert, sodass die App auch ohne aktive Datenverbindung benutzt werden kann. Zuerst wird hierzu der passende Architekturansatz vorgestellt. Danach werden Schritt für Schritt die benötigten Android APIs anhand von kleinen Demos vorgestellt, bis schließlich daraus die fertige App entsteht.

Transcript of Offlinefähige Apps für Android entwickeln (Google DevFest Karlsruhe 2013)

Page 1: Offlinefähige Apps für Android entwickeln (Google DevFest Karlsruhe 2013)

Überleben imFunkloch

Offlinefähige Apps für Android entwickeln

Christian Janz ( )@c_janz

[email protected]

Page 2: Offlinefähige Apps für Android entwickeln (Google DevFest Karlsruhe 2013)

Twitter: | E-Mail: Slides:

Christian JanzConsultant im Bereich Softwareentwicklung Java/JEE bei

in MannheimbridgingIT

Interesse: Architektur und Entwicklung vonGeschäftsanwendungen mit Hilfe moderner Java Frameworks

@c_janz [email protected]://de.slideshare.net/cjanz

Page 3: Offlinefähige Apps für Android entwickeln (Google DevFest Karlsruhe 2013)

AgendaMotivationLösungsideeArchitekturansatzAPIs im Einsatz: Sync SampleFazit

Page 4: Offlinefähige Apps für Android entwickeln (Google DevFest Karlsruhe 2013)

Motivation

Page 5: Offlinefähige Apps für Android entwickeln (Google DevFest Karlsruhe 2013)
Page 6: Offlinefähige Apps für Android entwickeln (Google DevFest Karlsruhe 2013)
Page 7: Offlinefähige Apps für Android entwickeln (Google DevFest Karlsruhe 2013)
Page 8: Offlinefähige Apps für Android entwickeln (Google DevFest Karlsruhe 2013)

Lösungsidee

Page 9: Offlinefähige Apps für Android entwickeln (Google DevFest Karlsruhe 2013)

Synchronisiere Daten undspeichere sie lokal auf dem

Gerät

Page 10: Offlinefähige Apps für Android entwickeln (Google DevFest Karlsruhe 2013)

VorteileApp kann auch ohne aktive Datenverbindung genutzt werdenDatenvolumen wird reduziertDaten werden regelmäßig aktualisiert, wenn eineDatenverbindung besteht"Nebenbei": Verbesserte Architektur

Page 11: Offlinefähige Apps für Android entwickeln (Google DevFest Karlsruhe 2013)

Architektur

Page 12: Offlinefähige Apps für Android entwickeln (Google DevFest Karlsruhe 2013)

RahmenbedingungenDaten werden von einem REST-Service bezogenDaten sollen lokal in SQLite DB gespeichert werdenDaten sollen regelmäßig synchronisiert werdenActivities verwenden nur lokale DatenActivities sollen automatisch aktualisiert werden

Page 13: Offlinefähige Apps für Android entwickeln (Google DevFest Karlsruhe 2013)

"Developing Android REST Client Applications"

Architekturansatz für AndroidVortrag von Virgil Dobjanschi auf der Google IO 2010

Page 14: Offlinefähige Apps für Android entwickeln (Google DevFest Karlsruhe 2013)

Quelle: Developing Android REST Client Applications

Page 15: Offlinefähige Apps für Android entwickeln (Google DevFest Karlsruhe 2013)

APIs im Einsatz:Sync Sample

Page 16: Offlinefähige Apps für Android entwickeln (Google DevFest Karlsruhe 2013)

VorgehenAuthenticator & AccountSyncAdapterContentProviderREST client & SyncAdapterActivities

Page 18: Offlinefähige Apps für Android entwickeln (Google DevFest Karlsruhe 2013)

Step 1: Authenticator &Account

AuthenticatorServiceAuthenticatorAccountAuthenticatorActivityauthenticator.xml

Page 19: Offlinefähige Apps für Android entwickeln (Google DevFest Karlsruhe 2013)

Step 2: SyncAdapterSyncServiceSyncAdaptersyncadapter.xml

Page 20: Offlinefähige Apps für Android entwickeln (Google DevFest Karlsruhe 2013)

Step 3: ContentProviderTodoContentProviderDatabaseHelperTodoEntity

Page 21: Offlinefähige Apps für Android entwickeln (Google DevFest Karlsruhe 2013)

Step 4: REST client &SyncAdapter

SyncAdapterTodoRestClientTodoEntity

Page 22: Offlinefähige Apps für Android entwickeln (Google DevFest Karlsruhe 2013)

Step 5: ActivitiesMainActivityactivity_main.xmltodo_row.xml

Page 23: Offlinefähige Apps für Android entwickeln (Google DevFest Karlsruhe 2013)

Fazit

Page 24: Offlinefähige Apps für Android entwickeln (Google DevFest Karlsruhe 2013)

FazitOfflinefähige Apps haben VorteileOfflinefähigkeit muss in der Architektur berücksichtigtwerdenOfflinefähigkeit muss nicht aufwändig seinAndroid bietet gute Unterstützung dafür

Page 25: Offlinefähige Apps für Android entwickeln (Google DevFest Karlsruhe 2013)

Fragen?