android 4.1/4.2

Download Android 4.1/4.2

Post on 10-May-2015

539 views

Category:

Documents

0 download

Embed Size (px)

DESCRIPTION

Speaker: Lars Röwekamp MobileTechCon 13.3.2013 Spätestens seit Android 4.0 ist klar, dass iOS einen nicht mehr wegzudiskutierenden Konkurrenten bekommen hat. Ein vereinheitlichtes Entwicklungsmodell für Smartphones und Tablets sowie UI Design Guidelines für eine optimale User Experience bringen Android endgültig auf die Erfolgsspur. Doch wie geht es weiter? Bereits Jelly Bean (4.1) zeigt, dass noch lange nicht das Ende erreicht ist. Ein verbessertes Notification Framework, ein stark überarbeitetes Navigation-Konzept, Android Beam und Wi-Fi Direct sind nur einige der Highlights. Und auch Android 4.2 steht dem in puncto neuer Features in nichts nach. Die Session zeigt die besten Features der Post-4.0-Ära.

TRANSCRIPT

  • 1.Android 4.1+ @mobileLarson@_openKnowledgePhoto credit: Kalexanderson / Foter.com / CC BY-NC-SALars Rwekamp | CIO NewTechnologies

2. NotificationsNavigationFragments ConnectivityAgenda... and StuffPhoto credit: Kalexanderson / Foter.com / CC BY-NC-SA 3. Notifications Photo credit: Kalexanderson / Foter.com / CC BY-NC-SA 4. MTC NotificationsAndroid 4.1+ - Noteworthy ...2013Was bisher geschah ...Notifications zum Informieren bernderungen innerhalb der AppNotification Area und Drawer als Mediumzur Darstellung der nderungsinformation 5. MTCNotifications Android 4.1+ - Noteworthy ...2013 6. MTC NotificationsAndroid 4.1+ - Noteworthy ...2013Seit Jelly Bean knnen Notifications ...... variabel in ihrer Gre sein... auf- und zugeklappt werden... verschiedene Aktionen anstoen... eine Prioritt besitzten 7. MTC NotificationsAndroid 4.1+ - Noteworthy ...2013Notification Basis Layout 8. MTCNotifications Android 4.1+ - Noteworthy ...2013Notification Expanded LayoutInboxBigPictureBigTextCustom LayoutExpanded StyleCompressed Style 9. MTCNotifications Android 4.1+ - Noteworthy ...2013Notification Expanded Layout 10. MTC NotificationsAndroid 4.1+ - Noteworthy ...2013Notification Actions 11. MTC NotificationsAndroid 4.1+ - Noteworthy ...2013Notification ActionsDarstellung als Buttonbis zu 3 Actions direkt anzeigbaralternativ more Icon fr OverflowPending Intents zur Starten der Aktion 12. MTCNotifications Android 4.1+ - Noteworthy ...2013Notification Priorities 13. MTC NotificationsAndroid 4.1+ - Noteworthy ...2013Notification Stacking 14. MTCNotifications Android 4.1+ - Noteworthy ...2013Notification Stacking & Expanded Layout 15. MTCNotifications Android 4.1+ - Noteworthy ...2013BTW: Notification Best Practices 16. MTC NotificationsAndroid 4.1+ - Noteworthy ...2013BTW:Kids,dont trythis athome! 17. MTC NotificationsAndroid 4.1+ - Noteworthy ...2013// Intent to call if notification is selectedIntent intent = new Intent(this, MyActivity.class);PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent, 0);// Build up notification with some dummy actionsNotification notification = new Notification.Builder(this).setContentTitle("New Message from " + "@mobileLarson").setContentText("Hi, whats up?").setSmallIcon(R.drawable.new_msg_icon).setContentIntent(pIntent).addAction(R.drawable.answer_icon, "Answer", pIntent).addAction(R.drawable.more_icon, "More", pIntent).build();// Set notification flag(s)notification.flags = Notification.FLAG_AUTO_CANCEL;// Retrieve notification service and send notificationNotificationManager notificationManager =(NotificationManager) getSystemService(NOTIFICATION_SERVICE);notificationManager.notify(0, notification); 18. MTCNotifications Android 4.1+ - Noteworthy ...2013 // Intent to call if notification is selected Intent intent = new Intent(this, MyActivity.class); PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent, 0); // Build up expandable notification with some dummy actions Notification notification = new Notification.Builder(this) .setContentTitle("New Message from " + "@mobileLarson") .setContentText("Hi, whats up?") .setSmallIcon(R.drawable.new_msg_icon) .setContentIntent(pIntent) .addAction(R.drawable.answer_icon, "Answer", pIntent) .addAction(R.drawable.more_icon, "More", pIntent) .setStyle(new Notification.BigTextStyle().bigText("...")) .build(); ...oder BigPictureStyleoder BigPictureStylebzw. InboxStylebzw. InboxStyle 19. MTCNotifications Android 4.1+ - Noteworthy ...2013 20. MTC NotificationsAndroid 4.1+ - Noteworthy ...2013Eigentlich ganz einfach, aber ...... was ist mit Notification Stacking?... was ist mit Abwrtskompabilitt?... was ist mit Navigation? 21. MTC NotificationsAndroid 4.1+ - Noteworthy ...2013Notifications & Stackingeindeutige noteID als Hinweis fr denNotification Manager verwenden, dass erdie selbe Notification-Darstellung nutzensollnotificationManager.notify(noteID,notification) 22. MTCNotifications Android 4.1+ - Noteworthy ...2013Notifications & AbwrtskompabilittNotificationCompatNotificationCompat.BuilderAction Buttons erscheinen erst ab V4.1+ 23. MTC NotificationsAndroid 4.1+ - Noteworthy ...2013NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this).setSmallIcon(R.drawable.notification_icon).setContentTitle("EventTracker").setContentText("EventsReceived");// Sets and configure the specific styleNotificationCompat.InboxStyle inboxStyle =new NotificationCompat.InboxStyle();inboxStyle.setBigContentTitle("Eventtrackerdetails:").addLine("firstline").addLine("secondline").addLine("thirdline").setSummeryText("+3more");// Moves the big view style object into the notification object.mBuilder.setStyle(inBoxStyle);Notification notification = mBuilder.build();... 24. MTC NotificationsAndroid 4.1+ - Noteworthy ...2013Notifications & Navigationdazu gleich mehr ... 25. Navigation Photo credit: Kalexanderson / Foter.com / CC BY-NC-SA 26. MTCNavigation Android 4.1+ - Noteworthy ...2013Was bisher geschah ...Android 4.0 fhrt Unterscheidungzwischen Back vs. Up Navigation ein 27. MTCNavigation Android 4.1+ - Noteworthy ...2013Back vs. Up Navigation 28. MTCNavigation Android 4.1+ - Noteworthy ...2013 29. MTCNavigation Android 4.1+ - Noteworthy ...2013 30. MTCNavigation Android 4.1+ - Noteworthy ...2013 31. MTCNavigation Android 4.1+ - Noteworthy ...2013 32. MTCNavigation Android 4.1+ - Noteworthy ...2013 33. MTCNavigation Android 4.1+ - Noteworthy ...2013 Deep Dive 34. MTC NavigationAndroid 4.1+ - Noteworthy ...2013 Step 1: Enable Up Navigation Step 1: Enable Up Navigation@Override public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState); setContentView(R.layout.main); ActionBar actionBar = getActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); ...} 35. MTC NavigationAndroid 4.1+ - Noteworthy ...2013 Step 2: Realize Up Navigation Step 2: Realize Up Navigation@Overridepublic boolean onOptionsItemSelected(MenuItem item) {switch (item.getItemId()) { // app icon in action bar clicked: go home case android.R.id.home: Intent i = new Intent(this, MainActivity.class); i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent); return true;default: return super.onOptionsItemSelected(item);}} 36. MTC NavigationAndroid 4.1+ - Noteworthy ...2013Eigentlich ganz einfach, aber ...... ziemlich viel Aufwand, oder?... was ist mit deep dive Intents? 37. MTC NavigationAndroid 4.1+ - Noteworthy ...2013Navigation & Deep Dive IntentsEinsprung von auen mitten in die AppNavigation Stack wird knstlich aufgebauta.k.a. Synthetic Back StackWas ist mit dem fehlenden Kontext?Music Details navigiert zurck zur MusicListe, aber zu welcher? 38. MTCNavigation Android 4.1+ - Noteworthy ...2013 Deep Dive 39. MTC NavigationAndroid 4.1+ - Noteworthy ...2013 Step 1: Enable Up Navigation Step 1: Enable Up Navigation... 40. MTC NavigationAndroid 4.1+ - Noteworthy ...2013 Step 2: Realize Up Navigation Step 2: Realize Up Navigation@Overridepublic boolean onOptionsItemSelected(MenuItem item) {switch (item.getItemId()) { // app icon in action bar clicked: go home case android.R.id.home: Intent i = new Intent(this, MainActivity.class); i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent); return true;default: return super.onOptionsItemSelected(item);}} 41. MTCNavigation Android 4.1+ - Noteworthy ...2013Step 3: Manipulate Intent DataStep 3: Manipulate Intent Data@Override public void onPrepareNavigateUpTaskStack( TaskStackBuilder builder) {// retrieve intent for manipulationint position = ...;Intent intent = builder.getIntentAt(position);// manipulate intentintent.putExtra(INTENT_SPECIFIC_INFO, specificInfo);...} 42. Fragments Photo credit: Kalexanderson / Foter.com / CC BY-NC-SA 43. MTCFragments Android 4.1+ - Noteworthy ...2013Was bisher geschah ...Android 4.0 fhrt Fragments als Konzeptzur Modularisierung einWiederverwendbare Blcke zurGestaltung von Multi-Pane Layouts 44. MTCFragments Android 4.1+ - Noteworthy ...2013 45. MTC FragmentsAndroid 4.1+ - Noteworthy ...2013Fragments 1x1UI Fragments als Building BlocksUI Activity Layout als Block AssemblerUI Activity Class als Block Assembler LogicUI Resources als Switch 46. MTCFragments Android 4.1+ - Noteworthy ...2013 47. MTC FragmentsAndroid 4.1+ - Noteworthy ...2013Fragments im DetailActivity Modul a.k.a. Sub Activityinkl. eigener UIinkl. eigenem Lifecyclebentigt immer eine umliegende ActivityLifecycle passt sich dem Activity-Lifecyclean 48. MTCFragments Android 4.1+ - Noteworthy ...2013 49. MTC FragmentsAndroid 4.1+ - Noteworthy ...2013in Aktion Starte MainActivity Screensize Smartphone Orientierung Portrait Layout aus res/layout Fragment A1) Bei Selektion schicke IntentDetails Zeige DetailsActivity in FragmentB1) Standardlayout 50. MTC FragmentsAndroid 4.1+ - Noteworthy ...2013in Aktion Starte DetailActivity Screensize Smartphone Orientierung Portrait Layout aus res/layout 1) Fragment B1) Standardlayout 51. MTCFragments Android 4.1+ - Noteworthy ...2013in Aktion Starte MainActivity Screensize Tablet Orientierung Landscape1) Layout aus /res/layout-sw600dp Fragment A und B Bei Selektion aktualisiere B1) Layout fr: smalest witdh 600dp = 10 Tablet 52. MTCFragments Android 4.1+ - Noteworthy ...2013Fragment Main PlayerFragment XMLFragment ClassFragmentManagerFragmentTransaction 53. MTCFragments Android 4.1+ - Noteworthy ...2013FragmentsSoweit alles klar, aber wie kann ichein Fragment innerhalb eines anderenFragments platzieren? 54. MTC FragmentsAndroid 4.1+ - Noteworthy ...2013Nested FragmentsVerschachtelte Fragmentsdynamisch via FragmentManagerhinzufgen, aktualisieren, lschenknnen nicht statisch via XML Layoutangegeben werden! 55. MTCFragments Android 4.1+ - Noteworthy ...2013Nested Fragments 56. MTC FragmentsAndroid 4.1+ - Noteworthy ...2013...@Overridepublic void onClick(View v) { Fragment nestedFragment = new NestedFrag(); FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); transaction.add(getId(), nestedFragment,"parent").co