Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Android BootStrap

Android BootStrap

Contenu de l'atelier Andriod Bootstrap lors du DevFest Nantes 2012

Other Decks in Programming

Transcript

  1. QUI SUIS-JE ? Jean-François Garreau Expert J2EE / Android SQLI

    http://gplus.to/jefbinomed @binomed DevFest – 09/11/2012 2
  2. LES ENJEUX + Eviter de perdre du temps à réinventer

    la roue +Gain en productivité +Facilité d’accès aux standards +Open source ? DevFest – 09/11/2012 5
  3. LES LIBRAIRIES ANDROID +Se présentent sous 3 formes Un jar

    à inclure dans un projet Un projet android Accès à un intent +Ajout de dépendances 7 DevFest – 09/11/2012
  4. LES LIBRAIRIES ANDROID + Avantages Permet de faire ce que

    l'on veut Open Source Souvent modulables + Inconvénients Gestion des versions Gestion des conflits Agrégation parfois compliquée Poids de l'application pouvant grimper... 8 DevFest – 09/11/2012
  5. LES LIBRAIRIES ANDROID + Liste des librairies présentées ActionBarSherlock Gestion

    ActionBar ACRA Remontée automatique de bugs Compatibility package Accès aux fragments depuis 1.6 ViewPager Navigation par pages facilitée + D'autres encore HoloEveryWhere, Polaris, SlidingMenu, Android Annotations, RoboGuice, ...
  6. SOLUTIONS POSSIBLES + Android BootStrap + Android kickStartR + DIY

    + Ultimate Android Library / Android ToolBox / Android UI Patterns
  7. TP

  8. TP Objectif : + Réaliser une application from scratch +

    Manipuler des librairies + Retour sur certains pièges
  9. TP : LIBRAIRIES UTILISÉES + Support librairie v4 + ACRA

    + HoloEveryWhere + ActionBarSherlock + QuickActions + SlidingMenu + Robospice -> Spring RestTemplate + RoboGuice + Polaris + ViewPagerIndicator + UrlImageViewHelper
  10. ETAPE 1 : PRÉPARATION ENVIRONMENT + Eclipse Juno avec l'ADT

    Penser à changer -Xms512m -Xmx1024m Partez sur un nouveau workspace ! +Android SDK Sous ubuntu : 64 bits : sudo apt-get install ia32-libs java : sudo apt-get install sun-java6-jdk + tar avec les étapes du projet : sur la clé passée tout à l'heure ou http://bit.ly/PXbMcY
  11. ETAPE 2 : CRÉATION DU PROJET + Créer un projet

    allant ayant target SDK 15 et min SDK 7 nom de package : com.binomed.devfest + Créer une classe Application à la racine du package : DevFestApplication La référencer dans le Manifest.xml + Dezipper les resources Dans le tar sous DevFestCodeLab/App + Créer un répertoire libs
  12. ETAPE 4 : ACRA + Copier le jar dans /libs

    + Configurer le formulaire Ouvrir un navigateur, aller dans drive.google.com Importer le fichier CrashReports-Template.csv Copier l'id + Configurer la classe Application Copier la classe de constantes
  13. ETAPE 6 : HOLOEVERYWHERE + Importer dans le workspace le

    projet HoloEveryWhere + Gestion des dépendances HoloEveryWhere -> ActionBarSherlock + Ajouter dans le manifest.xml le thème héritant de Holo
  14. ETAPE 7 : VIEWPAGERINDICATOR + Importer dans le workspace le

    projet ViewPagerIndicator + Gestion des dépendances ViewPagerIndicator-> HoloEveryWhere
  15. ETAPE 8 : SLIDINGMENU + Importer dans le workspace le

    projet SlidingMenu + Gestion des dépendances SlidingMenu -> ViewPagerIndicator DevFestCodeLab -> SlidingMenu + Ajout d'une classe utilitaire pour faire marcher ABS et SlidingMenu AbstractSherlockFragmentSlidingActivity.java
  16. ETAPE 9 : ROBOSPICE + Ajout des librairies dans /libs:

    guava-13.0.1 jackson-code-asl-1.9.10 jackson-mapper-asl-1.9.10 spring-android-core-1.0.0.RELEASE spring-android-rest-template-1.0.0.RELEASE robospice-1.1.0 robospice-cache-1.1.0 robospice-spring-android-1.1.0 + Ajout du service RoboSpice + Ajout des autorisations
  17. ETAPE 10 : ROBOGUICE + Ajout des librairies dans /libs:

    guice-3.0-no_aop javax.inject-1 roboguice-2.0 + Ajout des classes utilitaires AbstractDevFestRoboActivity AbstractRoboSherlockFragment AbstractRoboSherlockListFragment
  18. ETAPE 11 : POLARIS + Import du projet dans le

    workSpace + Gestion des dépendances DevFestCodeLab -> Polaris
  19. ETAPE 13 : URLIMAGEVIEWHELPER + Import du projet dans le

    workSpace + Gestion des dépendances DevFestCodeLab -> UrlImageViewHelper
  20. ETAPE 14 : QUICKACTIONS + Import du projet dans le

    workSpace + Gestion des dépendances DevFestCodeLab -> QuickActions
  21. ETAPE 14 : DESIGNPATTERN SLIDINGMENU + Ajout d'une classe utilitaire

    AbstractDevFestSlidingActivity Modification de AbstractDevFestRoboActivity + Ajout d'un Fragment HomeFragment
  22. ETAPE 15-1 : SPEAKERS ACTIVITY + Copie du modèle Récupération

    des classes utilitaires Copie du bean + Création de l'activity SpeakersActivity com.binomed.devfest.screen.speakers hérite de AbstractDevFestRoboActivity contentView : activity_speakers + Modifier HomeFragment
  23. ETAPE 15-2 : SPEAKERS FRAGMENT + Création du Fragment SpeakerListFragment

    com.binomed.devfest.screen.speakers hérite de AbstractRoboSherlockListFragment contentView : fragment_list + Binding RoboGuice ListView : android.R.id.list TextView : android.R.id.empty + Surcharge méthode onViewCreated
  24. ETAPE 15-3 : APPEL REST ET ROBOSPICE + Création du

    RestContentRequest SpeakersJsonRequest com.binomed.devfest.screen.speakers.requests hérite de RestContentRequest<SpeakerBean[]> + Appel de l'url DevFestCst.MONGO_URL_SPEAKERS + Modification du Fragment ajout variable SpiceManager ajout variable de cache onStart et onStop appel du service
  25. ETAPE 15-4 : ADAPTER ET VIEW + Création d'une view

    SpeakerView com.binomed.devfest.screen.speakers hérite de RelativeLayout + Création d'un listAdapter SpeakersAdapter com.binomed.devfest.adapters.list hérite de BaseAdapter + Modification du fragment + Lançons l'application ! Emulateur 2.3 pour le test ou sur votre téléphone
  26. ETAPE 16-1 : SESSIONS ACTIVITY + Copie du modèle Copie

    du bean + Création de l'activity SessionsActivity com.binomed.devfest.screen.sessions hérite de AbstractDevFestRoboActivity contentView : activity_sessions + Modifier HomeFragment
  27. ETAPE 16-2 : SESSIONS LIST FRAGMENT + Création du Fragment

    SessionsListFragment com.binomed.devfest.screen.sessions hérite de AbstractRoboSherlockListFragment contentView : fragment_list + Binding RoboGuice ListView : android.R.id.list TextView : android.R.id.empty + Surcharge méthode onViewCreated
  28. ETAPE 16-3 : APPEL REST ET ROBOSPICE + Création du

    RestContentRequest SessionsJsonRequest com.binomed.devfest.screen.sessions.requests hérite de RestContentRequest<SessionsBean[]> + Appel de l'url DevFestCst.MONGO_URL_QUERY + Modification du Fragment ajout variable SpiceManager ajout variable de cache onStart et onStop appel du service
  29. ETAPE 16-4 : ADAPTER ET VIEW + Création d'une view

    SessionView com.binomed.devfest.screen.sessions hérite de RelativeLayout + Création d'un listAdapter SessionsAdapter com.binomed.devfest.adapters.list hérite de BaseAdapter + Modification du fragment
  30. ETAPE 16-6 : SESSION ACTIVITY + Création d'une activity SessionActivity

    com.binomed.devfest.screen.sessions hérite de AbstractDevFestRoboActivity + Création du Fragment SessionFragment com.binomed.devfest.screen.sessions hérite de AbstractRoboSherlockFragment + Modification du fragment de listes
  31. ETAPE 17-1 : INFORMATIONS + Création de l'acitivity InfosActivity +

    Création du pageAdaptater + Création des fragments InfosFragment PartenaireFragment + Ajout de la boite de dialogue AboutDialogFragment + Modifier HomeFragment
  32. ETAPE 17-2 : MISE EN PLACE DES MAP + Copie

    des classes utilitaires Création de sa maps API key : https://developers.google.com/android/maps-api- signup + Modification du fragment d'information
  33. BONNE PRATIQUES D'ÉVOLUTION + Suivre les projets : AndroidBootStrap :

    http://www.androidbootstrap.com/ AndroidKickStartR : http://androidkickstartr.com/ + Se créer un répertoire dans son FileSystem contenant les clones des librairies Pouvoir récupérer les dernières évolutions Pouvoir gérer sans interférence dans son projet les merges etc...
  34. LIENS DE PROJETS + Support librairie v4 Dans le SDK

    : $ANDROID_SDK/android-compatibility/v4 + ACRA Sur Github : https://github.com/ACRA/acra + HoloEveryWhere Sur GitHub : https://github.com/ChristopheVersieux/HoloEverywhere
  35. LIENS DE PROJETS + ActionBarSherlock Sur Github : https://github.com/JakeWharton/ActionBarSherlock +

    QuickActions Sur Github : https://github.com/lorensiuswlt/NewQuickAction + SlidingMenu Sur Github : https://github.com/jfeinstein10/SlidingMenu + Robospice Sur Github : https://github.com/octo-online/robospice
  36. LIENS DE PROJETS + RoboGuice Sur Google Code : http://code.google.com/p/roboguice/

    + Polaris Sur Github : https://github.com/cyrilmottier/Polaris + ViewPagerIndicator Sur Girhub : https://github.com/JakeWharton/Android-ViewPagerIndicator + UrlImageViewHelper Sur Github : https://github.com/koush/UrlImageViewHelper