Upload
florent-champigny
View
256
Download
0
Embed Size (px)
Citation preview
Twitter : @florent_champ
Présentation
Github : @florent37
MaterialViewPager Tutos Android
DaVinci
Emmet
WearMenu
PicassoPalette
MaterialImageLoading
Projet Smartphone :
▸ Appels de Webservices : Retofit
▸ Charger des images depuis une URL : Picasso
Problématiques
String WEBSERVICE_URL = “api.github.com”
public interface GithubService{
@GET(“/users/{user}/repos)
List<Repo> listRepos(@Path(“user”) String user)
}
Retrofit
RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint(WEBSERVICE_URL)
.build();
GitHubService service = restAdapter.create(GitHubService.class);
List<Repo> repos = service.listRepos(“florent37);
Retrofit
Retrofit
GET api.github.com/users/florent37/repos
public interface GithubService{
@GET(“/users/{user}/repos)
List<Repo> listRepos(@Path(“user”) String user)
}
Retrofit
200 OK{
"id": 34533286,
"name": "MaterialViewPager",
"full_name": "florent37/MaterialViewPager",
"owner": {
...
}
public interface GithubService{
@GET(“/users/{user}/repos)
List<Repo> listRepos(@Path(“user”) String user)
}
Retrofit
JSON -> List<Repo> repos
onSuccess(repos)
public interface GithubService{
@GET(“/users/{user}/repos)
List<Repo> listRepos(@Path(“user”) String user)
}
Picasso
GET http://i.imgur.com/DvpvklR.png
Picasso.with(context) .load(“http://i.imgur.com/DvpvklR.png”) .into(imageView);
Picasso Picasso.with(context) .load(“http://i.imgur.com/DvpvklR.png”) .into(imageView);
200 OKImage au format png :
010101011111000111011001101010101011010101010001010101011100110101010101010101101011101110101010100001110...
Picasso Picasso.with(context) .load(“http://i.imgur.com/DvpvklR.png”) .into(imageView);
PNG -> Bitmap
imageView.setDrawable(bitmap)
Impossible d’ouvrir des connexions HTTP
Échange de données en utilisant les Google Play Services
Transport de données via bluetooth
Android Wear
Image downloading and caching library for Android Wear
DaVinci.with(context) .load(“http://i.imgur.com/DvpvklR.png”) .into(imageView);
DaVinci
load http://i.imgur.com/DvpvklR.png
DaVinci.with(context) .load(“http://i.imgur.com/DvpvklR.png”) .into(imageView);
DaVinci
Picassohttp://i.imgur.com/DvpvklR.png
DaVinci.with(context) .load(“http://i.imgur.com/DvpvklR.png”) .into(imageView);
DaVinci
DaVinciDaemon
DaVinci.with(context) .load(“http://i.imgur.com/DvpvklR.png”) .into(imageView);
DaVinci
loaded http://i.imgur.com/DvpvklR.png
010101011111000111011001101010101011010101010001010101011100110101010101010101101011101110101010100001110...
DaVinciDaemon
DaVinci.with(context) .load(“http://i.imgur.com/DvpvklR.png”) .into(imageView);
DaVinci
binary -> Bitmap
imageView.setDrawable(bitmap)
DaVinci
//le drawable affichée en background pour la ligne [row]@Overridepublic Drawable getBackgroundForRow(int row) { return Bitmap;}
DaVinci
//le drawable affichée en background pour la ligne [row]@Overridepublic Drawable getBackgroundForRow(int row) { return DaVinci.with(context).load(URL).into(this, row);}
Quel Problème ??
DaVinci
//le drawable affichée en background pour la cellule [row,column]@Overridepublic Drawable getBackgroundForRow(int row, int column) { return DaVinci.with(context).load(URL).into(this, row, column);}
Quel Problème ???
Protocol based data-transfer for Android Wear
public interface SmartphoneProtocol{
void pleaseSendMeRepos();
}
public interface WearProtocol{
void sendListRepos(String user, List<Repo> repos);
}
Emmet
SmartphoneProtocol
WearProtocol
public interface SmartphoneProtocol{
void pleaseSendMeRepos();
}
public interface WearProtocol{
void sendListRepos(String user, List<Repo> repos);
}
Emmet
WearModule :
SmartphoneProtocol sender = Emmet.createSender(SmartphoneProtocol.class);
sender.pleaseSendMeRepos();
SmartphoneModule :
Emmet.registerReceiver(new SmartphoneProtocol(){
void pleaseSendMeRepos(){
//Just do it
}
}
Emmet
SmartphoneModule :
WearProtocol sender = Emmet.createSender(WearProtocol.class);
sender.sendListRepos(“florent37”,repos);
WearModule :
Emmet.registerReceiver(new WearProtocol(){
void sendListRepos(String user, List<Repo> repos){
//display the repos
}
}
Emmet
Emmet
SmartphoneProtocolpleaseSendMeRepos()
SmartphoneProtocol sender = Emmet.createSender(SmartphoneProtocol.class);
sender.pleaseSendMeRepos();
SmartphoneProtocolpleaseSendMeRepos()
Emmet.registerReceiver(new SmartphoneProtocol(){
void pleaseSendMeRepos(){
//Just do it
}
}
Emmet
SmartphoneProtocolsendListRepos(String user, List<Repo> repos)
WearProtocol sender = Emmet.createSender(WearProtocol.class);
List<Repo> repos = service.listRepos(“florent37”);
sender.sendListRepos(“florent37”,repos);
Emmet
SmartphoneProtocolsendListRepos(String user, List<Repo> repos)
Emmet.registerReceiver(new WearProtocol(){
void sendListRepos(String user, List<Repo> repos){
//display the repos
}
}
Emmet
Exemple
github.com/florent37/MeetupWear_EmmetDavinci