Skip to content

Latest commit

 

History

History
executable file
·
389 lines (295 loc) · 10.6 KB

01-introduction.asc

File metadata and controls

executable file
·
389 lines (295 loc) · 10.6 KB

Android

Vincent Ferries

Je suis avant tout un développeur depuis 2007 et suis indépendant depuis 2016.

  • Dans le CA du Toulouse JUG

  • GDG Toulouse

  • Software Craftsmanship

  • Speaker régulier (Devoxx France, EclipseCon)

  • Organisateur du DevFest Toulouse

Mission Android en cours chez Renault

Suivi du cours

Note
Documentation
LA référence : http://d.android.com

Planning

  • 30 heures de cours au total

  • Mélange de cours, TD et TP

  • Un projet de fin

    • Les modalités de notation sont en cours de discussion

Nos objectifs ensemble

  • Découvrir les fondamentaux d’Android

  • Avoir les bases pour un stage ou emploi

  • Culture pour des entretiens d’embauche

  • Aiguiser un peu votre curiosité

  • Discuter de ce que c’est qu’être un développeur de nos jours

Du coup, n’hésitez pas si vous avez la moindre question.

Si je n’ai pas la réponse, vous l’aurez au cours suivant.

Avant toute chose

Caution
Le téléchargement peut être long, autant le lancer avant qu’on continue vraiment.

Téléchargez Android Studio sur https://developer.android.com/studio/

Assurez vous d’avoir aussi un client git.

Pourquoi Android et pas iOS?

  • Plus de 85% des parts de marché

  • Basé sur Java (que vous connaissez) ou Kotlin et pas ObjectiveC ou Swift (que vous connaissez moins)

  • Des tonnes de patrons de conception

Web ou multiplateforme?

  • Performances bien meilleures sur du natif, mais…​

    • Unity

    • React Native

    • Kotlin Native

    • Flutter

  • Notifications, offline-first

    • Service Workers

    • Push Notifications

  • Plus adapté aux différents usages (position des actions)

  • Plus long de développer pour chaque plateforme

Au commencement il y avait…​

IBM Simon

IBM Simon

Le premier smartphone, dès 1992 (2G)

Ecran tactile, PDA, fax, messagerie

Blind test smartphones et OS

Nokia

Nokia 3310

Sous Symbian OS (1996)

Blind test smartphones et OS

PocketPC

PocketPC pour PDA en 2000

Rebaptisé Windows Mobile 5 en 2005

Blind test smartphones et OS

BlackBerry

BlackBerry OS 7

RIM / BlackBerry

Pourquoi ça ne prend pas vraiment

  • Tentative de copie du desktop

  • Interfaces peu intuitives

  • Pas assez grand public

Ceci est une révolution

iPhone

Les suiveurs

  • Android

  • BlackBerry OS 10

  • Windows Phone

  • WebOS, Tizen, Bada, Firefox OS (stopped), Ubuntu Mobile (community)…​

  • KaiOS

Qu’est-ce qui différencie téléphone et smartphone ?

  • Côté hardware:

    • Taille écran

    • Puissance

  • Capteurs

    • GPS

    • accéléromètre

    • luxmètre

  • Usages

    • téléphoner

    • tout le reste

Fact checking

  • Android est une réaction à l’iPhone ? Non, la startup Android a été rachetée par Google en 2005, soit deux ans avant la sortie de l’iPhone

  • Android == Google ? Non, Android est Open Source, mais…​

Open Handset Alliance

OHA

Open Handset Alliance

  • Constructeurs

    • Samsung, HTC, LG, Motorola, ZTE…​

  • Opérateurs

    • SFR, Bouygues Telecom, Verizon, T-Mobile, China Mobile

  • Fondeurs

    • Intel, Nvidia, ARM, Broadcom

  • Editeurs

    • Ebay, Google, PacketVideo

AOSP

  • Android Open Source Project

  • Petite guerre sur les forks du projet Open Source

  • Google maintient de moins en moins les versions Open Source

  • Ils sortent de plus en plus de fonctionnalités en Closed Source.

Tablettes

  • Depuis 2010

    • Premiers essais par Samsung ⇒ Flop

    • Premier succès ⇒ iPad

  • Les tablettes Android

    • Premières tablettes Android ⇒ Flop

    • Génération ICS ⇒ Succès

  • Ipad

    • Succès

    • Version HD dans un second temps

  • PlayBook

    • Succès très mitigé

Retour aux installations

Lancez Tools → Android → SDK Manager et récupérez :
  • SDK Tools

  • Platform Tools

  • Build-tools

  • La dernière version (API28) du SDK Platform et la documentation associée

Chronologie

  • 17 aout 2005

    • Google rachète la société Android Inc.

  • 5 novembre 2007

    • Première annonce de Android, 5 mois après la sortie du premier iPhone

  • 23 septembre 2008

    • Sortie de la première version d’Android

  • 28 octobre 2008

    • Sortie du T-Mobile G1 par HTC

  • 26 janvier 2011 : Android 3.0 (Honeycomb)

    • Première version dédiée aux tablettes

Versions d’Android

  • 9 février 2009 : Android 1.1 (BattenBerg)

  • 30 avril 2009 : Android 1.5 (Cupcake) CupCake

  • 15 sept 2009 : Android 1.6 (Donut) Donut

  • 26 octobre 2009 : Android 2.0 (Eclair) Eclair

  • 12 janvier 2010 : Android 2.1 (Eclair)

Versions d’Android

  • 20 mai 2010 : Android 2.2 (Froyo) Froyo

  • 6 déc 2010 : Android 2.3 (Gingerbread) Gingerbread

  • 26 jan 2011 : Android 3.0 (Honeycomb) pour tablettes HoneyComb

  • 19 oct 2011 : Android 4.0 (Ice Cream Sandwich) Ice Cream Sandwich

Versions d’Android

  • 27 juin 2012 : Android 4.1 → 4.3 (JellyBean) JellyBean

  • 31 oct 2013 : Android 4.4 (KitKat) KitKat

  • 3 nov 2014 : Android 5.0 (Lollipop) → TV, wear, auto Lollipop

  • 5 oct 2015 : Android 6.0 (Marshmallow) → droits par app Marshmallow

Versions d’Android

  • 22 août 2016 : Android 7.0 (Nougat) → multi-fenêtres Nougat

  • 21 août 2017 : Android 8.0 (Oreo) → optim batterie Oreo

  • 6 août 2018 : Android 9.0 (Pie) → AI et assistant

Architecture

Architecture Android

Spécificités du monde du mobile

  • Ressources limitées

  • Différentes tailles écran

  • Capteurs

  • Langues

  • Modes de saisie (tactile, clavier)

  • Réseau

    • pertes de connexion en mobilité

    • la data est chère

Important
La batterie est le sang du téléphone, économisez la !

Ergonomie et UX

  • Usages très différents de l’informatique traditionnelle

  • Objet très personnel

  • Les habitudes de l’utilisateur à respecter

  • Chaque plateforme a ses propres habitudes

Caution
Parfois plus important que les fonctionnalités

Quelques fondamentaux en vrac

Contextes

  • Un contexte est la description du cadre d’exécution : Context

    • Les ressources de l’application

    • L’état du téléphone

    • Le contexte d’interface

  • Les classes principales

    • Application

    • Activity + Fragments

    • Service

    • BroadcastReceiver

Communication interne

  • Framework d’intentions

  • Un intent est un standard de description d’actions

  • Contenu :

    • Action

    • Uri

    • Package spécifique

    • Des datas

  • On peut s’y abonner ou en émettre

Notions de développement utiles

  • Requis

    • Java

    • XML

    • SQL

  • A l’usage de vos applications

    • OpenGL

    • Json

    • Rest…​

  • Cas particuliers

    • Native Development Kit + C/C++

Persistance des données

  • SharedPreferences

    • Système clef-valeur

    • Simple mais peu complet

  • Les fichiers

    • Complexe à utiliser

    • Bien pour le stockage de volume

  • SQLite

    • Bibliothèque de gestion de fichiers textes optimisée

    • Perfomant et "standardisé"

Autres ressources

  • Beaucoup de MOOC sur le sujet

  • Les Googles Groups officiels Android

  • Les comptes G+ officiels des produits Android

  • Le site StackOverFlow

  • Des comptes sociaux de développeurs connus :

    • Nick Butcher, Rych Hyndman, Cyril Mottier, Romain Guy, Roman Nurik, Jake Wharton, etc…​

Google I/O

  • La grand messe annuelle, souvent en mai (du 7 au 9 mai 2019)

  • Retransmise un peu partout, dont Toulouse via le GDG

  • Toujours une mine d’informations pour les développeurs Android

A vous de jouer !

  • Installation d’Android Studio

  • Création d’un premier projet

  • Lancement sur un émulateur et sur un device réel

Installation (1)

Vous devez déjà avoir téléchargé l’exécutable, il ne vous reste qu’à le lancer.

Si vous n’avez pas de JDK installé, il vous sera proposé d’en installer un.

Sinon, faites pointer lors de l’installation sur un JDK récent (JDK8 minimum).

Installation (2)

Normalement vous avez déjà récupéré précédemment l’essentiel dans le SDK Manager.

Caution
Le SDK prend vite beaucoup d’espace disque.

Vous pouvez compléter avec Virtual Devices et Performance (Intel HAXM) vu que votre processeur est capable de virtualisation. Il se peut qu’il y ait besoin d’activer des options dans le bios.

Vous pouvez aussi vous intéresser à Genymotion.

Création d’un premier projet

New Project ⇒ Phone and Tablet

Sélectionner Master/Detail Flow

Lancement

3 Options s’offrent à vous:
  • Sur votre propre téléphone Android si vous avez un câble USB ⇒ Le plus rapide et facile

    • Installer le driver pour votre téléphone (ou celui de Google dans le SDK Manager)

    • Passer son téléphone en mode développeur

    • Activer le debug via USB

  • Sur un émulateur que vous allez créer pour l’occasion ⇒ Lent mais supportable depuis quelques temps

  • Sur une VM Genymotion (VirtualBox) ⇒ 60 fps et outils supplémentaires

Faites le au moins tourner sur l’un de ces cas là, deux ou trois si vous attendez la suite.

Tips

Prenez le temps de lire une bonne dizaine de tips de l’IDE, ils vous seront utiles pour gagner du temps par la suite.

  • Alt + Enter pour les suggestions de l’IDE

  • Ctrl + N pour chercher une classe par son nom

  • Ctrl + Shift + N pour ouvrir un fichier par son nom

  • Ctrl + Espace pour l’auto complétion

  • Maj + F6 pour refactor rename

  • Ctrl + O pour Override method, Ctrl + I pour implement

  • Alt + Inser pour génération de getters/setters, equals/hashcode etc