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

Android BootStrap

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

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