Huyen came to tell us how she became a software developer, her experience becoming an Android developer, a speaker. She also told us about some of her hobbies
Her talk was about the new features inside ConstraintLayout 2.0, with a special focus on MotionLayout. We saw how MotionLayout can help you create awesome animations in no time.
Huyen is currently working at Trello, which many of you may use. She is also the co-creator of Android Dialogs: a YouTube channel where they interview many Android developers. You probably have seen her in one of the many events she attends.
1. The video
You can watch the full episode here:
2. The interview: Main questions
- Tell us a little about your story. Where are you from, how was your childhood, and what led you to start in software development?
- I think that when I knew about you, you already were in Trello. How was your career progression to get there? What do you think that it helped you the most?
- I can imagine that giving to the community (talks, interviews, events) has helped you in many ways. Would you recommend it to anyone?
- Did you have to fight many fears to be able to do it? Things like impostor syndrome, public speaking, the frightening post-talk questions… 😀
- I’m especially interested in Android Dialogs, your interviews channel with Chiuki. Doing on-site interviews seems especially difficult, because you have to take the equipment with you… How do you organize those talks?
- Apart from doing all those great contributions, what other hobbies do you like to spend your free time on? I read something about games 🙂
- And what about food and cooking? I see you sometimes share your new recipes.
- When you think about your long-term future, how do you see it? Do you think you’ll continue in software development for the rest of your career?
- If you had to recommend just one thing to our listeners, about anything, IT related or not, what would be?
Questions from the audience
- What’s your routine or tricks to learn new things?
3. The talk: Cool ConstraintLayout 2.0
ConstraintLayout has had quite a year in 2018: the release of 1.1 in April and the announcement of 2.0 in May. The ConstraintLayout team has certainly kept us busy with frequent updates, optimizations, and new features including groups, barriers, circular constraints, and optimizations. As if that wasn’t enough, ConstraintLayout 2.0 now adds a Helpers API and the MotionLayout, which builds on the capabilities of ConstraintSets to give developers featured-packed and fine-grain control in building animated transitions within a layout, including keyframe animation.
In this session, we will look at concrete examples and code (and also adventure to the design view and motion editor) to show how to use these features to do really cool things with ConstraintLayout. We’ll also talk about the features in ConstraintLayout’s future.
Link to the repository: Cool ConstraintLayout 2.0
4. Raw transcription
The transcription has been taken from YouTube automatic subtitles, so it’s far from perfect. In any case, if you prefer reading it, here it is:
[expand title=”Expand the generated transcription”]
hi everyone and thank you for being
today here with here with you and me in
the end she could make it I told you
that he were she was having some issues
with her network connection but in the
end we go we could sorry one question
one second I listening to myself and
this is very and so as you can see he
she could make it Indiana and we are
having her here to ask a few questions
about herself of her career and also she
will talk us about some new features of
the constraint I out and also the
emotional I also and really start I’m
really happy to have you here thank you
so much for being this time with us oh
I’m so happy to be here today thank you
so much
so if you want first for the ones that
don’t know much about you tell us a bit
about you what you’re doing right now
one of that yeah so hi everyone I’m pour
into it down I am an Android developer
I’m based in the US in Colorado and
currently I’m working on the Trello app
the Israel Android app for Atlassian so
and I’ve been there about three and a
half years now so yeah I think I for me
you have in all your life working there
because I don’t know if I if I met you
before that and it’s I agree doubt that
I’m sure that many of the listeners use
today so it’s great isn’t it an exciting
project I guess working remotely and but
we get to we get to that point later so
if you want tell us a little about your
story first where you are from how was
your childhood or what you let you to
start in software development
ideal without your background yeah yeah
so I was born in the US and it was
really funny because I got into software
development kind of by accident I was in
high school and we had to have technical
requirements I think back then I wanted
to be a journalist I’m not sure
or maybe a doctor I kind of what between
the two is quite different but in my
high school we had to have technical
requirements and there wasn’t a lot of
classes and the first the first one I
took which is a typing class because it
was easy and I figured why she get I
love the I think not sure when this was
and I don’t know want to say exactly
what it was but you know I was getting
into like the internet and like just
doing things on the web and I was like
well if I can type faster I can probably
use the internet faster so I took a
typing class and unfortunately I still
need one more credit and I just happened
to find out that some of my friends were
taking a programming class C++ and I
pretty much was desperate I took it out
of hey why not my friends are taking it
I’ll have help and I’ll have no people
but when I took the class I kind of
basically changed my life I figured that
oh I love this this is exactly what I
want to do so I basically changed around
to being computer engineer also I love
video games so I figured hey well I love
video games as well so maybe if I learn
how to program and make that my career
maybe I can develop video games as well
I didn’t end up doing that I took a lot
of turns in my life I did web like rich
and applications in college I got a job
to be that uni and then I kind of just
stuck with web applications and then I
was in the flash world way back in the
day when flash was still a thing that
people actually wanted on their machines
I actually was working on this it was
like a framework built on top of flash
called flicks and I was doing that for a
while it’s actually when I first started
speaking this is oh gosh like 10 years
ago and you know if anyone remembers
back then Steve Jobs when he was still
with us wasn’t really a big fan of flash
and started letting people know how much
she didn’t like flash and it kind of
seemed like the world was moving away
from that to html5 and things like that
and so I had to make a choice I had to
change my technology
lucky for me one of my friends at the
time who was also a flex developer I was
really into this thing called Android
and he convinced me to basically learn
Android and hop on a job with him
because at the time I was a working for
a consulting agency so just hopping from
project to project and then I was
lucky I find it that I loved Android and
I love mobile and yeah and that’s that’s
how I got to Android it was a little bit
tough back in this was like uh eight
seven years ago there’s a lot like
weren’t a lot of Android job so I did
iOS for a while because there are few
miles jobs but it was still mobile it
was still great and I think I did while
I was still with that consulting company
I switched from Android to iOS and maybe
back and forth a couple times and the
last which off I did was Android and
that was kind of just it I decided to
stay because I just started loving to
get involved in the community and
meeting with these people and really
getting into Android and it kind of just
stuck and I’ve been there ever since and
that was like my last job before Trello
and so I’ve been at chellah ever since
but and also fun fact that friend of
mine who got me into Android is now my
fiance so we were very born couple we
just talked mostly about Android but
yeah so I for for many different reasons
andrew is a big part of my life I can
imagine and how how was your progression
to get into trailer what do you think
that it helps you the most to to get
that opportunity networking actually
it’s really funny I I can I can think of
the exact moment where I actually got
started to get the job I was actually
very lucky to get to IO for the first
time and it was really just talking to
people and just kind of opening up and
meeting people and asking what they do
and having them ask what I do and I Amit
Hamid
he is currently I think a kind of humor
product guy now but at the time he was
like the mobile lead and I just got to
know him he thought I’d be good for the
team and the rest is history
so I mean I I strongly believe that a
lot of it was kind of getting out there
and not necessarily as a speaker or as
doing anything like particular but just
getting out there and meeting people and
engaging with people that are interested
in what you do or are the same field as
you and just making connections I mean I
think that’s something you hear a lot is
networking but I mean literally just
going to talk to people and a lotta that
I think with that obviously your
experiences and
trying to you know like keep your skills
up and get a broad range of experience
is super important but really like the
the doors open when you meet people and
you share your experiences with them so
for sure yeah that’s going to meetups or
you know different events I think that
helps a lot and also gives you a idea of
how the the underworld is right now on
whatever opportunities are and where
what you can do to to achieve those
goals I think it’s it’s great yeah and I
just want to make clear like um I don’t
I don’t think I said anything like crazy
genius are dazzling about Android I
think I just literally was complaining
about things at work things that I
didn’t like and the things that I wanted
to see change and I guess I complained
well enough that that made me see me
like I mean just I was speaking very
honestly about my experiences and things
so yeah I mean just just having that
connection and having those experiences
to draw from I think are really like
really important things so you never
have to worry too much about feeling
like you’re like a star or that you know
everything is really just people people
appreciate you and who you are in your
experiences for sure so that’s true
and at that moment were you already
doing talks are they interviewer yeah
what do you think yeah so it’s funny
actually that aya was when so I had
already been speaking so I was I started
speaking about ten years prior when I
was still doing flex and so I had
stopped a bit you know when I was going
through and job changes I stopped for a
bit I oh but I always loved speaking I
think I got to where I am my first job
out of uni was I mean it was it was good
but it was very corporate it was very I
felt very isolated from other engineers
it was it was a good job but I I don’t I
I wasn’t I wasn’t able to I guess
explore the things I really loved in the
same way and I think that I would have
probably stayed in that job if I hadn’t
have been lucky to go to a conference
and to have a
well now a friend but someone that I was
working with go around and like say it
introduced me to people and say hey you
should go talk to these people or hey
should go we should go like here and and
like meet these people and learning how
those connections work and I really
think that that was very viable for me
to kind of open up and say hey like oh
this is a community like there’s people
out there that talk about these things
that we love to do it wasn’t just that I
go to work I do my job when I go home if
I love and I’m passionate about what I’m
doing that’s people that can share in
that passion so I was speaking back then
because I wanted to kind of kind of
really dive into it and also give back
because I felt like that really changed
my life a lot I’m having those
experiences so I I was speaking a little
bit I was getting back into speaking I
think by the time that I had come around
I’d done a couple of talks those were
like my first Android talks it was it
was really nerve-wracking to get back
into it
and Android just felt very intimidating
at the time I just it was new for me you
know there’s Androids always got its
little things so at the time I got the
Trello job yeah I was starting to speak
again and it was funny because that IO
shook and I had like already kind of
plan to do the channel my my YouTube
Partner of cheeky John and we had
actually were going around interviewing
people we just hadn’t like published yet
we were kind of just doing the initial
interviews so it was kind of like
Android dialogues and Trello all kind of
happened for me in the same year I think
that was so it was a really good year
for me I got a new job that I loved with
a team I love for the product I love and
just got to start this YouTube thing but
I also loved so yeah yeah and I wanted
to ask you I filed a little more in in
all these things you do what if you have
had to fight many fears to do it I know
that people think that people that are
used to do talks probably lose those
those fears and it’s easier for them
obviously the experience is a it’s a
point but can you tell us how it was
back then in the
in the first talks on how it is now when
you have to put in inference of a lot of
people to talk and all that yeah no oh
my gosh
impostor syndrome is something I have a
lot I I still have it like every other
day now maybe every day and I mean I
want to say something reassuring I’m
like it goes away but I think I guess it
depends on who you are for me it never
quite goes away and I was really
intimidated bike then I think I’m still
always really nervous whenever I’m
giving a talk it doesn’t matter if like
it’s a small room or a big room or if
I’ve given a talk by 10 before or once
before or never
I’m always really nervous and I think
it’s hard not to be nervous
like you care you know you you want to
do a good job you want to you know be
worth it for me I want to be worth
people’s time and so that always makes
me nervous and of course like it’s so
hard for me I always worry am I being
technical enough am I did I say
something wrong did I say something
incorrect or people don’t think I don’t
don’t know what I’m talking about that
never goes away
but like the more you do it and like the
more that you know you kind of find your
voice or the more you practice some of
those things go away you kind of learn
your voice or learn what you like to
talk about you learn how you like to
speak and you know hopefully you get
feedback where people say hey they learn
something or hey they appreciated your
talk and that kind of comforts you a
little bit and you kind of feed off that
and you take that little but you take
that first little like bits of like
positivity and kind of like feeling that
what you did was worthwhile and you kind
of build on that and build on that and
you kind of use that as a shield I know
for me I don’t think I don’t think the
imposter syndrome and the fears will
ever go away but as long as people like
seem like they’re getting use out of
something that I do I’ll continue to do
it and like Android dialects were the
same way I I think it’s pretty easy to
see like the first few episodes or few
interviews I was very nervous I was very
lucky to Keshawn knows everyone and so
that was really helpful to get us
started she was a look like that’s kind
of convincing people to come on camera
and she’s awesome you know obviously
very awesome she’s very outgoing she’s
very a great speaker and just very
out there and for me I think I wanted to
be like that and I think sometimes I
can’t be like that but I was also very
nervous like I think our second episode
we released was with chet haase and torn
or be and I think if you watch that
interview I barely talked at all I was
so nervous and true he tried really hard
to help me with that but it was really
difficult they were also very kind but
um you know and I think as I’ve
continued to do this I’ve gotten better
you just you know can you kind of just
again you learn your voice you practice
just like everything else so you just do
it again you make mistakes you reiterate
you fix your bugs and you go back again
it’s the same with speaking and
interviewing or just doing technical
things that is with anything else and
yeah I don’t think it’ll ever go away I
still kind of try to do the best I can I
still try to make it worth anyone’s time
that spends time on me either with
talking to me or listening me speak so
um but just I think definitely
celebrating the things that you do that
you do well and appreciating that in
yourself is really important and being
easy on yourself like I definitely work
hard but it’s easy for us to be our
worst critics it’s easy for us to see
the things we did wrong and think of
them as about a thousand times bigger
than they are
but celebrating like knowing what you
should do better but also kind of not
being too hard on yourself helps a lot
it’s hard it’s much harder to just to
just either to say it in the did you and
also like talking to other people
getting support is very helpful yeah
yeah that’s true in my own experience
what I think is that you learn to and
you don’t know worry about the things
that can go wrong even if they go wrong
maybe you do realize that nothing
happens that people are not there to
judge you yet just to learn from you so
that really helps a lot and in my case
it’s always the same I also get very
nervous I’m nervous right now I am when
I do talks because I’m I’m really shy
but you learn to to canalize those those
feelings and to make them not to to
interrupt you or to make you go away
from where you want to tell and
that’s the thing that the practice makes
zero feelings don’t go away but at least
you can learn to live with them yeah
yeah absolutely just like a muscle that
you that you exercise just the same
thing I totally 120% agree and you
mention a couple of times and retire
looks for the ones that you don’t know
about it I probably nobody but anyway
tell us a little about this and how they
became art yeah yeah sorry so um for
those of you who aren’t familiar with I
guess the channel um so my very good
friend shiki-chan and I we produce a
YouTube channel it’s called Android
dialogues and our tagline is that we
have bite-sized conversations with
people in the Android community and
really that’s all that is we meet with
people in the Android community and we
talk about what they’re doing so we’ve
talked to developers of course designers
managers and really if it’s if it’s if
is related to Android development even
if it’s kind of more career related or
like design related we talk about
everything and so we’ve been doing this
since I think we first published a video
September 2015
that was like my big year and we’ve been
doing it ever since
we try to be weekly we’re not always
it’s difficult when you have a proper
job and doing your side things of course
I’m sure underneath oh you know like is
it a lot there’s always a lot going on
but yeah it’s it’s been really great I
think you know when I started to get
back into the Android community you know
I think Kaushik go Paul and Don Felker
were working on fragmented I think they
had just started it that year I might be
incorrect on that and I’ve always loved
I’ve always loved the idea of podcasts
and YouTube in the internet media it
feels like these days if you have
something to say there’s so many
platforms for you to you know put your
voice out there and easily just like for
us normal people
not just like you know people in the
industry and I always wanted you to like
that I was wanted to have a podcast but
I also have a very short attention span
I have difficulty paying attention
longer than 40 minutes that’s just me I
just it’s just a failing of mine and so
I kind of wanted to do something almost
for me where I wanted to talk to people
in the Android community but else keep
it
relatively short relatively short but
just be able to kind of talk to people
and I strongly feel again that I would
not be Who I am my career and like as
like skilled or as happy or as like kind
of where I am without other people in
the community putting themselves out
there and sharing and I think that a lot
of times is there’s you know we’ve every
community I think has very visible
people people that do a lot are kind of
famous that you kind of everyone knows
but there’s so many people doing
wonderful things that you may not know
as well just because I don’t know maybe
you’re not in the same geographic
location or you just haven’t been
exposed to them and so I love the idea
of just celebrating everyone and anyone
and everyone that does something you
know wonderful or interesting or cool in
this community so I brought the idea to
check each on because we both were going
to i/o I was so excited and I was like
what do you think if I did this podcast
thing and she said well I have a camera
my new video so we ended up just kind of
working on it together and it’s kind of
that’s kind of just history we’ve been
doing it ever since usually we’ll go to
conferences and talk to speakers but
other times we’ll just talk to folks
that you know have something cool to
share so yeah and that’s Android
dialogues you know what I find
fascinating is that you do it life and
in any event how do you prepare all that
do you work with with the studio on your
luggage it was funny because I just
started out with two keys camcorder and
I had a small audio recorder and then I
guess like anything else you just
something breaks and you try to fix it
so with us like we had a lot of echo or
reverb like the first time so we’re like
okay I’m gonna get it better mics set up
and it’s just like any other hobby or
something you start just building and
building and now I have like several
kilos of equipment that I’m bringing
with me everywhere I have like a camera
I’m kind of the crazy one uh she cooky
has is less crazy than me I’ve I have a
setup with lights and like with a camera
and with microphones and all kinds of
stuff I’m very lucky that my fiance
who’s also again like I said an Android
developer tends to come with me to
conferences but generally the way it
works is that
I’ll try to find folks to talk to you
the easiest thing to do is to look at
the speaker’s list and see Oh who’s
talking who’s gonna be there it’s a good
way to find like just guess and a lot of
times is also I think easiest in the
guess just because they’re kind of
prepped and ready to talk about
something but you know we we try to find
I which we try to find really hard not
to talk to same people twice I don’t
think I don’t think we really talk to
anyone of the same guest twice that we
did have a agenda more let Dion twice
one for doing their we’re gonna want to
talk about but but we try to find new
people all the time because I my goal is
to like kind of celebrate all the
different people we have in the
community so I try really hard to find
different people so I usually go look a
speaker list or if there’s someone I
know that I kind of know that they just
think cool I’ll just ask them if I know
they’re gonna be at the conference or if
I know I’m gonna be in their area and
then I usually just hug a bunch of
people see who’s willing to talk to me
for you know 20 minutes and then I just
set up somewhere hopefully convenient
and then hopefully come people come stop
by and just chat with me for a bit and
yeah it’s a bit of work setting up and
bringing the equipment’s I’ve gotten
pretty strong left all our things around
but it’s it’s really fun and I just I
just really enjoy it and I hope I hope
it’s not too much Anna so I was not too
painful in people that do it which I
really appreciate everyone who’s ever
been on but yeah that’s pretty much how
it goes I just kind of bug people to
talk to me and then put them on camera I
I really appreciate although all that
work because I I try to record my videos
too I mean it’s pretty difficult and and
seeing you do it out of your conference
comfort zone in any place and prepare
all the equipment and all that that’s
that’s really missing yeah it’s tough
sometimes you know places aren’t always
perfect like you’d love to have a
wonderful soundproof studio that’s
well-lit sometimes things are a little
bit echoey sometimes the cameras a
little bit off sometimes I have
something in my teeth except that
actually has happened where I look at
the videos like oh my gosh I should have
had lunch before I talked to them
yeah I mean I I think people are
actually just really genuinely happy to
see our interviews I think for the most
part and I’m worried about what I have
in my teeth so it’s a challenge but it’s
still fun I think and our dances in
general fantastic and apart from all
those contributions to the community you
do in many different ways what other
hobbies that can be a little way from
from development you know you have I
read something about games video games
in general I also table games I think
and all that yeah yeah I’ve always been
a big gamer my parents got us a NES when
I was when we were little and I’ve loved
video games since then again it like and
I mentioned it kind of drove my passion
to be an engineer that kind of dropped
off I I know that the games in history
was pretty tough and I think that I I
say I chickened out but I decided that I
kind of didn’t want to go in that
direction I still love video games I
think they’re amazing and it’s kind of a
good time to be someone in the video
games it feels like I don’t know they’re
a little more mainstream than they used
to but I like all kinds of games I love
for games a lot of my family and my
friends are board game people I love
card games my dad kind of you know that
was kind of one of our things just to
sit around um I remember when we were
little where I live usually we’d have
thunderstorms in the summer and the
lights would often go out and I would
actually love for the lights to go out
because then my dad would just sit
around play card games with us games was
kind of like it’s one of those things
that you like to do together yeah mostly
games I also think the audio the audio
videos also become kind of a hobby I
mean it’s kind of cheating because it’s
so Android related but I really think
that audio/video production is really
fascinating I’m just like anything else
tech related there’s like so many levels
that you can get involved in and
research and there’s so many aspects to
it it’s really neat I’m not any good at
it I’m not saying I’m any good at it
but it’s fun and it’s it’s fun to do
especially again like with YouTube and
with the Internet and seeing what people
can do like with like few resources and
and the kind of beautiful amazing videos
and documentaries and like kind of
essays that people put up on the offer
other people enjoy
I like doing whatever I can to paly
imitate that that’s pretty cool and yeah
like I guess what I’m not doing that I
love to cook as well my has or my fans
and I both love to eat and I’ve I tend
to cook a lot when I can when I’m not
editing videos are working I really do
love cooking and it’s another thing that
I’ve also kind of gotten to like deep
holes and I feel like everything I do
it’s gonna turn into like gadgets or
like figuring out like the optimal
technique and like everything else so
yeah if you follow me on twitter at
cream cone monkey and I apologize but
every now and again when I make
something isn’t half-bad like to post it
so if you follow me and you notice food
that’s because I’ve kind of been really
into yeah but it’s nice to see what
people do in their free time other
people you may follow for other
different things because in the end its
we are a whole person and even if we try
to compartmentalize our lives in the end
we are a whole person and everything
mixes and and yeah I think that it’s
seen the hobbit hole of other people
make you understand better how they
think about they what they do and that’s
that’s nice I love what I love seeing
your your photos about cooking too
because it may be because I like cooking
too yeah I like what’s in your what what
you get on there but yeah it’s it’s
another nice core game yeah I mean and
we all need food right so I’m just
trying to be ready for you know when the
zombies come and we all have to start
cooking your own food and can’t go to
McDonald’s or something I just but yeah
I do agree I think that especially as
engineers I feel like it’s so easy to
get wrapped up into work especially with
some of the pressures of tech industry I
didn’t think that yeah you should
nurture like the whole you and and and
explore things and and push your passion
and other things as well like you said
whole people like and and and young and
letting that side of yourself show is
it’s a
sighing and I like it’s likewise I like
seeing in other people too yes I totally
agree that we need to to disconnect a
little bit from from our world because
otherwise we can get consumed I I had
some sown years a few years ago that I
only did under it including get away
from that and that’s so that’s also not
not very good so having some hobbies
that can you get distracted on and focus
on other things I think it’s it’s very
good too
yeah I strongly think that’s important I
mean it is there’s a lot of pressure
especially when you’re younger and kind
of beginning in your career there’s a
lot of pressure you just kind of work
that 60 hour weekend and get things done
and build a career but I think that it’s
easy to burn out or lose your passion
when you know it because it can become a
grind we got to ship ship ship ship ship
and yeah I think as I’ve grown older
like you can balance out having a very
full like dedicated passionate career
but still like be yourself and I think
the being yourself and having something
outside of work it becomes more
important especially if you want to stay
in here and you want to stay
enthusiastic you have to like you said
in disconnect it’s so important take
care of yourself I’ve actually also
really been into like exercising and
taking care of myself like the last few
years and it seems selfish it seems kind
of silly but it you know there’s you
know taking care of yourself kind of
makes you know taking care of you know
good food good exercise getting away
from the desk
I think it does make for a better career
overall and a longer career sure yeah
totally and getting back to the end of
this first part when you think about
your long-term future and how do you see
it and do you think as you continue
doing so well development on your life
have you thought about it because
nowadays is difficult yeah I I honestly
believe that for better for worse that I
don’t think we all I don’t think Android
will look what it will look like in five
ten years I do continue want to be an
engineer
do software whatever that means you know
in 10-15 years I know a lot of us kind
of have that question of do we want to
stay an engineer or do you want to go
into management and to be honest with
you I love leading teams and I love
leading features I don’t think I like as
I see it now I don’t think I could ever
get too much away from being hands-on
with engineering so I kind of see myself
still software development you know
maybe you know maybe leading a team but
still kind of hands-on and doing cool
things that’s kind of just it’s just
it’s still like my passion and you know
I think that if I’m not doing mobile
that’s okay I would like to stay in it
as long as it’s like a thing but I mean
who knows what kind of interfaces or
what kind of device so we’ll have in
already report and we’ll start like you
know mobile development even be like how
we picture it but I’d like to be in it I
love the tech space I love seeing what
tech is enabling us to do and how it’s
changing the world mostly I still
believe mostly for the better sometimes
not so better but I think being in it
and trying to make a good impact as
things change and as technology allows
us to more things kind of just where I
want to be so yeah I think I’ll still be
in tech hopefully programming until the
until they’ve automated all the
programming as well so you have to
recommend just one thing to a listener
or anything that is related or or not
what would be oh my gosh it’s so hard I
guess just in general I would just try
to I can’t I don’t think I could
recommend one specific thing but I would
say like just keep trying to see what
other people are doing be inspired I
think that it’s hard to keep up like I
know like after every conference there’s
like 20 talks and I was like oh my gosh
I have to go 20 talks and take notes I
wouldn’t even let go that far I think
just you know and again we talked about
work-life balance and trying not to
inundate yourself with work things but
you know try to stay you know kind of
have a vague idea what people are doing
like watch talks but
worried about consuming and remembering
everything kind of see what other people
doing see what you know people that you
respect or that you think are cooler
doing and just stay inspired like keep
consuming keep assuming more things um I
think that the thing that I’ve learned
most about his career is it you’re not
gonna be doing the same thing for five
ten years in a row
and it’s hard sometimes because you know
we all have that all those like
frustrations with like something not
working or learning a new thing and
things changing and it’s intimidating
and frightening but this is kind of how
being an engineer is and that that part
of being okay with that is just
continuing to learn like enjoy learning
enjoy things being disrupted and try to
stick with it you’re not going to keep
up with everything that’s impossible but
just be open to things new ideas see
what other people doing and be open to
them I think yeah be open yeah just be
open and just like watch read everything
I know as much as you can but still take
time you’re not tech stuff oh it’s my
kind of very general yeah that’s a great
recommendation and as you know I ask
questions to ask everyone to to be able
to ask questions to you and then it flow
on the social networks on and also
through email and I go – final question
for you or an extra question that is
from Lizzy kodi neeya from Twitter see
he asked me to ask her how you learned
well what is your learning process for
new things your routine what what do you
do for instance when you have to
investigate what you are talking about
right today what’s your process – to
learn it that’s a great question because
I just mentioned that it’s really
important to learn new things um you
kind of have to have a lot of strategies
you know the best best case scenario is
that you’re doing a new thing at work
and you get to use some new API like
that’s that’s a dream right that
hey I have a new feature to write and I
get to use motion layout for it that
doesn’t always happen so you kind of
have to have different strategies I
think the most important thing is to I
think well I want to say force yourself
to learn is a little bit strong but I
think that holding yourself accountable
to learning it is a good strategy set
yourself a deadline set yourself a goal
and have something come out of that so
something I’ve done like and this is
like a look this is totally I think a
totally fair strategy is to say okay I
want to learn this thing and in order to
make myself learn it I will commit to
giving an introduction we talked about
it at a meet up in two months I say that
and I caution people not to just read
the documentation and go just and read
documentation people but you know having
a goal where you can say okay I want to
learn how to do this thing I’m gonna
want to learn the things that are hard
that the documentation might not cover
or you know if a new release came out
I’m going to focus on the new things and
I’m gonna tell people about it and I
think that’s like it’s like personal
accountability I think my friend
Christina Lee called it like that
accountability is that you have to kind
of you know it’s just like school right
would you learn it’s just sometimes like
at school like I don’t think I would
have studied certain chapters if I
didn’t have to have a test on it so you
kind of have to test your knowledge if
that can’t be at work then do it for me
too but like at work you know any
opportunity you can I would I would try
to push for new things and especially in
mobile you have to do that I think
obviously like the ability for you to do
that will vary based on what your
product is like obviously if you’re with
a big company that handles personal
information financial information
there’s amount of risk that you can
visually have so much risk you can take
but at the same time part of your job as
an engineer is learning how to gauge
risk and learning you know how to say
okay I think it’s safe for us to try
this new thing here and providing
yourself and your team the appertains to
learn that because I mean there’s a risk
in staying keeping old technology anyway
so I think that something that is also a
good strategy to do is just to learn
when when a new thing will benefit you
and when you can
integrating it at work and that’s also
kind of a way that we learn new things
one of my team teammates vishnu raj
event is really good at this he keeps up
with the new things and when he sees a
situation where you know it’s low-risk
it’s like kind of isolated it and we
would benefit from it
he just says hey why don’t we try this
new thing and of course we discuss it
and decide hey should we use this new
thing but I think keeping that question
of hey is this going to be Bennett is
can we can we benefit from this and can
we try this well let’s keep that at the
front of your mind I think and that way
you create again situations for yourself
to learn new things and for other people
to learn new things and I think that’s
just as important and I’ve said things
like have a side project like if you’re
like many of us and you have a side
project or a dream app that’s obviously
a great place to learn new things we
don’t know us all the time for it but
yeah like finding opportunity at work
you know just try new things try to give
a talk about it challenge yourself those
are all kind of like my different
strategies for learning different things
it depends on what it is of course but
it’s a good toolbox for trying to
sneaking in learning new things yeah
personally the way that I found that it
helps me learn something but in the
deepest way is to teach it because when
you teach something people will ask
question that you haven’t done to
yourself beforehand and that helps you
keep growing on that matter because even
if you use it on your own art so
probably people that are around you are
learning with you on and using the same
techniques that you are using but
somebody from the outside suddenly
thinks about something that you hadn’t
thought before that you gave for granted
and that makes you realize that you
didn’t understand it completely yeah
yeah and I think that’s the intimidating
part of like doing this kind of teaching
people but it also can be very rewarding
like you said like people will have a
perspective or think of it something you
didn’t think of and it’s easy to be it’s
a I’m scared of that all the time like
oh that’s the question I don’t know
that’s okay like that is totally fine I
again easier to say than to feel but
that that’s a great I think that’s a
great point I mean everybody’s learning
so
there’s probably something that you just
said that someone else didn’t know so
just kind of it’s a given back and forth
and yeah it’s it’s very rewarding and
and definitely it definitely pushes you
I think when you learn I think that’s
really totally on point yes it’s on a
great a great thing also that it even
when you are giving to people they will
receive that in exchange and you learn
the topic much more deeply that if you
didn’t do it self yes another thing to
do encourage people sharing their
knowledge I think we learn a lot in the
process yes yes so it’s a little bit
selfish but also it’s like altruistic
and selfish I win wins exactly all kinds
of perks for you okay verify so thank
you so much for this part of the
interview and now when when you’re ready
we can start with the natok
okay great let me just get a couple of
notes up so yes like I mentioned so this
is actually is something that you know
I’ve kind of forced myself to learn it’s
like a brand new thing and I guess for
you just to let folks know right I think
one of my favorite things about being a
mobile developer is you I I’ve always
been kind of attracted to you I I think
the idea of working on on things that
people interact with and the kind of can
be delightful or helpful is kind of what
gets me out of bed in the morning and
kind of what can you see my screen
you had a bed in the morning so I
absolutely love UI things and so one of
the things that I’ve been most excited
about the last couple of years is
constraint layout right is constraint
layout which hopefully folks have been a
little bit familiar with but I guess you
can kind of think of it as there we go
you know for those of you who maybe have
not tried constraint layout yet you know
it’s basically this brand-new layout
that allows you to position and size
things relative to each other but in a
more efficient way and I think a more a
high-level and more kind of like
organized way than we had before with
sailing relative layout and things like
that and so I’ve done a few talks on
constraint ly I think there’s a lot of
amazing features on it so this
particular talk is called cool
constraint layout but it’s 2.0 first
because it’s kind of a second version of
this talk
I’m not going to talk about the basics
of constraint layout but it’s also 2.0
because we’re going to talk about
constraint layout 2.0
and I think it’s really interesting
because last year around April
constraint Liat 1.1 was announced and
then about two seconds later they they
well they released 1.1 then in about two
seconds later they announced 2.0 and
there’s a lot of really cool things
about constraint Leah and I actually so
I’m gonna say I’m a huge fan of the two
gentlemen that work on constraint layout
John Hufford and nickel over art on the
Android team and obviously like just as
an engineer they put so much thought and
also they listen so much to what we need
and I think that if you’ve used
constraint layout one but you haven’t
gone to constraint layout like 1.1 and
feeling that they’ve kind of taken in a
lot of feedback like listen to the use
cases that people are presenting and try
to build on top of what they already
have to make layout easier and I think
that overall you know like layout and
Android can be messy especially if
you’ve been doing Android for a while
you know at some point you know
someone’s gonna ask you something weird
hopefully they ask you to do something
on the box just like you know use you
know like the nice material components
that we have now or things out of the
box and just call it a day but very
often you have to do very specialized
things and animate something or write a
custom view and things like that I think
that you know like other things that
Google has been introducing they’re
trying to raise the level right so like
you know material and like you know like
the support library and like jetpack I
feel like it Google is trying to give us
all these tools to kind of give us a
better baseline right so we
has to do less custom work less kind of
fiddling and kind of concentrate more on
building beautiful ui/ux and I really
strongly feel that there’s a lot of
really great ideas and constraint lay
out that kind of contribute to that so
anyway so I’m not gonna go to constraint
layout too much but basically idea is
that you define constraints basically
relationships between views to size and
position things and that’s yeah that’s
pretty much how constraint layout one
word and in constraint layout too
there’s kind of like a lot again a lot
of features that I think that are really
good answers to common problems that we
have so take on demonstrate this I wrote
a little app with kind of using
different features so use my emulator
I’ve got a couple things going but I’m
actually gonna go back to here for a
second so this is something that I know
I’ve run into and it’s kind of like
tricky positioning and I think that a
problem I know I run into when I’m
developing a new screen is that you get
designs and they’re they’re beautiful
everything is kind of looking lovely
everything is kind of proportioned well
and then you go and sit down and you
start putting in real data and things
don’t behave the way you want them to so
generally in constraint layout you you
kind of position in size things in a
relative layout like way right you say
to the start of this to the left of this
to the to match this thing to wrap its
content and those are pretty I think
concrete right you can kind of very
easily see the connection between the
view your positioning and sizing and the
view that you’re kind of doing the
positioning and sizing relative to but
there’s a lot of really wonderful
features in constraint layout that are
more we’ll call them virtual helpers
where so technically their views but
really they there are things that aren’t
rendered to the screen but that just
help you describe relationships in a
better way and barriers are one of those
things so if we look at this example so
this kind of happens we do this a lot in
Android right we have an image yes and
text and we wanted to kind of position
them like with the relationships to each
other so right now I have an image
and that image is aligned it’s start
edge is aligned to be what did I
actually lied to is aligned to the end
of this title so as my title like
changes so if I change the actual
content in this title the image will
actually range to align with the end of
it with this fine-ish
but as you can see it becomes really
dependent on the grader that I have in
here and if you see here I have a long
title but a very long subtitle then I’ve
coming into this like you know clipping
issue and I mean I guess the really
naive thing you could do it’s like well
okay the Scriptures are kind of long
maybe I’ll just go ahead and instead of
positioning this title I’ll position it
next to the description cool that works
until obviously you get some other data
and so obviously I mean and I’ve run
this exact issue and you know there’s
before there was no good way to figure
out okay what do I do now there’s
barriers so barriers are virtual
guidelines so if you’ve used constraint
land a bit you know that there are these
kind of like helpers called guidelines
which look very much like if you look at
the material guideline in material
design guidelines and you see like he
lines the idea of like you want to align
content along lines there are these kind
of like views that basically act as
guidelines so they be they form
horizontal and vertical kind of points
that you could anchor views to now
barrier is very similar to that but
rather than say being a specific you
know percent across a parent or Pacific
a specific xy-coordinate barriers
basically allow you to define a kind of
a guideline but based on which view and
a group of views is furthest along in
one direction so the easiest way to kind
of show that is if I say create a
barrier and again a barrier like under
the hood is a view but it’s a view that
doesn’t get rendered and is a view just
there for positioning so you don’t ever
see it so I’ve got this like barrier tag
I’m gonna give it an ID um routes ID and
like width and height don’t really do
anything I just kind of put wrapped
rock content in there just to fill it
out and so that lint will yell at me and
then you specify a direction so here I’m
going to specify end and basically the
direction of the bearer is basically the
site at which constraint layout will
look at and see which view is basically
positioned furthest out in that
direction so I’m going to specify some
views that I want the constraint layout
to look at so I’m gonna do see image
title oops and this is the tricky part
with some of these tags is that when you
have these like kind of groups these
comma-separated list of view IDs number
one don’t put it at ID in them and
number two I don’t think we’re getting
autocomplete yet save be careful um as
you can see here in the preview it’s
already created this barrier so this
blue dotted line is the barrier and so
that’s my virtual help of my virtual
guide line and it will actually again
try to figure out which view is furthest
out in the ends so like basically this
position ah since we’re doing left-right
the furthest view to the right and as I
change that barrier will reposition
itself now based on whatever view that I
specified this barrier is you know for
this right and what I can do then is
rather than positioning my image to be
at the end of this image description or
image title I can set it to realign to
the barrier and for free basically and
without me having to worry about okay is
this title shorter or is a description
shorter I get this nice alignment I’m
gonna I just love this feature it’s just
the idea that okay sometimes we have
data to deal with we have data at
different lengths we don’t want to
hard-code things because on Android we
have different screen devices screen
size and screen densities we try not to
like hard code things and this is just
another tool to help us with that and I
this just feels really it really feels
to me like a feature that someone said
hey I have this problem how do you solve
this it really feels like again this is
one of those answers to the problems
it’s one of my favorite kind of things
and again you can do it top left or top
bottom start end you should always you
start ends not left right or left right
so that we can do RTL and LCL LTR
correctly but yeah so that’s barriers um
and again great tool to use it’s kind of
crazy
it’s not always apparent when you need
them but when you need them it’s just
fantastic
so another kind of thing that you might
have heard of is groups so groups are
kind of like another one of these
virtual helper things under the hood
it’s of you but really it’s just a way
for you to define relationships between
one or more views and then to be able to
toggle the visibility of that group of
views so here I just define a group so
this group lives inside of my constraint
layout and again it would hide anything
that doesn’t quite matter it’s again
it’s a virtual view it won’t get
rendered so yeah but again I’m gonna
define a relationship between two or
more views and I do that by providing
some IDs so these are IDs from the views
that I had up here in my barrier example
and they’re gonna be comma separated
again we don’t get any autocomplete yet
although if you do type in something
that doesn’t exist it will check it at
runtime it’s just it’s not helping you
with the autocomplete so that’s just
everywhere and then so if I’m gonna pull
up let me actually run this real quick
so so here in my emulator I have my
barriers example now right now the
visibility of this group that I’ve
created from kind of all these
components is set to visible if I set it
to John and I go ahead and run again and
hope your instrument actually works that
barrier is gone I have my next example
coming up so again it’s just a really
sick synced way of saying hey I want all
of these to kind of form a unit like a
UI kind of section almost and I want to
toggle the visibility gone I’ve gone
invisible kind of without having to say
this one this one this one this one in
this one like individually setting the
visibility of each of them so that’s
pretty handy I know I’ve written so many
functions where I try to like be fancy
and like trying to make my code drier
and say okay like pass in like an array
of IDs and like say you don’t have to do
any more you can use groups I’m just
right oh my gosh it’s so nice or yeah
and I used like butter-knife actions and
that was great but being able to do so
much nicer um and I think what’s really
nice about doing it constraint layout is
that it kind of gives
you a high-level tag right so then so
that a couple of things you don’t have
to kind of do some things in code and
some things in XML you get the kind of
nice high level organization of your
code right you can you can specify this
kind of logical group in the XML which
is really nice and it’s easy to kind of
look at the XML say okay I see this is a
group and they’re all visible or
invisible or gone so I know something
that everyone probably runs into at some
point is the need to size things based
on a percentage of the parents and I
know we have percent layout now we have
that kind of functionality but inside of
constraint layout itself so these are
present constraints and again it’s
basically saying hey I want to align or
size something based on some percentage
of the parents so a lot of times you’ll
say okay I want the margin GB 25% of
like my parent or some like that I’m
here I have a very simple example I have
three views
they’re just views they’re kind of
aligned to each other and the way that
percent constraints work is that you use
this 0dp so just like in linear layout
or in kind of other kind of constraint
layout features when you set a dimension
to 0dp it’s almost like you turn on like
a special mode where you can access kind
of very specialized sizing and that’s
called match constraint so basically
saying okay match whatever constraint
that you set with other properties and
here I have my width right so I want to
size my width of these views by percents
so I set each of them to 0 DP which is
match constraint and then I actually
have to give it a constraint to match
and I do that here so here each of these
get a width constraint with percents and
I get passed at a floating point value
between 0 and 1 kind of aligned
everything as usual and so I have my
first purple view taking a 50% and the
other two taking up you know 25% if I
want to do something silly like let’s
just make it like 80% and see 15 or 15
and then we’ll be 5 and I think that
adds up to 100 yeah
and as you can see here it’s pretty
simple to again use percents and just
change just a floating point value to
get that nice and sizing so and that’s
in constraint Li at one point one and
you can use those so something really
interesting is circular constraints so I
don’t know if any of y’all remember back
to like say not sure which class it be
but like one of those math classes we
learn about polar coordinates so there’s
there’s different ways of there’s
different coordinate systems right where
you can specify the position of
something typically we’re very used to x
and y but another way of doing it is
with polar coordinates where you have
say a circle you have a radius from the
center of that circle and an angle
around that circle and that’s just an
alternate way of defining where
something lives in a plane well we can
do that now with constraint layout and
it’s basically that’s exactly what
circular constraints are their polar
coordinates for views inside of a
constraint layout and I have a really
silly example so I have an Android here
and I have this little pink smartphone
and it’s actually circularly constrained
to this Android so how it works is
instead of say constraining start and
top bottom you know kind of the four
normal edges you’re going to specify
another view or another target view
helper that you want to constrain your
view to so in here’s case lacustrine
circle I’m specifying it to be icon
Android so I’m telling this smartphone
icon that you’re going to be centered
around are you’re going to be positioned
around us relative to a circle around
the the Android the angle at which
you’re going to be is 300 and then the
radius of your Center from your the view
that you’re a kind of a line of
positioned relative to is going to be a
DDP and so here I have I guess from 12
o’clock is 0 300 degrees and then a DDP
so if I change it let’s put it at no no
lot bigger radius
my insta run you can see it should be
let’s see it should be here there we go
and it’s a little bit further and that’s
pretty much it it’s alright I mean I
know this is like a very specialized
kind of measurement but and I asked when
I first talked about this I was like
okay anyone give me some examples of
things that you can do I know Andrew
Kelly gave some examples of like you
know doing planets and like stars but
you can also do like clocks of course as
well I think Emily only gave someone
mentioned that they worked on
kind of like nest like a thermostat you
know so it’s like a round interface and
then they had numbers around it so you
can certainly do that as well and of
course you can you can circularly
constrain things around each other so if
I actually add another smartphone I can
circularly constrain a second one Oh see
I can the constrain things to others so
it’s really interesting again this will
kind of circumvent this will replace any
start and top/bottom but it’s just a
really cool tool in the toolbox
especially if you’re working on I guess
circular interfaces that’s pretty cool
and something in 1.1 all right finally
placeholders so corners are really neat
um it’s the site Nia grits you know I
think one of my favorite things about
constraint layout is this idea that oops
let me get rid of it
um so I think what constraint Leah in
general has tried to do is to make it
because to make transitioning and can
make thinking of ray outs with different
like kind of like being able free to
define alternative layouts alternative
positioning for things very easily if
you’re familiar with constraint set
that’s one way to do it placeholders is
another way to do it I really like
placeholder this idea of again it’s a
virtual helper so it’s a view under
under the hood but really is this idea
of making a position a position of
layout params like sizing and kind of
left right top bottom making that kind
of its own entity within the layout and
rather than you thinking about it as
the top left right bottom size of a view
you can think about it s swapping of you
between two different places to
different like sets of sets of layout
programs so just a really actually
illustrate what I’m talking about
so again a placeholder is like a virtual
helper so it’s gonna be like a view tag
in your constraint layout and you just
specify some layout params just pretend
that you’re actually laying that view
out and so you give it start end top
bottom margins and what let’s see what
we can do is specify this content so the
placeholder is is just waiting for of
you to be put into it
Oh waiting for of you to be assigned to
it so whenever if you gets assigned to a
placeholder that placeholder does the
work of setting the layout params on
that view to match the layout params of
this placeholder so what I have here is
two placeholders primary and alt so
those are my two positions and I
actually have some code inside of so I
have like I’m some code that will
actually swap these views second and I
put it haha so basically what you do is
if you want to move a view from one
place which will holder to another you
basically let the placeholder that you
want to switch to you know that hey here
is the view idea of the view that is not
gonna be your content so what’s
happening is here I have a click
listener that listens to the the click
on this button and it runs this method
and basically it says okay if you want
to swap go from whatever placeholder you
were to the other one and you do that by
calling set Content ID now it’s really
important actually that when you’re
moving a view from one to the other
and you don’t want to use that old
placeholder anymore you have to set you
basically had to clear out the content
otherwise you’re going to be have having
both placeholders kind of competing to
set the layout params in that view but
basically that’s all I’m doing here this
function just swapping between one
placeholder in the other and claim the
other one out and I get this really nice
ability to change the parameter a sink
and again it’s kind of a much more kind
of high-level way of thinking about
positioning the view it’s like okay I
want to in this spot or in this spot so
if you have content that you know might
be expanding or just might have two
different positions based on some
parameters it’s a really great way of
doing it yeah you know you can make it
fancier if you want to add like like a
simple transmission you can do that as
well so that you can go ahead and
animate the transition and what’s really
neat as well is that it’s not just
you’re not just like kind of stuck with
just swapping just swapping kind of
views around you can actually say it let
me see it so let me add another
placeholder image like this and what I’m
gonna do is I want to say okay
so this the second image is gonna start
out as the content of my second
placeholder some way right my larger
placeholder is gonna have the second
view that it is created and my first
placeholder is gonna have the original
view and actually access to a little
more changes so rather than just
swapping out and clearing the old
placeholder I’m gonna go ahead and
exchange them so it’s more like this so
I have two views now two different view
IDs and whenever I cook that button I’m
actually just gonna swap the content
swap the view ID that is set there and
if I actually go ahead and run this you
can see that what I do wrong you see
this said Content ID let’s see that’s
something wrong about see the content
okay okay I definitely did something
wrong I cannot see if they did really so
um
live coding is fun but I promise that
you can actually get these two to swap
appropriately oh maybe I just need to
run it again but yeah you can’t actually
rather than just simply moving one view
to between two places is to actually get
them to swap ah there we go now rebuilt
but again this is just a really light
way for you to change between kind of
two different positions or to move
content around very easily within your
view so with that in mind I think again
like I mentioned before one of my
favorite things about constraint Leia is
this idea of I think making like layout
of views less tied into the layout sorry
let’s tide out into the VIP list tied
into the view hierarchy itself so in
episode I think 50 of chet haase and
torn hobbies podcasts Android developers
back house I think was 50
they had John and Nicola on and Nicholas
has something that I’m never gonna
forget and he said that the goal like
the what the thing that they’re driving
towards with like these components is to
separate the view hierarchy from the
layout hierarchy which i think is a hard
thing for us to understand as Android
developers at least up until now because
it feels like the layout is the view
right but I think there’s this idea of
separating out views and kind of like
the content and like the relationship
between different views in your UI from
where they have to be so like for
example when I say like layout views
right I have to have views aware of each
other of who’s like left or what and
right and what and like you know how
things wrap because I want the view to
look I want the layout to look a certain
way but that might not really have
anything to do with like the
relationship of one piece of content to
the other of one button to the other
it’s just connections I have to make to
put things where I want to put them and
I think like some of these features that
we’re seeing are kind of separating that
so you can have a set of views a set of
relationships which
widgets items in a in a layout but then
have how they’re arranged how they
relate to each other be a little more
fluid a little more dynamic and that’s
something that I think in straight
layout gives you and so there’s just
like a concept in constraint layout
Koko’s trainsets
where a constraint set is literally just
a set of constraints it’s a bunch of
positions a bunch of sizes of all of the
views within a layout and I can use
those constraint sets to swap really
easily between two different layouts so
I don’t have to size everything myself I
don’t have to you know manually set
layout params and do this whole set lab
prams thing I just get to I just get to
say hey swap between this set and the
other and that’s kind of been one of my
favorite things in constraint set and
this is the code that I am using to kind
of do what I’m doing here I have two
separate layout files activity it’s a
one layout file and another layout file
so it’s this alt file and this original
file and all I’ve done is to basically
parse these layout files using
constraint layout into two sets and all
I do is just swap between the two of
them I hit a button I apply one
constraint set or I can apply the other
constraint set I add in some default
transitions and I get this delightful
transition and we’ve had that for the
last couple years from constraint set or
constraint layout rather but just like
everything else things can be better and
I mean this is really good I think just
kind of just just for a good start but
if you keep looking at this and you kind
of look at it critically there’s some
things that could be better right number
one you can kind of see that at times I
wish I could slows down but when I
transition sometimes the text tends to
overlap the image you know cuz a they
kind of run together and also like I
don’t have a lot of control over this
right I can only swap between the two I
don’t I can’t do much with the
transition I can’t slow things down I
can and say hey can you move this before
that it’s a kind of safe fire-and-forget
so what can we do about it
well we can use motion layout so motion
layout is a subclass of constraint
layout and it’s kind of a lot of things
together so I think what’s what can be
very hard about animating things on
Andrew
that we have a lot of animation systems
we have transitions we have like
interpret like and we have like sorry
the like animators like property
animator is we have all these different
systems and you know they’re they’re
good in different cases but nothing ever
seems quite perfect
all for everything right so you have
like property animators and value
animators which allow you really tight
control over how things animate but that
you know aren’t you know that all done
in code they’re very kind of you have to
be very specific and you’re basically
down again in the nitty-gritty of the
code doing things but you get a lot of
control whereas you have things like you
know seams and like transitions which
are more high-level more declarative
easier to read probably easier to
maintain in a very real way but that
aren’t that you know that aren’t very
fine-tuned you can’t it’s very hard to
get some sometimes very custom behavior
out of these features so I think what’s
really interesting about motion layout
is that it’s kind of like all of its a
little bit of all these other things I
kind of wrapped into one it’s got some
of transition manager in it it’s got
some value property animator value a
property animator in it and it’s I think
it’s it’s it’s trying to bridge this gap
between very complex very specific
animation but also transitions and and
linking you know these animations to
high level concepts like transitioning
from one layout to the other so I would
actually highly recommend that you go to
niccola’s series he’s got a whole medium
series called introduction of motion
layout and he lays out this whole kind
of like theory and like everything about
motion layout but there’s something that
he mentions that he is kind of like one
of my favorite like takeaways is that
the idea like one of the the main ideas
behind motion layout is to have C Keable
transitions so rather than having these
transitions that you kind of just you
know start and forget about you have
transitions that you can go to any point
in the middle of that transition you can
instantly go to any any kind of
intermediary point between the start and
end state and you can have more control
and and more than just see Keable is
that you we think that instead of just
kind of again firing forgetting we can
tie transitions to user interaction and
on top of all that on top of control we
have a declarative easier to read easier
to maintain and easier to implement kind
of structure for doing this animation so
I did all this talking let’s actually
see what all this is about
so talk back dr. Cox so I want to
understate this example so I have this
is actually two layouts that I’m just
doing the transition as soon as I
navigate to the activity I kind of have
a post delayed callback that just pushes
from one constraint set to the other
that activity and that’s where it is
right so I’m using kind of like the
tools that we had before constraint set
to swap between these two things that’s
fine again I don’t have a lot of control
over this I’m I’m using postal eight I’m
hoping that it goes off and then I have
no control over its starting at stopping
or any intermediary states so I kind of
want to build on this and show you how
step by step motion like some of these
things easier and nicer and kind of more
under your control so one thing that is
not you know it’s not bad but it’s not
great about this is that again I kind of
have this like separation between two
layouts that are written in XML and then
the actual code that transitions between
them is in in this case column is in
code right so there’s this disconnect
it’s not like all of my transition
behavior is nicely in one place or the
other it’s it’s in two places so one of
the benefits of motion layout is that it
starts to kind of move layout and
transitions kind of back to where we
kind of back in to the kind of XML
declarative world so there are new
resources that you get with motion
layout so there X and all resources so
they live in this XML asset file and
this new resource is called a motion
scene so motion scene is basically a
declaration of a relationship of a
transition and it basically allows you
to say hey I have a start state hey I
have an end state and here is how I want
to get from one to the other and that’s
all emotion scene is so it’s XML and the
motion light is able to interpret this
and then do all of the work of the
transition and kind of hooking up these
transitions to
user interaction so this is a really
simple one so I have my two layouts that
I had before okay these are the two
layouts that this transitions from when
I do that constraint set swap but rather
than me doing the work in code of
creating constraint set cloning this
layout file and then applying it to a
constraint layout that I’ve pulled the
reference from somewhere else I can
write this XML file and I can declare it
if say differently say hey I want to
transition from this layout set or a set
of constraints to this set of constraint
I can’t straight set start and my
constraint set int and furthermore
rather than just having it kind of fire
off at some random point from my post
laid call back I can actually say hey I
want this transition to happen as I
swipe so I can trigger this transition
on a non swipe and I can say hey how
about on my Android I want to listen to
a drag that starts at the you know it’s
kind of a line to the top edge of my
Android and I want that transition to
basically follow that swipe that swiping
so I’ll show you what it looks like in
just a second but what’s really neat is
that I have this declaration right I
have this description of how my Landsat
search interest transition and if I go
to motion layout so first I have to
change this to the egg okay so now I’ve
changed it to the actual motion layout
subclass and then what I do is that
there’s this new by motion scene okay
and then what I do is I will give it the
name of a scene it the name of the
attributes I’m gonna go to this ranch
just 3ds to pack as much
I never remember the name is a great
description so so rather than me doing
this in code I want to say hey motion
layout here is a file that tells you how
to behave and then I pass it this XML
resource which again that which is this
resource here and I’m just gonna have to
turn off this okay so I turned off and
then what I do is if I run that did you
and like my emulator and emotion layout
alright so number one it’s not
transitioning immediately because I pick
out the personally well what’s happening
now is if I actually swipe down and drag
this Android you can see that the
transitions actually following the swipe
so emotionally is doing the work of
mapping each like point in this
transition to the swipe and again I
didn’t have to do an animator I didn’t
have to do gesture like I didn’t have to
override any gesture listeners I just
specified XML and that’s it and that’s
kind of like the power of this
declarative way of doing it and what’s
really neat is that again like you kind
of packaged together the layout and the
transition like how like how you move
between one transition the other but
you’re not just kind of limited to just
doing this because I think one thing
that also is like less ideal about
having these separate layouts is that
the layout could be like 80% the same
and I want to say change the size or
change like the margin but I still like
you know you think it’s ready set I
still might have to like basically
copy/paste like the whole file over
again and that’s kind of annoying it and
it’s it it’s less extensible less
maintainable right because you know
there’s just a lot more that you could
you know type wrong it just it’s just
not efficient so what you can do instead
of just providing different layouts you
can actually describe changes in the
motion scene so rather than having a
layout as my start state and end state I
can actually define constraint sets
inside of my motion scene that will
allow me to transition to specify okay
what exactly is changing so for now
kind of a moving clouds in my Android
here my androids kind of dropping down
from the clouds down to earth I’m gonna
go ahead and just transition my Android
for now just so we can focus on how this
works so a lot of this looks kind of
similar right I got my own set up my
transition but rather than having a
layout I have these two constraints
that’s here that are my start in state
and I specify just the layout params
that I want from my Android icon at the
start and I specify the layout params
that I want for it at the end and that’s
it if I go back to my motion layout
activity
I changed the right description to be my
other scene so this one so rather than
using that kind of only out references
I’m just gonna describe everything at
the file I’m gonna go ahead and run it I
probably should have used instant runs a
little bit faster that’s okay and then
if I go back you can see that again
because I just moved the Android you can
just see that just the Android is moving
but again rather than having to have two
separate layout files that are mostly
the same I can just specify Delta’s and
again that just is just giving you more
power to say very explicitly what are
you doing and making it more
maintainable more readable and I just
love that about this is that instead of
just again coding and trying to like do
things so explicitly and so I guess
imperative lis we’re saying hey at a
high level this is what’s changing it’s
it just feels like a much friendlier and
much more straightforward way of doing
this kind of animations so that’s the
kind of fill things out I’m gonna fill
in the rest of my clouds so that we can
go ahead and looks like yeah I’ll make
my class move again so everything is
linked to these live coding is fun let
me try that again
maybe Instagram is just a little bit
fussy all right
layouts and so there’s a lot that you
can do with this though okay it’s not
just for kind of moving between one and
say and the other and it’s not just
about layout programs there’s a lot that
you can do with motion layout that is
really do fascinating um and I think
that was one thing that was hard about
constraint set is that constraint
changing from one constraint set to the
other only picked up really layout
params only only anything that was
basically layout underscore something
that’s the only thing that constraints
that was able to choose so if you say
change text color or change like a
drawable it wouldn’t pick that up and
that’s kind of difficult right because
when we’re transitioning it’s not just
positioned in sides that are changing
often it’s like you know opacity and
other things that we want to use to make
like a delightful experience so on top
of this kind of associating I get and
tying together user input with
transitions we actually get kind of this
idea of custom attributes that we’re not
just relegated to layouts we can change
a little bit more the kind of visual and
visual and styling aspects of layouts so
let’s say that rather than just like my
android shading position I want to
change its color so what I can do is
actually add thing called a custom
attribute so this idea is just basically
giving you kind of more freedom to
specify something that changes that is
going to be interpolated from the start
state to an ends later so let’s say I do
I want to change the tinting so I’m
going to specify an attribute name now
the attribute name has to be an
attribute that can be set using this
like syntax so it has to has a setter so
you can turn any property on a view that
is a setter into a custom attribute so
in this case there’s like a set color
filter function and so that’s basically
what I’m using to generate this
attribute name so that color filter so I
can the brain becomes color filter and
what I can do is set a custom color
value I was going to be the start value
of my
um color I’m actually gonna pull this
out so what’s interesting is that for
the type the parameter type has to match
so color filter actually takes a color
value not a color drawable resource so
this is why I’m putting in hex start out
with gray so we can end with a nice
colorful Android so here’s my custom
attribute so basically I’m saying OK in
the start constraint set my Android has
these layout constraints but it also
should have this color at the start
State and then what I can do is I go
down to my end state and I’ll say okay
now at the end of the transition I want
instead for my Android to have this
color so again all we’re doing is this
defining start and end States and then
hoping that motion layout can do the
magic for us so if I run that emotion
layout now hopefully this looks pretty
good because I my Android is not green
it was our greatest green before or
black before but as you can see as I
move the Android it’s interpolating from
that gray to green and again you could
totally do this without motion layout
but it would take property animators and
all this kind of stuff and a lot of
stuff in like Kotlin or java code but
here I remember myself myself having
done that yeah right yeah the RGB like
yeah but here I just started a set a
start and start state and state and it
does it for me and you know I I mean I
love property and value animators I’m
never gonna stop using them I don’t
think until they take them away but just
imagine how much easier this is for you
to read and how now that now you’re
actually associating a aspect of the
transition with the rest of the
transition information right
you’re not having these kind of
disparate parts of your transition
living a different part of your code and
I just think that’s really valuable and
there’s a lot that you can do with
custom attributes again if there’s a
setter for it you can make a custom
attribute for it you are limited though
like again that the parameter type so so
say like here’s a a set attribute so
whatever this parameter is whatever this
parameter is matters and there’s only
like a small set of custom values that
you can set so here you can see these
are kind of like the possible types that
the setter can take so like color
drawable value like to mention some
integers strings but there’s a lot you
can do with that it is limited for you
know probably for feasibility reasons
but there’s a lot you can do so apart
from this so it’s become really easy to
kind of interpret late but again like we
kind of talked about you know it’s nice
when we don’t just kind of start a
transition and like you know set it and
forget it we’d rather have more control
and I think something that’s really
interesting is being able to really
fine-tune how things move so again my
previous example I mentioned well like
this is nice but the text kind of runs
over I don’t have a lot of control
everything kind of just is very like
linearly kind of like you know moving is
there anything I can do to kind of make
to kind of tweak this to really kind of
I don’t know do something different with
it and the answer is yes so if you were
like a flash person like I was back in
the day or if you’ve done After Effects
or any kind of like animation of movies
you probably are familiar with what
keyframes are so keyframes are also a
concept in motion layout so basically
think of this transition and think of
kind of intermediate et mederi points
along this transition so what motion lis
it lets you do is to think about
transitions in these pieces and that’s
using keyframes so keyframe is some
point along this transition where you
want to specifically state what you want
what you want the state to be so rather
than this kind of like linearly
interpolating I can say hey at like
halfway through I want this property to
have this value so I haven’t any most
easy ways to just kind of show you how
to how to do it
so basically motion layout will take a
transition divide it up into a hundred
pieces and allow you to set specific via
cific properties at any of those like
kind of like a hundred
stopping points so you do this by
specifying a keyframe set and in this
place let’s start simple so right now
when I’m my clouds are kind of the kind
of boring they just move in linearly
like shortest paths kind of thing let’s
see if we can kind of make them dance a
little bit so there’s a couple different
ways you can specify keyframes and
different a couple different ways you
can kind of I think it’s the words
perturb or or kind of alter like you
know the the Delta is along each of
those points so you can alter the
position so right now emotionally is
drawing a path from the start and end
state and then just you know moving the
icons along that path I can actually use
key positions to basically alter the
path of that so there’s a straight line
going from like the start and end and I
can actually kind of make the cloud have
you know kind of move a little bit off
of that kind of straight line shortest
path and I use that using a key position
so a key position you define by saying a
target so whatever view you want to
position and in this case say that I
want to do cloud let’s do this second
cloud okay so that’s the view that I’m
going to be kind of messing with right
and then thing is like with when you’re
kind of specifying position for things
it’s always going to matter like what
coordinate system you’re using or or
like like how you’re basically what’s
your frame of reference for defining a
position and for key positions there’s
three different ones I don’t ever really
remember the difference between the
three I have to kind of muddle around
and figure it out the you just want for
me to understand sprint relative so
basically what I’m going to do is I’m
going to tell the cloud how much off of
its past to move as some percentage of
the of the distance across the parent so
this is say zero and this is like a
hundred percent and I’ll say hey like at
this point I want you to be fifty
percent across the parent that’s
basically what parent role to this and
there’s again other like frames of
reference that you can use and again I’m
gonna say okay at some at whatever point
this is I want you to be all the way
across the parents so it at position one
hundred percent across the parent and
then I actually say what time this
happens at where’s my actual frame
position
oh right there’s a lot going on there so
basically I’ve just told emotion layout
that I want this cloud at 20 frames in
at 20 percent in or however you want to
think of it 20 percent into the
transition I want it to actually be at
this point in the parent and what
emotionally it will do it’s like it’ll
say okay you start here you end here you
want the cloud to be over here at frame
what else we can do is so we can also
just do this first so I set a keyframe
emotionally it’s going to do all of the
work and maybe a little hard to see but
as you can see whoop you can see that
now instead of going straight in and out
my clouds kind of meeting meeting that
frame position and going kind of kind of
again hitting that kind of middle
Waypoint and then that’s just basically
a way that you can kind of take that
transition to the next level you can
kind of change things and if you feel
like you know something is not as
athletically pleasing or you want to
kind of and we’re interest or makes them
more delightful that’s just another tool
that you have to do that so let’s see
now that’s keyframe position there’s
also key attributes so you’re not
necessarily gated to using like
positions you can actually use
attributes where I can set like middle a
kind of intermediary States for the
actual like other attributes like
opacity let’s do color so how would I
take my grand red icon and let’s say
that because I love Android so much I’m
going to turn my little Android red
let’s say like halfway through so it
creme 50 so 50 out of 100 so halfway
through I’m gonna say that and using
custom attribute that’s the color filter
which is the tinting on the image view
is going to be red
okay all right so again I’m just letting
the missional I know that for my I
thought my icon my android icon
I want halfway through the transition
for the color filter the color tinting
to be this value of bread that’s it
right so I run this on instant run
stream an emulator backup and as you can
see without any work from me it actually
is red
halfway through the transition and then
the start and end State are the same I
mean it it’s kind of this kind of a
silly example but again just the
declarative easy to read easy to like
experiment with ability you know the
ability that’s provides you for doing
all these like really delightful things
well this is not that their life was
kind of silly but giving you this power
to really control how transitions
transitions look it’s just so amazing to
me and I think that again it’s this idea
of keeping information keeping the the
things that you want this transition to
be into the same file and being able to
kind of very easily change and access
and read it it’s just so valuable so
let’s see what else can we do so you’re
not just relegated to swipe you can also
do on quick
so because again we very often want to
transition things on quick
it’s pretty easy there’s so what you can
do is like your transition tag you can
add into the trigger for on quick
you specify the thing that you want to
click to do something and you have a
couple quick actions you can follow the
transition between the start and state
you can jump to the end jump at the
start you can actually run the
transition from start to end I’m just
going to toggle it here and without
having to write any you know quick
listeners or anything like that I can go
ahead run this again and okay then I can
also just click that cloud and now I’m
able to transition between the two and
if I want to be something like fake
transition to end
um in surround first um
there’s other behaviors if you want kind
of like a reset button you can do that
so if I was here and I wanted to reset
transition I can again if I click it
again it’s already at the start so I
won’t do anything but there’s just so
many like diff
print things that you can do with this
okay
so there’s also like some other like
really cute little it’s not just like
attributes there’s a lot of other kind
of really nice tools that you can use
you can specify a custom interpolators
if you can actually stagger like kind of
like how the different kind of pieces
animate as well let’s see what else do
we have here
there’s also let’s see oh yeah nothing
that’s really interesting to me is
there’s some there’s a few called image
filter and it’s gonna you go ahead and
just hope your branch out reset hard
like I do just you just come through
that you normally breath everything says
it’s fine so um what’s really
interesting is that there’s some actual
extra widgets inside of like kind of
constraint layout 2.0 that allow you
just a really cool thing so there’s
really interesting view called image
filter view so it is an image view and
what’s really cool is that it actually
allows you to crossfade between two
different images and with image filter
view you’re gonna get this extra
attribute called alt source so you
define like a primary source like you
normally would with an image view and
then you provide us all source and then
what you can do inside of your motion
scene is use this attribute so there’s a
crossfade attribute on the image filter
view and that’s basically going to be a
kind of point between a transition from
the first image to your alternate image
and it’s probably easiest to see what it
is so in my start state I’m gonna start
the cross-faded float value too and at
my end state I’m gonna go ahead and set
it to float value 1 so more or less like
zero to a hundred percent and if I
actually run that all right and bring
this up
all right so instead of my Android I
have this kind of random clipart that I
got from my splash and so I have to
image sources here and since I set this
custom attribute and have a set a start
and end point for it in the transition
as I pull this down you can see it
starts crossfading between these two
states so as you can see without me
doing anything I was just using this
image filter view I can get this really
neat image filter this kind of cross
fade effect and also what I have here
and I’m trying to find the it’s just so
many new attributes I just could never
remember here so there’s actually a way
to debug this so earlier when I was kind
of messing with the path it’s kind of
hard to see but you can actually on
motion layout set show path true and of
course don’t do this for production but
it’ll actually show you the path that
your views will take in the transition
it’ll actually show you like like the
entire path that the motion emotionally
it will take each widget through and it
actually shows you key points or key
frames as well rather so this light pink
square is actually a key frame so if
you’re kind of doing a lot of fancy
stuff and you feel like you’re losing
track you can always turn the show pass
on true and you can always see kind of
what your views are doing and it kind of
helps you like still tweak and kind of
debug some things um let’s see so I
mentioned that Nicola said that in a
sense that they’re trying to make sequel
transitions and it’s not just that you
know you can that you’re just confined
to working within its motion scene you
can actually start listening to and
responding to the transition as well so
there’s quite a few features that work
with this but very simply if I wanted to
say let’s say they go to emotionally an
activity all right let’s say okay we go
back to the layout
alright let’s say I did something really
silly let’s say I add actual seekbar
okay let’s say that I wanted to take
Nicola literally and have a few bar be
able to move like my you know from one
state to the other in my layout I can
do that so I’m going to add a seat bar
and I’m gonna hook up that seat bar
inside of my activity and what’s really
neat is that promotion layout because
you know it’s aware of the transition or
its kind of center around transition it
actually has a progress property so you
know when you define a transition for
the motion layout and it kind of starts
entering that transition it keeps track
of the progress so I can just kind of
like this where I have a seat bar and
every time the user moved that seek bar
I can listen for that progress change in
the seat bar and then set that progress
on my motion layout and the motion
layout will understand oh hey you want
this point in the transition or you want
this point of transition so yeah I think
the procedure our progress comes in as
one to one hundred and integers where as
the progress on the motion layout is
float so that’s what’s going on here but
if I go ahead and run this you can see
that do I can actually seek through my
transition and basically again and
that’s again leveraging the fact that
the motion layout is aware of the
progress of the seat bar and there’s
there you can go the other way as well
so I think I think something that I’ve
heard a lot of people ask them for is
the ability to kind of respond to
different events within the transition
like maybe having something fire off
something else or once the transition is
done you want to do something so there’s
actually a transition listener class
that is on motion layout so motion
layout has a transition listener it’s an
interface and so what you can do is
something like this why don’t you like
that result
oh yeah Jenna because this is so it’s
only on motion layouts that changes to
make sure yeah okay so transition
listener so basically whenever the
motion layout is executing a transition
you’re going to get these callbacks
so when it starts when a certain trigger
happens when it changes when it’s
complete and what’s really neat about
this is
you know your transitions will have
different start and end IDs so if I go
back to my motion scene file you can
actually get back the start and end
state IDs resource IDs in these
callbacks which is pretty neat but here
I’m just gonna be kind of silly I’m
going to use my seat bar again and
rather than having the seek bar move the
transition I’m gonna have the transition
with a seat bar and kind of just reverse
the idea of setting the progress on them
and I don’t know when you’d actually
want to do this but again it’s the idea
that it’s not just kind of setting and
forgetting but that rather than the seek
bar moving the transition the transition
can move other elements so you can
respond to the transition you could
listen for when a certain transition
starts and do something there’s also in
kind of the latest version of motion
layout I think alpha 3 is got released
in December there’s a thing called key
triggers which is basically that it’s a
special keyframe that can fire callbacks
and I haven’t played around this is too
much successfully but if you go to Chris
Bane’s is I think his project TV we see
right so he if you go if you want a
really good example of this check out
Chris baines’s TV project he actually
has been using motion layout to kind of
reimplementation a out and other things
like that but he uses these new key
triggers and basically on a certain
frame position you can call a method on
that particular view that you have the
keyframe on but yeah I mean just it’s
crazy it’s just using this as XML these
like declarative things accessing things
in the views and again being able to
very describe in one place succinctly
through XML and not like explaining
things between code and XML how do you
want things transition you know and like
I would just encourage people to use
this and I think what’s gonna be really
interesting to see is like how this
helps us build more delightful you is
like I know that at least for us you
know animation is kind of a challenge
right I think motion design is still
something that I don’t know if we have
like you know if I know like for us
motion and animation is something that
we drive as developers rather than it’s
something that the designers drive and I
think that’s just more like
because material design and constant of
motion are relatively new we don’t have
you know I think people don’t know what
we’re capable of or and traditionally
animations been pretty difficult but you
can card to see kind of how these tools
how these declarative ways of describing
animations can help you work with your
designer to work with your product
people and be able to you know talk at a
high level what do you want these things
to do and to be able to kind of do them
easily like and maintain ibly and read
ibly so I encourage you to try it it’s
still alpha so of course I would I
wouldn’t go ripping out views and
replacing motion layout if it works just
keep stay with it but if you have
something new if you want to play around
with it I really highly encourage you to
do it
I’m sure Nicola has been asked is all
the time like is it ready and and of
course he’ll say yes but I’ve used it
myself in it I think it’s really great
and I think it’s definitely a way to go
and if you’ve listened to them talk
there’s actually a motion editor I think
they’re working on a motion editor which
is kind of like a After Effects the more
kind of timeline like they’re gonna
provide us like with a GUI images get
really cool yeah yeah but yeah oh wait
here is that yeah so something like this
so this is what our future might look
like where we have a timeline and we can
start kind of you know really
visualizing how animations work rather
than setting animators and coping and
I’m just really enthusiastic I think
this is gonna be just a new way to have
conversations and and explore and talk
about how we do these delightful things
and and hopefully it may get sus to a
better place easier place a more
maintainable place but anyway that’s
motion layout I really think people to
try it’s one of my new favorite things
and again I just see how ridiculously
easy it is to do cool things so I
encourage people to definitely give it a
go but yeah thank you so much it was
really cool it kind of things you can do
with a few lines of XML it’s synchronous
and I definitely have been in those
places with barriers Forex for instance
I’ve used constraint layout one at one
and I miss them
and it’s this keeps improving and
improving and I’m sure that is probably
the very first thing for many things in
the future so yeah I I agree at night I
think that it’s important that if you
like this or if you experiment and you
find problems or you have suggestions
you should definitely reach out to John
and Nicola on Twitter on reddit on
whatever wherever you can find them
because they’re very open and they want
to know what people what are the real
use cases what are you finding tricky
what do you need like they’re really
open and obviously they want to fix bugs
so I think that’s part of it as well as
just be open take advantage of it
they’re very nice gentleman you take
advantage of them and I mean that in a
nice way but you should also like maybe
this really great talk at the Android
dev summit I mean because now we have
motion Lea and the kind of other systems
it’s not like we’re throwing the other
ones away but if you kind of want an
overview right of everything get
animated at the Android dev some it was
a great talk and I think if you’re kind
of confused about where to start or
whether you really need it or like
what’s the excuse for you to try motion
layout you should definitely watch their
talk major décima nice thank you very
much for for the talk it was really
interesting and showed all the news we
have from girl in a constrained layout
sorry I always mix those and regarding
the questions I we only have one from
the audience the life happens if and if
if I different I personally I think
you’re not because you interview him
native world that he has something about
a topic we talked during the interview
and he was asking if we have any
thoughts or suggestions on networking
for those that live in areas without
local developer community that’s a
really good question um I mean for me I
think flak there’s that I feel like life
has just there’s been an explosion of
really good side communities and I think
yeah like I know that there’s like I’ll
show like so there’s so there’s like you
know for example the cotton line
clack is really great if you are a
Kotlin type person as I know like
Antonia and I both are and I think that
that’s like remote tools like this it’s
kind of hard because you had to discover
these communities but yeah to make up
for the fact if you don’t have a local
community you need to find them out
digitally which is can be a little bit
more difficult it is always easier to
connect people I think in person maybe
not maybe your mileage might vary but
there are like electronic communities
that you can reach out and and kind of
start building connections so there’s a
like I know there’s like Spanish
language Portuguese language Android
communities as well on slack
there’s a cotton Lang slack there’s kind
of women based ones as well like if
you’re like I thought I’ve heard of like
women techmakers for example also like I
know people think reddit is a scary
place but our Android dev is actually
moderated by some really amazing people
in the community probably many of them
you’ve heard of and that’s also a place
to kind of hop into conversations and
get talking to people so those are my
suggestions and don’t be scared I know
right it’s a scary place but the mods
work really hard to make the Android dev
subreddit not scary yeah I agree with if
you don’t have a physical place to go
it’s a little bit more difficult to to
engage with people right there are any
other ways and for instance up as who
you mentioned that the Quadling one is
very active and we for instance have one
force for Spanish people that is really
active to one and people there also can
can talk about many topics and and
connect with each other so it’s really
helpful too and and also social networks
yeah the thing is that Android
developers are usually very open so it’s
very easy to to connect with anyone
through any social networks and that can
also help maybe not for networking
because that’s a little bit more
difficult but those softening clear out
any questions or answer any of your your
possible doubts that you might have
it’s it’s also really helpful by
I agree that is much more difficult if
you cannot go to a physical place
because networking here it works better
if you are face to face but yeah I mean
that’s just it’s kind of like the remote
challenge right as we become more remote
or to more or less degrees is how do we
make these connections and maintain them
and it’s not perfect it’s not you know
it’s not as good but I think with things
like black and social media and things
like that it is easier it it does take
more work but it’s not impossible and
and like Ateneo saying I think Android
is obviously quite biased but I think
Android is like a really amazing
community and we do have like as he said
many open like we’re I think many of us
are very open and friendly and and just
eager to help you along and welcome you
as well so yes we have one last question
from Gabrielle he asks if if you use any
kind of snippets for Android studio yeah
I do I do
um I love live templates which is what I
was using I use using them heavily for
my prayers oh here but I love life
templates I try I think I try to balance
it like you know especially like you
know there’s already so many left
templates that are good for kind of
things that we do every day kind of that
same old stuff well I have to use these
less now but when we were you know if
you’re in fragment world and you have
all this boilerplate it’s very flexible
to be able to kind of do really nice
templatized live templates and kind of
cut down on work there also again I
don’t have like templates for all of the
new attributes in motion layout because
I tend to forget things a lot but I do
them use them like quite heavily I find
that it in general once I get them down
it helps me with like you know small
errors and things like that and
obviously for places where we still have
boilerplate and our cutland can’t help
us squeeze things down it helps a lot so
yeah I love live templates it takes a
little bit to I guess do
cute ones fancy ones I think there’s
actually a talk at Chicago Vrbata last
year about trying to leverage live live
templates I apologize I don’t remember
the name of it but yeah snippets all the
time even just for silly things like
comment enter comment headers and things
I just don’t want to keep writing over
and over again just I’m lazy I spent a
couple minutes of making the live
template but yeah I I think actually I
also have like if you’re on Mac there’s
also this tool called Alfred which is
like a like a launcher integrated search
and all kind of stuff it also has
snippets I think I’ve used it for other
snippets like I don’t know like four
code snippets I kind of use like Unicode
a lot for different things or ASCII art
sometimes if I have like certain things
I use my code all the time so I’ll put
them in the the the kind of like other
snippet kind of managers it’s it’s silly
but I like it
so yeah laziness is the mother of many
good programming inventions yes sir
okay so I think we we end here we don’t
have any more questions and so thank you
again so much for for dedicating this
time to us I really love to have you
here the second program and and that’s
it if anyone wants to connect with you
how could how can we do it yeah I fairly
active on twitter my handle is at Queen
code monkey my apologize is really long
I’ve had it since uni can’t really
change it now or you can also go to my
website which is randomly typing calm
and of course that by Chucky and my
channel which is youtube.com slash
Android dialogues dialogues like the UI
component not like the actual proper
English word but yeah Android dialects
but thank you so much for having me I uh
I am a big fan of you Antonio so I was
really uneasy and thank you so much for
doing this as well I know it’s like
obviously I know it’s a lot of work
doing things like this so I really
appreciate it so thank you so much I’m a
fan of you too
so the the feeling in goes goes in both
ways thank you so much
thank you and keep in contact and for
the ones that want to continue receiving
notifications all these interviews I
can’t spoil that that Nate evolving fat
will be in in February early but the
second half of February young and I keep
the other one for every hidden for now
but you can go to direct cash life and
during their and and I will email you
when there are new interviews scheduled
so here you can find it again thank you
so much and and see you bye-bye
[/expand]
5. Links mentioned during the interview
6. Subscribe to Droidkast.LIVE
If you don’t want to miss the following episodes, join the mailing list to receive new updates here.
I’ll come back soon with new awesome guests!