Introduction à Android - Mars 2012

Post on 21-Jun-2015

89 views 0 download

Transcript of Introduction à Android - Mars 2012

Introduction au développement d'applications mobiles

Ma formation, mon expérience, mon entreprise

Présentation

Aurélien GuillardDéveloppeur Mobile multiplateforme

AndroidBlackberryiPhoneJ2ME

Contactaurelien.guillard@gmail.com aguillard@viadeoteam.com http://www.aurelienguillard.com

Twitter : @rorolepro (oui, je sais, ce pseudo est ridicule)

Expériences professionnelles

Acutellement : Viadeo (Android, BlackBerry)

2010 : Clicmobile (Android, iPhone, Blackberry, J2ME)

2009 : Latin 3G S.A. de C.V. (Android)

2008 : GAROS (web)

2007 : e-doceo (ActionScript)

2006 : SA2EI (web)

Viadeo

40 millions de membres

1 million de nouveaux

membres par mois

7 langues

Des locaux sur toute la planèteParis, San Francisco, New Delhi, Beijing, Amsterdam, Madrid, Moscou, Casablanca, Londres, Barcelone, Milan, Dakar, Mexico

400% de croissance ces 2 dernières années

400 salariés

3 marques :

Viadeo et moi

Inscrit depuis Février 2009

3500 visites sur mon profil

Environ 3 opportunités professionnelles par semaine

Mes 2 premières expériences professionnelles acquises grâce à Viadeo !

Envie de découvrir l'envers du décor !

Un produit que j'aime

Une réussite française

Une équipe internationale

Équipe mobile créée cet étéDéjà 9 personnes !

Viadeo sur mobile

Déjà présent sur iPhone, Android, WP7, Bada et Palm

Nouveaux produits mobiles

Application

BlackBerry

Android SDKhttp://dev.viadeo.com/documentation/tools-and-samples/android-sdk/

iPhone SDKhttp://dev.viadeo.com/documentation/tools-and-samples/iphone-sdk/

Viadeo graph API

Le métier au quotidien

Estimation

Conception et architecture

Développement applications et librairies

Tests

Corrections et améliorations

Veille technologique

Android ?

Android

Startup rachetée par Google en 2007

OS open-sourceTerminaux mobilesSystèmes embarqués

Développement Java/XML (SDK) C (NDK)

Une hausse constante

Les versions

Jelly Bean5.0 ???

Ice Cream Sandwich4.0 – 4.0.2 – 4.0.3

Honeycomb3.0 – 3.1 – 3.2

Gingerbread2.3 – 2.3.2 – 2.3.3 – 2.3.7

FroYo2.2

Eclair2.1

Donut1.6

Cupcake1.5

Data collected during two weeks ending on March 5, 2012

#K4Kouign : Support the choice of Kouign-Amann as the 'K' release of the Android Operating System

Les smartphones

SonyXperia X10 Mini

240x320

SamsungGalaxy S2480x800

HTCMagic

320x480

MotorolaMilestone480x854

SamsungGalaxy Nexus

720x1280

Les tablettes

AsusEeePad Transformer

1280x800

MotorolaXoom 2

1280x720

SamsungGalaxy Tab 10.1

1920x1080

SonyTablet S

1280x720

Les systèmes embarquées

People of LavaScandinavia

SamsungRF4289HARS

ParrotAsteroid

SonySmartWatch

LogitechRevue

(Google TV)

Boutons

HomeBack SearchMenu

Recents

Hardware keys

Virtual controls

Home BackMenu

HomeBack

Android != iPhone

UINavigationBarController

UITabController

Tentative de reproduction de

"controllers" iPhone...

Les éléments de UI (User Interface)

ScrollView + Options Menu

TextView

ScrollView

Options Menu(clic sur le

bouton physique "menu")

ProgressDialog

STYLE_SPINNER

Dialog

Custom dialog

TextView

EditText

Button

ImageView

ImageView

TextView

TextView

TabHost

TabWidget

FrameLayoutListView

MapView

Pas disponible dans le framework standard nécessite la lib Google APIs

com.google.android.maps.MapView

Outils de développement

Outils de développement

Eclipsehttp://www.eclipse.org/downloads/

ADT pluginhttps://dl-ssl.google.com/android/eclipse/

Android SDK (Windows, Linux, MacOS)http://developer.android.com/sdk/

Téléchargement des plateformes depuis le SDK and AVD Manager

SDK Manager

Création d'émulateurs

DDMS

Composition d'un projet Android

Arborescence d'un projet

Java

Images

XML

Strings

Manifest

FrameworkGenerated java files

Composants d'application

Activities

Services

Broadcast receivers

Content providers

Arborescence de l'application

PhotosetListActivity ContainerActivity

PhotosActivity

PhotosListActivity PhotosMapActivity

Intents

Système de messages pour exécuter un composant (activity, service, broadcast receiver)

Possibilité d'exécuter des composants d'une même application OU/ET d'applications différentes

Android tente de répondre le mieux à chaque Intent (explicit/implicit intents)

Activity life cycle

Manifest.xml

Permissions

Plateforme cible

Activities

Numéros de versions

Intent filters

Création des vues

Une vue est décrite en XML

Assigner un layout XML à une Activity

Generated Class File Type de ressource Nom de la ressource

XML Inflate

Gestion des ressources

Types de ressource

anim/

color/

drawable/

layout/

menu/

raw/

values/

xml/

Drawable auto-scaling

Même image, même nom de fichier, mais dans des dossiers

différents, chacun lié à une densité différente

(low, medium, high)

icon72x72

icon36x36

icon48x48

Resource qualifiers

MCC and MNC : mcc310 mcc310-mnc004 mcc208-mnc00 etc.

Langage and region : en fr en-rUS fr-rFR fr-rCA etc.

Screen size : small normal large xlarge

Screen aspect : long notlong

Screen orientation : port land

Dock mode : car desk

Night mode : night notnight

Screen pixel density : ldpi mdpi hdpi xhdpi nodpi

Touchscreen type : notouch stylus finger

Keyboard availability : keysexposed keyssoft

Primary text input method : nokeys qwerty 12key

Navigation key availability : navexposed navhidden

Primary non-touch navigation method : nonav dpad trackball wheel

System version (API level) : v3 v4 v7 etc.

Connexion à un WebService

Flickr API

Formats de requêteREST, XML-RPC, SOAP

Formats de réponseREST, XML-RPC, SOAP, JSON, PHP

Flickr App Gardenhttp://www.flickr.com/services/api/

Couches applicatives

WebServiceAPIManagerContentManagerActivity

savePhotos(id) getPhotos(id) flickr.photosets.getPhotos

File responseStringJava object

Réponse API Flickr

APIManager

Connexion à l'API REST Appel non signé, sans jeton d'utilisateur Méthode GET

ContentManager

Sauvegarde des données

Shared Preferences

Accès : privé

Type : primitif (boolean, float, int, long, string)

Format : clé/valeur

Utilisé pour sauvegarder des paramètres

Internal Storage

Accès : privé

Format : fichier

External Storage

Accès : public

Format : fichier

Nécessite des vérifications : média monté sur une machine, absent, accessible qu'en lecteur, etc.

Sauvegarder ses fichiers dans :/Android/data/<package_name>/files/

Databases

Accès : privé

Format : données structurées

Type : SQLite

SQLiteOpenHelper

Google Play (ex Android Market)

Client Google Play

Client Google Play

Google Play Admin

Upload Assets

Listing details

Publishing options

« If you want porn, get an Android » – Steve Jobs

Statistics

Liens

Documentation et examples

http://developer.android.com

http://developer.android.com/design/

http://android.cyrilmottier.com

http://www.androidpatterns.com

http://code.google.com/p/android-cookbook/

http://code.google.com/p/apps-for-android/

http://www.androidsnippets.org

Actualités

http://www.frandroid.com

http://www.pointgphone.com

Aide

http://stackoverflow.com/questions/tagged/android

http://www.anddev.org

http://forum.frandroid.com

http://forum.xda-developers.com

https://groups.google.com/group/paris-android-ug

Utilitaires

http://code.google.com/p/android-ui-utils/

http://android-ui-utils.googlecode.com/hg/asset-studio/dist/index.html

http://www.droidthing.com

http://androiddrivers.net

Livres

Merci de votre attention !

J'ai hâte de tester vos applications;)