introduction à android - janvier 2011

Post on 28-Nov-2014

169 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

Informatique mobile, ubiquitaire et diffuse

Introduction à Android

2Informatique mobile, ubiquitaire et diffuse

Ma formation, mon expérience, mon entreprise

3Informatique mobile, ubiquitaire et diffuse

Présentation

● Aurélien Guillard● Développeur Mobile multiplateforme

– (Android, iPhone, Blackberry)– Lead Developer Android

● Contact● aurelien.guillard@gmail.com

aurelien@clicmobile.com● http://www.aurelienguillard.com● Twitter : @rorolepro (oui, je sais, ce pseudo est ridicule)

4Informatique mobile, ubiquitaire et diffuse

Formation

● 2010 : Ingénieur Réseau et Multimédia● Ecole Supérieure d'Ingénieurs de Luminy

● 2007 : DUT SRC● IUT de Laval

● 2005 : BAC S option SI● Lycée d'une petite ville près de Nantes

5Informatique mobile, ubiquitaire et diffuse

Expériences professionnelles

● Actuellement : Clicmobile (Android, iPhone, Blackberry)

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

● 2008 : GAROS (web)

● 2007 : e-doceo (ActionScript)

● 2006 : SA2EI (web)

6Informatique mobile, ubiquitaire et diffuse

Clicmobile

● Conseils stratégiques● Création et développement● Marketing et promotion● Statistiques d'usage

7Informatique mobile, ubiquitaire et diffuse

Clicmobile web framework

● Genération de backoffice d'applications● Génération de WebServices

● JSON● XML● PLIST

8Informatique mobile, ubiquitaire et diffuse

Clicmobile Analytics

9Informatique mobile, ubiquitaire et diffuse

Le métier au quotidien

● Estimation● Conception et architecture● Développement applications et librairies● Tests● Corrections et améliorations● Veille technologique

10Informatique mobile, ubiquitaire et diffuse

Android ?

11Informatique mobile, ubiquitaire et diffuse

Android

● Startup rachetée par Google en 2007● OS open-source

● Terminaux mobiles● Systèmes embarqués

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

12Informatique mobile, ubiquitaire et diffuse

Une hausse constante

13Informatique mobile, ubiquitaire et diffuse

Les versions

● 3.0 : Honeycomb● 2.3 : Gingerbread● 2.2 : FroYo● 2.1 : Eclair● 1.6 : Donut● 1.5 : Cupcake Data collected during two weeks ending on January 4, 2011

14Informatique mobile, ubiquitaire et diffuse

Les terminaux

SonyXperia X10 Mini

240x320

HTCMagic

320x480

MotorolaMilestone480x854

SamsungGalaxy Tab600x1024

Un parc très varié : smartphones, tablettes, tv, autoradio...

15Informatique mobile, ubiquitaire et diffuse

Boutons physiques

HomeBack Search (optionnel)Menu

16Informatique mobile, ubiquitaire et diffuse

Android != iPhone

UINavigationBarController

UITabController

Tentative de reproduction de

"controllers" iPhone...

17Informatique mobile, ubiquitaire et diffuse

Les éléments de UI (User Interface)

18Informatique mobile, ubiquitaire et diffuse

ScrollView + Options Menu

TextView

ScrollView

Options Menu(clic sur le bouton physique "menu")

19Informatique mobile, ubiquitaire et diffuse

ProgressDialog

STYLE_SPINNER

20Informatique mobile, ubiquitaire et diffuse

Dialog

Custom dialog

TextView

EditText

Button

21Informatique mobile, ubiquitaire et diffuse

ImageView

ImageView

TextView

TextView

22Informatique mobile, ubiquitaire et diffuse

TabHost

TabWidget

FrameLayoutListView

23Informatique mobile, ubiquitaire et diffuse

MapView

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

com.google.android.maps.MapView

24Informatique mobile, ubiquitaire et diffuse

Outils de développement

25Informatique mobile, ubiquitaire et diffuse

Outils de développement

● Eclipse● http://www.eclipse.org/downloads/

● ADT plugin● https://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

26Informatique mobile, ubiquitaire et diffuse

SDK and AVD Manager

27Informatique mobile, ubiquitaire et diffuse

Création d'émulateurs

28Informatique mobile, ubiquitaire et diffuse

DDMS

29Informatique mobile, ubiquitaire et diffuse

Composition d'un projet Android

30Informatique mobile, ubiquitaire et diffuse

Arborescence d'un projet

Java

Images

XML

Strings

Manifest

FrameworkGenerated java files

31Informatique mobile, ubiquitaire et diffuse

Composants d'application

● Activities● Services● Broadcast receivers● Content providers

32Informatique mobile, ubiquitaire et diffuse

Arborescence de l'application

PhotosetListActivity ContainerActivity

PhotosActivity

PhotosListActivity PhotosMapActivity

33Informatique mobile, ubiquitaire et diffuse

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)

34Informatique mobile, ubiquitaire et diffuse

Activity life cycle

35Informatique mobile, ubiquitaire et diffuse

Manifest.xml

Permissions

Plateforme cible

Activities

Numéros de versions

Intent filters

36Informatique mobile, ubiquitaire et diffuse

Création des vues

37Informatique mobile, ubiquitaire et diffuse

Une vue est décrite en XML

38Informatique mobile, ubiquitaire et diffuse

Assigner un layout XML à une Activity

Generated Class File Type de ressource Nom de la ressource

39Informatique mobile, ubiquitaire et diffuse

XML Inflate

40Informatique mobile, ubiquitaire et diffuse

Gestion des ressources

41Informatique mobile, ubiquitaire et diffuse

Types de ressource

● anim/● color/● drawable/● layout/● menu/● raw/● values/● xml/

42Informatique mobile, ubiquitaire et diffuse

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

43Informatique mobile, ubiquitaire et diffuse

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.

44Informatique mobile, ubiquitaire et diffuse

Connexion à un WebService

45Informatique mobile, ubiquitaire et diffuse

Flickr API

● Formats de requête● REST, XML-RPC, SOAP

● Formats de réponse● REST, XML-RPC, SOAP, JSON, PHP

● Flickr App Garden● http://www.flickr.com/services/api/

46Informatique mobile, ubiquitaire et diffuse

Couches applicatives

WebServiceAPIManagerContentManagerActivity

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

File responseStringJava object

47Informatique mobile, ubiquitaire et diffuse

Réponse API Flickr

48Informatique mobile, ubiquitaire et diffuse

APIManager

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

49Informatique mobile, ubiquitaire et diffuse

ContentManager

50Informatique mobile, ubiquitaire et diffuse

Sauvegarde des données

51Informatique mobile, ubiquitaire et diffuse

Shared Preferences

● Accès : privé● Type : primitif (boolean, float, int, long, string)● Format : clé/valeur

● Utilisé pour sauvegarder des paramètres

52Informatique mobile, ubiquitaire et diffuse

Internal Storage

● Accès : privé● Format : fichier

53Informatique mobile, ubiquitaire et diffuse

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/

54Informatique mobile, ubiquitaire et diffuse

Databases

● Accès : privé● Format : données structurées● Type : SQLite

55Informatique mobile, ubiquitaire et diffuse

SQLiteOpenHelper

56Informatique mobile, ubiquitaire et diffuse

Android Market

57Informatique mobile, ubiquitaire et diffuse

Client Android Market

58Informatique mobile, ubiquitaire et diffuse

Client Android Market

Une seule page par application

Promotional Graphic (or icon)Description (4000 chars)

Screenshots (8)Avis

Applications semblablesInformations sur le développeur

Contenu Android Market

59Informatique mobile, ubiquitaire et diffuse

Android Market Admin

Peu de statistiques...

60Informatique mobile, ubiquitaire et diffuse

Upload Assets

Android Market web ?Google TV ?

61Informatique mobile, ubiquitaire et diffuse

Listing details

62Informatique mobile, ubiquitaire et diffuse

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

63Informatique mobile, ubiquitaire et diffuse

Liens

64Informatique mobile, ubiquitaire et diffuse

Documentation et examples

● http://developer.android.com● http://code.google.com/p/android-cookbook/● http://code.google.com/p/apps-for-android/● http://www.androidsnippets.org

65Informatique mobile, ubiquitaire et diffuse

Actualités

● http://www.frandroid.com● http://www.pointgphone.com

66Informatique mobile, ubiquitaire et diffuse

Aide

● http://forum.xda-developers.com● http://www.anddev.org● http://forum.frandroid.com

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

67Informatique mobile, ubiquitaire et diffuse

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

68Informatique mobile, ubiquitaire et diffuse

Livres

69Informatique mobile, ubiquitaire et diffuse

Merci de votre attention !J'ai hâte de tester vos applications;)

top related