Upload
hermann-wuesthoff
View
119
Download
2
Embed Size (px)
Citation preview
Android-App/NerdKalender
Martin PerstorferStefan 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
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
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
Livevorführung
Vorbereitungen
• Entwicklungsumgebung: Eclipse mit Android SDK
• Programmiersprache: Java
• Hardware zum Debuggen: HTC Wildfire, NEXUS 7
• Nachschlagewerk: Android 3 von Thomas
Künneth(Buch)
Projektumsetzung I
• AndroidManifest.xml
• Startseite
• Alle Kontakte
• Benutzerdefiniert
mit Schnittstelle Einstellungen
AndroidManifest.xml
• Version
• Berechtigungen
• Logo
• MainActivity
• Activity
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);}});
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);
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
Kontakte mit Geburtsdatum
• gleicher Aufbau wie „Alle
Kontakte“
• Sortierung nach:
„Wer hat den nächsten
Runden“
• greift auf Einstellungen zu
Projektumsetzung II• Einstellungen
• Schnittstelle mit Geburtstagsberechnung
• About
StartLayout-Designer xml-Code-Datei
StartStart.java
• OnClickListener = OnClick-Ereigniss (Java)
• ruft die Klasse About auf
• Intent = neue Seite
AboutAbout.java
• erzeugt erst beim onCreate ihr zugehöriges Layout
AboutLayout-Designer xml-Code-Datei
StartLayout-Designer xml-Code-Datei
StartStart.java
• ruft die Klasse Einstellungen auf
Einstellungen
• Preference = Einstellungsmenü
• anstatt setContentView(Layout) hier addPreference
Einstellungenmy_preferences.xml Anzeige
Einstellungenarray.xml Anzeige
StartLayout-Designer xml-Code-Datei
StartStart.java
• ruft die Klasse Benutzerdefiniert auf
BenutzerdefiniertBenutzerdefiniert.java
• Erstellen einer SharedPreference
• auslesen des gewählten Auswahl in einen string
• weitere Verarbeitung
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
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!
Danke für ihre Aufmerksamkeit!