Paris Android User Group

download Paris Android User Group

If you can't read please download the document

description

Présentation UI guidelines et mise en place des Quick Actions Popups

Transcript of Paris Android User Group

  • 1. Paris Android User Group Mise en place des Quick Actions Popups Nicolas Chambrier 23/11/2010

2. 2 Qui suis-je ? Consultant/Architecte Clever Age Une socit o il fait bon travailler :) Ple expertise Bande de geeks ! @naholyr 3. 3 Parole, parole, parole... Twitter for Android Modle d'UI Open-source ? On attend toujours Mais les conseils doivent tre suivis Comment on se dmerde nous ? 4. 4 Nouvelles UI guidelines (1/3) Action Bar Actions courantes et globales Et la touche menu ? Actions avances Et la touche search ? Bouton physique optionnel Window.FEATURE_NO_TITLE 5. 5 Nouvelles UI guidelines (2/3) Quick Actions Popup Actions contextuelles Pourquoi pas un context menu ? plus joli moins encombrant mais plus complexe 6. 6 Nouvelles UI guidelines (3/3) Home Voir toutes les zones de l'appli Pas de donnes affiches immdiatement ? performance Chemin simple pour aller partout (retour home + clic) 7. 7 UI et UX sont sur un bateau... Joli ergonomique Twitter for Android votre application Les utilisateurs de Twitter vos utilisateurs USE YOUR BRAIN !! 8. 8 Histoires d'une refonte graphique (Horaires TER SNCF) 9. 9 Gros plan : Quick Actions Remplace la notion de menu contextuel Donc commencez par un ContextMenu :) Est-ce vraiment appropri mon application ? Pas vraiment plus ergonomique Sexy : certes, mais si l'appli est moche ? 10. 10 Dieu nous a abandonn ! Google ne nous aide pas sur ce coup... Est-on seuls au monde ? Des initiatives personnelles : WHSFinder https://github.com/ruqqq/WorldHeritageSite/tree/master/src/sg/ruqqq/WHSFinder Simple QuickActions http://code.google.com/p/simple-quickactions/ Lorenz http://www.londatiga.net/it/how-to-create-quickaction-dialog-in-android/ DevoTeam http://code.google.com/p/devoquickaction/ (inspir de WHSFinder) Horaires TER SNCF http://code.google.com/p/horaires-ter-sncf/wiki/QuickActionWindow 11. 11 Pourquoi rinventer la roue ? Facile faire Besoins spcifiques : Intgration intents systme de plugins Contraintes : Comptences limites en graphisme Layout limit 1 background (9-patch) 12. 12 Utilisation QuickActionWindow (1/4) Intgrer la librairie .jar Crez vos layouts 13. 13 Utilisation QuickActionWindow (2/4) Crer la popup final Intent pluginIntent = new Intent(Intent.ACTION_VIEW); pluginIntent.setType(Gare.CONTENT_TYPE); final Context context = this; QuickActionWindow window = QuickActionWindow.getWindow(this, Common.QUICK_ACTION_WINDOW_CONFIGURATION, new QuickActionWindow.Initializer() { @Override public void setItems(QuickActionWindow window) { // ici ajouter les items } }, POPUP_ID); // Complete intent items, adding station ID Bundle extras = new Bundle(); extras.putLong(Gare._ID, id); window.dispatchIntentExtras(extras, pluginIntent); window.show(view); 14. 14 Utilisation QuickActionWindow (3/4) Ajouter item fixe Ajouter des pubs // Add item "add/remove to favorites", always here int favIconId; if (Gare.getFavorites(context).has(id)) { favIconId = R.drawable.quick_action_remove_favorite; } else { favIconId = R.drawable.quick_action_add_favorite; } window.addItem(getString(favStringId), getResources().getDrawable(favIconId), new QuickActionWindow.Item.Callback() { public void onClick(QuickActionWindow.Item item, View anchor) { anchor.findViewById(R.id.favicon).performClick(); } }); // Advertisement items for not found plugins (GMap & Itineraires) QuickActionWindow.Advertisement[] ads = new QuickActionWindow.Advertisement[] { new Common.PluginMarketAdvertisement(context, "gmap", "MapActivity", R.drawable.quick_action_gmap, "Localiser sur une carte"), new Common.PluginMarketAdvertisement(context, "itineraire", "ItineraireFromActivity", R.drawable.quick_action_itineraire_from, "Itinraire depuis cette gare..."), new Common.PluginMarketAdvertisement(context, "itineraire", "ItineraireToActivity", R.drawable.quick_action_itineraire_to, "Itinraire vers cette gare..."), }; 15. 15 Utilisation QuickActionWindow (4/4) Ajoutez des plugins par intent // Plugins window.addItemsForIntent(context, pluginIntent, new QuickActionWindow.IntentItem.ErrorCallback() { @Override public void onError(ActivityNotFoundException e, IntentItem item) { Toast.makeText(item.getContext(), "Erreur : Application introuvable", Toast.LENGTH_LONG).show(); ErrorReporter.getInstance().handleSilentException(e); } }, ads); 16. 16 Et moi dans tout a ? Rinventer la roue n'est pas forcment le mal Librairies open-source Attendre que Google nous livre des composants graphiques dans son SDK ? 17. 17 Android = libert Restez flexible ! Guidelines marbre Twitter a volu (vers une UI la iPhone...) tre suiveur ou innovateur ? 18. 18 D'autres ressources GreenDroid ActionBar et autres joyeusets :) android.cyrilmottier.com Srement plein d'autres Google's your friend :P 19. 19 Des questions ? http://www.slideshare.net/naholyr/paris-android-user-group