Développer une application android en 2015
-
Upload
florent-champigny -
Category
Internet
-
view
658 -
download
0
Transcript of Développer une application android en 2015
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 Studio2. Un compilateur : Gradle3. Un maître mot : Librairies4. Un design : Material5. 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éesFloating 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 !