1 / 18

Workshop 6 (ws6C) native Entwicklung für mobile Geräte

Workshop 6 (ws6C) native Entwicklung für mobile Geräte. Mono for Android. Unser Plan (1/2). 18.2. (Romano) Einführung , « Mega CRM», Aufsetzen 25.2. (Romano) Einführung in Windows Phone 8 Entwicklung 04.3. (Romano) Umsetzung « Mega CRM» mit Windows Phone 8

dinos
Download Presentation

Workshop 6 (ws6C) native Entwicklung für mobile Geräte

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Workshop 6 (ws6C) native Entwicklung für mobile Geräte Mono forAndroid

  2. Unser Plan (1/2) • 18.2. (Romano) Einführung, «Mega CRM», Aufsetzen • 25.2. (Romano) Einführung in Windows Phone 8 Entwicklung • 04.3. (Romano) Umsetzung «Mega CRM» mit Windows Phone 8 • 11.3. (Oliver) Einführung in Mono-Entwicklung • 18.3. (Oliver) Umsetzung «Mega CRM» mit MonoTouch • 25.3. (Oliver) Umsetzung «Mega CRM» mit MonoDroid • 01.4. Kein Workshop (Ostern) • 08.4. (Michael) Einführung in iOS Entwicklung • 15.4. (Michael) Umsetzung «Mega CRM» mit iOS • 22.4. (Michael) Umsetzung «Mega CRM» mit iOS Workshop 6 (ws6C) native Entwicklung für mobile Geräte | Oliver Brack

  3. Unser Plan (2/2) • 29.4. (Philipp) Einführung in Android • 06.5. (Philipp) Umsetzung «Mega CRM» mit Android • 13.5. Kein Workshop (Projektwoche) • 20.5. (Philipp) Umsetzung «Mega CRM» mit Android • 27.5. (Matthias) Einführung in PhoneGap • 03.6. (Matthias) Umsetzung «Mega CRM» mit PhoneGap • 10.6. (alle) Präsentation Eurer Arbeit Workshop 6 (ws6C) native Entwicklung für mobile Geräte | Oliver Brack

  4. Dritter WorkshopEinschränkungen • Übersetzungen • In Musterlösung vorhanden • Google Store • Thema bei nativer Android-Entwicklung (Philipp Kälin) • UI rudimentär • Verfeinerung im nativen Workshop • Selbständiges Finish für Präsentation • Nicht alle CRUD-Operationen • Zeitbudget • Musterlösung als Beispiel • Selbständiges Finish für Präsentation Workshop 6 (ws6C) native Entwicklung für mobile Geräte | Oliver Brack

  5. Dritter WorkshopZiele • «Mega CRM» auf Android mit Mono • Service konsumieren • ServerAccess (Business Layer, shared Code) • ServiceStack • Kundenliste anzeigen • Tabellen in Android (ListView) • Navigation in Android (Activities) • Kunde anzeigen • Menüs in Android • Hintergrund-Tasks (TPL) • Kunde suchen (filtern) • Kunde bearbeiten • Kunde löschen • Kunde hinzufügen Workshop 6 (ws6C) native Entwicklung für mobile Geräte | Oliver Brack

  6. Dritter WorkshopAgenda • Einführung (5’) • Repetition/Rückblick (5’) • «Mega CRM» (30’) • ServerAccess mit ServiceStack • Kundenliste anzeigen (ListView) Pause (5’) • «Mega CRM» (40’) • Kundendetails anzeigen • Menüs in Android • Retrospektive und Ausblick (5’) • Inputs für folgende Workshops • Vorbereitungen für iOS (nativ) Workshop 6 (ws6C) native Entwicklung für mobile Geräte | Oliver Brack

  7. Repetition/Rückblick • «Mega CRM» für iOS • max: selber fertig stellen • min: Musterlösung verstehen • 99_MonoTouch.CustomerManager.zip • Android-Emulator einrichten und testen • Beispiel-App (Template) muss laufen! Workshop 6 (ws6C) native Entwicklung für mobile Geräte | Oliver Brack

  8. Service • http://ws6c.cs.technik.fhnw.ch/group1 • Gruppen 1-8 • Vorsicht bei gegenseitigen Änderungen der Kundendaten! • RESTful API mit JSON: • [{"Id":1,"Title":"Mrs","FirstName":"Lilliane","MiddleName":"Catrina","LastName":"Wyss","Company":"Volkswagen","WebPage":"http://www.volkswagen.com","PhoneNumber":"+65 (1418) 832671","FaxNumber":"+21 (4004) 257244","MobileNumber":"+91 (6007) 144197","Street":"Lake Street 343","Email":"nadia.huber@volkswagen.com","City":"Madison","State":"","PostalCode":"42481","Country":"Western Sahara","Department":"NPP","Office":"225","Profession":"welder","ManagersName":"Leopoldo Keller","AssistantName":"Agnes Weber","Nickname":"The Unpredictable","Birthday":"/Date(1042844400000+0100)/"}] Workshop 6 (ws6C) native Entwicklung für mobile Geräte | Oliver Brack

  9. ServiceStack • Startprojekt mit ServerAccess • 10_MonoDroid.CustomerManager.zip • ServerAccess-Projekt 1:1 von iOS-Lösung übernommen! • Referenzierte ServiceStack-Assemblies anders • ServiceStack übernimmt Verbindungsaufbau und JSON-Serialisierung: • varrestClient = newJsonServiceClient("http://ws6c.cs.technik.fhnw.ch/group1");varcustomers = restClient.Get<List<Customer>>("/customer"); • Customer-Klasse aus Service-Projekt (C#) • Service-Zugriff analysieren: • Ausgabe auf Kommandozeile:Console.WriteLine(customers.Count); • Debugging mit Breakpoint Workshop 6 (ws6C) native Entwicklung für mobile Geräte | Oliver Brack

  10. Listen in Android (1/2) • ListView • <ListViewandroid:id="@+id/customerListView" android:layout_height="match_parent" android:layout_width="match_parent“ /> • Einzelne Zeile ebenfalls mit XML beschrieben • CustomerListItem.xml • Activity.LayoutInflater.Inflate() • Eigener Adapter als Datenquelle • Entspricht TableViewSource in MonoTouch • Ableitung von BaseAdapter • Überschreiben der Methoden/Properties • Count • GetItem() • GetItemId() • GetView() Workshop 6 (ws6C) native Entwicklung für mobile Geräte | Oliver Brack

  11. Listen in Android (2/2) • Kundenliste als Tabelle anzeigen • ListView(siehe letzte Folie) in XML hinzufügen • Eigene Adapter-Klasse erstellen • Kunde (Name/Vorname) mit vorgegebenem Layout (CustomerListItem.axml) • Kundendaten entgegen nehmen und Adapter instanziieren • Kundenfoto anzeigen • Byte-Array aus Customer-Objekt in Bitmap umwandeln • BitmapFactory.DecodeByteArray() Workshop 6 (ws6C) native Entwicklung für mobile Geräte | Oliver Brack

  12. Navigation in Android (Activities) • Activity mit Kundenliste als Start • [MainLauncher= true] • Activity mit Kundendetails • StartActivity() • Finish() • CustomerDetailsActivity erstellen für Kundendetails • 20_MonoDroid.CustomerManager.zip Workshop 6 (ws6C) native Entwicklung für mobile Geräte | Oliver Brack

  13. Activity-Aufruf mit Datenübergabe • Kundendetails bei Klick auf Kunde in Liste • listView.ItemClick+= OnItemClick; • Datenübergabe an Activity • Intent als Datenkontext • varintent = new Intent();intent.SetClass(this, typeof(CustomerDetailsActivity));intent.PutExtra("customerId", customerId);StartActivity(intent); • Datenübernahme in aufgerufenem Activity • var customerId = Intent.GetIntExtra("customerId", 0); • Kundendetails von Provider holen • varcustomer= _customerProvider.GetCustomer(customerId); Workshop 6 (ws6C) native Entwicklung für mobile Geräte | Oliver Brack

  14. Menüs in Android • Aufruf durch Druck auf Taste «Menu» • Geräteabhängig • Kontextmenü mit Verschachtelung • Überladen der entsprechenden Methoden in der Activity • OnCreateOptionsMenu() • OnOptionsItemSelected() Workshop 6 (ws6C) native Entwicklung für mobile Geräte | Oliver Brack

  15. Hintergrund-Tasks mit TPL • Kundendaten im Hintergrund laden • UI nicht blockieren • Benutzer kann lokal weiterarbeiten • Task Parallel Library (TPL)http://msdn.microsoft.com/en-us/library/dd460717.aspx • Methode im Hintergrund ausführen • Task.Factory.StartNew(DoSomethingOnBackgroundThread); • UI aktualisieren (aus dem Hintergrund) • RunOnUiThread(DoSomethingOnUiThread); • Entspricht InvokeOnMainThread in iOS Workshop 6 (ws6C) native Entwicklung für mobile Geräte | Oliver Brack

  16. Ausbaumöglichkeiten • Kunde löschen • Kunde hinzufügen • Kunde suchen (filtern) • Mehrsprachigkeit • Menüs für Bearbeiten, Aktualisieren, Löschen • Progress-Overlay während Serverzugriff • Kundenadresse auf Karte visualisieren • Wegbeschreibung ab aktuellem Standort (GPS) • Kundenfoto mit Kamera aufnehmen • Kennzahlen des Kunden visualisieren • evtl. Chart Library einsetzen • Kunde als Kontakt hinzufügen Workshop 6 (ws6C) native Entwicklung für mobile Geräte | Oliver Brack

  17. Retrospektive • Fazit der drei vergangenen Workshops • … • … • … • Inputs für kommende Workshops • … • … • … Workshop 6 (ws6C) native Entwicklung für mobile Geräte | Oliver Brack

  18. Seid Ihr bereit für iOS (nativ)?08.04.13 • «Mega CRM» für Android • max: selber fertig stellen • min: Musterlösung verstehen • 99_MonoDroid.CustomerManager.zip • Apple Macintosh Rechner (MacBook) • XCode4.6.x (App Store) • Optional: • Mitglied beim «iOSDeveloper Program» (99$), falls man die App auf dem Gerät laufen lassen will, und/oder die App in den App Store ausliefern möchte. Workshop 6 (ws6C) native Entwicklung für mobile Geräte | Oliver Brack

More Related