We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Take your shot of Vitamin!

00:00

Formal Metadata

Title
Take your shot of Vitamin!
Title of Series
Number of Parts
542
Author
License
CC Attribution 2.0 Belgium:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
First 3:55 minutes of video does not have audio. Decathlon has more than 160 frontend products, including 50 dedicated to mobile applications. Due to this context, it is hard to align the user interface across all these projects while respecting the platform. Vitamin is a Design System developed by Decathlon as a product which can be adapted to any context and with multiple technical implementations for Android, iOS and Web. In theory, you can use this Design System in your application and customize it to fit your theme and your needs. In this presentation, I'll focus on Vitamin Compose, the design and technical architecture, biases and what are the next steps.
14
15
43
87
Thumbnail
26:29
146
Thumbnail
18:05
199
207
Thumbnail
22:17
264
278
Thumbnail
30:52
293
Thumbnail
15:53
341
Thumbnail
31:01
354
359
410
DiagramComputer animation
FAQComputer animation
Content (media)Block (periodic table)Semantics (computer science)RobotFamilyComputer fontWeightNormal (geometry)Disk read-and-write headRegular graphRadiusComputer animation
Menu (computing)Gamma functionParameter (computer programming)Cartesian coordinate systemDesign by contractComputer animation
SurfaceContent (media)ImplementationDesign by contractConnectivity (graph theory)String (computer science)Medical imagingParameter (computer programming)Electronic mailing listGreatest elementoutputGroup actionObject (grammar)CASE <Informatik>Latent heatComputer animation
Group actionWorld Wide Web ConsortiumCellular automatonSurfaceContent (media)Daylight saving timeMaxima and minimaComputer iconExecution unitThermal expansionGroup actionComputer iconElectronic mailing listContent (media)Default (computer science)Menu (computing)State of matterConnectivity (graph theory)Social classDrop (liquid)ImplementationFocus (optics)LogicGraph coloringData compressionAndroid (robot)Software developerBuffer overflowPattern languageParameter (computer programming)Object (grammar)Type theoryLevel (video gaming)Design by contractMultiplicationDot productDescriptive statisticsCartesian coordinate systemGreatest elementRootDifferent (Kate Ryan album)TouchscreenDeclarative programmingMaxima and minimaMobile appWeb pageLatent heatCuboidFunctional (mathematics)Semantics (computer science)Lecture/ConferenceComputer animation
Computer fontWeightRadiusClique-widthBoolean algebraExecution unitContent (media)SurfaceError messageShape (magazine)Physical systemConnectivity (graph theory)Semantics (computer science)Graph coloringSoftware testingTerm (mathematics)MappingStandard deviationProjective planeImplementationDesign by contractLevel (video gaming)Presentation of a groupPerfect group2 (number)Rule of inferenceToken ringNetwork topologyLibrary (computing)Multiplication signGoodness of fitComputer animation
Term (mathematics)Android (robot)Physical systemProjective planeWorld Wide Web ConsortiumSoftware developerCartesian coordinate systemImplementationPrice indexMorley's categoricity theoremGreatest elementNetwork topologyReal numberVideo gameLink (knot theory)Computer animation
Computer fontWeightRadiusSurfaceComputer iconPhysical systemGraphics tabletData structureConnectivity (graph theory)Pattern languageAtomic numberMereologyComputer animation
FeedbackQR codeLink (knot theory)Form (programming)Multiplication signComputer animation
Program flowchart
Transcript: English(auto-generated)
very different. First let's see the material contract of material with
Compose. We have first one kind of parameter name API slot, what it means it means that inside these parameters you can put everything you can declare for example for the title you can declare a text, a branded application
and you want to put the logo of your company you can put an image there. And the other kind of parameters is used for the UI of the top bar. Okay, the Compose implementation is very different. First we can see that we access to the components
inside vitamin top bars. It is the case for the top bar but it is also the case for all other components so we have vitamin bottom bars, vitamin buttons, vitamin models, etc. And we have inside these objects all variants for this kind of components
so here we have the primary contract but we also have some other implementations for example we have the search bar to show text input inside the top bar. Okay so first what we can see that the title is no more an API slot but a string. Why? It is because the design specification of
vitamin said we cannot have something else than a title as text in the top bar so we have a more oriented contract with vitamin because we remove the API slot and we change it to
a string and it is a mandatory parameter because it is not nullable. Okay for the list of actions from Compose, the material Compose it is an API slot too.
Here we have a list of action items and what is an action item? It is an icon which is a painter with a content description for accessibility purpose and these two parameters are nullable so we can put something else in general a text button so inside the contents
which is also an API slot and finally we have an unclick callback to be notified when the user clicks on your action item. So the usage is pretty simple. We call primary composable from vitamin top bars. We give the title and we have a list
of action item to show the menu at the end of the bottom of the top bar. If you want to change this menu dynamically in your application you just need to extract
this list somewhere else and change it and dynamically it will show the difference on your screen on your mobile application. The material usage is different because it is with declarative way so I need to declare icon button and text button
and declare all icon I want inside. Okay now we make a focus on the colors parameters type it with top bar colors and with a default value with the primary color from vitamin top bar colors. First what is vitamin top bar colors? It is again an object class
with two function primary and contextual which use colors semantic colors from vitamin B. Different according to the function because the contextual one it is with the blue background
you can see you see before and so if I want to change from primary to contextual and vice versa I just need to change the color when I use my components. If I want
to do the same thing with material I need to change all parameters inside my components so here background color and content color. If I want to change a specific color for icons I need to change it to inside the actions parameter and for all action item. So with
compose you can see we have a distinction between icon color and content color which is at the which is used for text button. Okay next parameter the navigation icon. The navigation icon is an API slot but with a scope the vitamin navigation icon buttons.
What it means well the scope is an object class with multiple composable uh and this this scope will be useful when you will use the
vitamin this components because you will have some you will have some auto compression suggestion from android studio with all of these variants. So it is an for developers when you use vitamin. The implementation is pretty simple it is just
an icon button and an icon with the correct doable and the usage is even more simple because just you can use your components the proper component inside the object class and define
the on click parameter and the content description for accessibility. Of course you can also declare your own icon button if you have a very specific case but in general it will be always the same the previous page a back etc. For material well I need to do everything I need to
declare an icon button and an icon with the correct doable and put it everywhere or refactor it inside another component and use it everywhere.
Okay the last parameter and for me the more interesting one is the overflow icon. The overflow icon will be used only when you reach the maximum of action declared at the top and use inside my contract. I have you cannot see it but I have a max
parameter inside my components and so I have only I have a scope tool I have only one component so here more it is the three dots you can see everywhere in all application and this parameter
will use internally another component which is internal and very useful because this component have three interesting parameters the first one the list of action you want to show in the overflow menu in the drop down a state to switch if you want to show or not
the drop down and finally the overflow icon you configure at the root level and these components use internally another vitamin component so here vitamin mu where we have the drop down and we have here a very interesting contract because I don't know if you
already use drop down with material we will see just after but it is from our opinion a very bad pattern to to declare a drop down so here we have an anchor to know exactly what
what will be the the component where you want to attach the drop down and the children for the list of item inside the drop down so the usage is very simple just I declare overflow icon with my components more I use the states to expand it when I click on it and give it
give the state to my component to enter from me the show or not of the drop down the material implementation require require to you to implement all the logic of the drop down
so here we have a box with the first declaration will be the anchor the second one will need to be the drop down menu and compose will link these two components to know where is the anchor
and so the implementation is simple but you need to take care by yourself to know when you want to display this icon because you can declare here all icon button you want so for example you
declare six icon button and material artifact don't know if it will you will try to display here all icon buttons so it doesn't have any logic about that you need to implement by yourself
okay what's next okay well first vitamin love accessibility you need to know that the design system
the design implementation of vitamin which 95 percent of the RGAA rules this is a french standard for accessibility which come from which we see standard and we want to
and we want to have technical implementation at the same level so for vitamin compose we already have a good score because we we are using internally material components and they it have already a good score but we have some custom components and some variants from
existing component from material so we need to work more about that to have a perfect accessibility second we want to have so much more tests and two kind of tests the snapshot
testing and we will use map which is a very good level way to do that which doesn't require any device to be to run tests and we want to add some testable with compose test to test the
contract of components and the accessibility of our components but you will have a presentation just after that just after me about it we want to work up on the tokenization or so of our components so i don't know if you know but the material tree have all our components
tokenize but not material too and so we want to tokenize first material two components and after that tokenize vitamin components it will be it will be allowed us to
generate a lot of things after that because if you have everything tokenized foundation and components you can generate everything that will be very interesting and finally vitamin love material i make a lot of opposition between these these two library
but here you have the vitamin time composable we where we inject all our semantics about colors shapes and typography but you can see that we also use the material term components
and inside this material ten components we we we provide the mapping between vitamin compound vitamin semantics to material semantics so you can use vitamin and material inside your project so pretty cool i finish some reference everything is approaches the figma projects
and all technical implementation for web android ios so if you want to check them you can there is also a vitamin slack if you want to exchange with designers and developers on this project and
i have a personal link here a conference for all which is a personal project with my gdg activity this is a conference application for the defsl and this application have true uh use true design system material tree and vitamin so see if you want to check
how to use vitamin in a real life project you can just check the code and make your own opinion thank you and if you have indication i'm here yeah
it's a if i can explain the categorization well you can find you can see here on the bottom
components you have a token to say there is a surface there is a padding but there is a start padding and end padding top button but also a padding between the icon and the text and you have a token for everything so you have the structure of a component with for all concept
inside this component so in we you have often in the system ecosystem a pattern name the atomic design system where you have atomic and you have molecule etc
token is before atomic this is the most small it is the smallest part of components of a concept inside the design system another question no great i didn't just before i
before i give the microphone here you have a QR code to give feedback so it's it's a link to the first form notice that it's the fourth time for me in english
so please give a feedback and say to me or it was thank you