28
Android-App/NerdKalender Martin Perstorfer Stefan Eckl

Android-App/NerdKalender Martin Perstorfer Stefan Eckl

Embed Size (px)

Citation preview

Page 1: Android-App/NerdKalender Martin Perstorfer Stefan Eckl

Android-App/NerdKalender

Martin PerstorferStefan Eckl

Page 2: Android-App/NerdKalender Martin Perstorfer Stefan Eckl

Gliederung

1. Allgemeines über Android

2. Projektbeschreibung

3. Livevorführung

4. Vorbereitungen

5. Projektumsetzung Teil I

6. Projektumsetzung Teil II

7. Veröffentlichung und Tests

8. Fazit Bildquelle: https://play.google.com/store?

hl=de&tab=w8

Page 3: Android-App/NerdKalender Martin Perstorfer Stefan Eckl

Allgemeines über Android

• wurde von der Open Handset Alliance gegründet

• Oktober 2008: Erstes Gerät mit Android

• größter Markanteil unter allen mobilen

Betriebssystemen

• Google übernimmt mehr und mehr die Überhand

Page 4: Android-App/NerdKalender Martin Perstorfer Stefan Eckl

Projektbeschreibung

• Projekttitel: NerdKalender

• Anzahl der gelebten Tage der gespeicherten

Kontakte ermitteln und mit Sortierung

darstellen

• Einstellungen sollen variierbar sein

• Ziel: funktionsfähige Version am PlayStore

veröffentlichen

Page 5: Android-App/NerdKalender Martin Perstorfer Stefan Eckl

Livevorführung

Page 6: Android-App/NerdKalender Martin Perstorfer Stefan Eckl

Vorbereitungen

• Entwicklungsumgebung: Eclipse mit Android SDK

• Programmiersprache: Java

• Hardware zum Debuggen: HTC Wildfire, NEXUS 7

• Nachschlagewerk: Android 3 von Thomas

Künneth(Buch)

Page 7: Android-App/NerdKalender Martin Perstorfer Stefan Eckl

Projektumsetzung I

• AndroidManifest.xml

• Startseite

• Alle Kontakte

• Benutzerdefiniert

mit Schnittstelle Einstellungen

Page 8: Android-App/NerdKalender Martin Perstorfer Stefan Eckl

AndroidManifest.xml

• Version

• Berechtigungen

• Logo

• MainActivity

• Activity

Page 9: Android-App/NerdKalender Martin Perstorfer Stefan Eckl

Startseite

Button bnAlleKontakte = (Button)(this.findViewById(R.id.bnAlleKontakte)); bnAlleKontakte.setOnClickListener( new OnClickListener() {

public void onClick(View v) { Intent intent = new Intent(Start.this,

AlleKontakte.class); StartActivity(intent);}});

Page 10: Android-App/NerdKalender Martin Perstorfer Stefan Eckl

Alle Kontakte• Daten

• Vector<Kontakte>

• Layout

• Listenkopf

• Listenitems

KontaktAdapter adapter = new KontaktAdapter(this,R.layout.listview_item_row, kontakt);lvKontakt = (ListView)findViewById(R.id.lvKontkate);View header = (View)getLayoutInflater().inflate(R.layout.listview_header_row, null);lvKontakt.addHeaderView(header); lvKontakt.setAdapter(adapter);

Page 11: Android-App/NerdKalender Martin Perstorfer Stefan Eckl

Alle Kontakte

Cursor mainQueryCursor= contentResolver.query(ContactsContract.Contacts.CONTENT_URI, mainQueryProjection,mainQuerySelection, mainQuerySelectionArgs, null);

// Trefferliste abarbeiten...while (mainQueryCursor.moveToNext()) {String contactId = mainQueryCursor.getString(0);String displayName = mainQueryCursor.getString(1);Cursor bdc = bd.query(android.provider.ContactsContract.Data.CONTENT_URI, new String[] { Event.DATA }, android.provider.ContactsContract.Data.CONTACT_ID+" = "+contactId+" AND "+Data.MIMETYPE+" = '"+Event.CONTENT_ITEM_TYPE+"' AND "+Event.TYPE+" = "+Event.TYPE_BIRTHDAY, null, android.provider.ContactsContract.Data.DISPLAY_NAME);… // Geburtsdatum ermitteln und in Vector speichern

Page 12: Android-App/NerdKalender Martin Perstorfer Stefan Eckl

Kontakte mit Geburtsdatum

• gleicher Aufbau wie „Alle

Kontakte“

• Sortierung nach:

„Wer hat den nächsten

Runden“

• greift auf Einstellungen zu

Page 13: Android-App/NerdKalender Martin Perstorfer Stefan Eckl

Projektumsetzung II• Einstellungen

• Schnittstelle mit Geburtstagsberechnung

• About

Page 14: Android-App/NerdKalender Martin Perstorfer Stefan Eckl

StartLayout-Designer xml-Code-Datei

Page 15: Android-App/NerdKalender Martin Perstorfer Stefan Eckl

StartStart.java

• OnClickListener = OnClick-Ereigniss (Java)

• ruft die Klasse About auf

• Intent = neue Seite

Page 16: Android-App/NerdKalender Martin Perstorfer Stefan Eckl

AboutAbout.java

• erzeugt erst beim onCreate ihr zugehöriges Layout

Page 17: Android-App/NerdKalender Martin Perstorfer Stefan Eckl

AboutLayout-Designer xml-Code-Datei

Page 18: Android-App/NerdKalender Martin Perstorfer Stefan Eckl

StartLayout-Designer xml-Code-Datei

Page 19: Android-App/NerdKalender Martin Perstorfer Stefan Eckl

StartStart.java

• ruft die Klasse Einstellungen auf

Page 20: Android-App/NerdKalender Martin Perstorfer Stefan Eckl

Einstellungen

• Preference = Einstellungsmenü

• anstatt setContentView(Layout) hier addPreference

Page 21: Android-App/NerdKalender Martin Perstorfer Stefan Eckl

Einstellungenmy_preferences.xml Anzeige

Page 22: Android-App/NerdKalender Martin Perstorfer Stefan Eckl

Einstellungenarray.xml Anzeige

Page 23: Android-App/NerdKalender Martin Perstorfer Stefan Eckl

StartLayout-Designer xml-Code-Datei

Page 24: Android-App/NerdKalender Martin Perstorfer Stefan Eckl

StartStart.java

• ruft die Klasse Benutzerdefiniert auf

Page 25: Android-App/NerdKalender Martin Perstorfer Stefan Eckl

BenutzerdefiniertBenutzerdefiniert.java

• Erstellen einer SharedPreference

• auslesen des gewählten Auswahl in einen string

• weitere Verarbeitung

Page 26: Android-App/NerdKalender Martin Perstorfer Stefan Eckl

Veröffentlichung und Tests

1. Entwickleraccount bei Google

Play

2. App hochladen (als Betatest)

Beschreibung der App

ein Logo im Format 512x512

Pixel

min. 2 Screenshots

eine Kategorie auswählen

und vieles mehr

3. App veröffentlichen

Bildquelle: cdn.crackberry.com/sites/crackberry.com/files/styles/large/public/topic_images/2013/ANDROID.png%3Fitok%3Dxhm7jaxS

Page 27: Android-App/NerdKalender Martin Perstorfer Stefan Eckl

Fazit

• Herausforderung, da neues Themengebiet

• Ziel erreicht App als Testversion am

PlayStore

• Aktueller Stand: Version 0-9-4

• weitere Ideen für nächstes Schuljahr

• kann ich nur weiterempfehlen!

Page 28: Android-App/NerdKalender Martin Perstorfer Stefan Eckl

Danke für ihre Aufmerksamkeit!