SlideShare une entreprise Scribd logo
1  sur  46
Télécharger pour lire hors ligne
Développer une
application Android
en 2015
Twitter : @florent_champ
Présentation
Github : @florent37
MaterialViewPager Tutos Android
DaVinci
Emmet
WearMenu
PicassoPalette
MaterialImageLoading
1. Un IDE : Android Studio
2. Un compilateur : Gradle
3. Un maître mot : Librairies
4. Un design : Material
5. Un développeur : Vous !
Sommaire
Un IDE :
Android Studio
▸ Eclipse IntelliJ
▸ Multi plateforme :
▹ Windows
▹ Linux
▹ Mac
▸ Support complet d’Android :
▹ Templates de projets Android
▹ Emulateurs
▹ Multi Screens
▹ Gradle !
Android Studio
Éditeur intelligent : édition multi-lignes
Eclipse IntelliJ
Éditeur intelligent : Refactorisation
Eclipse IntelliJ
Éditeur intelligent : Refactorisation prévu pour Android !
Eclipse IntelliJ
Eclipse IntelliJ
Refactorisation prévu pour Android !
Emulateurs
Multi Screen
Un compilateur :
Gradle
Gradle
▸ Script de compilation écrit en Groovy
▸ Simplifie les montées en version Android
▸ Gère la signature de l’application avec des keystore
▸ Facilite l’import de librairies Maven (finit les copié collé de
.jar)
▸ Création de tâches
▹ ex : publication sur un store privé
▹ ex : génération de la javadoc
▸ Création de flavors (options de compilation)
▹ ex : version Gratuite & version Payante
Gradle
Un maître mot :
Librairies
Retrofit
“A type-safe REST client
for Android and Java”
http://square.github.io/retrofit/
public interface GithubService{
@GET(“/user/{user}/repos)
List<Repo> listRepos(@Path(“user”) String
user)
@POST(“/subscription/)
void listRepos(@Field(“email”) String email)
}
Retrofit
Support complet des webservices REST
@GET
@POST
@DELETE
@PUT
Retrofit
Déserialisation automatique depuis JSON
List<Repo> listRepos(@Path(“user”) String user)
void listRepos(@Path(“user”) String user, Callback<List<Repo>> repos)
Retrofit
Gestion des path et des paramètres (user=”florent”)
@Path(“user”) String user
/users/{user}/ => /users/florent/
@Field(“user”) String user
http-body : user=florent
Retrofit
Utilisation simple !
GithubService githubService = new RestAdapter.Builder()
.setEndpoint("api.github.com")
.build()
.create(GithubService.class);
List<Repo> repos = githubService.listRepos(“florent”);
Retrofit
OkHttp
“An HTTP & SPDY client for
Android and Java
applications”
http://square.github.io/okhttp/
Remplace les HttpClient
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("api.github.com/users/florent/repos")
.build();
Response response = client.newCall(request).execute();
String response = response.body().string();
OkHttp
Picasso
“A powerfull image
downloading and caching
library for Android”
http://square.github.io/picasso/
Permet le téléchargement asynchrone des images depuis une URL
Picasso.with(context)
.load(“http://i.imgur.com/DvpvklR.png”)
.into(imageView);
Picasso
Facilite le redimensionnement d’image
Picasso.with(context)
.load(“http://i.imgur.com/DvpvklR.png”)
.resize(50,50)
.into(imageView);
Picasso
Facilite le redimensionnement d’image (automatiquement)
Picasso.with(context)
.load(“http://i.imgur.com/DvpvklR.png”)
.centerInside()
.fit()
.into(imageView);
Picasso
Facilite le redimensionnement d’image (automatiquement)
Picasso.with(context)
.load(“http://i.imgur.com/DvpvklR.png”)
.centerCrop()
.fit()
.into(imageView);
Picasso
Facilite les modifications d’images (mise en cache !)
Picasso.with(context)
.load(“http://i.imgur.com/DvpvklR.png”)
.transform(new BlurTransformation())
.into(imageView);
Picasso
Butternife
“View injection
library for Android”
http://jakewharton.github.io/butterknife/
@InjectView(R.id.title) TextView title;
@InjectView(R.id.okButton) Button okButton;
@Override void onCreate(Bundle savedInstanceState){
setContentView(R.layout.activity_main);
Butterknife.inject(this);
}
ButterKnife
@Override void onCreate(Bundle savedInstanceState){
setContentView(R.layout.activity_main);
Butterknife.inject(this);
}
@OnClick(R.id.okButton)
public void onOkClicked(){ … }
ButterKnife
EventBus
“Android optimized event
bus that simplifies
communication between
Activities, Fragments,
Threads, Services, etc. Less
code, better quality.”
http://greenrobot.github.io/EventBus/
Créer les évenements :
public class MessageEvent { /* Additional fields if needed */ }
S’enregistrer auprès d’eventbus :
eventBus.register(this);
public void onEvent(MessageEvent event) {/* Do something */};
Poster un évenement :
eventBus.post(messageEvent);
EventBus
Un design :
Material
Material Design
+ Flat Design
+ Élévation
+ Palette de couleurs
+ Actions simplifiées
Floating Action Button
+ Transitions / Enchaînements
Material Design
Material Design
AppCompat v7
▸ Style AppCompat Material
▸ Support Toolbar
▸ Elevation avec ViewCompat
▸ Transitions avec ActivityCompat
Material Design
CardView v7
▸ CardElevation
▸ CardCornerRadius
Material Design
RecyclerView v7
▸ RecyclerView.ViewHolder
▸ RecyclerView.Adapter<>
▸ RecyclerView.LayoutManager
▸ RecyclerView.ItemDecoration
▸ RecyclerView.ItemAnimator
Material Design
MaterialViewPager
Material Design
MaterialDrawer
Material Design
android-floating-action-button
Material Design
Un développeur :
Vous !
Un développeur :
Vous !

Contenu connexe

En vedette

Desenvolvendo para Android com componentes Open Source
Desenvolvendo para Android com componentes Open SourceDesenvolvendo para Android com componentes Open Source
Desenvolvendo para Android com componentes Open SourceAdriel Café
 
Infinum Android Talks #02 - ActiveAndroid
Infinum Android Talks #02 - ActiveAndroidInfinum Android Talks #02 - ActiveAndroid
Infinum Android Talks #02 - ActiveAndroidInfinum
 
انشطة الجيل في صور
انشطة الجيل في صورانشطة الجيل في صور
انشطة الجيل في صورAbdi Mo'allim
 
China Travel Distribution Summit 1 Dec2009
China Travel Distribution Summit   1 Dec2009China Travel Distribution Summit   1 Dec2009
China Travel Distribution Summit 1 Dec2009Dr Jens Thraenhart
 
Portfolio - Paula Justi
Portfolio - Paula JustiPortfolio - Paula Justi
Portfolio - Paula JustiPaula Justi
 
10 Slides à lire avant de commencer le développement Android
10 Slides à lire avant de commencer le développement Android10 Slides à lire avant de commencer le développement Android
10 Slides à lire avant de commencer le développement AndroidAnthony Faucogney
 
Architecture et Bonnes pratiques Android #DevoxxFr2016 Part1
Architecture et Bonnes pratiques Android #DevoxxFr2016 Part1Architecture et Bonnes pratiques Android #DevoxxFr2016 Part1
Architecture et Bonnes pratiques Android #DevoxxFr2016 Part1Mathias Seguy
 
[Presentation] Automated Model-Based Android GUI Testing using Multi-Level GU...
[Presentation] Automated Model-Based Android GUI Testing using Multi-Level GU...[Presentation] Automated Model-Based Android GUI Testing using Multi-Level GU...
[Presentation] Automated Model-Based Android GUI Testing using Multi-Level GU...Young-Min Baek
 
14 de enero de 2017
14 de enero de 201714 de enero de 2017
14 de enero de 2017Maike Loes
 
1st China Shangbang International Photography Awards (Category Travel): Winne...
1st China Shangbang International Photography Awards (Category Travel): Winne...1st China Shangbang International Photography Awards (Category Travel): Winne...
1st China Shangbang International Photography Awards (Category Travel): Winne...maditabalnco
 

En vedette (16)

Desenvolvendo para Android com componentes Open Source
Desenvolvendo para Android com componentes Open SourceDesenvolvendo para Android com componentes Open Source
Desenvolvendo para Android com componentes Open Source
 
Infinum Android Talks #02 - ActiveAndroid
Infinum Android Talks #02 - ActiveAndroidInfinum Android Talks #02 - ActiveAndroid
Infinum Android Talks #02 - ActiveAndroid
 
Blogger
BloggerBlogger
Blogger
 
Datos personales
Datos personalesDatos personales
Datos personales
 
انشطة الجيل في صور
انشطة الجيل في صورانشطة الجيل في صور
انشطة الجيل في صور
 
China Travel Distribution Summit 1 Dec2009
China Travel Distribution Summit   1 Dec2009China Travel Distribution Summit   1 Dec2009
China Travel Distribution Summit 1 Dec2009
 
Portfolio - Paula Justi
Portfolio - Paula JustiPortfolio - Paula Justi
Portfolio - Paula Justi
 
Food
FoodFood
Food
 
10 Slides à lire avant de commencer le développement Android
10 Slides à lire avant de commencer le développement Android10 Slides à lire avant de commencer le développement Android
10 Slides à lire avant de commencer le développement Android
 
Pitch Deck Rhythm In Vinyl
Pitch Deck Rhythm In VinylPitch Deck Rhythm In Vinyl
Pitch Deck Rhythm In Vinyl
 
БАД в клинической практике (Назаренко Л.И.)
БАД в клинической практике (Назаренко Л.И.)БАД в клинической практике (Назаренко Л.И.)
БАД в клинической практике (Назаренко Л.И.)
 
Architecture et Bonnes pratiques Android #DevoxxFr2016 Part1
Architecture et Bonnes pratiques Android #DevoxxFr2016 Part1Architecture et Bonnes pratiques Android #DevoxxFr2016 Part1
Architecture et Bonnes pratiques Android #DevoxxFr2016 Part1
 
[Presentation] Automated Model-Based Android GUI Testing using Multi-Level GU...
[Presentation] Automated Model-Based Android GUI Testing using Multi-Level GU...[Presentation] Automated Model-Based Android GUI Testing using Multi-Level GU...
[Presentation] Automated Model-Based Android GUI Testing using Multi-Level GU...
 
Tablette Androïd : utilisation au quotidien
Tablette Androïd : utilisation au quotidienTablette Androïd : utilisation au quotidien
Tablette Androïd : utilisation au quotidien
 
14 de enero de 2017
14 de enero de 201714 de enero de 2017
14 de enero de 2017
 
1st China Shangbang International Photography Awards (Category Travel): Winne...
1st China Shangbang International Photography Awards (Category Travel): Winne...1st China Shangbang International Photography Awards (Category Travel): Winne...
1st China Shangbang International Photography Awards (Category Travel): Winne...
 

Similaire à Développer une application android en 2015

Initiation au développement mobile sous Android
Initiation au développement mobile sous AndroidInitiation au développement mobile sous Android
Initiation au développement mobile sous AndroidAbdelkader Rhouati
 
Débuter avec phonegap (APACHE CORDOVA) dans eclipse pour android
Débuter avec phonegap (APACHE CORDOVA) dans eclipse pour androidDébuter avec phonegap (APACHE CORDOVA) dans eclipse pour android
Débuter avec phonegap (APACHE CORDOVA) dans eclipse pour androidBosco Basabana
 
Android Studio, premier contact
Android Studio, premier contactAndroid Studio, premier contact
Android Studio, premier contactJasmine Conseil
 
Android Studio, premier contact
Android Studio, premier contactAndroid Studio, premier contact
Android Studio, premier contactJasmine Conseil
 
Tutorial android - créer des apps
Tutorial android - créer des appsTutorial android - créer des apps
Tutorial android - créer des appsNoé Breiss
 
Bootcamp d'Initiation à Android - 2013/11/30 - Live coding : Hello world!
Bootcamp d'Initiation à Android  - 2013/11/30 - Live coding :   Hello world!Bootcamp d'Initiation à Android  - 2013/11/30 - Live coding :   Hello world!
Bootcamp d'Initiation à Android - 2013/11/30 - Live coding : Hello world!Horacio Gonzalez
 
Présentation Flutter
Présentation FlutterPrésentation Flutter
Présentation FlutterAppstud
 
cours Android.pptx
cours Android.pptxcours Android.pptx
cours Android.pptxYaminaGh1
 
Conférence Titanium + Alloy au JUG Montpellier
Conférence Titanium + Alloy au JUG MontpellierConférence Titanium + Alloy au JUG Montpellier
Conférence Titanium + Alloy au JUG MontpellierDamien Laureaux
 
PAUG 03/05/2016 : Rechercher et analyser les fuites mémoires dans une applica...
PAUG 03/05/2016 : Rechercher et analyser les fuites mémoires dans une applica...PAUG 03/05/2016 : Rechercher et analyser les fuites mémoires dans une applica...
PAUG 03/05/2016 : Rechercher et analyser les fuites mémoires dans une applica...Ludovic ROLAND
 
Apache flink - prise en main rapide
Apache flink - prise en main rapideApache flink - prise en main rapide
Apache flink - prise en main rapideBilal Baltagi
 
Big Data Viz (and much more!) with Apache Zeppelin
Big Data Viz (and much more!) with Apache ZeppelinBig Data Viz (and much more!) with Apache Zeppelin
Big Data Viz (and much more!) with Apache ZeppelinBruno Bonnin
 
Node.js, le pavé dans la mare
Node.js, le pavé dans la mareNode.js, le pavé dans la mare
Node.js, le pavé dans la mareValtech
 

Similaire à Développer une application android en 2015 (20)

Initiation au développement mobile sous Android
Initiation au développement mobile sous AndroidInitiation au développement mobile sous Android
Initiation au développement mobile sous Android
 
Débuter avec phonegap (APACHE CORDOVA) dans eclipse pour android
Débuter avec phonegap (APACHE CORDOVA) dans eclipse pour androidDébuter avec phonegap (APACHE CORDOVA) dans eclipse pour android
Débuter avec phonegap (APACHE CORDOVA) dans eclipse pour android
 
1-android.pdf
1-android.pdf1-android.pdf
1-android.pdf
 
Native script
Native scriptNative script
Native script
 
Android Studio, premier contact
Android Studio, premier contactAndroid Studio, premier contact
Android Studio, premier contact
 
Android Studio, premier contact
Android Studio, premier contactAndroid Studio, premier contact
Android Studio, premier contact
 
Android introvf
Android introvfAndroid introvf
Android introvf
 
Tutorial android - créer des apps
Tutorial android - créer des appsTutorial android - créer des apps
Tutorial android - créer des apps
 
Tutorial android
Tutorial androidTutorial android
Tutorial android
 
Bootcamp d'Initiation à Android - 2013/11/30 - Live coding : Hello world!
Bootcamp d'Initiation à Android  - 2013/11/30 - Live coding :   Hello world!Bootcamp d'Initiation à Android  - 2013/11/30 - Live coding :   Hello world!
Bootcamp d'Initiation à Android - 2013/11/30 - Live coding : Hello world!
 
DevFestBdm2019
DevFestBdm2019DevFestBdm2019
DevFestBdm2019
 
Cours cordova & REST
Cours cordova & RESTCours cordova & REST
Cours cordova & REST
 
Présentation Flutter
Présentation FlutterPrésentation Flutter
Présentation Flutter
 
cours Android.pptx
cours Android.pptxcours Android.pptx
cours Android.pptx
 
Conférence Titanium + Alloy au JUG Montpellier
Conférence Titanium + Alloy au JUG MontpellierConférence Titanium + Alloy au JUG Montpellier
Conférence Titanium + Alloy au JUG Montpellier
 
PAUG 03/05/2016 : Rechercher et analyser les fuites mémoires dans une applica...
PAUG 03/05/2016 : Rechercher et analyser les fuites mémoires dans une applica...PAUG 03/05/2016 : Rechercher et analyser les fuites mémoires dans une applica...
PAUG 03/05/2016 : Rechercher et analyser les fuites mémoires dans une applica...
 
Apache Cordova 3.3 de zéro
Apache Cordova 3.3 de zéroApache Cordova 3.3 de zéro
Apache Cordova 3.3 de zéro
 
Apache flink - prise en main rapide
Apache flink - prise en main rapideApache flink - prise en main rapide
Apache flink - prise en main rapide
 
Big Data Viz (and much more!) with Apache Zeppelin
Big Data Viz (and much more!) with Apache ZeppelinBig Data Viz (and much more!) with Apache Zeppelin
Big Data Viz (and much more!) with Apache Zeppelin
 
Node.js, le pavé dans la mare
Node.js, le pavé dans la mareNode.js, le pavé dans la mare
Node.js, le pavé dans la mare
 

Développer une application android en 2015