This is the slide of the conference gave at the DroidCon Paris 2015 by Mathias Seguy.
The pitch:
Animation is a key point when building your application….
But, “Animation is complicated with Android”, is your feeling.
Well, in fact, it’s not. I will show you how simples they are, how magic they could be and how fun your application can become.
I will explains which animation to use for which version of the system, what are your choices and what is your strategy. We will have a complete overview on the Android Animation framework.
So I hope to see you in the room for this conference, because at the end, your application will be enhanced :)
Voyage en monde Android. Trucs et astuces tout au long de la route.Mathias Seguy
Conférence donnée au Paris Android User Group du 18/06/2014
Toi, oui, toi, le développeur Android, expert ou débutant, prends ton billet, je t’emmène.
Je te propose un périple au sein du monde du développement Android. Je te parlerai de Design et d'UX, de techniques de dèv, d'asynchronicité et de sécurité, de bonnes pratiques, d'architecture, de librairies, de stratégies réseau... et de bien d'autres choses encore. De tous ces détails qui font qu'une application devient une application d'excellence.
Je te montrerai la rue des pro-tips, l'avenue des bonnes pratiques, les monts d'archis. Tu parcourras avec moi tous ces chemins qui amélioreront ton développement, ta pensée, ta conception, ton application Android.
Et quand, je te ramènerai dans ton port d'origine, les yeux qui brillent tu auras et mettre à jour ton application Android tu iras.
Simple matelot ou capitaine de navire, ne laisse pas passer ce voyage, il t'ouvrira de nouvelles voies du monde Android.
Google Plus SignIn : l'Authentification GoogleMathias Seguy
Cette conférence vous expliquera en détail pourquoi mettre en place cette authentification et surtout comment la mettre en place.
Vous découvrirez ainsi:
la console des GoogleService,
comment utiliser l’objet PlusClient et ConnectionResult pour gérer l’identification de votre utilisateur,
comment mettre en place la « magic connexion » et la « manual connexion »,
comment mettre en place cette authentification au sein du cycle de vie de votre application,
comment charger le graphe social de l’utilisateur, faire des posts interactifs et des « application activities »…
Un grand moment pour tous ceux qui se demandent encore quelle est la meilleure stratégie pour authentifier son utilisateur.
Cette conférence s’associe:
d’un tutorial que vous pouvez retrouver sur GitHub: SignInWithGoogleTutorial(https://github.com/MathiasSeguy-Android2EE/SignInWithGoogleTutorial) sur GitHub.
d’une application mettant en place cette authentification que vous pouvez retrouver sur GooglePlay: MyPublicGoogleProfile (https://play.google.com/store/apps/details?id=com.android2ee.project.gplus.signin.publicid&hl=fr).
Et bien sûr la conférence va être disponible sur Android2EE dès le Vendredi 20 au rayon OpenResource\Conférences.
Vous aussi, authentifiez vos utilisateurs, inter-agissez avec eux et simplifiez leur la vie:
En espérant que vous y découvrirez votre bonheur :) .
Mise en place de l'ActionBarCompat dans vos projets Android.Mathias Seguy
Petite conférence sur la mise en place de l'ActionBarCompat dans votre application Android avec:
Mise en place de l'ActionBarCompat
Ajout de MenuItem
Mise en place d'une ActionView de recherche
Mise en place de l'ActionMode.
ToulouseAndroidUserGroup du 5 Juin 2014
Android2EE training: Tutorials list of Android projectsMathias Seguy
This is the list of the projects and tutorials associated with the Android training of Android2EE.
I mean each Android2EE's trainee received a USB key that contains all those Android projects (in an Eclipse workspace) and each project can be used freely (except for training) in personal and professional projects.
DroidConUk 2016 [Barcamp]
In this conference, I want to talk about treatments.
By treatments, I mean where and how do you implement your business logic, the way your application handles data, your global algorithms,
And to do that, I need first to talk you about Architecture. But in Android, when you say "Architecture" every boby answers MVP / MVVM / ... so we will first have a look to those patterns, from an history point of view then we will discover that we have missed some layer to split concerns accross the application.
So we will talk about layer architecture (yep, also known as N-Tier architecture).
So, we have a better idea of what a generic architecture should be, now let's apply it on Android: Let's talk about the application object, and the service services layer, in particular we'll dive into the problem "do our business services have to be implemented extending Service ?".
Then I talk to you about a ServiceManager, that we have to implement, to centralize the management of all your services and all your threads pools.
And some much more :)
Enjoy the talk,
Architecture et Bonnes pratiques Android #DevoxxFr2016 Part2Mathias Seguy
Depuis maintenant 7 ans que je développe sous Android, ma principale préoccupation a toujours été l'architecture.
Et si nous prenions quelques heures pour en discuter ?
Je vous propose une vision globale et synthétique s'appuyant sur des exemples concrets, sur les principes et conseils de référence des équipes Google et sur des modèles d'architecture (MVP/n-tiers) et leur mises en place.
Au programme:
Le contexte Android,
L'objectif utilisateur,
La responsabilité du développeur,
Les bonnes pratiques (celles de Chet Haase, Romain Guy et les miennes),
Les principes d'architecture (n-tiers, MVP et MVVM),
Leur application sur Android (services, threads, Application ...),
Le déploiement continue,
Les librairies incontournables du moment,
Un exemple concret d'utilisation d'un service REST (up et download)
et bien sûr un projet github est associé à cette conférence pour que le code soit avec vous !
Conférence "Architecture Android" du 19 Mars 2013 par Mathias Seguy fondateur...Mathias Seguy
La conférence « Architecture Android » de Mathias Seguy (Android2EE).
Si l’architecture d’applications Android vous questionne, vous intéresse, vous mystifie cette conférence est faîte pour vous.
Elle s’attachera à décrire les design patterns, contraintes et bonnes pratiques Android. Cela nous permettra de concevoir une architecture propre aux applications Android.
La conférence se conclura en donner les pro-tips Android provenant des GoogleIO et Devoxx qu’il faut connaitre pour concevoir des applications pertinentes sous Android.
Cette conférence a eu lieu le mardi 19 Mars 2013, à 19h.
Si vous êtes un JUG ou un AUG et que cette conférence vous interesse, n'hésitez pas à me contacter.
Si vous souhaitez apprendre la technologie Android, contacter moi: mathias.seguy@android2ee.com, je suis formateur Android et les formations Android que je dispense sont exceptionnelles.
Speaker:Mathias est le fondateur de la société Android2ee spécialisée dans la technologie Android.
Il est :
• formateur Android,
• expert logiciel Android,
• speaker Android sur de grandes conférences Java : Devoxx France, Eclipse Day Toulouse, JCertif Africa, Toulouse JUG, CocoAhead,…
• Rédacteur Android sur Developpez.com ;
• Programmateur Android : MyLight, MyTorch, MySensors, JCertifMobile disponibles sur GooglePlay ;
• Docteur en Mathématiques Fondamentales et Ingénieur de l’ENSEEIHT ;
• Expert technique de l’agence nationale de la recherche française ;
Il présentera au cours de cette conférence sa vision sur la mise en place d’une architecture d’une application Android pertinente et partagera les meilleurs pro-tips (astuces de pro) de sa connaissance. A ne pas manquez.
Mathias Séguy
mathias.seguy@android2ee.com
Fondateur Android2EE
Formation – Expertise – Consulting Android.
Ebooks pour apprendre la programmation sous Android.
La conférence « ProTips » de Mathias Seguy (Android2EE).
Cette conférence a eu lieu lors du BarCamp de la DroidCon Paris, Lundi 17 Juin 2013.
Si vous êtes un JUG ou un AUG et que cette conférence vous interesse, n'hésitez pas à me contacter.
Si vous souhaitez apprendre la technologie Android, contacter moi: mathias.seguy@android2ee.com, je suis formateur Android et les formations Android que je dispense sont exceptionnelles.
Speaker:Mathias est le fondateur de la société Android2ee spécialisée dans la technologie Android.
Il est :
• formateur Android,
• expert logiciel Android,
• speaker Android sur de grandes conférences Java : AndroidCon, Devoxx France, Eclipse Day Toulouse, JCertif Africa, Toulouse JUG, CocoAhead,…
• Rédacteur Android sur Developpez.com ;
• Programmateur Android : MyLight, MyTorch, MySensors, JCertifMobile disponibles sur GooglePlay ;
• Docteur en Mathématiques Fondamentales et Ingénieur de l’ENSEEIHT ;
• Expert technique de l’agence nationale de la recherche française ;
Il présentera au cours de cette conférence sa vision sur la mise en place d’une architecture d’une application Android pertinente et partagera les meilleurs pro-tips (astuces de pro) de sa connaissance. A ne pas manquez.
Mathias Séguy
mathias.seguy@android2ee.com
Fondateur Android2EE
Formation – Expertise – Consulting Android.
Ebooks pour apprendre la programmation sous Android.
Voyage en monde Android. Trucs et astuces tout au long de la route.Mathias Seguy
Conférence donnée au Paris Android User Group du 18/06/2014
Toi, oui, toi, le développeur Android, expert ou débutant, prends ton billet, je t’emmène.
Je te propose un périple au sein du monde du développement Android. Je te parlerai de Design et d'UX, de techniques de dèv, d'asynchronicité et de sécurité, de bonnes pratiques, d'architecture, de librairies, de stratégies réseau... et de bien d'autres choses encore. De tous ces détails qui font qu'une application devient une application d'excellence.
Je te montrerai la rue des pro-tips, l'avenue des bonnes pratiques, les monts d'archis. Tu parcourras avec moi tous ces chemins qui amélioreront ton développement, ta pensée, ta conception, ton application Android.
Et quand, je te ramènerai dans ton port d'origine, les yeux qui brillent tu auras et mettre à jour ton application Android tu iras.
Simple matelot ou capitaine de navire, ne laisse pas passer ce voyage, il t'ouvrira de nouvelles voies du monde Android.
Google Plus SignIn : l'Authentification GoogleMathias Seguy
Cette conférence vous expliquera en détail pourquoi mettre en place cette authentification et surtout comment la mettre en place.
Vous découvrirez ainsi:
la console des GoogleService,
comment utiliser l’objet PlusClient et ConnectionResult pour gérer l’identification de votre utilisateur,
comment mettre en place la « magic connexion » et la « manual connexion »,
comment mettre en place cette authentification au sein du cycle de vie de votre application,
comment charger le graphe social de l’utilisateur, faire des posts interactifs et des « application activities »…
Un grand moment pour tous ceux qui se demandent encore quelle est la meilleure stratégie pour authentifier son utilisateur.
Cette conférence s’associe:
d’un tutorial que vous pouvez retrouver sur GitHub: SignInWithGoogleTutorial(https://github.com/MathiasSeguy-Android2EE/SignInWithGoogleTutorial) sur GitHub.
d’une application mettant en place cette authentification que vous pouvez retrouver sur GooglePlay: MyPublicGoogleProfile (https://play.google.com/store/apps/details?id=com.android2ee.project.gplus.signin.publicid&hl=fr).
Et bien sûr la conférence va être disponible sur Android2EE dès le Vendredi 20 au rayon OpenResource\Conférences.
Vous aussi, authentifiez vos utilisateurs, inter-agissez avec eux et simplifiez leur la vie:
En espérant que vous y découvrirez votre bonheur :) .
Mise en place de l'ActionBarCompat dans vos projets Android.Mathias Seguy
Petite conférence sur la mise en place de l'ActionBarCompat dans votre application Android avec:
Mise en place de l'ActionBarCompat
Ajout de MenuItem
Mise en place d'une ActionView de recherche
Mise en place de l'ActionMode.
ToulouseAndroidUserGroup du 5 Juin 2014
Android2EE training: Tutorials list of Android projectsMathias Seguy
This is the list of the projects and tutorials associated with the Android training of Android2EE.
I mean each Android2EE's trainee received a USB key that contains all those Android projects (in an Eclipse workspace) and each project can be used freely (except for training) in personal and professional projects.
DroidConUk 2016 [Barcamp]
In this conference, I want to talk about treatments.
By treatments, I mean where and how do you implement your business logic, the way your application handles data, your global algorithms,
And to do that, I need first to talk you about Architecture. But in Android, when you say "Architecture" every boby answers MVP / MVVM / ... so we will first have a look to those patterns, from an history point of view then we will discover that we have missed some layer to split concerns accross the application.
So we will talk about layer architecture (yep, also known as N-Tier architecture).
So, we have a better idea of what a generic architecture should be, now let's apply it on Android: Let's talk about the application object, and the service services layer, in particular we'll dive into the problem "do our business services have to be implemented extending Service ?".
Then I talk to you about a ServiceManager, that we have to implement, to centralize the management of all your services and all your threads pools.
And some much more :)
Enjoy the talk,
Architecture et Bonnes pratiques Android #DevoxxFr2016 Part2Mathias Seguy
Depuis maintenant 7 ans que je développe sous Android, ma principale préoccupation a toujours été l'architecture.
Et si nous prenions quelques heures pour en discuter ?
Je vous propose une vision globale et synthétique s'appuyant sur des exemples concrets, sur les principes et conseils de référence des équipes Google et sur des modèles d'architecture (MVP/n-tiers) et leur mises en place.
Au programme:
Le contexte Android,
L'objectif utilisateur,
La responsabilité du développeur,
Les bonnes pratiques (celles de Chet Haase, Romain Guy et les miennes),
Les principes d'architecture (n-tiers, MVP et MVVM),
Leur application sur Android (services, threads, Application ...),
Le déploiement continue,
Les librairies incontournables du moment,
Un exemple concret d'utilisation d'un service REST (up et download)
et bien sûr un projet github est associé à cette conférence pour que le code soit avec vous !
Conférence "Architecture Android" du 19 Mars 2013 par Mathias Seguy fondateur...Mathias Seguy
La conférence « Architecture Android » de Mathias Seguy (Android2EE).
Si l’architecture d’applications Android vous questionne, vous intéresse, vous mystifie cette conférence est faîte pour vous.
Elle s’attachera à décrire les design patterns, contraintes et bonnes pratiques Android. Cela nous permettra de concevoir une architecture propre aux applications Android.
La conférence se conclura en donner les pro-tips Android provenant des GoogleIO et Devoxx qu’il faut connaitre pour concevoir des applications pertinentes sous Android.
Cette conférence a eu lieu le mardi 19 Mars 2013, à 19h.
Si vous êtes un JUG ou un AUG et que cette conférence vous interesse, n'hésitez pas à me contacter.
Si vous souhaitez apprendre la technologie Android, contacter moi: mathias.seguy@android2ee.com, je suis formateur Android et les formations Android que je dispense sont exceptionnelles.
Speaker:Mathias est le fondateur de la société Android2ee spécialisée dans la technologie Android.
Il est :
• formateur Android,
• expert logiciel Android,
• speaker Android sur de grandes conférences Java : Devoxx France, Eclipse Day Toulouse, JCertif Africa, Toulouse JUG, CocoAhead,…
• Rédacteur Android sur Developpez.com ;
• Programmateur Android : MyLight, MyTorch, MySensors, JCertifMobile disponibles sur GooglePlay ;
• Docteur en Mathématiques Fondamentales et Ingénieur de l’ENSEEIHT ;
• Expert technique de l’agence nationale de la recherche française ;
Il présentera au cours de cette conférence sa vision sur la mise en place d’une architecture d’une application Android pertinente et partagera les meilleurs pro-tips (astuces de pro) de sa connaissance. A ne pas manquez.
Mathias Séguy
mathias.seguy@android2ee.com
Fondateur Android2EE
Formation – Expertise – Consulting Android.
Ebooks pour apprendre la programmation sous Android.
La conférence « ProTips » de Mathias Seguy (Android2EE).
Cette conférence a eu lieu lors du BarCamp de la DroidCon Paris, Lundi 17 Juin 2013.
Si vous êtes un JUG ou un AUG et que cette conférence vous interesse, n'hésitez pas à me contacter.
Si vous souhaitez apprendre la technologie Android, contacter moi: mathias.seguy@android2ee.com, je suis formateur Android et les formations Android que je dispense sont exceptionnelles.
Speaker:Mathias est le fondateur de la société Android2ee spécialisée dans la technologie Android.
Il est :
• formateur Android,
• expert logiciel Android,
• speaker Android sur de grandes conférences Java : AndroidCon, Devoxx France, Eclipse Day Toulouse, JCertif Africa, Toulouse JUG, CocoAhead,…
• Rédacteur Android sur Developpez.com ;
• Programmateur Android : MyLight, MyTorch, MySensors, JCertifMobile disponibles sur GooglePlay ;
• Docteur en Mathématiques Fondamentales et Ingénieur de l’ENSEEIHT ;
• Expert technique de l’agence nationale de la recherche française ;
Il présentera au cours de cette conférence sa vision sur la mise en place d’une architecture d’une application Android pertinente et partagera les meilleurs pro-tips (astuces de pro) de sa connaissance. A ne pas manquez.
Mathias Séguy
mathias.seguy@android2ee.com
Fondateur Android2EE
Formation – Expertise – Consulting Android.
Ebooks pour apprendre la programmation sous Android.
Animate Me! if you don't do it for me, do it for Chet - DroidconLondon2015Mathias Seguy
This is the slide of the conference gave at the DroidCon London 2015 by Mathias Seguy.
The pitch:
Animation is a key point when building your application….
But, “Animation is complicated with Android”, is your feeling.
Well, in fact, it’s not. I will show you how simples they are, how magic they could be and how fun your application can become.
I will explains which animation to use for which version of the system, what are your choices and what is your strategy. We will have a complete overview on the Android Animation framework.
So I hope to see you in the room for this conference, because at the end, your application will be enhanced :)
Eclispe daytoulouse combining the power of eclipse with android_fr_1024_768_s...Mathias Seguy
Cette présentation a été donnée à l'Eclipse Day Toulouse 2012 par Android2EE - Mathias Seguy (1/2h).
L’objectif est de présenter l'utilisation du plugin Android pour eclipse, en particulier la Vue DDMS. Cette présentation se finit par la mise en place de la chasse d'une fuite mémoire dans un programme Android avec l'utilisation du Heap dump et du plugin MAT d'eclipse (Memory analysis Tool).
Cette présentation est une présentation d’Android2EE, entreprise spécialisée dans l’expertise, le consulting et la formation Android. Vous souhaitez apprendre la programmation Android, Android2EE vous accompagne au-travers ses EBooks ou ses formations.
Laissez moi vous raconter mon histoire concernant cette entreprise. En 2010, je me suis penché sur la technologie Android, j’ai écrit trois EBooks sur l’art de la programmation Android (disponible sur Android2EE). J’ai quitté ma précédente entreprise et j’ai créé l’entreprise Android2EE (Android To Enterprise Edition) dont l’objectif est la formation, l’expertise et le consulting Android. J’ai quelques contrats en tant que consultant et aussi en tant que formateur. J’ai monté un ensemble de formations Android pour les entreprises:
Formation Initiale : Devenir autonome (3j).
Formation Approfondissement (2j).
Formation Spécificité Tablette et Graphisme(2j).
Formation Applications complexes (2j).
Formation chef de projet - responsable technique (1j).
Formation Mutlimédia (2j).
Formation sur mesure (2 à 3j).
Je pratique ces formations en donnant des cours dans les universités et les écoles d’ingénieurs de Toulouse ainsi que dans de grandes conférences Java:
CESI-EXIA, EPITECH, Sup-Info, IUP ISI, InfoSup, IUP SI, IUP ISI, IngeSup, INSA
Et bien sûr: Devoxx France (LA conférence Java française de 2012), Mercredi 18 Avril 2012,
Et
JCertif Afrique 2012 (LA conférence Java du continent Africain) Septembre 2012 Conférence et Cours
Enfin, j’ai investi l’espace numérique, voici quelques uns des ces sites:
http://www.android2ee.com/
http://mathias-seguy.developpez.com/
http://blog.developpez.com/android2ee-mathias-seguy/
http://android2ee.blogspot.com/
La critique de mon livre « Android A Complete course » par developpez.com (dont je ne suis pas peu fier, quand même):
http://android.developpez.com/livres/#L9791090388000
J’ai des articles sur Developpez.com concernant Android.
Ah oui, j’oubliais, mon cv se trouve ici (si jamais) : http://mathias-seguy.developpez.com/MathiasSeguyCV201106/
Animate me, If you don't do it for me do it for Chet :)Mathias Seguy
This is the slide of the conference gave at the DroidCon Greece 2015 by Mathias Seguy.
The pitch:
Animation is a key point when building your application….
But, “Animation is complicated with Android”, is your feeling.
Well, in fact, it’s not. I will show you how simples they are, how magic they could be and how fun your application can become.
I will explains which animation to use for which version of the system, what are your choices and what is your strategy. We will have a complete overview on the Android Animation framework.
So I hope to see you in the room for this conference, because at the end, your application will be enhanced :)
Présentation et bonnes pratiques du pattern MVVM - MIC BelgiqueDenis Voituron
Le Model View ViewModel (MVVM) est une architecture et une méthode de conception utilisée dans le génie logiciel. Apparu en 2004, MVVM est adapté pour le développement des applications basées sur les technologies Windows (desktop, tablette ou mobile), mais également Web/HTML5. Cette méthode permet de séparer la vue de la logique et de l'accès aux données en accentuant les principes de binding et d’événement. Une bonne vue générale a été donnée par Laurent Bugnion, le père du MVVMLight, dans le podcast #11 de DevApps (http://devapps.be/podcast/11).
http://www.meetup.com/fr-FR/micbelgique/events/228368909/?eventId=228368909
Architecture et Bonnes pratiques Android #DevoxxFr2016 Part1Mathias Seguy
Depuis maintenant 7 ans que je développe sous Android, ma principale préoccupation a toujours été l'architecture.
Et si nous prenions quelques heures pour en discuter ?
Je vous propose une vision globale et synthétique s'appuyant sur des exemples concrets, sur les principes et conseils de référence des équipes Google et sur des modèles d'architecture (MVP/n-tiers) et leur mises en place.
Au programme:
Le contexte Android,
L'objectif utilisateur,
La responsabilité du développeur,
Les bonnes pratiques (celles de Chet Haase, Romain Guy et les miennes),
Les principes d'architecture (n-tiers, MVP et MVVM),
Leur application sur Android (services, threads, Application ...),
Le déploiement continue,
Les librairies incontournables du moment,
Un exemple concret d'utilisation d'un service REST (up et download)
et bien sûr un projet github est associé à cette conférence pour que le code soit avec vous !
Tips & Tricks to spice up your Android appJérémie Laval
We will explore how Android (especially in recent versions) lets you develop awesomer apps and how you can tap into that potential with Xamarin.Android. Topics covered will include graphics, user interaction, best practices and animations.
Beauty Treatment for your Android ApplicationCodemotion
"Beauty Treatment for your Android Application" by Jose Luis Ugia
Android Apps are ugly. They are slow. Android is laggy. I know, you have heard a lot of that in the last years. Enough of it! It is now time to get your revenge back and take advantage of the new tools to draw and animate, design guidelines and a few tricks and recipes to make your Android application stand out from the rest. Join me to speak about how to make your application look different by adding subtle effects that are appealing to the eye and the overall experience of your users.
The view animation framework supports both tween and frame by frame animations, which can both be declared in XML. The following chapter describe how to use both methods. In this unit we will discuss about the usage of View Animation and an example.
Seven Peaks Speaks - Android Jetpack Compose AnimationSeven Peaks Speaks
🚨 Composable Future of Android Development - Android Jetpack Compose Animation 🚨
The next Android developer is Muhammad Naeem, who has more than seven years of expertise designing, creating, testing, and maintaining cutting-edge Android apps for mobile devices used in the e-commerce, educational, and real estate rental sectors. He will demonstrate how Jetpack Compose's robust and extendable APIs make it simple to integrate different animations into your app's UI.
To know more about Event at Seven Peaks please visit:
https://sevenpeakssoftware.com/events/
#android #androiddeveloper #androiddevelopment #mobileappdevelopment #mobiledeveloper #mobileapplicationdeveloper #Sevenpeakssoftware #sevenpeaksspeaks #softwaredevelopment #softwarecompanythailand #digitalproductconsultancy #meetup #techmeetup
Android JetPack: easy navigation with the new Navigation ControllerLeonardo Pirro
In the past few years implementing in-app navigation was always a pain. Google wants to change that and with this talk, we'll explore the new architecture component included in Android JetPack: The Navigation Controller.
Palestra apresentada no evento de comemoração dos 4 anos do meetup de Android do GDG São Paulo. Oxigênio aceleradora no dia 10/Jun/2017
O código-fonte dos exemplos está disponível em:
https://github.com/nglauber/playground/tree/master/android/AnimationDemo
Animate Me! if you don't do it for me, do it for Chet - DroidconLondon2015Mathias Seguy
This is the slide of the conference gave at the DroidCon London 2015 by Mathias Seguy.
The pitch:
Animation is a key point when building your application….
But, “Animation is complicated with Android”, is your feeling.
Well, in fact, it’s not. I will show you how simples they are, how magic they could be and how fun your application can become.
I will explains which animation to use for which version of the system, what are your choices and what is your strategy. We will have a complete overview on the Android Animation framework.
So I hope to see you in the room for this conference, because at the end, your application will be enhanced :)
Eclispe daytoulouse combining the power of eclipse with android_fr_1024_768_s...Mathias Seguy
Cette présentation a été donnée à l'Eclipse Day Toulouse 2012 par Android2EE - Mathias Seguy (1/2h).
L’objectif est de présenter l'utilisation du plugin Android pour eclipse, en particulier la Vue DDMS. Cette présentation se finit par la mise en place de la chasse d'une fuite mémoire dans un programme Android avec l'utilisation du Heap dump et du plugin MAT d'eclipse (Memory analysis Tool).
Cette présentation est une présentation d’Android2EE, entreprise spécialisée dans l’expertise, le consulting et la formation Android. Vous souhaitez apprendre la programmation Android, Android2EE vous accompagne au-travers ses EBooks ou ses formations.
Laissez moi vous raconter mon histoire concernant cette entreprise. En 2010, je me suis penché sur la technologie Android, j’ai écrit trois EBooks sur l’art de la programmation Android (disponible sur Android2EE). J’ai quitté ma précédente entreprise et j’ai créé l’entreprise Android2EE (Android To Enterprise Edition) dont l’objectif est la formation, l’expertise et le consulting Android. J’ai quelques contrats en tant que consultant et aussi en tant que formateur. J’ai monté un ensemble de formations Android pour les entreprises:
Formation Initiale : Devenir autonome (3j).
Formation Approfondissement (2j).
Formation Spécificité Tablette et Graphisme(2j).
Formation Applications complexes (2j).
Formation chef de projet - responsable technique (1j).
Formation Mutlimédia (2j).
Formation sur mesure (2 à 3j).
Je pratique ces formations en donnant des cours dans les universités et les écoles d’ingénieurs de Toulouse ainsi que dans de grandes conférences Java:
CESI-EXIA, EPITECH, Sup-Info, IUP ISI, InfoSup, IUP SI, IUP ISI, IngeSup, INSA
Et bien sûr: Devoxx France (LA conférence Java française de 2012), Mercredi 18 Avril 2012,
Et
JCertif Afrique 2012 (LA conférence Java du continent Africain) Septembre 2012 Conférence et Cours
Enfin, j’ai investi l’espace numérique, voici quelques uns des ces sites:
http://www.android2ee.com/
http://mathias-seguy.developpez.com/
http://blog.developpez.com/android2ee-mathias-seguy/
http://android2ee.blogspot.com/
La critique de mon livre « Android A Complete course » par developpez.com (dont je ne suis pas peu fier, quand même):
http://android.developpez.com/livres/#L9791090388000
J’ai des articles sur Developpez.com concernant Android.
Ah oui, j’oubliais, mon cv se trouve ici (si jamais) : http://mathias-seguy.developpez.com/MathiasSeguyCV201106/
Animate me, If you don't do it for me do it for Chet :)Mathias Seguy
This is the slide of the conference gave at the DroidCon Greece 2015 by Mathias Seguy.
The pitch:
Animation is a key point when building your application….
But, “Animation is complicated with Android”, is your feeling.
Well, in fact, it’s not. I will show you how simples they are, how magic they could be and how fun your application can become.
I will explains which animation to use for which version of the system, what are your choices and what is your strategy. We will have a complete overview on the Android Animation framework.
So I hope to see you in the room for this conference, because at the end, your application will be enhanced :)
Présentation et bonnes pratiques du pattern MVVM - MIC BelgiqueDenis Voituron
Le Model View ViewModel (MVVM) est une architecture et une méthode de conception utilisée dans le génie logiciel. Apparu en 2004, MVVM est adapté pour le développement des applications basées sur les technologies Windows (desktop, tablette ou mobile), mais également Web/HTML5. Cette méthode permet de séparer la vue de la logique et de l'accès aux données en accentuant les principes de binding et d’événement. Une bonne vue générale a été donnée par Laurent Bugnion, le père du MVVMLight, dans le podcast #11 de DevApps (http://devapps.be/podcast/11).
http://www.meetup.com/fr-FR/micbelgique/events/228368909/?eventId=228368909
Architecture et Bonnes pratiques Android #DevoxxFr2016 Part1Mathias Seguy
Depuis maintenant 7 ans que je développe sous Android, ma principale préoccupation a toujours été l'architecture.
Et si nous prenions quelques heures pour en discuter ?
Je vous propose une vision globale et synthétique s'appuyant sur des exemples concrets, sur les principes et conseils de référence des équipes Google et sur des modèles d'architecture (MVP/n-tiers) et leur mises en place.
Au programme:
Le contexte Android,
L'objectif utilisateur,
La responsabilité du développeur,
Les bonnes pratiques (celles de Chet Haase, Romain Guy et les miennes),
Les principes d'architecture (n-tiers, MVP et MVVM),
Leur application sur Android (services, threads, Application ...),
Le déploiement continue,
Les librairies incontournables du moment,
Un exemple concret d'utilisation d'un service REST (up et download)
et bien sûr un projet github est associé à cette conférence pour que le code soit avec vous !
Tips & Tricks to spice up your Android appJérémie Laval
We will explore how Android (especially in recent versions) lets you develop awesomer apps and how you can tap into that potential with Xamarin.Android. Topics covered will include graphics, user interaction, best practices and animations.
Beauty Treatment for your Android ApplicationCodemotion
"Beauty Treatment for your Android Application" by Jose Luis Ugia
Android Apps are ugly. They are slow. Android is laggy. I know, you have heard a lot of that in the last years. Enough of it! It is now time to get your revenge back and take advantage of the new tools to draw and animate, design guidelines and a few tricks and recipes to make your Android application stand out from the rest. Join me to speak about how to make your application look different by adding subtle effects that are appealing to the eye and the overall experience of your users.
The view animation framework supports both tween and frame by frame animations, which can both be declared in XML. The following chapter describe how to use both methods. In this unit we will discuss about the usage of View Animation and an example.
Seven Peaks Speaks - Android Jetpack Compose AnimationSeven Peaks Speaks
🚨 Composable Future of Android Development - Android Jetpack Compose Animation 🚨
The next Android developer is Muhammad Naeem, who has more than seven years of expertise designing, creating, testing, and maintaining cutting-edge Android apps for mobile devices used in the e-commerce, educational, and real estate rental sectors. He will demonstrate how Jetpack Compose's robust and extendable APIs make it simple to integrate different animations into your app's UI.
To know more about Event at Seven Peaks please visit:
https://sevenpeakssoftware.com/events/
#android #androiddeveloper #androiddevelopment #mobileappdevelopment #mobiledeveloper #mobileapplicationdeveloper #Sevenpeakssoftware #sevenpeaksspeaks #softwaredevelopment #softwarecompanythailand #digitalproductconsultancy #meetup #techmeetup
Android JetPack: easy navigation with the new Navigation ControllerLeonardo Pirro
In the past few years implementing in-app navigation was always a pain. Google wants to change that and with this talk, we'll explore the new architecture component included in Android JetPack: The Navigation Controller.
Palestra apresentada no evento de comemoração dos 4 anos do meetup de Android do GDG São Paulo. Oxigênio aceleradora no dia 10/Jun/2017
O código-fonte dos exemplos está disponível em:
https://github.com/nglauber/playground/tree/master/android/AnimationDemo
(AFF301) Fire Phone: The Dynamic Perspective API, Under the Hood | AWS re:Inv...Amazon Web Services
Fire phone's Dynamic Perspective adds a whole new dimension to UI and customer interaction, combining dedicated hardware and advanced algorithms to enable real-time head-tracking and 3D effects. This session goes behind the scenes with the Dynamic Perspective team, diving into the unique technical challenges they faced during development. Afterward, we explore the Dynamic Perspective SDK together so you leave the session knowing how to add innovative features like Peek, Tilt, 3D controls, and Parallax to your own apps.
Project Prague & RealSense: il potere nelle mani!!Massimo Bonanni
Project Prague e’ un SDK disponibile tra i progetti di Cognitive Services Labs di Microsoft che consente agli sviluppatori e ai progettisti di UX di incorporare controlli basati sui gesti nelle proprie app. Permette di definire gesture in maniera dichiarativa impostando dei vincoli in un linguaggio semplice e consentendo, grazie anche alle camere RealSense, di creare un’esperienza utente più naturale.
Sessione tenuta durante IoTDay Catania del 11/12/2017
Maruthi Prithivirajan, Head of ASEAN & IN Solution Architecture, Neo4j
Get an inside look at the latest Neo4j innovations that enable relationship-driven intelligence at scale. Learn more about the newest cloud integrations and product enhancements that make Neo4j an essential choice for developers building apps with interconnected data and generative AI.
UiPath Test Automation using UiPath Test Suite series, part 5DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 5. In this session, we will cover CI/CD with devops.
Topics covered:
CI/CD with in UiPath
End-to-end overview of CI/CD pipeline with Azure devops
Speaker:
Lyndsey Byblow, Test Suite Sales Engineer @ UiPath, Inc.
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
How to Get CNIC Information System with Paksim Ga.pptxdanishmna97
Pakdata Cf is a groundbreaking system designed to streamline and facilitate access to CNIC information. This innovative platform leverages advanced technology to provide users with efficient and secure access to their CNIC details.
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Dr. Sean Tan, Head of Data Science, Changi Airport Group
Discover how Changi Airport Group (CAG) leverages graph technologies and generative AI to revolutionize their search capabilities. This session delves into the unique search needs of CAG’s diverse passengers and customers, showcasing how graph data structures enhance the accuracy and relevance of AI-generated search results, mitigating the risk of “hallucinations” and improving the overall customer journey.
Communications Mining Series - Zero to Hero - Session 1DianaGray10
This session provides introduction to UiPath Communication Mining, importance and platform overview. You will acquire a good understand of the phases in Communication Mining as we go over the platform with you. Topics covered:
• Communication Mining Overview
• Why is it important?
• How can it help today’s business and the benefits
• Phases in Communication Mining
• Demo on Platform overview
• Q/A
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
UiPath Test Automation using UiPath Test Suite series, part 6DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 6. In this session, we will cover Test Automation with generative AI and Open AI.
UiPath Test Automation with generative AI and Open AI webinar offers an in-depth exploration of leveraging cutting-edge technologies for test automation within the UiPath platform. Attendees will delve into the integration of generative AI, a test automation solution, with Open AI advanced natural language processing capabilities.
Throughout the session, participants will discover how this synergy empowers testers to automate repetitive tasks, enhance testing accuracy, and expedite the software testing life cycle. Topics covered include the seamless integration process, practical use cases, and the benefits of harnessing AI-driven automation for UiPath testing initiatives. By attending this webinar, testers, and automation professionals can gain valuable insights into harnessing the power of AI to optimize their test automation workflows within the UiPath ecosystem, ultimately driving efficiency and quality in software development processes.
What will you get from this session?
1. Insights into integrating generative AI.
2. Understanding how this integration enhances test automation within the UiPath platform
3. Practical demonstrations
4. Exploration of real-world use cases illustrating the benefits of AI-driven test automation for UiPath
Topics covered:
What is generative AI
Test Automation with generative AI and Open AI.
UiPath integration with generative AI
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
GridMate - End to end testing is a critical piece to ensure quality and avoid...ThomasParaiso2
End to end testing is a critical piece to ensure quality and avoid regressions. In this session, we share our journey building an E2E testing pipeline for GridMate components (LWC and Aura) using Cypress, JSForce, FakerJS…
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
8. Alpha
Rotate
Translate
Scale
And the plantransformations are yours
V1
<set
android:interpolator="@[package:]anim/interpolator_resource">
<alpha
android:duration="float"
android:fromAlpha="float" android:toAlpha="float" />
<scale
android:duration="float"
android:fromXScale="float" android:toXScale="float"
android:fromYScale="float" android:toYScale="float"
android:pivotX="float" android:pivotY="float" />
<translate
android:duration="float"
android:fromXDelta="float" android:toXDelta="float"
android:fromYDelta="float" android:toYDelta="float" />
<rotate
android:duration="float"
android:fromDegrees="float" android:toDegrees="float"
android:pivotX="float" android:pivotY="float" />
<set>
...
</set>
</set>
Animation animIn= AnimationUtils.loadAnimation(ctx, R.anim.generic_anim);
edtMessage.startAnimation(animIn);
animation/generic_anim.xml
Onlychange pixels notthe state of the view
9. Makes animations generic
V11
/** * The in Animation for after HC */
AnimatorSet animInHC;
animInHC = (AnimatorSet) AnimatorInflater.loadAnimator(ctx, R.animator.generic_anim);
animInHC.setTarget(edtMessage);
animInHC.setTarget(btnAdd);
animInHC.start();
<set >
<objectAnimator
android:duration="1000"
android:propertyName="translationX"
android:valueFrom="-250"
android:valueTo="0"
android:valueType="floatType" />
<objectAnimator
android:duration="1000"
android:propertyName="scaleX"
android:valueFrom="0.0"
android:valueTo="1.0"
android:valueType="floatType" />
</set>
animator-v11/generic_anim.xml
Changes the state of the object
10. Uses Handler and Runnable
Simplebut dangerous(memory leak, runsin UIthread, can generates frames drops)
Not optimized
Animationis changingthe view/objectstate by droppingchanges inthe UI thread
Handler clipDrawableHandler=new Handler();
Runnable clipDrawableRunnable=new Runnable() {
@Override
public void run() {
myView.changeSomething(level);
clipDrawableHandler.postDelayed(clipDrawableRunnable,32);
}
};
V1
11. Uses Handler and Runnable
Simplebut dangerous(memory leak, runsin UIthread, can generates frames drops)
Not optimized
V11
Animationis changingthe view/objectstate by droppingchanges inthe UI thread
Handler clipDrawableHandler=new Handler();
Runnable clipDrawableRunnable=new Runnable() {
@Override
public void run() {
myView.changeSomething(level);
clipDrawableHandler.postDelayed(clipDrawableRunnable,32);
}
};
12.
13. Don't be scared, it's simple.
How doyougofrom the pointfromto the pointto?
V1
t1t0
v0
v1
from
to
?
i(t)=v,
where i(t0)=v0
and i(t1)=v1
float
time
14. It can be straight
V1
t1t0
v0
v1
from
to
linear
15. t1t0
v0
v1
Youcan use the system's ones
V1
t1t0
v0
v1
from
to
deceleration acceleration
to
from
t1t0
v0
v1
to
bouncing
from
<set android:interpolator=
"@android:anim/accelerate_interpolator">
<set android:interpolator=
"@android:anim/decelerate_interpolator">
<set android:interpolator=
"@android:anim/bounce_interpolator"
>
24. <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:enterFadeDuration="300"
android:exitFadeDuration="300">
<!--Sorry below v21 there is no animated selector
you can just fade in and fade out-->
<item android:id="@+id/item_pressed"
android:state_pressed="true">
<bitmap android:src="@drawable/ic_android2ee"/></item>
<item android:id="@+id/item_normal">
<bitmap android:src="@drawable/ic_nut"/> </item>
</selector>
fade fade
Norma
l
Press
ed
Norma
l
View
state
Displ
ay
V
1
ClipDrawable
RotateDrawable
ScaleDrawable
AnimationDrawable
TransitionDrawable
StateListDrawable
AnimatedStateListDraw
able
AnimatedVectorDrawabl
e
26. <?xml version="1.0" encoding="utf-8"?>
<vector
android:viewportWidth="500"
android:viewportHeight="500"
android:width="500px"
android:height="500px">
<!--Make group to animate them separately using
ObjectAnimator-->
<!--Define the pivot in the group they will be used by
ObjectAnimator-->
<group android:name="tete"
android:pivotX="250.0"
android:pivotY="100.0">
<path
android:name="head"
android:fillColor="#9FBF3B"
android:pathData="..." />
</group>...</vector>
<?xml version="1.0" encoding="utf-8"?>
<animated-vector
android:drawable="@drawable/my_svg" >
<target
android:name="tete"
android:animation="@anim/anim_svg"
/>
</animated-vector>
<?xml version="1.0" encoding="utf-8"?>
<set
xmlns:android="http://schemas.android.com/apk/res/a
ndroid">
<!-- res/anim/rotation.xml -->
<objectAnimator
android:duration="6000"
android:propertyName="rotation"
android:valueFrom="0"
android:valueTo="360" />
</set>
drawable/my_svg drawable/my_svg_animated anim/anim_svg
use
us
e
layout/my_view
use
<ImageView
android:id="@+id/imvAnimatedVector"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:src="@drawable/my_svg_animated"/>
animatedVectorDrawable.start();
V21
TransitionDrawable
StateListDrawable
AnimatedStateListDrawable
AnimatedVectorDrawable
27. <?xml version="1.0" encoding="utf-8"?>
<vector
android:viewportWidth="500"
android:viewportHeight="500"
android:width="500px"
android:height="500px">
<!--Make group to animate them separately using
ObjectAnimator-->
<!--Define the pivot in the group they will be used by
ObjectAnimator-->
<group android:name="tete"
android:pivotX="250.0"
android:pivotY="100.0">
<path
android:name="head"
android:fillColor="#9FBF3B"
android:pathData="..." />
</group>...</vector>
<?xml version="1.0" encoding="utf-8"?>
<animated-vector
android:drawable="@drawable/my_svg" >
<target
android:name="tete"
android:animation="@anim/animpath_svg"
/>
</animated-vector>
<?xml version="1.0" encoding="utf-8"?>
<set >
<!-- res/anim/rotation.xml -->
<objectAnimator
android:duration="6000"
android:propertyName="pathData"
android:valueFrom="M300,70 l 0,-70 70,70 0,0 -
70,70z"
android:valueTo="M300,70 l 0,-70 70,0 0,140 -
70,0 z"
android:valueType="pathType"/>
</set>
drawable/my_svg drawable/my_svg_animated anim/animpath_svg
use
us
e
layout/my_view
use
<ImageView
android:id="@+id/imvAnimatedVector2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:src="@drawable/my_svg_animated"/>
animatedVectorDrawable.start();
V21
TransitionDrawable
StateListDrawable
AnimatedStateListDrawable
AnimatedVectorDrawable
28. The constraints that killfor path transformation:
"Note thatthe paths must be compatiblefor morphing.In more details, the pathsshouldhave
exact same lengthof commands , and exact same lengthof parameters for each commands."
It means: youwon't use it expectfor so simple trick (arrow to hamburger).
=>Waiting for tools !
V21
29. And here it is !!!
https://github.com/bonnyfone/vectalign
V21
30. To create Svg and/orsimplify them
https://inkscape.org/
To convert Svg intoVectorDrawable
http://inloop.github.io/svg2android/
A goodpractice :
Define your path in aString file
(resvaluesmy_path_string.xml)
V21
But even with that it's the hell on earth
=>working ona Github project
31.
32. Make it simple and magic:
Youcan animate any view
translationX ,translationY, rotationX, rotationY, rotation, scaleX, scaleY, pivotX,pivotY,
x,y,alphaand more
with one lineof code!
myView.animate().setDuration(300).x(20).rotationY(60).start();
V13
35. First extends what youwant
(Object or View or what ever)
public class BlueDot extends View {
V13
36. Define the propertyto animate
usingset/*MyProperty*/
public class BlueDot extends View {
/** * The property to animate *
* @param parameter value of the state to calculate the animation of the object */
private void setToto(int parameter) {
/*Do your stuff,
(call invalidate to redraw view)*/
V13
37. Then animate
public class BlueDot extends View {
/** * The property to animate *
@param parameter value of the state to calculate the animation of the object */
private void setToto(int parameter) {/*Do your stuff,(call invalidate to redraw view)*/
ObjectAnimator.ofInt(blueDot, "toto", 0, 110)
.start();
V13
38. ClipDrawable
Handler clipDrawableHandler=new Handler();
Runnable clipDrawableRunnable=new Runnable() {
@Override
public void run() {level++;
clipDrawableHorizontal.setLevel(level);
clipDrawableHandler.postDelayed(clipDrawableRunnable,32);
}
};
<?xml version="1.0" encoding="utf-8"?>
<clip xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/ic_android2ee"
android:clipOrientation="horizontal"
android:gravity="left" />
It was before
Works with every think !
V13
39. Works with every think !
public class MyActivity extends Activity{
private void setMoveDrawable(int level){
clipDrawableHorizontal.setLevel(level); }
private void animateDrawable() {
ObjectAnimator.ofInt(this, "MoveDrawable", 0, 10000).start();
}
No moreHandler neither Runnable!!!
yes thanks Chet !
V13
48. Youhave the choicebetween:
Custom animation
ScalingComponent
Scaling bitmap
You need to reverse :
public class otherActivity extends Activity {
public void finish() {
super.finish();
//this work for all version superior to level 5
overridePendingTransition(R.anim.anim_push_right_in_a2ee,
R.anim.anim_push_right_out_a2ee);
}}
v16v8
49. Awesome
First manage your theme
<resources>
<!-- Thanks to :-->
<!-- http://code.tutsplus.com/tutorials/introduction-to-the-new-lollipop-activity-transitions--cms-23711-->
<!-- Base application theme. -->
<style name="AppTheme" parent="BaseTheme">
<!-- Set the transition between activities effective -->
<item name="android:windowContentTransitions">true</item>
<item name="android:windowEnterTransition">@android:transition/slide_bottom</item>
<item name="android:windowExitTransition">@android:transition/slide_bottom</item>
<item name="android:windowAllowEnterTransitionOverlap">true</item>
<item name="android:windowAllowReturnTransitionOverlap">true</item>
<item name="android:windowSharedElementEnterTransition">@android:transition/move</item>
<item name="android:windowSharedElementExitTransition">@android:transition/move</item>
</style>
</resources>
v21
50. Set the android:transitionName to your components
<ImageButton
android:id="@+id/ibtnSprite"
android:transitionName="@string/imvSprite_transition"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_gravity="center"
android:src="@drawable/attack_magic_animation"
/>
<ImageView
android:id="@+id/imvSprite"
android:transitionName="@string/imvSprite_transition"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/attack_magic_animation"
/>
layout/main_activity layout/other_activity
v21
51. Make your pairs and launch the new Activity
if (isPostLollipop) {
ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(
this,
new Pair<View, String>(imvSprites, getString(R.string.imvSprite_transition)),
);
}
ActivityCompat.startActivity(MainActivity.this, intent, options.toBundle());
}
v21
56. 56
Its the natural evolution of the ListView, the ViewHolder is the one responsible of the view management
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View myView=inflater.inflate(R.layout.recyclerview,container,false);
recyclerView= (RecyclerView) myView.findViewById(R.id.my_recycler_view);
// use a layout manager
recyclerViewLayoutManager = getLayoutManager();
recyclerView.setLayoutManager(recyclerViewLayoutManager);
// specify an adapter (see also next example)
recyclerViewAdapter = new RecyclerViewAdapter(humans,getActivity());
recyclerView.setAdapter(recyclerViewAdapter);
return myView ;
}
find the View
set the LayoutManager
set the Adapter
V7
57. 57
This is the same code as for the ListView (ViewHolder next slide)
public class RecyclerViewAdapter extends
RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder>{
/****Attributes (t for temp)**/
private ArrayList<Human> humans;
private LayoutInflater inflater;
private View tNewView;
private ViewHolder tViewHolder;
private Human tHuman;
/****** Constructor**/
public RecyclerViewAdapter(ArrayList<Human>
dataSet,Context ctx){
humans=dataSet;
inflater=LayoutInflater.from(ctx);
}
@Override
public RecyclerViewAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
tNewView=inflater.inflate(R.layout.simple_item,parent,false);
tViewHolder=new ViewHolder(tNewView);
return tViewHolder;
}
@Override
public void onBindViewHolder(RecyclerViewAdapter.ViewHolder holder, int position) {
tHuman=humans.get(position);
holder.getTxvName().setText(tHuman.getName());
holder.getTxvFirstName().setText(tHuman.getFirstName());
holder.getTxvMessage().setText(tHuman.getMessage());
}
@Override
public int getItemCount() {
return humans.size();
}
V7
58. 58
This is the same code as for the ListView (ViewHolder next slide)
public class RecyclerViewAdapter extends
RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder>{
/****Attributes (t for temp)**/
private ArrayList<Human> humans;
private LayoutInflater inflater;
private View tNewView;
private ViewHolder tViewHolder;
private Human tHuman;
/****** Constructor**/
public RecyclerViewAdapter(ArrayList<Human>
dataSet,Context ctx){
humans=dataSet;
inflater=LayoutInflater.from(ctx);
}
@Override
public RecyclerViewAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
tNewView=inflater.inflate(R.layout.simple_item,parent,false);
tViewHolder=new ViewHolder(tNewView);
return tViewHolder;
}
@Override
public void onBindViewHolder(RecyclerViewAdapter.ViewHolder holder, int position) {
tHuman=humans.get(position);
holder.getTxvName().setText(tHuman.getName());
holder.getTxvFirstName().setText(tHuman.getFirstName());
holder.getTxvMessage().setText(tHuman.getMessage());
}
@Override
public int getItemCount() {
return humans.size();
}
Inflate the view and its viewHolder
Return the ViewHolder
Update the View using the ViewHolder
Set your DataSet and your LayoutInflater
V7
59. 59
Le ViewHolder gère la vue qu'il encapsule
public class ViewHolder extends RecyclerView.ViewHolder{
TextView txvName=null;
TextView txvFirstName=null;
TextView txvMessage=null;
View.OnClickListener clickListener;
int position;
public ViewHolder(View itemView) {
super(itemView);
txvName= (TextView) itemView.findViewById(R.id.txvName);
txvFirstName= (TextView) itemView.findViewById(R.id.txvFirstName);
txvMessage= (TextView) itemView.findViewById(R.id.txvMessage);
clickListener=new View.OnClickListener() {
public void onClick(View v) {changeTxvMessageVisibilityState(); }
};
itemView.setOnClickListener(clickListener);
}
public TextView getTxvFirstName() {return txvFirstName;}
public TextView getTxvMessage() {return txvMessage;}
public TextView getTxvName() {return txvName;}
public void changeTxvMessageVisibilityState(){
//Do the stuff }
}
V7
61. 61
Le StaggeredLayoutManager
public RecyclerView.LayoutManager getLayoutManager() {
StaggeredGridLayoutManager stagLayoutManager=new StaggeredGridLayoutManager(2,GridLayoutManager.VERTICAL);
stagLayoutManager.setGapStrategy(StaggeredGridLayoutManager.GAP_HANDLING_MOVE_ITEMS_BETWEEN_SPANS);
return stagLayoutManager;
}
V7
62. 62
Le GridLayoutManager
public RecyclerView.LayoutManager getLayoutManager() {
GridLayoutManager gridLayoutManager=new GridLayoutManager(getContext(),2,GridLayoutManager.VERTICAL,false);
//define specific span of specific cells according to a rule
gridLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
@Override
public int getSpanSize(int arg0) {
return (arg0 % 3) == 0 ? 2 : 1;
}
});
return gridLayoutManager;
}
V7
75. 76
public class MyPagerAdapter extends FragmentPagerAdapter {
private final ArrayList<Fragment> fragments;
public MyPagerAdapter(ActionBarActivity ctx) {
super(ctx.getSupportFragmentManager());
fragments = new ArrayList<Fragment>();
//A stuff I never did before, instanciate my fragment
Fragment frag =new MyFragment1();
fragments.add(frag);...
}
public Fragment getItem(int position) { return fragments.get(position); }
public int getCount() {return fragments.size(); }
V13
76. 77
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
...
//instanciate the PageAdapter
pagerAdapter=new MyPagerAdapter(this);
//Find the viewPager
viewPager = (ViewPager) super.findViewById(R.id.viewpager);
// Affectation de l'adapter au ViewPager
viewPager.setAdapter(pagerAdapter);
if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.HONEYCOMB){
viewPager.setPageTransformer(true, new PageTransformer(this));
}
V13
77. 78
public class MyPageTransformer implements ViewPager.PageTransformer{
RecyclerView myRecyclerView;
public void transformPage(View view, float position) {
//Only the main layout is passed here/
myRecyclerView= (RecyclerView) view.findViewById(R.id.my_recycler_view);
if (position < -1) { // [-Infinity,-1)This page is way off-screen to the left.
view.setAlpha(0); }
else if (position < 1) { //in the visible range [-1,1]
myRecyclerView.setAlpha(1-Math.abs(position));
view.setAlpha(1);
if (position < 0) {//coming from left
myRecyclerView.setRotationX((position * 360));
} else {//coming from right
myRecyclerView.setRotationX(-1*position *360);
}
}
else { // (1,+Infinity] // This page is way off-screen to the right.
view.setAlpha(0); }
}}
V13
78.
79. First: Simplifyyour layout !!!
if not enoughyoucan also:
User LayerType Hardware accelerated
btnDoNotPress.setLayerType(View.LAYER_TYPE_HARDWARE,null);
new Animator.AnimatorListener() {
public void onAnimationEnd(Animator animation) {
btnDoNotPress.setLayerType(View.LAYER_TYPE_NONE, null);
}
V1
80. Use Interface andFactory
/** * The animation */
MainActivityAnimMother anim;
//the factory for the animations (you can
create a Class to do that if you want) :
if(isPostLollipop){
anim=new MainActivityAnimLLP();
}else if(postICS){
anim=new MainActivityAnimICS();
}else{
anim=new MainActivityAnimGinger();
}
V1
MainActivity
MainActivity
MainActivityAnimGinger
MainActivityAnimICS
MainActivityAnimLLP
MainActivity
MotherAnim
MainActivityAnimIntf
Animation code Animation
attributes
Animation methods
declaration
v21