SETapp Präsentation
-
Upload
tim-messerschmidt -
Category
Technology
-
view
1.885 -
download
0
Transcript of SETapp Präsentation
Einsatz der Near Field Communication Technologie im wissenschaftlichen Kontext - Konzeption und Implementierung einer
mobilen Applikation für das Android-Betriebssystem
Tim Messerschmidt,19.07.2011
1
1
Gliederung• Android als Plattform
• NFC als Technik
• OAuth
• Mendeley als Service-Provider
• Datenaustausch via JSON
• SETapp
• Design der Applikation
• Funktionen
• Evaluation
2
2
Android als Plattform
3
3
Android als Plattform
3
3
Android als Plattform
3
3
Android als Plattform
3
3
Android als Plattform
3
3
Unsere Testplattform
• Googles Referenzplattform
• erstes Android-Telefon mit NFC
• Android 2.3.4 (Gingerbread)
• für Lesen und Schreiben via NFC
• Leihstellung von Samsung
Samsung Nexus S4
Android als Plattform
• Basiert auf einem Linux-Kernel
• Bietet schnellen API-Zugriff auf Hardware
• WLAN, NFC, Bluetooth, ...
• Wird in Java entwickelt
• Oberflächendeklaration in XML
5
5
NFC als Technik
• Drahtloser Austausch von Daten
• Schnelle Kopplung von Geräten (< 0.02s)
• Kurze Übertragungsdistanz (< 2cm)
• Hohe Fehlerresistenz
• NFC-Tags mit bis zu 1 Mb Speicher
• Aktiver und passiver Standard
6
6
NFC vs. QR-Codes
Verwendeter QR-Code
7
NFC vs. QR-Codes
• QR-Code benötigt optimale Bedingungen:
• gute Kamera
• schneller Autofokus
• gute Lichtverhältnisse
• Applikation muss erst gestartet werden
8
NFC vs. QR-Codes
• QR-Code benötigt optimale Bedingungen:
• gute Kamera
• schneller Autofokus
• gute Lichtverhältnisse
• Applikation muss erst gestartet werden
Nr QR NFC
1 4730ms 910ms
2 5300ms 1920ms
3 5400ms 2320ms
4 7800ms 1620ms
5 4710ms 2260ms
6 5540ms 2160ms
Schnitt 5580ms 1865ms
8
NFC vs. QR-Codes
• QR-Code benötigt optimale Bedingungen:
• gute Kamera
• schneller Autofokus
• gute Lichtverhältnisse
• Applikation muss erst gestartet werden
Nr QR NFC
1 4730ms 910ms
2 5300ms 1920ms
3 5400ms 2320ms
4 7800ms 1620ms
5 4710ms 2260ms
6 5540ms 2160ms
Schnitt 5580ms 1865ms
NFC um Faktor 3 schneller
8
OAuth• Leitet den Benutzer auf eine dynamisch-generierte
Login-Seite des eigentlichen Services weiter
• Service gibt Credentials zurück, welche der Applikation Zugriff via API auf Ressourcen des authentifizierten Benutzers gibt
• Genutzt von vielen Social Networks
9
9
OAuth• Leitet den Benutzer auf eine dynamisch-generierte
Login-Seite des eigentlichen Services weiter
• Service gibt Credentials zurück, welche der Applikation Zugriff via API auf Ressourcen des authentifizierten Benutzers gibt
• Genutzt von vielen Social Networks
9
9
OAuth• Leitet den Benutzer auf eine dynamisch-generierte
Login-Seite des eigentlichen Services weiter
• Service gibt Credentials zurück, welche der Applikation Zugriff via API auf Ressourcen des authentifizierten Benutzers gibt
• Genutzt von vielen Social Networks
9
9
OAuth• Leitet den Benutzer auf eine dynamisch-generierte
Login-Seite des eigentlichen Services weiter
• Service gibt Credentials zurück, welche der Applikation Zugriff via API auf Ressourcen des authentifizierten Benutzers gibt
• Genutzt von vielen Social Networks
9
9
OAuth• Leitet den Benutzer auf eine dynamisch-generierte
Login-Seite des eigentlichen Services weiter
• Service gibt Credentials zurück, welche der Applikation Zugriff via API auf Ressourcen des authentifizierten Benutzers gibt
• Genutzt von vielen Social Networks
9
9
• Großer Datenstamm (Stand: 15.07.11)
• 1.059.449 Personen
• 98.212.833 Papers
• Wird zur Anmeldung genutzt (via OAuth)
• spart eigenen Account für SETapp
10
10
• Problem:
• API war bis Mitte Juni unbrauchbar
• Keine banalen Details wie Name, E-Mail oder Arbeitgeber abrufbar
• API selbst jetzt noch teils fehlerhaft
• Profil-Details via JSON
• OAuth bietet nicht vollen Zugriff
11
11
• Profil-Details via JSON:
• Contact im ausgefüllten Zustand:
• { ... }
• Contact im leeren Zustand:
• [] Kennzeichnung für ein leeres Array
Details wie E-Mail oder Skype
12
12
JSON
• Effizientes Datenaustauschformat mit geringem Overhead
• Nativ bei Android unterstützt
• Auf Serverseite durch Library nachgepflegt
• Wird zur (De-)Serialisierung von Objekten genutzt (auch in Collections)
13
13
Android-ApplikationGoogle App Engine-Backend
14
Design
• Verwendung von Design-Patterns
• Möglichst komprimierte Darstellung von Informationen
• Unaufdringliche Gestaltung & Farbwahl
• Konsistenz
• Keine versteckten Funktionen
• Maximale Wiederverwendbarkeit
15
ActionBarNachricht schickenPerson folgenzurück zur letzten Activity
situationsabhängige Funktionenan einer zentralen Position
16
TabBar und Actions
Tabs mit verschiedenen Inhalten / Funktionen
Hauptfunktionen
17
Funktionen
• Profiltausch
• Dokumententausch
• Check-in in Events und Talks
• Lesen einer Paper-Session
• „Folgen“ von Personen
• Nachrichten versenden & empfangen
18
Profiltausch
Die Rückseiten der Telefone zusammenführen19
Profiltausch
20
Profiltausch{
MIME: application/x-setapp-share(
PAYLOAD={ "type":
"de.upb.messerschmidt.set.entity.Person","name":
"Messerschmidt", "prename":
"Tim"}
)}
20
Dokumententausch
21
Integration
Andere Apps nutzen unsere Daten!22
Integration
• Vorteil:
• Teilnehmer können über mehrere Kanäle von SETapp profitieren
• Auch Leute ohne SETapp werden nicht komplett ausgeschlossen
• SETapp teilt Dokumente per NFC
23
Check-in
.. oder per NFC!24
Google App Engine
• Instanzenmodell führt zu hohen Latenzen
• erster Start: 2666ms
• nächster Aufruf: 69ms
• Datenspeicherung umständlich
• Vater-Kind-Relationen und Vererbung nur mangelhaft implementierbar
25
Evaluation
• 11 Teilnehmer
• Teststrecke:
• 1 Event
• 2 Talks
• 2 Paper-Sessions
26
NFC Geschwindigkeit
0
1
2
3
4
5
6
7
Empfinden der Teilnehmer
sehr langsam langsam eher langsameher schnell schnell sehr schnell
27
NFC oder manuell?
0
1
2
3
4
Präferenz der Teilnehmer
nur manuell lieber manuell eher manuelleher NFC lieber NFC nur NFC
28
Vielen Dank!
29
Fragen?
30